@rpgjs/client 3.2.0 → 3.3.0

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.
Files changed (40) hide show
  1. package/lib/Components/AbstractComponent.d.ts +31 -0
  2. package/lib/Components/AbstractComponent.js +104 -0
  3. package/lib/Components/AbstractComponent.js.map +1 -0
  4. package/lib/Components/BarComponent.d.ts +20 -0
  5. package/lib/Components/BarComponent.js +168 -0
  6. package/lib/Components/BarComponent.js.map +1 -0
  7. package/lib/Components/ColorComponent.d.ts +8 -6
  8. package/lib/Components/ColorComponent.js +25 -11
  9. package/lib/Components/ColorComponent.js.map +1 -1
  10. package/lib/Components/Component.d.ts +24 -3
  11. package/lib/Components/Component.js +178 -28
  12. package/lib/Components/Component.js.map +1 -1
  13. package/lib/Components/DebugComponent.d.ts +10 -0
  14. package/lib/Components/DebugComponent.js +33 -0
  15. package/lib/Components/DebugComponent.js.map +1 -0
  16. package/lib/Components/IComponent.d.ts +0 -0
  17. package/lib/Components/IComponent.js +2 -0
  18. package/lib/Components/IComponent.js.map +1 -0
  19. package/lib/Components/ImageComponent.d.ts +8 -6
  20. package/lib/Components/ImageComponent.js +19 -5
  21. package/lib/Components/ImageComponent.js.map +1 -1
  22. package/lib/Components/ShapeComponent.d.ts +10 -0
  23. package/lib/Components/ShapeComponent.js +57 -0
  24. package/lib/Components/ShapeComponent.js.map +1 -0
  25. package/lib/Components/TextComponent.d.ts +8 -3
  26. package/lib/Components/TextComponent.js +26 -4
  27. package/lib/Components/TextComponent.js.map +1 -1
  28. package/lib/Components/TileComponent.d.ts +7 -6
  29. package/lib/Components/TileComponent.js +21 -9
  30. package/lib/Components/TileComponent.js.map +1 -1
  31. package/lib/Effects/Animation.d.ts +6 -0
  32. package/lib/Effects/Animation.js +25 -3
  33. package/lib/Effects/Animation.js.map +1 -1
  34. package/lib/GameEngine.d.ts +2 -0
  35. package/lib/GameEngine.js +30 -5
  36. package/lib/GameEngine.js.map +1 -1
  37. package/lib/Sprite/Character.d.ts +3 -0
  38. package/lib/Sprite/Character.js +9 -0
  39. package/lib/Sprite/Character.js.map +1 -1
  40. package/package.json +6 -5
