Skip to content

Commit 53e1bf7

Browse files
author
RSamaium
committed
improve skill and doc
1 parent 3bb21e8 commit 53e1bf7

File tree

17 files changed

+589
-145
lines changed

17 files changed

+589
-145
lines changed

.codex

Whitespace-only changes.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ docs/others/*
1111
!docs/api/player/*.md
1212
!docs/api/map/
1313
!docs/api/map/*.md
14+
!docs/api/*.config.json
1415
!docs/api/client/
1516
!docs/api/client/*.md
1617
!docs/others/readme.md

docs/api/map.config.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"title": "Map API",
3+
"description": "Reference for RpgMap, map controls, and event hooks used by created events.",
4+
"basePath": "api/map",
5+
"index": {
6+
"title": "Map API",
7+
"description": "Reference for RpgMap, world map helpers, controls, and event hooks used by created events.",
8+
"intro": "This reference is generated from the JSDoc comments in `packages/server/src/rooms/map.ts` and `packages/common/src/rooms/WorldMaps.ts`."
9+
},
10+
"sections": [
11+
{
12+
"title": "RpgMap",
13+
"description": "Reference for the `RpgMap` class.",
14+
"output": "rpg-map.md",
15+
"ownerNames": ["RpgMap"],
16+
"sourceFiles": ["packages/server/src/rooms/map.ts"]
17+
},
18+
{
19+
"title": "World Maps",
20+
"description": "Reference for world map helpers.",
21+
"output": "world-maps.md",
22+
"sourceFiles": ["packages/common/src/rooms/WorldMaps.ts"]
23+
},
24+
{
25+
"title": "Map Types",
26+
"description": "Supporting interfaces related to map controls.",
27+
"output": "map-types.md",
28+
"ownerNames": ["Controls"],
29+
"sourceFiles": ["packages/server/src/rooms/map.ts"]
30+
},
31+
{
32+
"title": "Event hooks",
33+
"description": "Hooks for events created as plain objects, as shown in the create-event guide.",
34+
"output": "hooks.md",
35+
"ownerNames": ["EventHooks"],
36+
"sourceFiles": ["packages/server/src/rooms/map.ts"]
37+
}
38+
]
39+
}

docs/api/map/hooks.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
---
2+
title: "Event hooks"
3+
description: "Hooks for events created as plain objects, as shown in the create-event guide."
4+
---
5+
6+
# Event hooks
7+
8+
These are the hooks for events created as plain objects, as shown in [Create an event](/guide/create-event).
9+
10+
## Members
11+
12+
- [onAction](#onaction)
13+
- [onChanges](#onchanges)
14+
- [onDetectInShape](#ondetectinshape)
15+
- [onDetectOutShape](#ondetectoutshape)
16+
- [onInit](#oninit)
17+
- [onInShape](#oninshape)
18+
- [onOutShape](#onoutshape)
19+
- [onPlayerTouch](#onplayertouch)
20+
21+
## onAction
22+
23+
Called when a player performs an action on this event.
24+
25+
- Source: `packages/server/src/rooms/map.ts`
26+
- Kind: `property`
27+
- Defined in: `EventHooks`
28+
29+
### Signature
30+
31+
```ts
32+
onAction: (player: RpgPlayer) => void
33+
```
34+
35+
## onChanges
36+
37+
Called during the change-detection cycle for the current player.
38+
39+
Use this hook to recompute the event state from player data, especially player variables. This is useful for reactive visuals such as an opened chest, a hidden door, or a conditional NPC graphic.
40+
41+
- Source: `packages/server/src/rooms/map.ts`
42+
- Kind: `property`
43+
- Defined in: `EventHooks`
44+
45+
### Signature
46+
47+
```ts
48+
onChanges: (player: RpgPlayer) => void
49+
```
50+
51+
## onDetectInShape
52+
53+
Called when a player is detected entering a detection shape attached to the event.
54+
55+
- Source: `packages/server/src/rooms/map.ts`
56+
- Kind: `property`
57+
- Defined in: `EventHooks`
58+
59+
### Signature
60+
61+
```ts
62+
onDetectInShape: (player: RpgPlayer, shape: RpgShape) => void
63+
```
64+
65+
## onDetectOutShape
66+
67+
Called when a player is detected exiting a detection shape attached to the event.
68+
69+
- Source: `packages/server/src/rooms/map.ts`
70+
- Kind: `property`
71+
- Defined in: `EventHooks`
72+
73+
### Signature
74+
75+
```ts
76+
onDetectOutShape: (player: RpgPlayer, shape: RpgShape) => void
77+
```
78+
79+
## onInit
80+
81+
Called when the event is first initialized.
82+
83+
Use this hook for default setup that does not depend on a player interaction, such as setting the initial graphic, speed, or movement route.
84+
85+
- Source: `packages/server/src/rooms/map.ts`
86+
- Kind: `property`
87+
- Defined in: `EventHooks`
88+
89+
### Signature
90+
91+
```ts
92+
onInit: () => void
93+
```
94+
95+
## onInShape
96+
97+
Called when a player enters a shape attached to the event.
98+
99+
- Source: `packages/server/src/rooms/map.ts`
100+
- Kind: `property`
101+
- Defined in: `EventHooks`
102+
103+
### Signature
104+
105+
```ts
106+
onInShape: (zone: RpgShape, player: RpgPlayer) => void
107+
```
108+
109+
## onOutShape
110+
111+
Called when a player exits a shape attached to the event.
112+
113+
- Source: `packages/server/src/rooms/map.ts`
114+
- Kind: `property`
115+
- Defined in: `EventHooks`
116+
117+
### Signature
118+
119+
```ts
120+
onOutShape: (zone: RpgShape, player: RpgPlayer) => void
121+
```
122+
123+
## onPlayerTouch
124+
125+
Called when a player touches this event.
126+
127+
- Source: `packages/server/src/rooms/map.ts`
128+
- Kind: `property`
129+
- Defined in: `EventHooks`
130+
131+
### Signature
132+
133+
```ts
134+
onPlayerTouch: (player: RpgPlayer) => void
135+
```

docs/api/map/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Map API"
3-
description: "Reference for RpgMap and world map helpers."
3+
description: "Reference for RpgMap, world map helpers, controls, and event hooks used by created events."
44
---
55

66
# Map API
@@ -12,3 +12,4 @@ This reference is generated from the JSDoc comments in `packages/server/src/room
1212
- [RpgMap](/api/map/rpg-map)
1313
- [World Maps](/api/map/world-maps)
1414
- [Map Types](/api/map/map-types)
15+
- [Event hooks](/api/map/hooks)

docs/api/map/map-types.md

Lines changed: 2 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
title: "Map Types"
3-
description: "Supporting interfaces related to map controls and event hooks."
3+
description: "Supporting interfaces related to map controls."
44
---
55

66
# Map Types
77

8-
Supporting interfaces related to map controls and event hooks.
8+
Supporting interfaces related to map controls.
99

1010
## Members
1111

@@ -14,14 +14,6 @@ Supporting interfaces related to map controls and event hooks.
1414
- [maxInputsPerTick](#maxinputspertick)
1515
- [maxTimeDelta](#maxtimedelta)
1616
- [minTimeBetweenInputs](#mintimebetweeninputs)
17-
- [onAction](#onaction)
18-
- [onChanges](#onchanges)
19-
- [onDetectInShape](#ondetectinshape)
20-
- [onDetectOutShape](#ondetectoutshape)
21-
- [onInit](#oninit)
22-
- [onInShape](#oninshape)
23-
- [onOutShape](#onoutshape)
24-
- [onPlayerTouch](#onplayertouch)
2517

2618
## enableAntiCheat
2719

@@ -92,115 +84,3 @@ Minimum time between inputs in milliseconds
9284
```ts
9385
minTimeBetweenInputs: number
9486
```
95-
96-
## onAction
97-
98-
Called when a player performs an action on this event
99-
100-
- Source: `packages/server/src/rooms/map.ts`
101-
- Kind: `property`
102-
- Defined in: `EventHooks`
103-
104-
### Signature
105-
106-
```ts
107-
onAction: (player: RpgPlayer) => void
108-
```
109-
110-
## onChanges
111-
112-
Called when the event properties change
113-
114-
- Source: `packages/server/src/rooms/map.ts`
115-
- Kind: `property`
116-
- Defined in: `EventHooks`
117-
118-
### Signature
119-
120-
```ts
121-
onChanges: (player: RpgPlayer) => void
122-
```
123-
124-
## onDetectInShape
125-
126-
Called when a player is detected entering a shape
127-
128-
- Source: `packages/server/src/rooms/map.ts`
129-
- Kind: `property`
130-
- Defined in: `EventHooks`
131-
132-
### Signature
133-
134-
```ts
135-
onDetectInShape: (player: RpgPlayer, shape: RpgShape) => void
136-
```
137-
138-
## onDetectOutShape
139-
140-
Called when a player is detected exiting a shape
141-
142-
- Source: `packages/server/src/rooms/map.ts`
143-
- Kind: `property`
144-
- Defined in: `EventHooks`
145-
146-
### Signature
147-
148-
```ts
149-
onDetectOutShape: (player: RpgPlayer, shape: RpgShape) => void
150-
```
151-
152-
## onInit
153-
154-
Called when the event is first initialized
155-
156-
- Source: `packages/server/src/rooms/map.ts`
157-
- Kind: `property`
158-
- Defined in: `EventHooks`
159-
160-
### Signature
161-
162-
```ts
163-
onInit: () => void
164-
```
165-
166-
## onInShape
167-
168-
Called when a player enters a shape
169-
170-
- Source: `packages/server/src/rooms/map.ts`
171-
- Kind: `property`
172-
- Defined in: `EventHooks`
173-
174-
### Signature
175-
176-
```ts
177-
onInShape: (zone: RpgShape, player: RpgPlayer) => void
178-
```
179-
180-
## onOutShape
181-
182-
Called when a player exits a shape
183-
184-
- Source: `packages/server/src/rooms/map.ts`
185-
- Kind: `property`
186-
- Defined in: `EventHooks`
187-
188-
### Signature
189-
190-
```ts
191-
onOutShape: (zone: RpgShape, player: RpgPlayer) => void
192-
```
193-
194-
## onPlayerTouch
195-
196-
Called when a player touches this event
197-
198-
- Source: `packages/server/src/rooms/map.ts`
199-
- Kind: `property`
200-
- Defined in: `EventHooks`
201-
202-
### Signature
203-
204-
```ts
205-
onPlayerTouch: (player: RpgPlayer) => void
206-
```

docs/api/player/variable-commands.md

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
---
22
title: "Variable Commands"
3-
description: "Store and retrieve arbitrary player variables."
3+
description: "Store and retrieve player variables that persist across saves and map transfers."
44
---
55

66
# Variable Commands
77

8-
Store and retrieve arbitrary player variables.
8+
Store and retrieve player variables.
9+
10+
Player variables are not just generic temporary values.
11+
12+
They are primarily used to:
13+
14+
- persist player-specific state for saves
15+
- keep player state when moving from one map to another
16+
- transfer that state through the player snapshot, even if the next map is hosted on another server
17+
18+
Use them for quest flags, chest states, dialogue progression, switches, and any per-player value that must survive reconnects and map changes.
919

1020
## Members
1121

@@ -117,7 +127,9 @@ true if a variable existed and has been removed, false otherwise
117127

118128
## setVariable
119129

120-
Assign a variable to the player
130+
Assign a variable to the player.
131+
132+
Use this for player state that must be persisted and restored later, such as quest progression or whether a personal chest has already been opened.
121133

122134
- Source: `packages/server/src/Player/VariableManager.ts`
123135
- Kind: `method`
@@ -137,7 +149,9 @@ setVariable(key: string, val: any): void
137149

138150
## variables
139151

140-
Map storing all player variables
152+
Map storing all player variables.
153+
154+
These values belong to the player, are persisted, and travel with the player snapshot during map changes.
141155

142156
- Source: `packages/server/src/Player/VariableManager.ts`
143157
- Kind: `property`

docs/docs.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@
128128
{
129129
"group": "Hooks",
130130
"pages": [
131+
"api/map/hooks",
131132
"hooks/client-engine-hooks",
132133
"hooks/client-physics-hooks",
133134
"hooks/client-scene-hooks",

0 commit comments

Comments
 (0)