@rpgjs/server 4.3.0 → 5.0.0-alpha.1
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/{lib → dist}/Gui/DialogGui.d.ts +1 -2
- package/{lib → dist}/Gui/Gui.d.ts +1 -2
- package/dist/Player/BattleManager.d.ts +22 -0
- package/dist/Player/ClassManager.d.ts +18 -0
- package/dist/Player/Event.d.ts +0 -0
- package/dist/Player/ItemManager.d.ts +17 -0
- package/dist/Player/MoveManager.d.ts +177 -0
- package/dist/Player/ParameterManager.d.ts +42 -0
- package/dist/Player/Player.d.ts +73 -0
- package/dist/Player/SkillManager.d.ts +23 -0
- package/dist/Player/StateManager.d.ts +39 -0
- package/{lib → dist}/RpgServer.d.ts +32 -15
- package/dist/RpgServerEngine.d.ts +5 -0
- package/dist/core/context.d.ts +2 -0
- package/dist/core/inject.d.ts +5 -0
- package/dist/core/setup.d.ts +6 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +29673 -0
- package/dist/index.js.map +1 -0
- package/dist/module.d.ts +2 -0
- package/dist/rooms/lobby.d.ts +6 -0
- package/dist/rooms/map.d.ts +110 -0
- package/package.json +15 -37
- package/src/Gui/DialogGui.ts +3 -4
- package/src/Gui/Gui.ts +4 -6
- package/src/Player/BattleManager.ts +108 -99
- package/src/Player/ClassManager.ts +47 -46
- package/src/Player/ComponentManager.ts +26 -535
- package/src/Player/EffectManager.ts +44 -59
- package/src/Player/ElementManager.ts +70 -72
- package/src/Player/Event.ts +0 -0
- package/src/Player/GoldManager.ts +24 -6
- package/src/Player/GuiManager.ts +106 -97
- package/src/Player/ItemFixture.ts +22 -17
- package/src/Player/ItemManager.ts +234 -225
- package/src/Player/MoveManager.ts +1047 -457
- package/src/Player/ParameterManager.ts +59 -37
- package/src/Player/Player.ts +272 -1058
- package/src/Player/SkillManager.ts +146 -137
- package/src/Player/StateManager.ts +124 -98
- package/src/Player/VariableManager.ts +23 -3
- package/src/RpgServer.ts +36 -12
- package/src/RpgServerEngine.ts +7 -0
- package/src/core/context.ts +3 -0
- package/src/core/inject.ts +17 -0
- package/src/core/setup.ts +20 -0
- package/src/index.ts +9 -31
- package/src/module.ts +32 -0
- package/src/presets/index.ts +1 -3
- package/src/rooms/lobby.ts +24 -0
- package/src/rooms/map.ts +311 -0
- package/tsconfig.json +26 -23
- package/vite.config.ts +21 -0
- package/CHANGELOG.md +0 -174
- package/LICENSE +0 -19
- package/browser/manifest.json +0 -7
- package/browser/rpg.server.js +0 -22379
- package/browser/rpg.server.umd.cjs +0 -22410
- package/lib/Game/EventManager.d.ts +0 -54
- package/lib/Game/EventManager.js +0 -107
- package/lib/Game/EventManager.js.map +0 -1
- package/lib/Game/Map.d.ts +0 -191
- package/lib/Game/Map.js +0 -419
- package/lib/Game/Map.js.map +0 -1
- package/lib/Game/WorldMaps.d.ts +0 -17
- package/lib/Game/WorldMaps.js +0 -28
- package/lib/Game/WorldMaps.js.map +0 -1
- package/lib/Gui/DialogGui.js +0 -57
- package/lib/Gui/DialogGui.js.map +0 -1
- package/lib/Gui/Gui.js +0 -37
- package/lib/Gui/Gui.js.map +0 -1
- package/lib/Gui/MenuGui.js +0 -23
- package/lib/Gui/MenuGui.js.map +0 -1
- package/lib/Gui/NotificationGui.js +0 -8
- package/lib/Gui/NotificationGui.js.map +0 -1
- package/lib/Gui/ShopGui.js +0 -40
- package/lib/Gui/ShopGui.js.map +0 -1
- package/lib/Gui/index.js +0 -7
- package/lib/Gui/index.js.map +0 -1
- package/lib/Interfaces/Gui.d.ts +0 -4
- package/lib/Interfaces/Gui.js +0 -2
- package/lib/Interfaces/Gui.js.map +0 -1
- package/lib/Interfaces/StateStore.d.ts +0 -5
- package/lib/Interfaces/StateStore.js +0 -2
- package/lib/Interfaces/StateStore.js.map +0 -1
- package/lib/MatchMaker.d.ts +0 -24
- package/lib/MatchMaker.js +0 -42
- package/lib/MatchMaker.js.map +0 -1
- package/lib/Monitor/index.d.ts +0 -17
- package/lib/Monitor/index.js +0 -72
- package/lib/Monitor/index.js.map +0 -1
- package/lib/Player/BattleManager.d.ts +0 -36
- package/lib/Player/BattleManager.js +0 -101
- package/lib/Player/BattleManager.js.map +0 -1
- package/lib/Player/ClassManager.d.ts +0 -47
- package/lib/Player/ClassManager.js +0 -65
- package/lib/Player/ClassManager.js.map +0 -1
- package/lib/Player/ComponentManager.d.ts +0 -397
- package/lib/Player/ComponentManager.js +0 -505
- package/lib/Player/ComponentManager.js.map +0 -1
- package/lib/Player/EffectManager.d.ts +0 -46
- package/lib/Player/EffectManager.js +0 -75
- package/lib/Player/EffectManager.js.map +0 -1
- package/lib/Player/ElementManager.d.ts +0 -108
- package/lib/Player/ElementManager.js +0 -120
- package/lib/Player/ElementManager.js.map +0 -1
- package/lib/Player/GoldManager.d.ts +0 -17
- package/lib/Player/GoldManager.js +0 -27
- package/lib/Player/GoldManager.js.map +0 -1
- package/lib/Player/GuiManager.d.ts +0 -247
- package/lib/Player/GuiManager.js +0 -291
- package/lib/Player/GuiManager.js.map +0 -1
- package/lib/Player/ItemFixture.d.ts +0 -7
- package/lib/Player/ItemFixture.js +0 -19
- package/lib/Player/ItemFixture.js.map +0 -1
- package/lib/Player/ItemManager.d.ts +0 -331
- package/lib/Player/ItemManager.js +0 -475
- package/lib/Player/ItemManager.js.map +0 -1
- package/lib/Player/MoveManager.d.ts +0 -333
- package/lib/Player/MoveManager.js +0 -450
- package/lib/Player/MoveManager.js.map +0 -1
- package/lib/Player/ParameterManager.d.ts +0 -316
- package/lib/Player/ParameterManager.js +0 -408
- package/lib/Player/ParameterManager.js.map +0 -1
- package/lib/Player/Player.d.ts +0 -828
- package/lib/Player/Player.js +0 -927
- package/lib/Player/Player.js.map +0 -1
- package/lib/Player/SkillManager.d.ts +0 -163
- package/lib/Player/SkillManager.js +0 -223
- package/lib/Player/SkillManager.js.map +0 -1
- package/lib/Player/StateManager.d.ts +0 -185
- package/lib/Player/StateManager.js +0 -228
- package/lib/Player/StateManager.js.map +0 -1
- package/lib/Player/VariableManager.d.ts +0 -46
- package/lib/Player/VariableManager.js +0 -52
- package/lib/Player/VariableManager.js.map +0 -1
- package/lib/Query.d.ts +0 -127
- package/lib/Query.js +0 -159
- package/lib/Query.js.map +0 -1
- package/lib/RpgServer.js +0 -2
- package/lib/RpgServer.js.map +0 -1
- package/lib/Scenes/Map.d.ts +0 -136
- package/lib/Scenes/Map.js +0 -273
- package/lib/Scenes/Map.js.map +0 -1
- package/lib/decorators/event.d.ts +0 -43
- package/lib/decorators/event.js +0 -13
- package/lib/decorators/event.js.map +0 -1
- package/lib/decorators/map.d.ts +0 -178
- package/lib/decorators/map.js +0 -43
- package/lib/decorators/map.js.map +0 -1
- package/lib/entry-point.d.ts +0 -34
- package/lib/entry-point.js +0 -70
- package/lib/entry-point.js.map +0 -1
- package/lib/express/api.d.ts +0 -3
- package/lib/express/api.js +0 -105
- package/lib/express/api.js.map +0 -1
- package/lib/express/errors/NotAuthorized.d.ts +0 -4
- package/lib/express/errors/NotAuthorized.js +0 -7
- package/lib/express/errors/NotAuthorized.js.map +0 -1
- package/lib/express/errors/NotFound.d.ts +0 -4
- package/lib/express/errors/NotFound.js +0 -7
- package/lib/express/errors/NotFound.js.map +0 -1
- package/lib/express/server.d.ts +0 -18
- package/lib/express/server.js +0 -70
- package/lib/express/server.js.map +0 -1
- package/lib/index.d.ts +0 -20
- package/lib/index.js +0 -19
- package/lib/index.js.map +0 -1
- package/lib/inject.d.ts +0 -22
- package/lib/inject.js +0 -29
- package/lib/inject.js.map +0 -1
- package/lib/logs/index.js +0 -6
- package/lib/logs/index.js.map +0 -1
- package/lib/logs/item.js +0 -34
- package/lib/logs/item.js.map +0 -1
- package/lib/logs/log.js +0 -7
- package/lib/logs/log.js.map +0 -1
- package/lib/logs/skill.js +0 -19
- package/lib/logs/skill.js.map +0 -1
- package/lib/logs/state.js +0 -13
- package/lib/logs/state.js.map +0 -1
- package/lib/models/Item.d.ts +0 -10
- package/lib/models/Item.js +0 -2
- package/lib/models/Item.js.map +0 -1
- package/lib/presets/index.js +0 -65
- package/lib/presets/index.js.map +0 -1
- package/lib/server.d.ts +0 -137
- package/lib/server.js +0 -443
- package/lib/server.js.map +0 -1
- package/rpg.toml +0 -14
- package/src/Game/EventManager.ts +0 -125
- package/src/Game/Map.ts +0 -500
- package/src/Game/WorldMaps.ts +0 -45
- package/src/Interfaces/Gui.ts +0 -4
- package/src/Interfaces/StateStore.ts +0 -5
- package/src/MatchMaker.ts +0 -65
- package/src/Monitor/index.ts +0 -78
- package/src/Query.ts +0 -172
- package/src/Scenes/Map.ts +0 -310
- package/src/decorators/event.ts +0 -58
- package/src/decorators/map.ts +0 -226
- package/src/entry-point.ts +0 -111
- package/src/express/api.ts +0 -118
- package/src/express/errors/NotAuthorized.ts +0 -6
- package/src/express/errors/NotFound.ts +0 -6
- package/src/express/server.ts +0 -94
- package/src/inject.ts +0 -33
- package/src/models/Item.ts +0 -11
- package/src/server.ts +0 -459
- /package/{lib → dist}/Gui/MenuGui.d.ts +0 -0
- /package/{lib → dist}/Gui/NotificationGui.d.ts +0 -0
- /package/{lib → dist}/Gui/ShopGui.d.ts +0 -0
- /package/{lib → dist}/Gui/index.d.ts +0 -0
- /package/{lib → dist}/logs/index.d.ts +0 -0
- /package/{lib → dist}/logs/item.d.ts +0 -0
- /package/{lib → dist}/logs/log.d.ts +0 -0
- /package/{lib → dist}/logs/skill.d.ts +0 -0
- /package/{lib → dist}/logs/state.d.ts +0 -0
- /package/{lib → dist}/presets/index.d.ts +0 -0
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { RpgEvent } from "../Player/Player";
|
|
2
|
-
import { RpgMap } from "./Map";
|
|
3
|
-
export type EventsList = {
|
|
4
|
-
[playerId: string]: RpgEvent;
|
|
5
|
-
};
|
|
6
|
-
export declare enum EventMode {
|
|
7
|
-
Shared = "shared",
|
|
8
|
-
Scenario = "scenario"
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* ⚠️ Please note that the event system can be on the player or on the card.
|
|
12
|
-
* On player, it's Scenario mode
|
|
13
|
-
* On-map: Shared mode
|
|
14
|
-
* So this here is either RpgMap or RpgPlayer
|
|
15
|
-
* You can check the mode with the mode cleanup on the retrieved event
|
|
16
|
-
*/
|
|
17
|
-
export declare class EventManager {
|
|
18
|
-
/**
|
|
19
|
-
* @title event list
|
|
20
|
-
* @prop { { [eventId: string]: RpgEvent } } [events]
|
|
21
|
-
* @memberof Map
|
|
22
|
-
* */
|
|
23
|
-
events: EventsList;
|
|
24
|
-
/**
|
|
25
|
-
* Get Event in current map
|
|
26
|
-
* @title Get Event
|
|
27
|
-
* @since 3.0.0-beta.7
|
|
28
|
-
* @method map.getEvent(eventId)
|
|
29
|
-
* @param {string} eventId Event Id
|
|
30
|
-
* @returns {RpgEvent | undefined}
|
|
31
|
-
* @memberof Map
|
|
32
|
-
*/
|
|
33
|
-
getEvent<T extends RpgEvent>(eventId: string): T | undefined;
|
|
34
|
-
getEventByName<T extends RpgEvent>(eventName: string): T | undefined;
|
|
35
|
-
/**
|
|
36
|
-
* Removes an event from the map. Returns false if the event is not found
|
|
37
|
-
*
|
|
38
|
-
* Deletion of an event forced to be performed at the end of several aynschronous notions
|
|
39
|
-
*
|
|
40
|
-
* @title Remove Event
|
|
41
|
-
* @since 3.0.0-beta.4
|
|
42
|
-
* @method map.removeEvent(eventId)
|
|
43
|
-
* @param {string} eventId Event Name
|
|
44
|
-
* @returns {boolean}
|
|
45
|
-
* @memberof Map
|
|
46
|
-
*/
|
|
47
|
-
removeEvent(eventId: string): boolean;
|
|
48
|
-
}
|
|
49
|
-
export interface EventManager {
|
|
50
|
-
getCurrentMap(): RpgMap | null;
|
|
51
|
-
id: string;
|
|
52
|
-
$setCurrentState: (path: string, value: any) => void;
|
|
53
|
-
$currentState(): any;
|
|
54
|
-
}
|
package/lib/Game/EventManager.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { PlayerType } from "@rpgjs/types";
|
|
2
|
-
export var EventMode;
|
|
3
|
-
(function (EventMode) {
|
|
4
|
-
EventMode["Shared"] = "shared";
|
|
5
|
-
EventMode["Scenario"] = "scenario";
|
|
6
|
-
})(EventMode || (EventMode = {}));
|
|
7
|
-
/**
|
|
8
|
-
* ⚠️ Please note that the event system can be on the player or on the card.
|
|
9
|
-
* On player, it's Scenario mode
|
|
10
|
-
* On-map: Shared mode
|
|
11
|
-
* So this here is either RpgMap or RpgPlayer
|
|
12
|
-
* You can check the mode with the mode cleanup on the retrieved event
|
|
13
|
-
*/
|
|
14
|
-
export class EventManager {
|
|
15
|
-
/**
|
|
16
|
-
* Get Event in current map
|
|
17
|
-
* @title Get Event
|
|
18
|
-
* @since 3.0.0-beta.7
|
|
19
|
-
* @method map.getEvent(eventId)
|
|
20
|
-
* @param {string} eventId Event Id
|
|
21
|
-
* @returns {RpgEvent | undefined}
|
|
22
|
-
* @memberof Map
|
|
23
|
-
*/
|
|
24
|
-
getEvent(eventId) {
|
|
25
|
-
return this.events[eventId];
|
|
26
|
-
}
|
|
27
|
-
getEventByName(eventName) {
|
|
28
|
-
const events = Object.keys(this.events);
|
|
29
|
-
const key = events.find(key => this.events[key].name == eventName);
|
|
30
|
-
if (!key)
|
|
31
|
-
return;
|
|
32
|
-
return this.events[key];
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Removes an event from the map. Returns false if the event is not found
|
|
36
|
-
*
|
|
37
|
-
* Deletion of an event forced to be performed at the end of several aynschronous notions
|
|
38
|
-
*
|
|
39
|
-
* @title Remove Event
|
|
40
|
-
* @since 3.0.0-beta.4
|
|
41
|
-
* @method map.removeEvent(eventId)
|
|
42
|
-
* @param {string} eventId Event Name
|
|
43
|
-
* @returns {boolean}
|
|
44
|
-
* @memberof Map
|
|
45
|
-
*/
|
|
46
|
-
removeEvent(eventId) {
|
|
47
|
-
if (!this.events[eventId])
|
|
48
|
-
return false;
|
|
49
|
-
const mode = this.events[eventId].mode;
|
|
50
|
-
let currentState;
|
|
51
|
-
// Restores previous state
|
|
52
|
-
if (mode == EventMode.Scenario) {
|
|
53
|
-
currentState = this.getCurrentMap()?.$currentState().users?.[this.id]?.events?.[eventId] ?? {};
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
currentState = this.$currentState().events?.[eventId] ?? {};
|
|
57
|
-
}
|
|
58
|
-
this.removeObject(this.events[eventId], mode);
|
|
59
|
-
delete this.events[eventId];
|
|
60
|
-
// Change the state of the packet that will be sent to the client, adding the deleted flag to indicate to the client that the event has been deleted.
|
|
61
|
-
if (mode == EventMode.Scenario) {
|
|
62
|
-
this.getCurrentMap()?.$setCurrentState(`users.${this.id}.events.${eventId}`, {
|
|
63
|
-
...currentState,
|
|
64
|
-
deleted: true
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
this.$setCurrentState(`events.${eventId}`, {
|
|
69
|
-
...currentState,
|
|
70
|
-
deleted: true
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
// @internal
|
|
76
|
-
removeObject(object, mode = EventMode.Shared) {
|
|
77
|
-
const map = this.getCurrentMap();
|
|
78
|
-
if (!map)
|
|
79
|
-
return;
|
|
80
|
-
map.getShapes().forEach(shape => shape.out(object));
|
|
81
|
-
const events = Object.values(map.game.world.getObjectsOfGroup(map.id, object));
|
|
82
|
-
for (let event of events) {
|
|
83
|
-
object.getShapes().forEach(shape => shape.out(event));
|
|
84
|
-
event.getShapes().forEach(shape => shape.out(object));
|
|
85
|
-
}
|
|
86
|
-
object._destroy$.next();
|
|
87
|
-
object._destroy$.complete();
|
|
88
|
-
// force RXJS, close subject. TODO: avoid this
|
|
89
|
-
if (object.type != PlayerType.Player)
|
|
90
|
-
object._destroy$['_closed'] = true;
|
|
91
|
-
map.grid.clearObjectInCells(object.id);
|
|
92
|
-
for (let playerId in map.players) {
|
|
93
|
-
if (object.id == playerId)
|
|
94
|
-
continue;
|
|
95
|
-
const otherPlayer = map.players[playerId];
|
|
96
|
-
if (otherPlayer.followingId == object.id) {
|
|
97
|
-
otherPlayer.cameraFollow(otherPlayer);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
// last player before removed of this map
|
|
101
|
-
if (map.nbPlayers === 1 && object.type === PlayerType.Player) {
|
|
102
|
-
// clear cache for this map
|
|
103
|
-
map.remove(true);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
//# sourceMappingURL=EventManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EventManager.js","sourceRoot":"","sources":["../../src/Game/EventManager.ts"],"names":[],"mappings":"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"}
|
package/lib/Game/Map.d.ts
DELETED
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import { RpgCommonMap, RpgShape, RpgCommonGame, AbstractObject } from '@rpgjs/common';
|
|
2
|
-
import { TiledTileset } from '@rpgjs/tiled';
|
|
3
|
-
import { EventOptions } from '../decorators/event';
|
|
4
|
-
import { RpgPlayer, RpgEvent } from '../Player/Player';
|
|
5
|
-
import { RpgServerEngine } from '../server';
|
|
6
|
-
import { Observable } from 'rxjs';
|
|
7
|
-
import { HitBox, MovingHitbox } from '@rpgjs/types';
|
|
8
|
-
import { EventManager, EventMode } from './EventManager';
|
|
9
|
-
export type EventPosOption = {
|
|
10
|
-
x: number;
|
|
11
|
-
y: number;
|
|
12
|
-
z?: number;
|
|
13
|
-
event: EventOptions;
|
|
14
|
-
};
|
|
15
|
-
export type EventOption = EventPosOption | EventOptions;
|
|
16
|
-
export type PlayersList = {
|
|
17
|
-
[eventId: string]: RpgEvent;
|
|
18
|
-
};
|
|
19
|
-
export type EventsList = {
|
|
20
|
-
[playerId: string]: RpgPlayer;
|
|
21
|
-
};
|
|
22
|
-
export declare class RpgMap extends RpgCommonMap {
|
|
23
|
-
private _server;
|
|
24
|
-
_events: EventOption[];
|
|
25
|
-
file: any;
|
|
26
|
-
constructor(_server: RpgServerEngine);
|
|
27
|
-
/**
|
|
28
|
-
* @title Players list
|
|
29
|
-
* @prop { { [playerId: string]: RpgPlayer } } [players]
|
|
30
|
-
* @readonly
|
|
31
|
-
* @memberof Map
|
|
32
|
-
*/
|
|
33
|
-
get players(): PlayersList;
|
|
34
|
-
/**
|
|
35
|
-
* @title Number of players
|
|
36
|
-
* @prop {number} [nbPlayers]
|
|
37
|
-
* @readonly
|
|
38
|
-
* @memberof Map
|
|
39
|
-
*/
|
|
40
|
-
get nbPlayers(): number;
|
|
41
|
-
$additionalEmitProperties(player: RpgPlayer): {
|
|
42
|
-
frame: any;
|
|
43
|
-
pos: any;
|
|
44
|
-
};
|
|
45
|
-
load(): Promise<void>;
|
|
46
|
-
/**
|
|
47
|
-
* Update the map with new data. Data can be a string (TMX content) or an object (parsed TMX content)
|
|
48
|
-
* New Map data will be sent to all players on the map
|
|
49
|
-
*
|
|
50
|
-
* @title Update map
|
|
51
|
-
* @method map.update(data)
|
|
52
|
-
* @since 4.0.0
|
|
53
|
-
* @returns {Promise<void>}
|
|
54
|
-
* @param {object | string} data
|
|
55
|
-
* @memberof Map
|
|
56
|
-
*/
|
|
57
|
-
update(data: object | string): Promise<void>;
|
|
58
|
-
/**
|
|
59
|
-
* Update tileset with new data. Data can be a string (TSX content) or an object (TiledTileset)
|
|
60
|
-
* Cache will be removed for this tileset
|
|
61
|
-
* New tileset data will be sent to all players on the map
|
|
62
|
-
* Warning: tileset is not updated for all maps, only for the current map
|
|
63
|
-
*
|
|
64
|
-
* @title Update tileset
|
|
65
|
-
* @method map.updateTileset(data)
|
|
66
|
-
* @since 4.0.0
|
|
67
|
-
* @returns {<void>}
|
|
68
|
-
* @param {TiledTileset | string} data
|
|
69
|
-
* @memberof Map
|
|
70
|
-
*/
|
|
71
|
-
updateTileset(data: TiledTileset | string): void;
|
|
72
|
-
/**
|
|
73
|
-
* Remove the map from the server. If there are still players on the map, an error will be thrown
|
|
74
|
-
* Not delete the map file, only in memory
|
|
75
|
-
*
|
|
76
|
-
* @title Remove map
|
|
77
|
-
* @method map.remove()
|
|
78
|
-
* @since 4.0.0
|
|
79
|
-
* @returns {void}
|
|
80
|
-
* @throws {Error} If there are still players on the map
|
|
81
|
-
* @memberof Map
|
|
82
|
-
* */
|
|
83
|
-
remove(ignorePlayers?: boolean): never | void;
|
|
84
|
-
private parseTmx;
|
|
85
|
-
private loadProperties;
|
|
86
|
-
get game(): RpgCommonGame;
|
|
87
|
-
onLeave(player: RpgPlayer): void;
|
|
88
|
-
autoLoadEvent(): void;
|
|
89
|
-
/**
|
|
90
|
-
* Edit a tile on the map. All players on the map will see the modified tile
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* @title Change Tile in map
|
|
94
|
-
* @since 3.0.0-beta.4
|
|
95
|
-
* @method map.setTile(x,y,layer,tileInfo)
|
|
96
|
-
* @param {number} x Position X
|
|
97
|
-
* @param {number} y Position Y
|
|
98
|
-
* @param {string | ((layer: any) => boolean)} layer Name of the layer where you want to put a tile. OYou can also put a function that will act as a filter. The first parameter is the layer and you return a boolean to indicate if you modify the tile of this layer or not
|
|
99
|
-
* @param {object} tileInfo Object with the following properties:
|
|
100
|
-
* - {number} gid: The tile number in tileset (from 1)
|
|
101
|
-
* - {object} properties Property of the tile. You own object. To set a collision, set the `collision:true` property
|
|
102
|
-
* @example
|
|
103
|
-
* ```ts
|
|
104
|
-
* map.setTile(15, 18, 'mylayer', { gid: 2 })
|
|
105
|
-
* ```
|
|
106
|
-
* @returns {void}
|
|
107
|
-
* @memberof Map
|
|
108
|
-
*/
|
|
109
|
-
setTile(x: number, y: number, layerFilter: string | ((layer: any) => boolean), tileInfo: {
|
|
110
|
-
gid: number;
|
|
111
|
-
properties?: object;
|
|
112
|
-
}): any;
|
|
113
|
-
getEventShape(eventName: string): RpgShape | undefined;
|
|
114
|
-
/**
|
|
115
|
-
* Dynamically create an event in Shared mode
|
|
116
|
-
*
|
|
117
|
-
* ```ts
|
|
118
|
-
* @EventData({
|
|
119
|
-
* name: 'EV-1'
|
|
120
|
-
* })
|
|
121
|
-
* class MyEvent extends RpgEvent {
|
|
122
|
-
* onAction() {
|
|
123
|
-
* console.log('ok')
|
|
124
|
-
* }
|
|
125
|
-
* }
|
|
126
|
-
*
|
|
127
|
-
* map.createDynamicEvent({
|
|
128
|
-
* x: 100,
|
|
129
|
-
* y: 100,
|
|
130
|
-
* event: MyEvent
|
|
131
|
-
* })
|
|
132
|
-
* ```
|
|
133
|
-
*
|
|
134
|
-
* You can also put an array of objects to create several events at once
|
|
135
|
-
*
|
|
136
|
-
* @title Create Dynamic Event
|
|
137
|
-
* @since 3.0.0-beta.4
|
|
138
|
-
* @method map.createDynamicEvent(eventObj|eventObj[])
|
|
139
|
-
* @param { { x: number, y: number, z?: number, event: eventClass } } eventsList
|
|
140
|
-
* @returns { { [eventId: string]: RpgEvent } }
|
|
141
|
-
* @memberof Map
|
|
142
|
-
*/
|
|
143
|
-
createDynamicEvent(eventsList: EventPosOption | EventPosOption[]): {
|
|
144
|
-
[eventId: string]: RpgEvent;
|
|
145
|
-
};
|
|
146
|
-
createEvent(obj: EventPosOption, mode: EventMode, shape?: RpgShape): RpgEvent | null;
|
|
147
|
-
createEvents(eventsList: EventOption[], mode: EventMode): EventsList;
|
|
148
|
-
/**
|
|
149
|
-
* Allows to create a temporary hitbox on the map that can have a movement
|
|
150
|
-
For example, you can use it to explode a bomb and find all the affected players, or during a sword strike, you can create a moving hitbox and find the affected players again
|
|
151
|
-
* @title Create a temporary and moving hitbox
|
|
152
|
-
* @since 3.2.0
|
|
153
|
-
* @method map.createMovingHitbox(hitboxes,options)
|
|
154
|
-
* @param {Array<{ width: number, height: number, x: number, y: number }>} hitboxes Create several hitboxes that will give an effect of movement
|
|
155
|
-
* @param {object} [options]
|
|
156
|
-
* @param {speed} [options.speed=1] speed of movement (in frames)
|
|
157
|
-
* @returns {Observable<AbstractObject>} You find the methods of position and movement of an event
|
|
158
|
-
* @memberof Map
|
|
159
|
-
* @example
|
|
160
|
-
*
|
|
161
|
-
* ```ts
|
|
162
|
-
* // Two hitboxes that will be done very quickly
|
|
163
|
-
* map.createMovingHitbox(
|
|
164
|
-
* [
|
|
165
|
-
* { x: 0, y: 0, width: 100, height: 100 },
|
|
166
|
-
* { x: 20, y: 0, width: 100, height: 100 }
|
|
167
|
-
* ]
|
|
168
|
-
* ).subscribe({
|
|
169
|
-
* next(hitbox) {
|
|
170
|
-
* console.log(hitbox.otherPlayersCollision)
|
|
171
|
-
* },
|
|
172
|
-
* complete() {
|
|
173
|
-
* console.log('finish')
|
|
174
|
-
* }
|
|
175
|
-
* })
|
|
176
|
-
* ```
|
|
177
|
-
*/
|
|
178
|
-
createMovingHitbox(hitboxes: Pick<HitBox, 'width' | 'height' | 'x' | 'y'>[], options?: MovingHitbox): Observable<AbstractObject>;
|
|
179
|
-
setSync(schema: any): void;
|
|
180
|
-
getCurrentMap(): this;
|
|
181
|
-
}
|
|
182
|
-
export interface RpgMap extends EventManager {
|
|
183
|
-
sounds: string[];
|
|
184
|
-
$schema: any;
|
|
185
|
-
$setSchema: (schema: any) => void;
|
|
186
|
-
$patchSchema: (schema: any) => void;
|
|
187
|
-
$snapshotUser: (userId: string) => any;
|
|
188
|
-
onLoad(): any;
|
|
189
|
-
$setCurrentState: (path: string, value: any) => void;
|
|
190
|
-
id: string;
|
|
191
|
-
}
|