@crowdedkingdoms/crowdyjs 8.2.0 → 8.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.
- package/README.md +21 -3
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +5 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/kit/blueprints/combat.d.ts +75 -0
- package/dist/kit/blueprints/combat.d.ts.map +1 -0
- package/dist/kit/blueprints/combat.js +351 -0
- package/dist/kit/blueprints/core.d.ts +222 -0
- package/dist/kit/blueprints/core.d.ts.map +1 -0
- package/dist/kit/blueprints/core.js +185 -0
- package/dist/kit/blueprints/decks.d.ts +50 -0
- package/dist/kit/blueprints/decks.d.ts.map +1 -0
- package/dist/kit/blueprints/decks.js +163 -0
- package/dist/kit/blueprints/economy.d.ts +88 -0
- package/dist/kit/blueprints/economy.d.ts.map +1 -0
- package/dist/kit/blueprints/economy.js +533 -0
- package/dist/kit/blueprints/guild.d.ts +51 -0
- package/dist/kit/blueprints/guild.d.ts.map +1 -0
- package/dist/kit/blueprints/guild.js +50 -0
- package/dist/kit/blueprints/index.d.ts +21 -0
- package/dist/kit/blueprints/index.d.ts.map +1 -0
- package/dist/kit/blueprints/index.js +20 -0
- package/dist/kit/blueprints/inventory.d.ts +38 -0
- package/dist/kit/blueprints/inventory.d.ts.map +1 -0
- package/dist/kit/blueprints/inventory.js +157 -0
- package/dist/kit/blueprints/leaderboards.d.ts +49 -0
- package/dist/kit/blueprints/leaderboards.d.ts.map +1 -0
- package/dist/kit/blueprints/leaderboards.js +126 -0
- package/dist/kit/blueprints/locks.d.ts +82 -0
- package/dist/kit/blueprints/locks.d.ts.map +1 -0
- package/dist/kit/blueprints/locks.js +155 -0
- package/dist/kit/blueprints/loot.d.ts +84 -0
- package/dist/kit/blueprints/loot.d.ts.map +1 -0
- package/dist/kit/blueprints/loot.js +228 -0
- package/dist/kit/blueprints/matches.d.ts +59 -0
- package/dist/kit/blueprints/matches.d.ts.map +1 -0
- package/dist/kit/blueprints/matches.js +246 -0
- package/dist/kit/blueprints/npcs.d.ts +71 -0
- package/dist/kit/blueprints/npcs.d.ts.map +1 -0
- package/dist/kit/blueprints/npcs.js +122 -0
- package/dist/kit/blueprints/plots.d.ts +54 -0
- package/dist/kit/blueprints/plots.d.ts.map +1 -0
- package/dist/kit/blueprints/plots.js +146 -0
- package/dist/kit/blueprints/progression.d.ts +68 -0
- package/dist/kit/blueprints/progression.d.ts.map +1 -0
- package/dist/kit/blueprints/progression.js +324 -0
- package/dist/kit/blueprints/quests.d.ts +65 -0
- package/dist/kit/blueprints/quests.d.ts.map +1 -0
- package/dist/kit/blueprints/quests.js +284 -0
- package/dist/kit/blueprints/worldsim.d.ts +84 -0
- package/dist/kit/blueprints/worldsim.d.ts.map +1 -0
- package/dist/kit/blueprints/worldsim.js +461 -0
- package/dist/kit/combat.d.ts +103 -0
- package/dist/kit/combat.d.ts.map +1 -0
- package/dist/kit/combat.js +151 -0
- package/dist/kit/decks.d.ts +123 -0
- package/dist/kit/decks.d.ts.map +1 -0
- package/dist/kit/decks.js +138 -0
- package/dist/kit/economy.d.ts +244 -0
- package/dist/kit/economy.d.ts.map +1 -0
- package/dist/kit/economy.js +365 -0
- package/dist/kit/features.d.ts +60 -0
- package/dist/kit/features.d.ts.map +1 -0
- package/dist/kit/features.js +65 -0
- package/dist/kit/index.d.ts +13 -2
- package/dist/kit/index.d.ts.map +1 -1
- package/dist/kit/index.js +12 -1
- package/dist/kit/inventory.d.ts +5 -0
- package/dist/kit/inventory.d.ts.map +1 -1
- package/dist/kit/inventory.js +14 -1
- package/dist/kit/kit.d.ts +58 -2
- package/dist/kit/kit.d.ts.map +1 -1
- package/dist/kit/kit.js +24 -2
- package/dist/kit/leaderboards.d.ts +66 -0
- package/dist/kit/leaderboards.d.ts.map +1 -0
- package/dist/kit/leaderboards.js +94 -0
- package/dist/kit/loot.d.ts +106 -0
- package/dist/kit/loot.d.ts.map +1 -0
- package/dist/kit/loot.js +120 -0
- package/dist/kit/matches.d.ts +140 -0
- package/dist/kit/matches.d.ts.map +1 -0
- package/dist/kit/matches.js +253 -0
- package/dist/kit/objects.js +1 -1
- package/dist/kit/plots.js +1 -1
- package/dist/kit/progression.d.ts +181 -0
- package/dist/kit/progression.d.ts.map +1 -0
- package/dist/kit/progression.js +265 -0
- package/dist/kit/quests.d.ts +110 -0
- package/dist/kit/quests.d.ts.map +1 -0
- package/dist/kit/quests.js +158 -0
- package/dist/kit/social.d.ts +267 -0
- package/dist/kit/social.d.ts.map +1 -0
- package/dist/kit/social.js +230 -0
- package/dist/kit/worldsim.d.ts +225 -0
- package/dist/kit/worldsim.d.ts.map +1 -0
- package/dist/kit/worldsim.js +231 -0
- package/package.json +1 -1
- package/dist/kit/blueprints.d.ts +0 -370
- package/dist/kit/blueprints.d.ts.map +0 -1
- package/dist/kit/blueprints.js +0 -643
package/dist/kit/blueprints.d.ts
DELETED
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
import type { FunctionMutationInput, FunctionParamInput, Scalars, SeedContainerInput, SeedContainerTypeInput, SeedEdgeInput, SeedFunctionInput, SeedGameModelInput, SeedPropertyDefInput, UpsertAutomationInput, UpsertAutomationTriggerInput } from '../generated/graphql.js';
|
|
2
|
-
/**
|
|
3
|
-
* A composable invoke-policy rule tree, mirroring the server's authority
|
|
4
|
-
* rules (see the Game API "Game Models → Authority" guide). Serialized with
|
|
5
|
-
* {@link kitPolicyJson} into the `invokePolicyJson` a function carries.
|
|
6
|
-
*/
|
|
7
|
-
export type KitInvokePolicy = {
|
|
8
|
-
type: 'allow';
|
|
9
|
-
} | {
|
|
10
|
-
type: 'owner_of_self';
|
|
11
|
-
} | {
|
|
12
|
-
type: 'is_host';
|
|
13
|
-
} | {
|
|
14
|
-
type: 'is_current_turn';
|
|
15
|
-
} | {
|
|
16
|
-
type: 'is_participant';
|
|
17
|
-
} | {
|
|
18
|
-
type: 'is_automation';
|
|
19
|
-
} | {
|
|
20
|
-
type: 'tier_feature';
|
|
21
|
-
feature: string;
|
|
22
|
-
} | {
|
|
23
|
-
type: 'group_permission';
|
|
24
|
-
groupId: string;
|
|
25
|
-
permission?: string;
|
|
26
|
-
} | {
|
|
27
|
-
type: 'grid_permission';
|
|
28
|
-
key: string;
|
|
29
|
-
gridId?: string;
|
|
30
|
-
} | {
|
|
31
|
-
type: 'condition';
|
|
32
|
-
expression: string;
|
|
33
|
-
} | {
|
|
34
|
-
type: 'and';
|
|
35
|
-
rules: KitInvokePolicy[];
|
|
36
|
-
} | {
|
|
37
|
-
type: 'or';
|
|
38
|
-
rules: KitInvokePolicy[];
|
|
39
|
-
} | {
|
|
40
|
-
type: 'not';
|
|
41
|
-
rule: KitInvokePolicy;
|
|
42
|
-
};
|
|
43
|
-
/** Serialize a {@link KitInvokePolicy} tree to the wire `invokePolicyJson`. */
|
|
44
|
-
export declare function kitPolicyJson(policy: KitInvokePolicy): string;
|
|
45
|
-
/**
|
|
46
|
-
* A grid-permission filter inside a selector: gates selves/candidates by
|
|
47
|
-
* whether the USER behind each container has/lacks an unexpired runtime grid
|
|
48
|
-
* permission. Requires a game-api with the permission-read selector support
|
|
49
|
-
* (v0.13.12+).
|
|
50
|
-
*/
|
|
51
|
-
export interface SelectorPermissionPredicate {
|
|
52
|
-
/** Where the container's user id comes from: its owner, or a property. */
|
|
53
|
-
userFrom: 'owner' | {
|
|
54
|
-
property: string;
|
|
55
|
-
};
|
|
56
|
-
op: 'has' | 'lacks';
|
|
57
|
-
/** Runtime permission key (e.g. 'access', 'update_voxel_data'). */
|
|
58
|
-
key: string;
|
|
59
|
-
/** Literal grid id, a property holding one, or omitted for "on ANY grid". */
|
|
60
|
-
grid?: number | string | {
|
|
61
|
-
property: string;
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Typed automation selector (serialized into `selectorJson` at deploy).
|
|
66
|
-
* Property predicates (`selfWhere`/`where`) filter on model data; permission
|
|
67
|
-
* predicates (`selfPermissionWhere`/`candidatePermissionWhere`) filter on the
|
|
68
|
-
* live grid ACL. Extra fields pass through untouched.
|
|
69
|
-
*/
|
|
70
|
-
export interface KitSelectorSpec {
|
|
71
|
-
selfWhere?: Array<{
|
|
72
|
-
key: string;
|
|
73
|
-
op: string;
|
|
74
|
-
value: unknown;
|
|
75
|
-
}>;
|
|
76
|
-
selfPermissionWhere?: SelectorPermissionPredicate[];
|
|
77
|
-
pick?: 'nearest' | 'lowest' | 'highest' | 'random';
|
|
78
|
-
ofType?: string;
|
|
79
|
-
where?: Array<{
|
|
80
|
-
key: string;
|
|
81
|
-
op: string;
|
|
82
|
-
value: unknown;
|
|
83
|
-
}>;
|
|
84
|
-
candidatePermissionWhere?: SelectorPermissionPredicate[];
|
|
85
|
-
by?: 'manhattan' | {
|
|
86
|
-
property: string;
|
|
87
|
-
};
|
|
88
|
-
bindAs?: {
|
|
89
|
-
ref?: string;
|
|
90
|
-
x?: string;
|
|
91
|
-
y?: string;
|
|
92
|
-
approachX?: string;
|
|
93
|
-
approachY?: string;
|
|
94
|
-
approachStop?: number;
|
|
95
|
-
};
|
|
96
|
-
[key: string]: unknown;
|
|
97
|
-
}
|
|
98
|
-
/** An automation spec inside a blueprint (the `appId` is bound at deploy). */
|
|
99
|
-
export type KitAutomationSpec = Omit<UpsertAutomationInput, 'appId'>;
|
|
100
|
-
/** An automation event-trigger spec inside a blueprint. */
|
|
101
|
-
export type KitAutomationTriggerSpec = Omit<UpsertAutomationTriggerInput, 'appId'>;
|
|
102
|
-
/**
|
|
103
|
-
* A **blueprint**: a self-contained, declarative bundle of game-model
|
|
104
|
-
* definitions (container types, property defs, functions), optional seed
|
|
105
|
-
* instances, and optional automations that together implement one game
|
|
106
|
-
* concept (an inventory system, a lockable object, an NPC archetype).
|
|
107
|
-
*
|
|
108
|
-
* Blueprints are plain data — build them with {@link inventoryBlueprint},
|
|
109
|
-
* {@link lockBlueprint}, {@link npcBlueprint}, or by hand — then load them
|
|
110
|
-
* into an app with `client.kit(appId).deploy([...])` (requires the app-admin
|
|
111
|
-
* `manage_apps` permission). Deployment is idempotent: seeding upserts
|
|
112
|
-
* definitions and `upsertAutomation` keys on the automation name.
|
|
113
|
-
*/
|
|
114
|
-
export interface KitBlueprint {
|
|
115
|
-
/** A short identifier used in error messages (e.g. `'inventory'`). */
|
|
116
|
-
name: string;
|
|
117
|
-
containerTypes?: SeedContainerTypeInput[];
|
|
118
|
-
propertyDefinitions?: SeedPropertyDefInput[];
|
|
119
|
-
functions?: SeedFunctionInput[];
|
|
120
|
-
/** Optional shared/world containers to seed (catalog data, world objects). */
|
|
121
|
-
containers?: SeedContainerInput[];
|
|
122
|
-
/** Optional edges between seeded containers (by `tempId`). */
|
|
123
|
-
edges?: SeedEdgeInput[];
|
|
124
|
-
/** Server-driven automations to upsert after the seed. */
|
|
125
|
-
automations?: KitAutomationSpec[];
|
|
126
|
-
/** Event triggers to attach to the automations. */
|
|
127
|
-
automationTriggers?: KitAutomationTriggerSpec[];
|
|
128
|
-
}
|
|
129
|
-
/** Convert `PascalCase`/`camelCase` to `snake_case` for derived names. */
|
|
130
|
-
export declare function toSnakeCase(name: string): string;
|
|
131
|
-
/** Options for {@link inventoryBlueprint}. */
|
|
132
|
-
export interface InventoryBlueprintOptions {
|
|
133
|
-
/**
|
|
134
|
-
* Prefix applied to the container type names (e.g. `'Bank'` →
|
|
135
|
-
* `BankInventory` / `BankItemStack`) and, snake-cased, to the function
|
|
136
|
-
* names (`bank_grant_stack`, …). Lets several independent inventory systems
|
|
137
|
-
* coexist in one app. Defaults to none.
|
|
138
|
-
*/
|
|
139
|
-
typePrefix?: string;
|
|
140
|
-
/** Default `max_slots` on new inventories. Defaults to 24. */
|
|
141
|
-
maxSlots?: number;
|
|
142
|
-
/** Exclusive upper bound for stack `slot` indexes. Defaults to 64. */
|
|
143
|
-
slotCount?: number;
|
|
144
|
-
}
|
|
145
|
-
/** Names derived by {@link inventoryBlueprint} for a given prefix. */
|
|
146
|
-
export interface InventoryNames {
|
|
147
|
-
inventoryType: string;
|
|
148
|
-
stackType: string;
|
|
149
|
-
grantFn: string;
|
|
150
|
-
consumeFn: string;
|
|
151
|
-
moveFn: string;
|
|
152
|
-
transferFn: string;
|
|
153
|
-
containsEdge: string;
|
|
154
|
-
}
|
|
155
|
-
/** Compute the type/function names an inventory blueprint (and its runtime helper) uses. */
|
|
156
|
-
export declare function inventoryNames(typePrefix?: string): InventoryNames;
|
|
157
|
-
/**
|
|
158
|
-
* Blueprint for a server-authoritative **inventory**: a per-player
|
|
159
|
-
* `Inventory` container plus `ItemStack` containers (`item_id`, `quantity`,
|
|
160
|
-
* `slot`), and owner-gated functions to grant, consume, move, and transfer
|
|
161
|
-
* stacks. Quantity guards live in the invoke policies, so an untrusted client
|
|
162
|
-
* can never overdraw or touch another player's items.
|
|
163
|
-
*
|
|
164
|
-
* Runtime counterpart: `client.kit(appId).inventory`.
|
|
165
|
-
*/
|
|
166
|
-
export declare function inventoryBlueprint(options?: InventoryBlueprintOptions): KitBlueprint;
|
|
167
|
-
/**
|
|
168
|
-
* The authority source that may operate a lockable object. Several may be
|
|
169
|
-
* combined (any one grants access — they are OR'd):
|
|
170
|
-
*
|
|
171
|
-
* - `owner` — only the container's owner (`owner_of_self`); "only the owner
|
|
172
|
-
* of this chest can open it".
|
|
173
|
-
* - `key` — the caller must own a matching key item; "if a player has key 1
|
|
174
|
-
* they can open door 1". Adds a required `key_id` (`container_ref`) param.
|
|
175
|
-
* - `gridPermission` — the caller must hold a runtime grid permission; ties
|
|
176
|
-
* the object to a world region ("movement permission on chunk X opens the
|
|
177
|
-
* doors in it").
|
|
178
|
-
* - `groupPermission` — the caller must be in a team/group (optionally with a
|
|
179
|
-
* specific group permission).
|
|
180
|
-
* - `custom` — any hand-written {@link KitInvokePolicy} rule.
|
|
181
|
-
*/
|
|
182
|
-
export type LockAuthority = {
|
|
183
|
-
kind: 'owner';
|
|
184
|
-
} | {
|
|
185
|
-
kind: 'key';
|
|
186
|
-
} | {
|
|
187
|
-
kind: 'gridPermission';
|
|
188
|
-
key: string;
|
|
189
|
-
gridId?: string;
|
|
190
|
-
} | {
|
|
191
|
-
/**
|
|
192
|
-
* The caller must hold the runtime permission on the grid covering the
|
|
193
|
-
* chunk the OBJECT stands in (`cx`/`cy`/`cz` int properties, seeded via
|
|
194
|
-
* `ObjectsKit.create({ chunk })`). No hand-pinned grid id — one function
|
|
195
|
-
* serves every such object in the world. `mode` picks the covering grid
|
|
196
|
-
* when several overlap: 'first' (enforcement parity, default) |
|
|
197
|
-
* 'smallest' (innermost plot) | 'largest'. Requires game-api v0.13.12+.
|
|
198
|
-
*/
|
|
199
|
-
kind: 'chunkPermission';
|
|
200
|
-
key: string;
|
|
201
|
-
mode?: 'first' | 'smallest' | 'largest';
|
|
202
|
-
} | {
|
|
203
|
-
kind: 'groupPermission';
|
|
204
|
-
groupId: string;
|
|
205
|
-
permission?: string;
|
|
206
|
-
} | {
|
|
207
|
-
kind: 'custom';
|
|
208
|
-
rule: KitInvokePolicy;
|
|
209
|
-
};
|
|
210
|
-
/** Options for {@link lockBlueprint}. */
|
|
211
|
-
export interface LockBlueprintOptions {
|
|
212
|
-
/**
|
|
213
|
-
* Container type name for the lockable object (`Door`, `Chest`, `Gate`, …).
|
|
214
|
-
* Also drives the function names (`open_door` / `close_door`). Defaults to
|
|
215
|
-
* `'Lockable'`.
|
|
216
|
-
*/
|
|
217
|
-
objectTypeName?: string;
|
|
218
|
-
/** Key item type name (only used with a `key` authority). Defaults to `<objectTypeName>Key`. */
|
|
219
|
-
keyTypeName?: string;
|
|
220
|
-
/** One or more authority sources; any one grants access. */
|
|
221
|
-
authority: LockAuthority | LockAuthority[];
|
|
222
|
-
}
|
|
223
|
-
/** Names derived by {@link lockBlueprint} for a given object type. */
|
|
224
|
-
export interface LockNames {
|
|
225
|
-
objectType: string;
|
|
226
|
-
keyType: string;
|
|
227
|
-
openFn: string;
|
|
228
|
-
closeFn: string;
|
|
229
|
-
}
|
|
230
|
-
/** Compute the type/function names a lock blueprint (and its runtime helper) uses. */
|
|
231
|
-
export declare function lockNames(objectTypeName?: string, keyTypeName?: string): LockNames;
|
|
232
|
-
/**
|
|
233
|
-
* Blueprint for a **lockable game object** (door, chest, gate, switch) whose
|
|
234
|
-
* `open`/`close` functions are gated by a configurable authority source:
|
|
235
|
-
* ownership, a key item the caller must hold, a runtime grid permission, a
|
|
236
|
-
* team/group permission, or any custom policy rule. Multiple authorities are
|
|
237
|
-
* OR'd, so "the owner, or anyone with the right key" is one blueprint.
|
|
238
|
-
*
|
|
239
|
-
* Runtime counterpart: `client.kit(appId).objects`.
|
|
240
|
-
*/
|
|
241
|
-
export declare function lockBlueprint(options: LockBlueprintOptions): KitBlueprint;
|
|
242
|
-
/** Options for {@link plotBlueprint}. */
|
|
243
|
-
export interface PlotBlueprintOptions {
|
|
244
|
-
/** Plot container type name. Defaults to `'Plot'`. */
|
|
245
|
-
typeName?: string;
|
|
246
|
-
/**
|
|
247
|
-
* Runtime permission keys buying/renting grants on the plot's grid.
|
|
248
|
-
* Defaults to `['access', 'update_voxel_data']`.
|
|
249
|
-
*/
|
|
250
|
-
permissionKeys?: string[];
|
|
251
|
-
/** Currency property on the wallet container. Defaults to `'gold'`. */
|
|
252
|
-
currencyProperty?: string;
|
|
253
|
-
/**
|
|
254
|
-
* Property on the wallet container mirroring its owner's user id (the
|
|
255
|
-
* standard kit convention, since expressions can't read container
|
|
256
|
-
* ownership). Defaults to `'owner_user_id'`.
|
|
257
|
-
*/
|
|
258
|
-
walletOwnerProperty?: string;
|
|
259
|
-
/**
|
|
260
|
-
* Also generate `rent_plot`: a TTL grant priced by the plot's `rent_price`
|
|
261
|
-
* property, expiring after `rent_ttl_seconds`. Defaults to false.
|
|
262
|
-
*/
|
|
263
|
-
rentable?: boolean;
|
|
264
|
-
}
|
|
265
|
-
/** Names derived by {@link plotBlueprint} for a given plot type. */
|
|
266
|
-
export interface PlotNames {
|
|
267
|
-
plotType: string;
|
|
268
|
-
buyFn: string;
|
|
269
|
-
rentFn: string;
|
|
270
|
-
evictFn: string;
|
|
271
|
-
}
|
|
272
|
-
/** Compute the type/function names a plot blueprint (and its runtime helper) uses. */
|
|
273
|
-
export declare function plotNames(typeName?: string): PlotNames;
|
|
274
|
-
/**
|
|
275
|
-
* Blueprint for **sellable/rentable land**: a `Plot` container mapping a world
|
|
276
|
-
* [grid](../domains/gameApps.js) to a price, whose `buy`/`rent` functions
|
|
277
|
-
* consume currency AND grant runtime grid permissions in one transaction (via
|
|
278
|
-
* permission effects) — the canonical read+write permission loop. Buying sets
|
|
279
|
-
* the plot's `owner_user_id`; renting grants with a TTL; `evict` revokes.
|
|
280
|
-
* The grants are enforced by the replication layer on movement/voxel writes
|
|
281
|
-
* immediately at commit. Requires game-api v0.13.11+ (effects) — pair with
|
|
282
|
-
* chunk-permission locks (v0.13.12+) for doors that honor the purchase.
|
|
283
|
-
*
|
|
284
|
-
* Runtime counterpart: `client.kit(appId).plots`.
|
|
285
|
-
*/
|
|
286
|
-
export declare function plotBlueprint(options?: PlotBlueprintOptions): KitBlueprint;
|
|
287
|
-
/** A trigger for an NPC behavior: a schedule (interval or cron) or a model event. */
|
|
288
|
-
export type NpcBehaviorTrigger = {
|
|
289
|
-
intervalMs: number;
|
|
290
|
-
} | {
|
|
291
|
-
cronExpr: string;
|
|
292
|
-
} | {
|
|
293
|
-
onEvent: 'function_invoked' | 'property_changed' | 'container_created';
|
|
294
|
-
functionName?: string;
|
|
295
|
-
containerTypeName?: string;
|
|
296
|
-
propertyKey?: string;
|
|
297
|
-
debounceMs?: number;
|
|
298
|
-
};
|
|
299
|
-
/** One server-driven NPC behavior: a model function plus the automation that drives it. */
|
|
300
|
-
export interface NpcBehaviorSpec {
|
|
301
|
-
/**
|
|
302
|
-
* Automation name (unique per app), e.g. `'npc-wander'`. Also derives the
|
|
303
|
-
* default function name (`npc_wander`).
|
|
304
|
-
*/
|
|
305
|
-
name: string;
|
|
306
|
-
/** Entry-point function name. Defaults to the snake-cased behavior name. */
|
|
307
|
-
functionName?: string;
|
|
308
|
-
/** The property writes the behavior performs each tick. */
|
|
309
|
-
mutations: FunctionMutationInput[];
|
|
310
|
-
/** Typed parameters (bind them from a selector or static `paramsJson`). */
|
|
311
|
-
parameters?: FunctionParamInput[];
|
|
312
|
-
/** What makes the behavior run. */
|
|
313
|
-
trigger: NpcBehaviorTrigger;
|
|
314
|
-
/**
|
|
315
|
-
* Selector choosing/filtering targets and binding params (see the Game API
|
|
316
|
-
* "Autonomous Processes → Selectors" guide), including grid-permission
|
|
317
|
-
* predicates ({@link KitSelectorSpec}). JSON-encoded at deploy.
|
|
318
|
-
*/
|
|
319
|
-
selector?: KitSelectorSpec;
|
|
320
|
-
/**
|
|
321
|
-
* Convenience: only NPCs whose `role` property equals this act (adds a
|
|
322
|
-
* `selfWhere` filter when no explicit `selector` is given).
|
|
323
|
-
*/
|
|
324
|
-
role?: string;
|
|
325
|
-
/** Fan-out cap per run. Defaults to 8. */
|
|
326
|
-
maxTargets?: number;
|
|
327
|
-
/** Static params merged into every call. */
|
|
328
|
-
params?: Record<string, unknown>;
|
|
329
|
-
/** Identity the automation acts as; omit for a trusted server caller. */
|
|
330
|
-
runAsUserId?: Scalars['BigInt']['input'];
|
|
331
|
-
}
|
|
332
|
-
/** Options for {@link npcBlueprint}. */
|
|
333
|
-
export interface NpcBlueprintOptions {
|
|
334
|
-
/** NPC container type name. Defaults to `'Npc'`. */
|
|
335
|
-
typeName?: string;
|
|
336
|
-
/**
|
|
337
|
-
* Extra property definitions beyond the defaults (`role`, `x`, `y`, `z`,
|
|
338
|
-
* `behavior_state`, `health`). `containerTypeName` is filled in.
|
|
339
|
-
*/
|
|
340
|
-
extraProperties?: Omit<SeedPropertyDefInput, 'containerTypeName'>[];
|
|
341
|
-
/** The server-driven behaviors this NPC archetype has. */
|
|
342
|
-
behaviors: NpcBehaviorSpec[];
|
|
343
|
-
}
|
|
344
|
-
/** Compute the function/automation names an NPC behavior deploys under. */
|
|
345
|
-
export declare function npcBehaviorFunctionName(behavior: NpcBehaviorSpec): string;
|
|
346
|
-
/**
|
|
347
|
-
* Blueprint for an **NPC archetype**: an admin-instantiable container type
|
|
348
|
-
* holding the NPC's durable state, one `autonomousInvocable` model function
|
|
349
|
-
* per behavior (gated `is_automation` so players cannot puppet them), and the
|
|
350
|
-
* automations + event triggers that drive those behaviors on the server.
|
|
351
|
-
*
|
|
352
|
-
* Runtime counterpart: `client.kit(appId).npcs`.
|
|
353
|
-
*/
|
|
354
|
-
export declare function npcBlueprint(options: NpcBlueprintOptions): KitBlueprint;
|
|
355
|
-
/** The wire payloads {@link mergeBlueprints} produces for one deployment. */
|
|
356
|
-
export interface MergedBlueprints {
|
|
357
|
-
seedInput: SeedGameModelInput;
|
|
358
|
-
automations: UpsertAutomationInput[];
|
|
359
|
-
automationTriggers: UpsertAutomationTriggerInput[];
|
|
360
|
-
}
|
|
361
|
-
/**
|
|
362
|
-
* Merge blueprints into a single `gameModelSeed` payload plus the automation
|
|
363
|
-
* upserts, rejecting duplicate type, property, function, or automation names
|
|
364
|
-
* across blueprints (a duplicate almost always means two blueprints need
|
|
365
|
-
* distinct prefixes/type names).
|
|
366
|
-
*/
|
|
367
|
-
export declare function mergeBlueprints(appId: Scalars['BigInt']['input'], blueprints: KitBlueprint[], options?: {
|
|
368
|
-
sessionId?: string;
|
|
369
|
-
}): MergedBlueprints;
|
|
370
|
-
//# sourceMappingURL=blueprints.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blueprints.d.ts","sourceRoot":"","sources":["../../src/kit/blueprints.ts"],"names":[],"mappings":"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"}
|