ttpg-darrell 1.1.65 → 1.1.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/lib/find/find-tracking.d.ts +28 -0
- package/build/cjs/lib/find/find-tracking.js +125 -0
- package/build/cjs/lib/find/find-tracking.js.map +1 -0
- package/build/cjs/lib/find/index.d.ts +1 -0
- package/build/cjs/lib/find/index.js +1 -0
- package/build/cjs/lib/find/index.js.map +1 -1
- package/build/cjs/lib/game-object/cardholder-player-name/cardholder-player-name.d.ts +2 -1
- package/build/cjs/lib/game-object/cardholder-player-name/cardholder-player-name.js +12 -11
- package/build/cjs/lib/game-object/cardholder-player-name/cardholder-player-name.js.map +1 -1
- package/build/esm/lib/find/find-tracking.d.ts +28 -0
- package/build/esm/lib/find/find-tracking.js +121 -0
- package/build/esm/lib/find/find-tracking.js.map +1 -0
- package/build/esm/lib/find/index.d.ts +1 -0
- package/build/esm/lib/find/index.js +1 -0
- package/build/esm/lib/find/index.js.map +1 -1
- package/build/esm/lib/game-object/cardholder-player-name/cardholder-player-name.d.ts +2 -1
- package/build/esm/lib/game-object/cardholder-player-name/cardholder-player-name.js +13 -12
- package/build/esm/lib/game-object/cardholder-player-name/cardholder-player-name.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Card, GameObject } from "@tabletop-playground/api";
|
|
2
|
+
/**
|
|
3
|
+
* Find, but only for pre-tracked nsids.
|
|
4
|
+
*
|
|
5
|
+
* Monitors object (and card singleton) creation and destruction to keep an
|
|
6
|
+
* up-to-date set.
|
|
7
|
+
*
|
|
8
|
+
* Unlike find this can track multiple objects with the same nsid.
|
|
9
|
+
*/
|
|
10
|
+
export declare class FindTracking {
|
|
11
|
+
private readonly _trackNsids;
|
|
12
|
+
private readonly _nsidToObjIds;
|
|
13
|
+
private readonly _onObjectCreated;
|
|
14
|
+
private readonly _onObjectDestroyed;
|
|
15
|
+
private readonly _onSingletonCardCreated;
|
|
16
|
+
private readonly _onSingletonCardMadeDeck;
|
|
17
|
+
/**
|
|
18
|
+
* Rebuild the entire tracking map from scratch.
|
|
19
|
+
* Similar cost to reseeding a single nsid (full scan anyhow).
|
|
20
|
+
*/
|
|
21
|
+
_seedNsidToObjIds(): void;
|
|
22
|
+
constructor();
|
|
23
|
+
destroy(): void;
|
|
24
|
+
trackNsid(nsid: string): void;
|
|
25
|
+
trackNsids(nsids: Array<string>): void;
|
|
26
|
+
find(nsid: string): Array<GameObject>;
|
|
27
|
+
findCards(nsid: string): Array<Card>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindTracking = void 0;
|
|
4
|
+
const api_1 = require("@tabletop-playground/api");
|
|
5
|
+
const event_1 = require("../event");
|
|
6
|
+
const nsid_1 = require("../nsid");
|
|
7
|
+
/**
|
|
8
|
+
* Find, but only for pre-tracked nsids.
|
|
9
|
+
*
|
|
10
|
+
* Monitors object (and card singleton) creation and destruction to keep an
|
|
11
|
+
* up-to-date set.
|
|
12
|
+
*
|
|
13
|
+
* Unlike find this can track multiple objects with the same nsid.
|
|
14
|
+
*/
|
|
15
|
+
class FindTracking {
|
|
16
|
+
/**
|
|
17
|
+
* Rebuild the entire tracking map from scratch.
|
|
18
|
+
* Similar cost to reseeding a single nsid (full scan anyhow).
|
|
19
|
+
*/
|
|
20
|
+
_seedNsidToObjIds() {
|
|
21
|
+
this._nsidToObjIds.clear();
|
|
22
|
+
const skipContained = false;
|
|
23
|
+
for (const obj of api_1.world.getAllObjects(skipContained)) {
|
|
24
|
+
const nsid = nsid_1.NSID.get(obj);
|
|
25
|
+
if (this._trackNsids.has(nsid)) {
|
|
26
|
+
let objIds = this._nsidToObjIds.get(nsid);
|
|
27
|
+
if (!objIds) {
|
|
28
|
+
objIds = new Set();
|
|
29
|
+
this._nsidToObjIds.set(nsid, objIds);
|
|
30
|
+
}
|
|
31
|
+
objIds.add(obj.getId());
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
constructor() {
|
|
36
|
+
this._trackNsids = new Set();
|
|
37
|
+
this._nsidToObjIds = new Map();
|
|
38
|
+
this._onObjectCreated = (obj) => {
|
|
39
|
+
const nsid = nsid_1.NSID.get(obj);
|
|
40
|
+
const objId = obj.getId();
|
|
41
|
+
const objIds = this._nsidToObjIds.get(nsid);
|
|
42
|
+
if (objIds) {
|
|
43
|
+
objIds.add(objId);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
this._onObjectDestroyed = (obj) => {
|
|
47
|
+
const nsid = nsid_1.NSID.get(obj);
|
|
48
|
+
const objId = obj.getId();
|
|
49
|
+
const objIds = this._nsidToObjIds.get(nsid);
|
|
50
|
+
if (objIds) {
|
|
51
|
+
objIds.delete(objId);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
this._onSingletonCardCreated = (card) => {
|
|
55
|
+
const nsid = nsid_1.NSID.get(card);
|
|
56
|
+
const objId = card.getId();
|
|
57
|
+
const objIds = this._nsidToObjIds.get(nsid);
|
|
58
|
+
if (objIds) {
|
|
59
|
+
objIds.add(objId);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
this._onSingletonCardMadeDeck = (card, oldNsid) => {
|
|
63
|
+
const objId = card.getId();
|
|
64
|
+
const objIds = this._nsidToObjIds.get(oldNsid);
|
|
65
|
+
if (objIds) {
|
|
66
|
+
objIds.delete(objId);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
api_1.globalEvents.onObjectCreated.add(this._onObjectCreated);
|
|
70
|
+
api_1.globalEvents.onObjectDestroyed.add(this._onObjectDestroyed);
|
|
71
|
+
event_1.OnCardBecameSingletonOrDeck.onSingletonCardCreated.add(this._onSingletonCardCreated);
|
|
72
|
+
event_1.OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.add(this._onSingletonCardMadeDeck);
|
|
73
|
+
}
|
|
74
|
+
destroy() {
|
|
75
|
+
api_1.globalEvents.onObjectCreated.remove(this._onObjectCreated);
|
|
76
|
+
api_1.globalEvents.onObjectDestroyed.remove(this._onObjectDestroyed);
|
|
77
|
+
event_1.OnCardBecameSingletonOrDeck.onSingletonCardCreated.remove(this._onSingletonCardCreated);
|
|
78
|
+
event_1.OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.remove(this._onSingletonCardMadeDeck);
|
|
79
|
+
this._nsidToObjIds.clear();
|
|
80
|
+
this._trackNsids.clear();
|
|
81
|
+
}
|
|
82
|
+
trackNsid(nsid) {
|
|
83
|
+
if (!this._trackNsids.has(nsid)) {
|
|
84
|
+
this._trackNsids.add(nsid);
|
|
85
|
+
this._nsidToObjIds.clear();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
trackNsids(nsids) {
|
|
89
|
+
nsids.forEach((nsid) => this._trackNsids.add(nsid));
|
|
90
|
+
}
|
|
91
|
+
find(nsid) {
|
|
92
|
+
if (!this._trackNsids.has(nsid)) {
|
|
93
|
+
throw new Error(`FindTracking.find called for untracked nsid: ${nsid}`);
|
|
94
|
+
}
|
|
95
|
+
let objIds = this._nsidToObjIds.get(nsid);
|
|
96
|
+
if (!objIds) {
|
|
97
|
+
// Lazy seed. If any one is missing reseed all.
|
|
98
|
+
this._seedNsidToObjIds();
|
|
99
|
+
}
|
|
100
|
+
objIds = this._nsidToObjIds.get(nsid);
|
|
101
|
+
if (!objIds) {
|
|
102
|
+
return [];
|
|
103
|
+
}
|
|
104
|
+
const objs = [];
|
|
105
|
+
for (const objId of objIds) {
|
|
106
|
+
const obj = api_1.world.getObjectById(objId);
|
|
107
|
+
if (obj && obj.isValid()) {
|
|
108
|
+
objs.push(obj);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return objs;
|
|
112
|
+
}
|
|
113
|
+
findCards(nsid) {
|
|
114
|
+
const objs = this.find(nsid);
|
|
115
|
+
const cards = [];
|
|
116
|
+
for (const obj of objs) {
|
|
117
|
+
if (obj instanceof api_1.Card) {
|
|
118
|
+
cards.push(obj);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return cards;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.FindTracking = FindTracking;
|
|
125
|
+
//# sourceMappingURL=find-tracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-tracking.js","sourceRoot":"","sources":["../../../../src/lib/find/find-tracking.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,5 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
16
16
|
};
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
__exportStar(require("./find-tracking"), exports);
|
|
18
19
|
__exportStar(require("./find"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/find/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;;;;;;;;;;;;;;AAEjC,yCAAuB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/find/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;;;;;;;;;;;;;;;;AAEjC,kDAAgC;AAChC,yCAAuB"}
|
|
@@ -15,9 +15,10 @@ export declare class CardHolderPlayerName {
|
|
|
15
15
|
setColor(color: Color | [r: number, g: number, b: number, a: number]): this;
|
|
16
16
|
setFont(fontName: string, fontPackageId?: string): this;
|
|
17
17
|
setFontSizeAndPosition(fontSize: number): this;
|
|
18
|
+
private _setPosition;
|
|
18
19
|
private _updatePlayerStatus;
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
+
* Update UI position for reversed card holder.
|
|
21
22
|
*/
|
|
22
23
|
reverseUI(): void;
|
|
23
24
|
}
|
|
@@ -61,6 +61,9 @@ class CardHolderPlayerName {
|
|
|
61
61
|
cardHolder.addUI(this._ui);
|
|
62
62
|
this.setColor(cardHolder.getPrimaryColor()).setFontSizeAndPosition(CardHolderPlayerName.DEFAULT_FONT_SIZE);
|
|
63
63
|
this._updatePlayerStatus();
|
|
64
|
+
cardHolder.onReleased.add(() => {
|
|
65
|
+
this._setPosition();
|
|
66
|
+
});
|
|
64
67
|
}
|
|
65
68
|
setColor(color) {
|
|
66
69
|
this._nameText.setTextColor(color);
|
|
@@ -76,11 +79,15 @@ class CardHolderPlayerName {
|
|
|
76
79
|
this._nameText.setFontSize(fontSize);
|
|
77
80
|
this._takeSeatButton.setFontSize(fontSize);
|
|
78
81
|
// UI position.
|
|
82
|
+
this._setPosition();
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
_setPosition() {
|
|
79
86
|
const x = (this._cardHolder.getPosition().x >= 0 ? 1 : -1) * 30;
|
|
80
|
-
const z =
|
|
81
|
-
|
|
87
|
+
const z = this._nameText.getFontSize() * 0.15;
|
|
88
|
+
const worldPos = this._cardHolder.getPosition().add([x, 0, z]);
|
|
89
|
+
this._ui.position = this._cardHolder.worldPositionToLocal(worldPos);
|
|
82
90
|
this._cardHolder.updateUI(this._ui);
|
|
83
|
-
return this;
|
|
84
91
|
}
|
|
85
92
|
_updatePlayerStatus() {
|
|
86
93
|
// Calculate widget.
|
|
@@ -100,16 +107,10 @@ class CardHolderPlayerName {
|
|
|
100
107
|
}
|
|
101
108
|
}
|
|
102
109
|
/**
|
|
103
|
-
*
|
|
110
|
+
* Update UI position for reversed card holder.
|
|
104
111
|
*/
|
|
105
112
|
reverseUI() {
|
|
106
|
-
|
|
107
|
-
const rot = this._ui.rotation;
|
|
108
|
-
pos.x = -pos.x;
|
|
109
|
-
rot.yaw = (rot.yaw + 180) % 360;
|
|
110
|
-
this._ui.position = pos;
|
|
111
|
-
this._ui.rotation = rot;
|
|
112
|
-
this._cardHolder.updateUI(this._ui);
|
|
113
|
+
this._setPosition();
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
exports.CardHolderPlayerName = CardHolderPlayerName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardholder-player-name.js","sourceRoot":"","sources":["../../../../../src/lib/game-object/cardholder-player-name/cardholder-player-name.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"cardholder-player-name.js","sourceRoot":"","sources":["../../../../../src/lib/game-object/cardholder-player-name/cardholder-player-name.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Card, GameObject } from "@tabletop-playground/api";
|
|
2
|
+
/**
|
|
3
|
+
* Find, but only for pre-tracked nsids.
|
|
4
|
+
*
|
|
5
|
+
* Monitors object (and card singleton) creation and destruction to keep an
|
|
6
|
+
* up-to-date set.
|
|
7
|
+
*
|
|
8
|
+
* Unlike find this can track multiple objects with the same nsid.
|
|
9
|
+
*/
|
|
10
|
+
export declare class FindTracking {
|
|
11
|
+
private readonly _trackNsids;
|
|
12
|
+
private readonly _nsidToObjIds;
|
|
13
|
+
private readonly _onObjectCreated;
|
|
14
|
+
private readonly _onObjectDestroyed;
|
|
15
|
+
private readonly _onSingletonCardCreated;
|
|
16
|
+
private readonly _onSingletonCardMadeDeck;
|
|
17
|
+
/**
|
|
18
|
+
* Rebuild the entire tracking map from scratch.
|
|
19
|
+
* Similar cost to reseeding a single nsid (full scan anyhow).
|
|
20
|
+
*/
|
|
21
|
+
_seedNsidToObjIds(): void;
|
|
22
|
+
constructor();
|
|
23
|
+
destroy(): void;
|
|
24
|
+
trackNsid(nsid: string): void;
|
|
25
|
+
trackNsids(nsids: Array<string>): void;
|
|
26
|
+
find(nsid: string): Array<GameObject>;
|
|
27
|
+
findCards(nsid: string): Array<Card>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Card, globalEvents, world, } from "@tabletop-playground/api";
|
|
2
|
+
import { OnCardBecameSingletonOrDeck } from "../event";
|
|
3
|
+
import { NSID } from "../nsid";
|
|
4
|
+
/**
|
|
5
|
+
* Find, but only for pre-tracked nsids.
|
|
6
|
+
*
|
|
7
|
+
* Monitors object (and card singleton) creation and destruction to keep an
|
|
8
|
+
* up-to-date set.
|
|
9
|
+
*
|
|
10
|
+
* Unlike find this can track multiple objects with the same nsid.
|
|
11
|
+
*/
|
|
12
|
+
export class FindTracking {
|
|
13
|
+
/**
|
|
14
|
+
* Rebuild the entire tracking map from scratch.
|
|
15
|
+
* Similar cost to reseeding a single nsid (full scan anyhow).
|
|
16
|
+
*/
|
|
17
|
+
_seedNsidToObjIds() {
|
|
18
|
+
this._nsidToObjIds.clear();
|
|
19
|
+
const skipContained = false;
|
|
20
|
+
for (const obj of world.getAllObjects(skipContained)) {
|
|
21
|
+
const nsid = NSID.get(obj);
|
|
22
|
+
if (this._trackNsids.has(nsid)) {
|
|
23
|
+
let objIds = this._nsidToObjIds.get(nsid);
|
|
24
|
+
if (!objIds) {
|
|
25
|
+
objIds = new Set();
|
|
26
|
+
this._nsidToObjIds.set(nsid, objIds);
|
|
27
|
+
}
|
|
28
|
+
objIds.add(obj.getId());
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
constructor() {
|
|
33
|
+
this._trackNsids = new Set();
|
|
34
|
+
this._nsidToObjIds = new Map();
|
|
35
|
+
this._onObjectCreated = (obj) => {
|
|
36
|
+
const nsid = NSID.get(obj);
|
|
37
|
+
const objId = obj.getId();
|
|
38
|
+
const objIds = this._nsidToObjIds.get(nsid);
|
|
39
|
+
if (objIds) {
|
|
40
|
+
objIds.add(objId);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
this._onObjectDestroyed = (obj) => {
|
|
44
|
+
const nsid = NSID.get(obj);
|
|
45
|
+
const objId = obj.getId();
|
|
46
|
+
const objIds = this._nsidToObjIds.get(nsid);
|
|
47
|
+
if (objIds) {
|
|
48
|
+
objIds.delete(objId);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
this._onSingletonCardCreated = (card) => {
|
|
52
|
+
const nsid = NSID.get(card);
|
|
53
|
+
const objId = card.getId();
|
|
54
|
+
const objIds = this._nsidToObjIds.get(nsid);
|
|
55
|
+
if (objIds) {
|
|
56
|
+
objIds.add(objId);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
this._onSingletonCardMadeDeck = (card, oldNsid) => {
|
|
60
|
+
const objId = card.getId();
|
|
61
|
+
const objIds = this._nsidToObjIds.get(oldNsid);
|
|
62
|
+
if (objIds) {
|
|
63
|
+
objIds.delete(objId);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
globalEvents.onObjectCreated.add(this._onObjectCreated);
|
|
67
|
+
globalEvents.onObjectDestroyed.add(this._onObjectDestroyed);
|
|
68
|
+
OnCardBecameSingletonOrDeck.onSingletonCardCreated.add(this._onSingletonCardCreated);
|
|
69
|
+
OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.add(this._onSingletonCardMadeDeck);
|
|
70
|
+
}
|
|
71
|
+
destroy() {
|
|
72
|
+
globalEvents.onObjectCreated.remove(this._onObjectCreated);
|
|
73
|
+
globalEvents.onObjectDestroyed.remove(this._onObjectDestroyed);
|
|
74
|
+
OnCardBecameSingletonOrDeck.onSingletonCardCreated.remove(this._onSingletonCardCreated);
|
|
75
|
+
OnCardBecameSingletonOrDeck.onSingletonCardMadeDeck.remove(this._onSingletonCardMadeDeck);
|
|
76
|
+
this._nsidToObjIds.clear();
|
|
77
|
+
this._trackNsids.clear();
|
|
78
|
+
}
|
|
79
|
+
trackNsid(nsid) {
|
|
80
|
+
if (!this._trackNsids.has(nsid)) {
|
|
81
|
+
this._trackNsids.add(nsid);
|
|
82
|
+
this._nsidToObjIds.clear();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
trackNsids(nsids) {
|
|
86
|
+
nsids.forEach((nsid) => this._trackNsids.add(nsid));
|
|
87
|
+
}
|
|
88
|
+
find(nsid) {
|
|
89
|
+
if (!this._trackNsids.has(nsid)) {
|
|
90
|
+
throw new Error(`FindTracking.find called for untracked nsid: ${nsid}`);
|
|
91
|
+
}
|
|
92
|
+
let objIds = this._nsidToObjIds.get(nsid);
|
|
93
|
+
if (!objIds) {
|
|
94
|
+
// Lazy seed. If any one is missing reseed all.
|
|
95
|
+
this._seedNsidToObjIds();
|
|
96
|
+
}
|
|
97
|
+
objIds = this._nsidToObjIds.get(nsid);
|
|
98
|
+
if (!objIds) {
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
const objs = [];
|
|
102
|
+
for (const objId of objIds) {
|
|
103
|
+
const obj = world.getObjectById(objId);
|
|
104
|
+
if (obj && obj.isValid()) {
|
|
105
|
+
objs.push(obj);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return objs;
|
|
109
|
+
}
|
|
110
|
+
findCards(nsid) {
|
|
111
|
+
const objs = this.find(nsid);
|
|
112
|
+
const cards = [];
|
|
113
|
+
for (const obj of objs) {
|
|
114
|
+
if (obj instanceof Card) {
|
|
115
|
+
cards.push(obj);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return cards;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=find-tracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-tracking.js","sourceRoot":"","sources":["../../../../src/lib/find/find-tracking.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/find/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,cAAc,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/find/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC"}
|
|
@@ -15,9 +15,10 @@ export declare class CardHolderPlayerName {
|
|
|
15
15
|
setColor(color: Color | [r: number, g: number, b: number, a: number]): this;
|
|
16
16
|
setFont(fontName: string, fontPackageId?: string): this;
|
|
17
17
|
setFontSizeAndPosition(fontSize: number): this;
|
|
18
|
+
private _setPosition;
|
|
18
19
|
private _updatePlayerStatus;
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
+
* Update UI position for reversed card holder.
|
|
21
22
|
*/
|
|
22
23
|
reverseUI(): void;
|
|
23
24
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Border, Button, CardHolder, Text, TextJustification, UIElement, UIPresentationStyle,
|
|
1
|
+
import { Border, Button, CardHolder, Text, TextJustification, UIElement, UIPresentationStyle, WidgetSwitcher, globalEvents, world, } from "@tabletop-playground/api";
|
|
2
2
|
/**
|
|
3
3
|
* Display player name above-and-behind the card holder.
|
|
4
4
|
* Show a "take seat" button when no player in slot.
|
|
@@ -58,6 +58,9 @@ export class CardHolderPlayerName {
|
|
|
58
58
|
cardHolder.addUI(this._ui);
|
|
59
59
|
this.setColor(cardHolder.getPrimaryColor()).setFontSizeAndPosition(CardHolderPlayerName.DEFAULT_FONT_SIZE);
|
|
60
60
|
this._updatePlayerStatus();
|
|
61
|
+
cardHolder.onReleased.add(() => {
|
|
62
|
+
this._setPosition();
|
|
63
|
+
});
|
|
61
64
|
}
|
|
62
65
|
setColor(color) {
|
|
63
66
|
this._nameText.setTextColor(color);
|
|
@@ -73,11 +76,15 @@ export class CardHolderPlayerName {
|
|
|
73
76
|
this._nameText.setFontSize(fontSize);
|
|
74
77
|
this._takeSeatButton.setFontSize(fontSize);
|
|
75
78
|
// UI position.
|
|
79
|
+
this._setPosition();
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
_setPosition() {
|
|
76
83
|
const x = (this._cardHolder.getPosition().x >= 0 ? 1 : -1) * 30;
|
|
77
|
-
const z =
|
|
78
|
-
this.
|
|
84
|
+
const z = this._nameText.getFontSize() * 0.15;
|
|
85
|
+
const worldPos = this._cardHolder.getPosition().add([x, 0, z]);
|
|
86
|
+
this._ui.position = this._cardHolder.worldPositionToLocal(worldPos);
|
|
79
87
|
this._cardHolder.updateUI(this._ui);
|
|
80
|
-
return this;
|
|
81
88
|
}
|
|
82
89
|
_updatePlayerStatus() {
|
|
83
90
|
// Calculate widget.
|
|
@@ -97,16 +104,10 @@ export class CardHolderPlayerName {
|
|
|
97
104
|
}
|
|
98
105
|
}
|
|
99
106
|
/**
|
|
100
|
-
*
|
|
107
|
+
* Update UI position for reversed card holder.
|
|
101
108
|
*/
|
|
102
109
|
reverseUI() {
|
|
103
|
-
|
|
104
|
-
const rot = this._ui.rotation;
|
|
105
|
-
pos.x = -pos.x;
|
|
106
|
-
rot.yaw = (rot.yaw + 180) % 360;
|
|
107
|
-
this._ui.position = pos;
|
|
108
|
-
this._ui.rotation = rot;
|
|
109
|
-
this._cardHolder.updateUI(this._ui);
|
|
110
|
+
this._setPosition();
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
CardHolderPlayerName.DEFAULT_FONT_SIZE = 30;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cardholder-player-name.js","sourceRoot":"","sources":["../../../../../src/lib/game-object/cardholder-player-name/cardholder-player-name.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,MAAM,EACN,MAAM,EACN,UAAU,
|
|
1
|
+
{"version":3,"file":"cardholder-player-name.js","sourceRoot":"","sources":["../../../../../src/lib/game-object/cardholder-player-name/cardholder-player-name.ts"],"names":[],"mappings":"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"}
|