@@ -0,0 +1,31 @@
1
+ import { ComponentObject } from "@rpgjs/types";
2
+ import { RpgComponent } from "./Component";
3
+ import { GameEngineClient } from "../GameEngine";
4
+ export declare type CellInfo = {
5
+ x?: number;
6
+ y?: number;
7
+ width: number;
8
+ height: number;
9
+ };
10
+ export declare abstract class AbstractComponent<TypeComponent extends ComponentObject<any>, ContainerType extends PIXI.Container | PIXI.Text | PIXI.Sprite | PIXI.Graphics> extends PIXI.Container {
11
+ protected component: RpgComponent;
12
+ protected value: TypeComponent['value'];
13
+ private _onRender$;
14
+ private _onDestroy$;
15
+ readonly onRender$: import("rxjs").Observable<AbstractComponent<TypeComponent, ContainerType>>;
16
+ protected readonly game: GameEngineClient;
17
+ protected firstRender: boolean;
18
+ private style;
19
+ private cacheText;
20
+ protected cell?: CellInfo;
21
+ constructor(component: RpgComponent, value: TypeComponent['value']);
22
+ getStyle<T>(): T;
23
+ protected parseTextAndCache(text: string): string[];
24
+ protected replaceText(object: any, text: string): string;
25
+ protected getValue(object: any, expression: any): any;
26
+ private verifyParams;
27
+ onInit(cell: CellInfo): void;
28
+ abstract updateRender(object: any, firstRender: boolean): void;
29
+ abstract cacheParams: string[];
30
+ onRemove(): void;
31
+ }
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AbstractComponent = void 0;
7
+ const rxjs_1 = require("rxjs");
8
+ const operators_1 = require("rxjs/operators");
9
+ const lodash_get_1 = __importDefault(require("lodash.get"));
10
+ const REGEXP_VAR = /{([^\}]+)}/g;
11
+ class AbstractComponent extends PIXI.Container {
12
+ constructor(component, value) {
13
+ var _a;
14
+ super();
15
+ this.component = component;
16
+ this.value = value;
17
+ this._onRender$ = new rxjs_1.Subject();
18
+ this._onDestroy$ = new rxjs_1.Subject();
19
+ this.onRender$ = this._onRender$.asObservable();
20
+ this.game = this.component.game;
21
+ this.firstRender = true;
22
+ this.style = (_a = this.value) === null || _a === void 0 ? void 0 : _a.style;
23
+ this.cacheText = {};
24
+ }
25
+ getStyle() {
26
+ return this.style || {};
27
+ }
28
+ parseTextAndCache(text) {
29
+ // parse text to get varariable in {} format et cache it
30
+ const matches = text.matchAll(REGEXP_VAR);
31
+ this.cacheParams = [
32
+ ...this.cacheParams,
33
+ ...Array.from(matches).map(match => match[1])
34
+ ];
35
+ return this.cacheParams;
36
+ }
37
+ replaceText(object, text) {
38
+ return text.replace(REGEXP_VAR, (match, key) => {
39
+ var _a;
40
+ const value = (0, lodash_get_1.default)(object, key);
41
+ if (value !== undefined) {
42
+ this.cacheText[key] = value;
43
+ return value !== null && value !== void 0 ? value : '';
44
+ }
45
+ return (_a = value !== null && value !== void 0 ? value : this.cacheText[key]) !== null && _a !== void 0 ? _a : '';
46
+ });
47
+ }
48
+ getValue(object, expression) {
49
+ if (typeof expression === 'string') {
50
+ const value = (0, lodash_get_1.default)(object, expression);
51
+ if (value !== undefined) {
52
+ if (this.cacheParams.indexOf(expression) === -1)
53
+ this.cacheParams.push(expression);
54
+ return value;
55
+ }
56
+ }
57
+ return expression;
58
+ }
59
+ verifyParams() {
60
+ var _a;
61
+ const params = this.component.logic;
62
+ for (const param of this.cacheParams) {
63
+ if ((0, lodash_get_1.default)(params, param) === undefined) {
64
+ throw new Error(`Param ${param} not found in object ${(_a = this.component.logic) === null || _a === void 0 ? void 0 : _a.id}`);
65
+ }
66
+ }
67
+ }
68
+ onInit(cell) {
69
+ var _a;
70
+ this.cell = cell;
71
+ this.verifyParams();
72
+ const render = (object) => {
73
+ const opacity = this.getValue(object, this.getStyle().opacity || this.value.opacity);
74
+ if (opacity !== undefined) {
75
+ this.alpha = Math.min(opacity, 1);
76
+ }
77
+ };
78
+ render(this.component.logic);
79
+ const objectId = (_a = this.component.logic) === null || _a === void 0 ? void 0 : _a.id;
80
+ this.game.listenObject(objectId)
81
+ .pipe((0, operators_1.takeUntil)(this._onDestroy$), (0, operators_1.filter)(object => {
82
+ const params = object === null || object === void 0 ? void 0 : object.paramsChanged;
83
+ if (!params)
84
+ return false;
85
+ for (const param of this.cacheParams) {
86
+ if ((0, lodash_get_1.default)(params, param))
87
+ return true;
88
+ }
89
+ return false;
90
+ }))
91
+ .subscribe(({ object }) => {
92
+ this.updateRender(object, this.firstRender);
93
+ render(object);
94
+ this.firstRender = false;
95
+ this._onRender$.next(this);
96
+ });
97
+ }
98
+ onRemove() {
99
+ this._onDestroy$.next();
100
+ this._onDestroy$.complete();
101
+ }
102
+ }
103
+ exports.AbstractComponent = AbstractComponent;
104
+ //# sourceMappingURL=AbstractComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractComponent.js","sourceRoot":"","sources":["../../src/Components/AbstractComponent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { BarComponentObject } from "@rpgjs/types";
2
+ import { AbstractComponent, CellInfo } from "./AbstractComponent";
3
+ export declare class BarComponent extends AbstractComponent<BarComponentObject, PIXI.Container> {
4
+ static readonly id: string;
5
+ private barContainer;
6
+ private barFill;
7
+ private textContainer;
8
+ private barHeight;
9
+ private text;
10
+ private barStyle;
11
+ private currentValue;
12
+ private maxValue;
13
+ private nextValue;
14
+ private notifier;
15
+ cacheParams: string[];
16
+ private get barWidth();
17
+ onInit(cell: CellInfo): void;
18
+ updateRender(object: any, firstRender: boolean): void;
19
+ onRemove(): void;
20
+ }
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BarComponent = void 0;
7
+ const common_1 = require("@rpgjs/common");
8
+ const AbstractComponent_1 = require("./AbstractComponent");
9
+ const lodash_get_1 = __importDefault(require("lodash.get"));
10
+ const rxjs_1 = require("rxjs");
11
+ const operators_1 = require("rxjs/operators");
12
+ const DEFAULT_COLOR = '#000000';
13
+ class BarComponent extends AbstractComponent_1.AbstractComponent {
14
+ constructor() {
15
+ var _a;
16
+ super(...arguments);
17
+ this.barContainer = new PIXI.Graphics();
18
+ this.barFill = new PIXI.Graphics();
19
+ this.textContainer = new PIXI.Text('');
20
+ this.barHeight = ((_a = this.value.style) === null || _a === void 0 ? void 0 : _a.height) || 7;
21
+ this.text = this.value.text || '';
22
+ this.barStyle = this.getStyle();
23
+ this.currentValue = 0;
24
+ this.maxValue = 0;
25
+ this.nextValue = 0;
26
+ this.notifier = new rxjs_1.Subject();
27
+ this.cacheParams = [];
28
+ }
29
+ get barWidth() {
30
+ var _a, _b;
31
+ return ((_a = this.barStyle) === null || _a === void 0 ? void 0 : _a.width) || ((_b = this.cell) === null || _b === void 0 ? void 0 : _b.width) || 0;
32
+ }
33
+ onInit(cell) {
34
+ if (!this.value.style) {
35
+ this.value.style = {
36
+ fillColor: '#ffffff',
37
+ };
38
+ }
39
+ const { bgColor = DEFAULT_COLOR, borderColor = DEFAULT_COLOR, borderWidth = 1, borderRadius = 0 } = this.barStyle || {};
40
+ this.cell = cell;
41
+ this.barContainer.beginFill(common_1.Utils.hexaToNumber(bgColor));
42
+ const paramsRect = [0, 0, this.barWidth, this.barHeight];
43
+ if (borderWidth) {
44
+ this.barContainer.lineStyle(borderWidth, common_1.Utils.hexaToNumber(borderColor), borderWidth);
45
+ }
46
+ if (borderRadius) {
47
+ this.barContainer.drawRoundedRect(...paramsRect, borderRadius);
48
+ }
49
+ else {
50
+ this.barContainer.drawRect(...paramsRect);
51
+ }
52
+ this.barContainer.endFill();
53
+ this.textContainer.style = {
54
+ fontSize: 10,
55
+ fill: '#ffffff',
56
+ fontWeight: 'bold'
57
+ };
58
+ // 5 is the padding
59
+ this.textContainer.y -= this.barHeight + this.textContainer.height - 5;
60
+ if (this.text)
61
+ this.addChild(this.textContainer);
62
+ this.addChild(this.barContainer);
63
+ this.barContainer.addChild(this.barFill);
64
+ this.cacheParams = [this.value.current, this.value.max];
65
+ super.onInit(cell);
66
+ }
67
+ updateRender(object, firstRender) {
68
+ var _a, _b, _c, _d, _e;
69
+ this.currentValue = this.nextValue;
70
+ this.nextValue = (_b = (_a = (0, lodash_get_1.default)(object, this.value.current)) !== null && _a !== void 0 ? _a : this.nextValue) !== null && _b !== void 0 ? _b : 0;
71
+ this.maxValue = (_c = (0, lodash_get_1.default)(object, this.value.max)) !== null && _c !== void 0 ? _c : this.maxValue;
72
+ const style = this.barStyle;
73
+ const borderRadius = (_d = style === null || style === void 0 ? void 0 : style.borderRadius) !== null && _d !== void 0 ? _d : 0;
74
+ const borderWidth = (_e = style === null || style === void 0 ? void 0 : style.borderWidth) !== null && _e !== void 0 ? _e : 0;
75
+ // first render
76
+ if (firstRender) {
77
+ this.currentValue = this.nextValue;
78
+ }
79
+ const getColor = (value) => {
80
+ let determineLastColor = DEFAULT_COLOR;
81
+ const percent = Math.max(0, (value / this.maxValue) * 100);
82
+ const perPercent = style.perPercent;
83
+ if (perPercent) {
84
+ for (const p in perPercent) {
85
+ if (percent <= +p) {
86
+ determineLastColor = perPercent[p].fillColor;
87
+ break;
88
+ }
89
+ }
90
+ }
91
+ else {
92
+ determineLastColor = this.value.style.fillColor;
93
+ }
94
+ return determineLastColor;
95
+ };
96
+ let colors = [];
97
+ if (style) {
98
+ // TODO: add transition color
99
+ colors = (0, common_1.transitionColor)(getColor(this.currentValue), getColor(this.nextValue), 1);
100
+ }
101
+ else {
102
+ colors = (0, common_1.transitionColor)(DEFAULT_COLOR, DEFAULT_COLOR, 1);
103
+ }
104
+ const render = (up = false) => {
105
+ let currentValue = ~~this.currentValue;
106
+ if (currentValue < 0)
107
+ currentValue = 0;
108
+ if (currentValue > this.maxValue)
109
+ currentValue = this.maxValue;
110
+ const percentBetween = ~~Math.max(0, ((currentValue - this.nextValue) * 100) / this.nextValue);
111
+ const colorIndex = Math.max(Math.floor((100 - percentBetween) / (100 / (colors.length - 1))), 0);
112
+ let fillColor = colors[colorIndex];
113
+ this.barFill.clear();
114
+ this.barFill.beginFill(common_1.Utils.hexaToNumber(fillColor !== null && fillColor !== void 0 ? fillColor : DEFAULT_COLOR));
115
+ const percent = Math.max(0, (currentValue / this.maxValue));
116
+ const bWidth = borderWidth / 4;
117
+ const paramsRect = [bWidth, bWidth, percent * this.barWidth - bWidth, this.barHeight - bWidth];
118
+ if (percent > 0) {
119
+ if (borderRadius) {
120
+ this.barFill.drawRoundedRect(...paramsRect, borderRadius);
121
+ }
122
+ else {
123
+ this.barFill.drawRect(...paramsRect);
124
+ }
125
+ }
126
+ this.textContainer.text = this.replaceText(Object.assign(Object.assign({}, object), { $current: currentValue, $percent: Math.round(percent * 100), $max: this.maxValue }), this.text);
127
+ this.barFill.endFill();
128
+ };
129
+ if (firstRender) {
130
+ render();
131
+ return;
132
+ }
133
+ this.notifier.next();
134
+ this.game.clientEngine.tick
135
+ .pipe((0, operators_1.takeUntil)(this.notifier))
136
+ .subscribe(() => {
137
+ // speed of animation, calculate the difference between the current value and the next value to determine the speed
138
+ const speed = Math.abs(this.currentValue - this.nextValue) / 10;
139
+ let up = false;
140
+ // if the current value is less than the next value, add the speed to the current value
141
+ if (this.currentValue < this.nextValue) {
142
+ this.currentValue += speed;
143
+ up = true;
144
+ }
145
+ // if the current value is greater than the next value, subtract the speed from the current value
146
+ else if (this.currentValue > this.nextValue) {
147
+ this.currentValue -= speed;
148
+ up = false;
149
+ }
150
+ render(up);
151
+ const currentValue = Math.round(this.currentValue);
152
+ if (!up && (~~currentValue <= ~~this.nextValue || currentValue <= 0)) {
153
+ this.notifier.next();
154
+ }
155
+ else if (up && (~~currentValue >= ~~this.nextValue || currentValue >= this.maxValue)) {
156
+ this.notifier.next();
157
+ }
158
+ });
159
+ }
160
+ onRemove() {
161
+ this.notifier.next();
162
+ this.notifier.complete();
163
+ super.onRemove();
164
+ }
165
+ }
166
+ exports.BarComponent = BarComponent;
167
+ BarComponent.id = 'bar';
168
+ //# sourceMappingURL=BarComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarComponent.js","sourceRoot":"","sources":["../../src/Components/BarComponent.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import { RpgComponent } from "./Component";
2
- export declare class ColorComponent extends PIXI.Graphics {
3
- private component;
4
- color: string;
1
+ import { AbstractComponent, CellInfo } from "./AbstractComponent";
2
+ import { ColorComponentObject } from "@rpgjs/types";
3
+ export declare class ColorComponent extends AbstractComponent<ColorComponentObject, PIXI.Graphics> {
5
4
  static readonly id: string;
6
- constructor(component: RpgComponent, color: string);
7
- setBackgroundColor(): void;
5
+ color: string;
6
+ cacheParams: string[];
7
+ private container;
8
+ onInit(cell: CellInfo): void;
9
+ updateRender(object: any): void;
8
10
  }
@@ -1,18 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ColorComponent = void 0;
4
- class ColorComponent extends PIXI.Graphics {
5
- constructor(component, color) {
6
- super();
7
- this.component = component;
8
- this.color = color;
9
- this.setBackgroundColor();
4
+ const common_1 = require("@rpgjs/common");
5
+ const AbstractComponent_1 = require("./AbstractComponent");
6
+ class ColorComponent extends AbstractComponent_1.AbstractComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.color = '#000000';
10
+ this.cacheParams = [];
11
+ this.container = new PIXI.Graphics();
10
12
  }
11
- setBackgroundColor() {
12
- const color = this.color.replace('#', '');
13
- this.beginFill(parseInt(color, 16));
14
- this.drawRect(0, 0, this.component.w, this.component.h);
15
- this.endFill();
13
+ onInit(cell) {
14
+ if (typeof this.value == 'string') {
15
+ this.color = this.value;
16
+ }
17
+ else {
18
+ this.color = this.value.color;
19
+ }
20
+ this.updateRender({});
21
+ this.addChild(this.container);
22
+ super.onInit(cell);
23
+ }
24
+ updateRender(object) {
25
+ var _a, _b, _c, _d;
26
+ this.container.clear();
27
+ this.container.beginFill(common_1.Utils.hexaToNumber(this.color));
28
+ this.container.drawRect(0, 0, (_b = (_a = this.cell) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0, (_d = (_c = this.cell) === null || _c === void 0 ? void 0 : _c.height) !== null && _d !== void 0 ? _d : 0);
29
+ this.container.endFill();
16
30
  }
17
31
  }
18
32
  exports.ColorComponent = ColorComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"ColorComponent.js","sourceRoot":"","sources":["../../src/Components/ColorComponent.ts"],"names":[],"mappings":";;;AAEA,MAAa,cAAe,SAAQ,IAAI,CAAC,QAAQ;IAG7C,YAAoB,SAAuB,EAAS,KAAa;QAC7D,KAAK,EAAE,CAAA;QADS,cAAS,GAAT,SAAS,CAAc;QAAS,UAAK,GAAL,KAAK,CAAQ;QAE7D,IAAI,CAAC,kBAAkB,EAAE,CAAA;IAC7B,CAAC;IAED,kBAAkB;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;QACnC,IAAI,CAAC,QAAQ,CACT,CAAC,EACD,CAAC,EACD,IAAI,CAAC,SAAS,CAAC,CAAC,EAChB,IAAI,CAAC,SAAS,CAAC,CAAC,CACnB,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAA;IAClB,CAAC;;AAlBL,wCAmBC;AAlBmB,iBAAE,GAAW,OAAO,CAAA"}
1
+ {"version":3,"file":"ColorComponent.js","sourceRoot":"","sources":["../../src/Components/ColorComponent.ts"],"names":[],"mappings":";;;AAAA,0CAAqC;AACrC,2DAAiE;AAGjE,MAAa,cAAe,SAAQ,qCAAsD;IAA1F;;QAEI,UAAK,GAAW,SAAS,CAAA;QACzB,gBAAW,GAAa,EAAE,CAAA;QAClB,cAAS,GAAkB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAA;IAwB1D,CAAC;IAtBG,MAAM,CAAC,IAAc;QACjB,IAAI,OAAO,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE;YAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;SAC1B;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA;SAChC;QACD,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC7B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC;IAED,YAAY,CAAC,MAAW;;QACpB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QACxD,IAAI,CAAC,SAAS,CAAC,QAAQ,CACnB,CAAC,EACD,CAAC,EACD,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,mCAAI,CAAC,EACrB,MAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,mCAAI,CAAC,CACzB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;;AA3BL,wCA4BC;AA3BmB,iBAAE,GAAW,OAAO,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Direction, RpgCommonPlayer, RpgShape } from "@rpgjs/common";
2
- import { PositionXY } from "@rpgjs/types";
2
+ import { LayoutPositionEnum, PositionXY } from "@rpgjs/types";
3
3
  import { Scene } from "../Scene/Scene";
4
4
  export interface IComponent {
5
5
  id: string;
@@ -18,8 +18,13 @@ export declare class RpgComponent<T = any> extends PIXI.Container {
18
18
  private components;
19
19
  private direction;
20
20
  private container;
21
+ private containersLayout;
22
+ private subscriptionGraphic;
23
+ private layoutNotifierClear;
21
24
  private registerComponents;
22
25
  private dragMode?;
26
+ readonly game: import("../GameEngine").GameEngineClient;
27
+ readonly id: string;
23
28
  constructor(data: RpgCommonPlayer | RpgShape, scene: Scene);
24
29
  /**
25
30
  * the direction of the sprite
@@ -92,11 +97,27 @@ export declare class RpgComponent<T = any> extends PIXI.Container {
92
97
  * @memberof RpgSprite
93
98
  */
94
99
  getPositionsOfGraphic(align: string): PositionXY;
95
- private callMethodInComponents;
96
- private updateComponents;
100
+ /**
101
+ * Get the container by position (center, left, right, top, bottom)
102
+ *
103
+ * @param {LayoutPositionEnum} [position=center]
104
+ * @returns {PIXI.Container}
105
+ *
106
+ * */
107
+ getLayoutContainer(position?: LayoutPositionEnum): PIXI.Container;
108
+ /**
109
+ * Get Current Scene. Scene is a map, battle, menu, etc.
110
+ * @returns {T}
111
+ */
97
112
  getScene<T>(): T;
98
113
  onInit(): void;
99
114
  onUpdate(obj: any): void;
100
115
  onMove(): void;
101
116
  onChanges(data: any, old: any): void;
117
+ private callMethodInComponents;
118
+ private createGrid;
119
+ private applyComponent;
120
+ private createComponentCenter;
121
+ private refreshComponents;
122
+ private updateComponents;
102
123
  }