@dreadwood-types/types 0.1.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.
- package/README.md +43 -0
- package/dist/appearance.d.ts +80 -0
- package/dist/appearance.d.ts.map +1 -0
- package/dist/appearance.js +319 -0
- package/dist/appearance.js.map +1 -0
- package/dist/bank.d.ts +15 -0
- package/dist/bank.d.ts.map +1 -0
- package/dist/bank.js +45 -0
- package/dist/bank.js.map +1 -0
- package/dist/clientConfig.d.ts +103 -0
- package/dist/clientConfig.d.ts.map +1 -0
- package/dist/clientConfig.js +209 -0
- package/dist/clientConfig.js.map +1 -0
- package/dist/constants.d.ts +205 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +713 -0
- package/dist/constants.js.map +1 -0
- package/dist/cooking.d.ts +26 -0
- package/dist/cooking.d.ts.map +1 -0
- package/dist/cooking.js +41 -0
- package/dist/cooking.js.map +1 -0
- package/dist/equipment.d.ts +47 -0
- package/dist/equipment.d.ts.map +1 -0
- package/dist/equipment.js +186 -0
- package/dist/equipment.js.map +1 -0
- package/dist/goblinCave.d.ts +112 -0
- package/dist/goblinCave.d.ts.map +1 -0
- package/dist/goblinCave.js +69 -0
- package/dist/goblinCave.js.map +1 -0
- package/dist/groundItems.d.ts +17 -0
- package/dist/groundItems.d.ts.map +1 -0
- package/dist/groundItems.js +104 -0
- package/dist/groundItems.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/landmarks.d.ts +366 -0
- package/dist/landmarks.d.ts.map +1 -0
- package/dist/landmarks.js +584 -0
- package/dist/landmarks.js.map +1 -0
- package/dist/messages.d.ts +723 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +38 -0
- package/dist/messages.js.map +1 -0
- package/dist/nameFilter.d.ts +8 -0
- package/dist/nameFilter.d.ts.map +1 -0
- package/dist/nameFilter.js +94 -0
- package/dist/nameFilter.js.map +1 -0
- package/dist/quests.d.ts +63 -0
- package/dist/quests.d.ts.map +1 -0
- package/dist/quests.js +233 -0
- package/dist/quests.js.map +1 -0
- package/dist/torches.d.ts +7 -0
- package/dist/torches.d.ts.map +1 -0
- package/dist/torches.js +11 -0
- package/dist/torches.js.map +1 -0
- package/dist/woodwork.d.ts +206 -0
- package/dist/woodwork.d.ts.map +1 -0
- package/dist/woodwork.js +365 -0
- package/dist/woodwork.js.map +1 -0
- package/dist/xp.d.ts +74 -0
- package/dist/xp.d.ts.map +1 -0
- package/dist/xp.js +126 -0
- package/dist/xp.js.map +1 -0
- package/dist/zones.d.ts +30 -0
- package/dist/zones.d.ts.map +1 -0
- package/dist/zones.js +143 -0
- package/dist/zones.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
export const CAMERA_ZOOM_MIN = 8;
|
|
2
|
+
// Keep the default intimate, but give desktop players enough room to read the
|
|
3
|
+
// surroundings and plan a route without making the character tiny.
|
|
4
|
+
// Leave enough room to read an encounter and plan a route on a phone without
|
|
5
|
+
// turning the game into a distant RTS view. The old 18-unit cap was still too
|
|
6
|
+
// close for the Lil Beach approach.
|
|
7
|
+
export const CAMERA_ZOOM_MAX = 24;
|
|
8
|
+
/**
|
|
9
|
+
* Slightly elevated 3/4 view: character and ground ahead, not RTS top-down
|
|
10
|
+
* (old default 14) and not cramped over-the-shoulder.
|
|
11
|
+
*/
|
|
12
|
+
export const CAMERA_ZOOM_DEFAULT = 11;
|
|
13
|
+
/**
|
|
14
|
+
* Radians from the horizon. ~0.92 is a 3/4 look-down; 1.42 was nearly
|
|
15
|
+
* straight top-down.
|
|
16
|
+
*/
|
|
17
|
+
export const CAMERA_PITCH_DEFAULT = 0.92;
|
|
18
|
+
export const CAMERA_PITCH_MIN = 0.35;
|
|
19
|
+
export const CAMERA_PITCH_MAX = 1.48;
|
|
20
|
+
/**
|
|
21
|
+
* Bump when the default view changes so old saved bird's-eye zooms migrate.
|
|
22
|
+
* Saved configs with a lower revision get the new pitch/zoom pair.
|
|
23
|
+
*/
|
|
24
|
+
export const CAMERA_VIEW_REVISION = 3;
|
|
25
|
+
export const CHAT_WIDTH_MIN = 200;
|
|
26
|
+
export const CHAT_WIDTH_MAX = 640;
|
|
27
|
+
export const CHAT_WIDTH_DEFAULT = 340;
|
|
28
|
+
export const CHAT_HEIGHT_MIN = 64;
|
|
29
|
+
export const CHAT_HEIGHT_MAX = 420;
|
|
30
|
+
export const CHAT_HEIGHT_DEFAULT = 112;
|
|
31
|
+
/** Compact / phone chat has no resize grip; keep the log short by default. */
|
|
32
|
+
export const CHAT_HEIGHT_COMPACT_DEFAULT = 72;
|
|
33
|
+
/** Match MeshHud compact chat and the HUD CSS breakpoint. */
|
|
34
|
+
export const CHAT_COMPACT_MAX_WIDTH = 720;
|
|
35
|
+
export const CHAT_FONT_SIZE_MIN = 9;
|
|
36
|
+
export const CHAT_FONT_SIZE_MAX = 18;
|
|
37
|
+
export const CHAT_FONT_SIZE_DEFAULT = 12;
|
|
38
|
+
export const HUD_BAR_SIZE_MIN = 32;
|
|
39
|
+
export const HUD_BAR_SIZE_MAX = 64;
|
|
40
|
+
export const HUD_BAR_SIZE_DEFAULT = 38;
|
|
41
|
+
export const QUEST_LOG_POS_UNSET = -1;
|
|
42
|
+
export const PANEL_POS_UNSET = QUEST_LOG_POS_UNSET;
|
|
43
|
+
const QUEST_LOG_POS_MAX = 8192;
|
|
44
|
+
/** 5th panel swatch (see THEME_PANEL_SWATCHES in the client's ui/colors.ts). */
|
|
45
|
+
export const THEME_PANEL_DEFAULT = '#2e2620';
|
|
46
|
+
export const THEME_INK_DEFAULT = '#f2f5e9';
|
|
47
|
+
const HEX_COLOR_PATTERN = /^#[0-9a-fA-F]{6}$/;
|
|
48
|
+
function normalizeThemeColor(value, fallback) {
|
|
49
|
+
if (typeof value === 'string' && HEX_COLOR_PATTERN.test(value))
|
|
50
|
+
return value.toLowerCase();
|
|
51
|
+
return fallback;
|
|
52
|
+
}
|
|
53
|
+
const MINIMAP_ZOOM_MIN = 1;
|
|
54
|
+
// Let players inspect nearby routes and interactables more closely without
|
|
55
|
+
// needing to enlarge the whole HUD. This value is persisted per character.
|
|
56
|
+
const MINIMAP_ZOOM_MAX = 10;
|
|
57
|
+
const MINIMAP_ZOOM_STEP = 0.5;
|
|
58
|
+
const MINIMAP_ZOOM_DEFAULT = 6;
|
|
59
|
+
function clampMinimapZoom(zoom) {
|
|
60
|
+
if (!Number.isFinite(zoom))
|
|
61
|
+
return MINIMAP_ZOOM_DEFAULT;
|
|
62
|
+
const stepped = Math.round(zoom / MINIMAP_ZOOM_STEP) * MINIMAP_ZOOM_STEP;
|
|
63
|
+
return Math.min(MINIMAP_ZOOM_MAX, Math.max(MINIMAP_ZOOM_MIN, stepped));
|
|
64
|
+
}
|
|
65
|
+
function clampCameraZoom(zoom) {
|
|
66
|
+
if (!Number.isFinite(zoom))
|
|
67
|
+
return CAMERA_ZOOM_DEFAULT;
|
|
68
|
+
return Math.min(CAMERA_ZOOM_MAX, Math.max(CAMERA_ZOOM_MIN, zoom));
|
|
69
|
+
}
|
|
70
|
+
function clampChatWidth(width) {
|
|
71
|
+
if (!Number.isFinite(width))
|
|
72
|
+
return CHAT_WIDTH_DEFAULT;
|
|
73
|
+
return Math.min(CHAT_WIDTH_MAX, Math.max(CHAT_WIDTH_MIN, Math.round(width)));
|
|
74
|
+
}
|
|
75
|
+
function clampChatHeight(height) {
|
|
76
|
+
if (!Number.isFinite(height))
|
|
77
|
+
return CHAT_HEIGHT_DEFAULT;
|
|
78
|
+
return Math.min(CHAT_HEIGHT_MAX, Math.max(CHAT_HEIGHT_MIN, Math.round(height)));
|
|
79
|
+
}
|
|
80
|
+
function clampChatFontSize(size) {
|
|
81
|
+
if (!Number.isFinite(size))
|
|
82
|
+
return CHAT_FONT_SIZE_DEFAULT;
|
|
83
|
+
return Math.min(CHAT_FONT_SIZE_MAX, Math.max(CHAT_FONT_SIZE_MIN, Math.round(size)));
|
|
84
|
+
}
|
|
85
|
+
export function clampHudBarSize(size) {
|
|
86
|
+
if (!Number.isFinite(size))
|
|
87
|
+
return HUD_BAR_SIZE_DEFAULT;
|
|
88
|
+
return Math.min(HUD_BAR_SIZE_MAX, Math.max(HUD_BAR_SIZE_MIN, Math.round(size)));
|
|
89
|
+
}
|
|
90
|
+
function clampPanelPos(value) {
|
|
91
|
+
if (!Number.isFinite(value) || value < 0)
|
|
92
|
+
return PANEL_POS_UNSET;
|
|
93
|
+
return Math.min(QUEST_LOG_POS_MAX, Math.round(value));
|
|
94
|
+
}
|
|
95
|
+
export function defaultClientConfig() {
|
|
96
|
+
return {
|
|
97
|
+
showNames: true,
|
|
98
|
+
showHealth: true,
|
|
99
|
+
hideRoofs: false,
|
|
100
|
+
hideAvatar: false,
|
|
101
|
+
soundEnabled: true,
|
|
102
|
+
musicEnabled: true,
|
|
103
|
+
minimapZoom: MINIMAP_ZOOM_DEFAULT,
|
|
104
|
+
cameraZoom: CAMERA_ZOOM_DEFAULT,
|
|
105
|
+
cameraViewRevision: CAMERA_VIEW_REVISION,
|
|
106
|
+
chat: {
|
|
107
|
+
width: CHAT_WIDTH_DEFAULT,
|
|
108
|
+
height: CHAT_HEIGHT_DEFAULT,
|
|
109
|
+
fontSize: CHAT_FONT_SIZE_DEFAULT,
|
|
110
|
+
},
|
|
111
|
+
questLog: {
|
|
112
|
+
x: QUEST_LOG_POS_UNSET,
|
|
113
|
+
y: QUEST_LOG_POS_UNSET,
|
|
114
|
+
},
|
|
115
|
+
playerCard: {
|
|
116
|
+
x: PANEL_POS_UNSET,
|
|
117
|
+
y: PANEL_POS_UNSET,
|
|
118
|
+
},
|
|
119
|
+
theme: {
|
|
120
|
+
panel: THEME_PANEL_DEFAULT,
|
|
121
|
+
ink: THEME_INK_DEFAULT,
|
|
122
|
+
},
|
|
123
|
+
hudBarSize: HUD_BAR_SIZE_DEFAULT,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
export function normalizeClientConfig(raw) {
|
|
127
|
+
const base = defaultClientConfig();
|
|
128
|
+
if (!raw || typeof raw !== 'object')
|
|
129
|
+
return base;
|
|
130
|
+
const obj = raw;
|
|
131
|
+
const chatRaw = obj.chat && typeof obj.chat === 'object' ? obj.chat : null;
|
|
132
|
+
const questLogRaw = obj.questLog && typeof obj.questLog === 'object'
|
|
133
|
+
? obj.questLog
|
|
134
|
+
: null;
|
|
135
|
+
const playerCardRaw = obj.playerCard && typeof obj.playerCard === 'object'
|
|
136
|
+
? obj.playerCard
|
|
137
|
+
: null;
|
|
138
|
+
const themeRaw = obj.theme && typeof obj.theme === 'object' ? obj.theme : null;
|
|
139
|
+
return {
|
|
140
|
+
showNames: typeof obj.showNames === 'boolean' ? obj.showNames : base.showNames,
|
|
141
|
+
showHealth: typeof obj.showHealth === 'boolean' ? obj.showHealth : base.showHealth,
|
|
142
|
+
hideRoofs: typeof obj.hideRoofs === 'boolean' ? obj.hideRoofs : base.hideRoofs,
|
|
143
|
+
hideAvatar: typeof obj.hideAvatar === 'boolean' ? obj.hideAvatar : base.hideAvatar,
|
|
144
|
+
soundEnabled: typeof obj.soundEnabled === 'boolean' ? obj.soundEnabled : base.soundEnabled,
|
|
145
|
+
musicEnabled: typeof obj.musicEnabled === 'boolean' ? obj.musicEnabled : base.musicEnabled,
|
|
146
|
+
minimapZoom: clampMinimapZoom(typeof obj.minimapZoom === 'number' ? obj.minimapZoom : base.minimapZoom),
|
|
147
|
+
cameraZoom: (() => {
|
|
148
|
+
const incomingRevision = typeof obj.cameraViewRevision === 'number' && Number.isFinite(obj.cameraViewRevision)
|
|
149
|
+
? obj.cameraViewRevision
|
|
150
|
+
: 0;
|
|
151
|
+
if (incomingRevision < CAMERA_VIEW_REVISION)
|
|
152
|
+
return CAMERA_ZOOM_DEFAULT;
|
|
153
|
+
return clampCameraZoom(typeof obj.cameraZoom === 'number' ? obj.cameraZoom : base.cameraZoom);
|
|
154
|
+
})(),
|
|
155
|
+
cameraViewRevision: CAMERA_VIEW_REVISION,
|
|
156
|
+
chat: {
|
|
157
|
+
width: clampChatWidth(typeof chatRaw?.width === 'number' ? chatRaw.width : base.chat.width),
|
|
158
|
+
height: clampChatHeight(typeof chatRaw?.height === 'number' ? chatRaw.height : base.chat.height),
|
|
159
|
+
fontSize: clampChatFontSize(typeof chatRaw?.fontSize === 'number' ? chatRaw.fontSize : base.chat.fontSize),
|
|
160
|
+
},
|
|
161
|
+
questLog: {
|
|
162
|
+
x: clampPanelPos(typeof questLogRaw?.x === 'number' ? questLogRaw.x : base.questLog.x),
|
|
163
|
+
y: clampPanelPos(typeof questLogRaw?.y === 'number' ? questLogRaw.y : base.questLog.y),
|
|
164
|
+
},
|
|
165
|
+
playerCard: {
|
|
166
|
+
x: clampPanelPos(typeof playerCardRaw?.x === 'number' ? playerCardRaw.x : base.playerCard.x),
|
|
167
|
+
y: clampPanelPos(typeof playerCardRaw?.y === 'number' ? playerCardRaw.y : base.playerCard.y),
|
|
168
|
+
},
|
|
169
|
+
theme: {
|
|
170
|
+
panel: normalizeThemeColor(themeRaw?.panel, base.theme.panel),
|
|
171
|
+
ink: normalizeThemeColor(themeRaw?.ink, base.theme.ink),
|
|
172
|
+
},
|
|
173
|
+
hudBarSize: clampHudBarSize(typeof obj.hudBarSize === 'number' ? obj.hudBarSize : base.hudBarSize),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
export function mergeClientConfig(current, patch) {
|
|
177
|
+
if (!patch)
|
|
178
|
+
return normalizeClientConfig(current);
|
|
179
|
+
return normalizeClientConfig({
|
|
180
|
+
showNames: patch.showNames ?? current.showNames,
|
|
181
|
+
showHealth: patch.showHealth ?? current.showHealth,
|
|
182
|
+
hideRoofs: patch.hideRoofs ?? current.hideRoofs,
|
|
183
|
+
hideAvatar: patch.hideAvatar ?? current.hideAvatar,
|
|
184
|
+
soundEnabled: patch.soundEnabled ?? current.soundEnabled,
|
|
185
|
+
musicEnabled: patch.musicEnabled ?? current.musicEnabled,
|
|
186
|
+
minimapZoom: patch.minimapZoom ?? current.minimapZoom,
|
|
187
|
+
cameraZoom: patch.cameraZoom ?? current.cameraZoom,
|
|
188
|
+
cameraViewRevision: patch.cameraViewRevision ?? current.cameraViewRevision,
|
|
189
|
+
chat: {
|
|
190
|
+
width: patch.chat?.width ?? current.chat.width,
|
|
191
|
+
height: patch.chat?.height ?? current.chat.height,
|
|
192
|
+
fontSize: patch.chat?.fontSize ?? current.chat.fontSize,
|
|
193
|
+
},
|
|
194
|
+
questLog: {
|
|
195
|
+
x: patch.questLog?.x ?? current.questLog.x,
|
|
196
|
+
y: patch.questLog?.y ?? current.questLog.y,
|
|
197
|
+
},
|
|
198
|
+
playerCard: {
|
|
199
|
+
x: patch.playerCard?.x ?? current.playerCard.x,
|
|
200
|
+
y: patch.playerCard?.y ?? current.playerCard.y,
|
|
201
|
+
},
|
|
202
|
+
theme: {
|
|
203
|
+
panel: patch.theme?.panel ?? current.theme.panel,
|
|
204
|
+
ink: patch.theme?.ink ?? current.theme.ink,
|
|
205
|
+
},
|
|
206
|
+
hudBarSize: patch.hudBarSize ?? current.hudBarSize,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=clientConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientConfig.js","sourceRoot":"","sources":["../src/clientConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
export declare const TILE_SIZE = 1;
|
|
2
|
+
export declare const CHAT_MAX_CHARS = 120;
|
|
3
|
+
export declare const CHAT_MAX_WORDS = 24;
|
|
4
|
+
export declare function clampChatText(text: string): string;
|
|
5
|
+
export declare const PLAYER_NAME_MIN = 2;
|
|
6
|
+
export declare const PLAYER_NAME_MAX = 24;
|
|
7
|
+
export declare function sanitizePlayerName(raw: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Pet names go through the same rules as player names — the claim dialog
|
|
10
|
+
* already validates with `playerNameError`, so the server must apply the same
|
|
11
|
+
* pair or a hand-crafted packet could park arbitrary text over someone's head.
|
|
12
|
+
* Returns null for anything unusable rather than throwing, since this also runs
|
|
13
|
+
* over whatever the database happens to hold.
|
|
14
|
+
*/
|
|
15
|
+
export declare function normalizeBeagleName(raw: unknown): string | null;
|
|
16
|
+
export declare function playerNameError(name: string): string | null;
|
|
17
|
+
export declare const CHUNK_SIZE = 32;
|
|
18
|
+
export declare const FARMLAND_CHUNKS_X = 8;
|
|
19
|
+
export declare const VILLAGE_CHUNKS_X = 2;
|
|
20
|
+
export declare const EASTLAND_CHUNKS_X = 14;
|
|
21
|
+
export declare const PLAYABLE_CHUNKS_X: number;
|
|
22
|
+
export declare const PLAYABLE_CHUNKS_Z = 3;
|
|
23
|
+
export declare const FARMLAND_WIDTH: number;
|
|
24
|
+
export declare const WORLD_EAST_CHUNKS = 2;
|
|
25
|
+
export declare const WORLD_NORTH_CHUNKS = 23;
|
|
26
|
+
export declare const DEMO_CHUNKS_X: number;
|
|
27
|
+
export declare const DEMO_CHUNKS_Z: number;
|
|
28
|
+
export declare const PLAYABLE_WIDTH: number;
|
|
29
|
+
export declare const PLAYABLE_HEIGHT: number;
|
|
30
|
+
export declare const WORLD_NORTH_PAD: number;
|
|
31
|
+
export declare const PLAYABLE_ORIGIN_X = 0;
|
|
32
|
+
export declare const PLAYABLE_ORIGIN_Z: number;
|
|
33
|
+
export declare const WORLD_WIDTH: number;
|
|
34
|
+
export declare const WORLD_HEIGHT: number;
|
|
35
|
+
export declare const MAP_WIDTH: number;
|
|
36
|
+
export declare const MAP_HEIGHT: number;
|
|
37
|
+
/**
|
|
38
|
+
* Extra columns east of the overworld for underground interiors (Rat Tunnel
|
|
39
|
+
* rooms, forest-den caverns). Generated and playable, but not on the paper
|
|
40
|
+
* map — the chart is WORLD_WIDTH × WORLD_HEIGHT.
|
|
41
|
+
*/
|
|
42
|
+
export declare const UNDERGROUND_CHUNKS_X = 8;
|
|
43
|
+
export declare const UNDERGROUND_ORIGIN_X: number;
|
|
44
|
+
export declare const GRID_CHUNKS_X: number;
|
|
45
|
+
export declare const GRID_CHUNKS_Z: number;
|
|
46
|
+
export declare const GRID_WIDTH: number;
|
|
47
|
+
export declare const GRID_HEIGHT: number;
|
|
48
|
+
export declare function isPaperMapChunk(cx: number, cz: number): boolean;
|
|
49
|
+
export declare const HEIGHT_STEP = 0.45;
|
|
50
|
+
export declare const MAX_STEP_HEIGHT = 2;
|
|
51
|
+
export declare const PLAYABLE_BEACH_START_Z = 56;
|
|
52
|
+
export declare const PLAYABLE_BEACH_SAND_START_Z = 60;
|
|
53
|
+
export declare const PLAYABLE_OCEAN_START_Z = 82;
|
|
54
|
+
export declare const BEACH_START_Z: number;
|
|
55
|
+
export declare const BEACH_SAND_START_Z: number;
|
|
56
|
+
export declare const OCEAN_START_Z: number;
|
|
57
|
+
export declare const BEACH_GATE_X: number;
|
|
58
|
+
export declare const BEACH_GATE_HALF = 4;
|
|
59
|
+
export declare const CHUNK_VIEW_RADIUS = 2;
|
|
60
|
+
export declare const CART_DISTURB_COOLDOWN_MS = 45000;
|
|
61
|
+
export declare enum SurfaceType {
|
|
62
|
+
Grass = 0,
|
|
63
|
+
Path = 1,
|
|
64
|
+
Water = 2,
|
|
65
|
+
Sand = 3,
|
|
66
|
+
Ash = 4,
|
|
67
|
+
Dirt = 5,
|
|
68
|
+
Soil = 6,
|
|
69
|
+
Stone = 7,
|
|
70
|
+
Mud = 8
|
|
71
|
+
}
|
|
72
|
+
export declare enum TileType {
|
|
73
|
+
Grass = 0,
|
|
74
|
+
Path = 1,
|
|
75
|
+
Water = 2,
|
|
76
|
+
Tree = 3,
|
|
77
|
+
Sand = 4,
|
|
78
|
+
Ash = 5
|
|
79
|
+
}
|
|
80
|
+
export type EntityKind = 'tree' | 'rock' | 'shell' | 'seaweed' | 'wormcast' | 'beachhut' | 'farmhut' | 'table' | 'gardenfork' | 'woodennet' | 'bucket' | 'egg' | 'milkbucket' | 'fence' | 'tradingcart' | 'signpost' | 'feather' | 'crabmeat' | 'burrow' | 'rawrabbit' | 'brokenpier' | 'abandonedboat' | 'ship' | 'campfire' | 'cookedcrab' | 'cookedrabbit' | 'cookedchicken' | 'lugworm' | 'maggot' | 'earthworm' | 'earthwormcast' | 'rottenmeat' | 'fishingline' | 'fishinghook' | 'fishingfloat' | 'coins' | 'lilypad' | 'reeds' | 'jetty' | 'rawbass' | 'cookedbass' | 'rawperch' | 'cookedperch' | 'rawtench' | 'cookedtench' | 'frog' | 'cookedfroglegs' | 'crops' | 'smallfishingrod' | 'mudhut' | 'fortwall' | 'archertower' | 'barbedwire' | 'barricade' | 'haybale' | 'horse' | 'trough' | 'barrel' | 'well' | 'farmcart' | 'scarecrow' | 'logpile' | 'flowers' | 'lantern' | 'bench' | 'compost' | 'farmtool' | 'ranchgate' | 'milestone' | 'tent' | 'cargo' | 'bush' | 'workbench' | 'workshop' | 'nettles' | 'sharprock' | 'storagehut' | 'bankchest' | 'birchwood' | 'woodenclub' | 'livoniapineclub' | 'leatherboots' | 'poplarhelmet' | 'poplarbody' | 'poplarlegs' | 'poplarspear' | 'pineshield' | 'hay' | 'caveentrance' | 'rattail' | 'ratteeth' | 'brokensaw' | 'bronzechest' | 'bronzechestkey' | 'goblincavekey' | 'goblinprisonkey' | 'copper' | 'tin' | 'iron' | 'bridge' | 'hatchet' | 'foldingsaw' | 'woolyhat' | 'woolygloves' | 'woolyboots' | 'carvingknife' | 'pinebow' | 'apple' | 'wheat' | 'poplarwood' | 'pinewood' | 'sprucewood' | 'bircharrow' | 'sprucearrow' | 'stone' | 'grapes' | 'orange' | 'dungeondoor' | 'bones' | 'unlitbirchtorch' | 'litbirchtorch' | 'ratnest' | 'glowfungus' | 'silo' | 'grainmill' | 'pumpwindmill' | 'watertower' | 'packbarn' | 'packcoop' | 'packstable' | 'foxtracks' | 'foxtail' | 'rabbithutch';
|
|
81
|
+
export type NpcKind = 'seagull' | 'crab' | 'seabass' | 'beagle' | 'trader' | 'woody' | 'rabbit' | 'petrabbit' | 'forbes' | 'jobless' | 'driver' | 'duck' | 'angler' | 'wilson' | 'pig' | 'cow' | 'chicken' | 'sheep' | 'clark' | 'clarksson' | 'stablemaster' | 'ranger' | 'debbie' | 'anne' | 'wallarcher' | 'hijacker' | 'pony' | 'rat' | 'soldier' | 'captain' | 'goblin' | 'grem' | 'spineless' | 'john' | 'nicholas' | 'robin' | 'kyle' | 'banker' | 'bandit' | 'amazon' | 'liv' | 'fox' | 'rimdel';
|
|
82
|
+
export type ChunkCoord = {
|
|
83
|
+
cx: number;
|
|
84
|
+
cz: number;
|
|
85
|
+
};
|
|
86
|
+
export type WorldEntity = {
|
|
87
|
+
id: string;
|
|
88
|
+
kind: EntityKind;
|
|
89
|
+
lx: number;
|
|
90
|
+
lz: number;
|
|
91
|
+
style?: string;
|
|
92
|
+
scale?: number;
|
|
93
|
+
qty?: number;
|
|
94
|
+
ttlMs?: number;
|
|
95
|
+
/** Visual fade window in ms. When equal to `ttlMs`, the item fades over its whole life. */
|
|
96
|
+
fadeMs?: number;
|
|
97
|
+
};
|
|
98
|
+
export type ChunkData = {
|
|
99
|
+
cx: number;
|
|
100
|
+
cz: number;
|
|
101
|
+
height: number[];
|
|
102
|
+
surface: number[];
|
|
103
|
+
entities: WorldEntity[];
|
|
104
|
+
};
|
|
105
|
+
export declare const SURFACE_COLORS: Record<SurfaceType, string>;
|
|
106
|
+
export declare const TILE_COLORS: Record<TileType, string>;
|
|
107
|
+
export declare function chunkKey(cx: number, cz: number): string;
|
|
108
|
+
export declare function worldToChunk(x: number, z: number): ChunkCoord & {
|
|
109
|
+
lx: number;
|
|
110
|
+
lz: number;
|
|
111
|
+
};
|
|
112
|
+
export declare function toWorldZ(localZ: number): number;
|
|
113
|
+
export declare function chunksAround(cx: number, cz: number, radius: number): ChunkCoord[];
|
|
114
|
+
export declare function localIndex(lx: number, lz: number): number;
|
|
115
|
+
export declare function isWalkableSurface(surface: SurfaceType): boolean;
|
|
116
|
+
export declare function entityBlocksWalk(kind: EntityKind): boolean;
|
|
117
|
+
/** Dungeon room-gate visual states — mirrors ranch gate open/closed styling. */
|
|
118
|
+
export declare function isDungeonDoorOpen(style: string | undefined): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* A dungeon gate the viewing player has earned the right to open, but which is
|
|
121
|
+
* still physically DOWN.
|
|
122
|
+
*
|
|
123
|
+
* Unlocking used to swap the style straight to `-open`, so a gate you had
|
|
124
|
+
* cleared was simply drawn permanently winched up — there was never a moment of
|
|
125
|
+
* opening it, and nobody else saw anything happen. `-ready` keeps the
|
|
126
|
+
* portcullis closed and lets the client mark it as openable (a glow), so the
|
|
127
|
+
* open is an action with an animation and a sound rather than a state you
|
|
128
|
+
* arrive to.
|
|
129
|
+
*/
|
|
130
|
+
export declare function isDungeonGateReady(style: string | undefined): boolean;
|
|
131
|
+
/** Goblin cell gates share personal dungeon crossing, not shared fence toggles. */
|
|
132
|
+
export declare function isGoblinPrisonDoorStyle(style: string | undefined): boolean;
|
|
133
|
+
/** Dungeon wall torch — lantern entity with a `torch-*` facing style. */
|
|
134
|
+
export declare function isWallTorchStyle(style: string | undefined): boolean;
|
|
135
|
+
export type FenceGateInfo = {
|
|
136
|
+
kind: 'gate' | 'gate-wide' | 'gate-prison';
|
|
137
|
+
ew: boolean;
|
|
138
|
+
closed: boolean;
|
|
139
|
+
};
|
|
140
|
+
/** Parse farm fence gate styles such as `gate-wide-closed-ew`. */
|
|
141
|
+
export declare function parseFenceGateStyle(style: string | undefined): FenceGateInfo | null;
|
|
142
|
+
export declare function formatFenceGateStyle(info: FenceGateInfo): string;
|
|
143
|
+
/** Open fence gate styles that leave a walkable gap in a fence ring. */
|
|
144
|
+
export declare function isOpenGateStyle(style: string | undefined): boolean;
|
|
145
|
+
export declare function isFenceGateStyle(style: string | undefined): boolean;
|
|
146
|
+
export declare function isRanchGateOpen(style: string | undefined): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Storage-hut (Base Camp bank) door.
|
|
149
|
+
*
|
|
150
|
+
* Plain `'repaired'` means open, and only the explicit closed style shuts it.
|
|
151
|
+
* After repair the door starts closed; clicking the personal enter icon opens
|
|
152
|
+
* it, teleports the player through, then closes it again.
|
|
153
|
+
*
|
|
154
|
+
* The door is deliberately **not** a passage blocker. Hut repair is per-player
|
|
155
|
+
* (see World.entityForPlayer, which rewrites the style per viewer off
|
|
156
|
+
* `player.storageHutRepaired`), so the door state is per-player too — and the
|
|
157
|
+
* walkability grid is global, so a per-player door cannot gate it without one
|
|
158
|
+
* player's door blocking another player's path. Unrepaired players still see
|
|
159
|
+
* the abandoned wreck (no enter icon); repaired players use the door portal.
|
|
160
|
+
*/
|
|
161
|
+
export declare const STORAGE_HUT_DOOR_CLOSED_STYLE = "repaired-closed";
|
|
162
|
+
export declare function isStorageHutRepairedStyle(style?: string): boolean;
|
|
163
|
+
export declare function isStorageHutDoorOpen(style?: string): boolean;
|
|
164
|
+
export declare function isGateInteractable(kind: EntityKind | string, style?: string): boolean;
|
|
165
|
+
export declare function isGateOpen(kind: EntityKind | string, style?: string): boolean;
|
|
166
|
+
export declare function toggleGateStyle(kind: EntityKind | string, style: string | undefined): string | undefined;
|
|
167
|
+
/** Tile offsets a closed gate blocks relative to its entity tile. */
|
|
168
|
+
export declare function visitGatePassageOffsets(kind: EntityKind | string, style: string | undefined, visit: (dx: number, dz: number) => void): void;
|
|
169
|
+
export type BuildingDoorFacing = 'posZ' | 'negZ' | 'posX' | 'negX';
|
|
170
|
+
/** Axis-aligned wall-ring extents in tiles from the building center. */
|
|
171
|
+
export type BuildingFootprint = {
|
|
172
|
+
radiusX: number;
|
|
173
|
+
radiusZ: number;
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Tile wall-ring size for beach/farm/storage huts.
|
|
177
|
+
* Most styles use a square from scale brackets. The farm `stable` is a long
|
|
178
|
+
* barn whose mesh (×1.15 render scale) is wider than the scale bracket, so
|
|
179
|
+
* radiusX follows the mesh half-width (walls align with the visual ends).
|
|
180
|
+
* Z stays on the bracket so the south wall stays north of horse-pen gates.
|
|
181
|
+
*/
|
|
182
|
+
export declare function buildingFootprintExtents(kind: EntityKind, scale: number | undefined, style?: string): BuildingFootprint;
|
|
183
|
+
/** West tack-room lean-to tiles beyond the stable's main wall ring. */
|
|
184
|
+
export declare function visitStableLeanToBlockedOffsets(scale: number | undefined, visit: (dx: number, dz: number) => void): void;
|
|
185
|
+
/** Max axis of {@link buildingFootprintExtents} (square buildings: the ring radius). */
|
|
186
|
+
export declare function buildingFootprintRadius(kind: EntityKind, scale: number | undefined, style?: string): number;
|
|
187
|
+
export declare function isBuildingDoorOffset(dx: number, dz: number, footprint: number | BuildingFootprint, doorFacing?: BuildingDoorFacing): boolean;
|
|
188
|
+
export declare function buildingWallBlocksOffset(dx: number, dz: number, footprint: number | BuildingFootprint, doorFacing?: BuildingDoorFacing): boolean;
|
|
189
|
+
export declare function isBuildingInteriorOffset(dx: number, dz: number, footprint: number | BuildingFootprint, doorFacing?: BuildingDoorFacing): boolean;
|
|
190
|
+
export declare function boulderFootprintRadius(style: string | undefined, scale: number | undefined): number;
|
|
191
|
+
export declare function blockingFootprintRadius(kind: EntityKind, style: string | undefined, scale: number | undefined): number;
|
|
192
|
+
export declare function isCaveTunnelExitStyle(style: string | undefined): boolean;
|
|
193
|
+
export declare function isGoblinCaveStyle(style: string | undefined): boolean;
|
|
194
|
+
/** Tiny animal-dug hole in the woods — not the Base Camp Suspicious hole. */
|
|
195
|
+
export declare function isAnimalDenStyle(style: string | undefined): boolean;
|
|
196
|
+
/** Crawl-out hole inside a forest den cavern. */
|
|
197
|
+
export declare function isDenExitStyle(style: string | undefined): boolean;
|
|
198
|
+
export declare function caveEntranceApproachOffset(style: string | undefined): {
|
|
199
|
+
dx: number;
|
|
200
|
+
dz: number;
|
|
201
|
+
};
|
|
202
|
+
export declare function visitCaveEntranceBlockedOffsets(style: string | undefined, visit: (dx: number, dz: number) => void): void;
|
|
203
|
+
export declare function visitBlockedWalkOffsets(kind: EntityKind, style: string | undefined, scale: number | undefined, visit: (dx: number, dz: number) => void, doorFacing?: BuildingDoorFacing): void;
|
|
204
|
+
export declare function isWalkable(tile: TileType): boolean;
|
|
205
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|