Skip to content

five-on-it / packages/world/src/schema / LevelDataSchema

Variable: LevelDataSchema ​

const LevelDataSchema: ZodObject<{ bascules: ZodOptional<ZodArray<ZodObject<{ angle: ZodNumber; length: ZodNumber; name: ZodString; stars: ZodNumber; thickness: ZodNumber; width: ZodNumber; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; cameras: ZodOptional<ZodArray<ZodObject<{ name: ZodString; period: ZodNumber; range: ZodNumber; sweep: ZodNumber; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; containers: ZodOptional<ZodArray<ZodObject<{ items: ZodArray<ZodObject<{ count: ZodNumber; item: ZodString; }, $strip>>; kind: ZodEnum<{ crate: "crate"; locker: "locker"; pickup: "pickup"; }>; lock: ZodOptional<ZodString>; name: ZodString; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; districts: ZodOptional<ZodArray<ZodObject<{ areas: ZodArray<ZodObject<{ depth: ZodNumber; width: ZodNumber; x: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>; name: ZodString; pedestrians: ZodOptional<ZodRecord<ZodString, ZodNumber>>; theme: ZodOptional<ZodString>; title: ZodString; }, $strip>>>; doors: ZodOptional<ZodArray<ZodObject<{ depth: ZodNumber; height: ZodNumber; kind: ZodOptional<ZodEnum<{ barrier: "barrier"; door: "door"; gate: "gate"; }>>; lock: ZodOptional<ZodString>; name: ZodString; width: ZodNumber; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; dummies: ZodArray<ZodObject<{ x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>; escalators: ZodOptional<ZodArray<ZodObject<{ height: ZodNumber; length: ZodNumber; name: ZodString; up: ZodBoolean; width: ZodNumber; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; garages: ZodOptional<ZodArray<ZodObject<{ depth: ZodNumber; height: ZodNumber; name: ZodString; respray: ZodOptional<ZodNumber>; store: ZodOptional<ZodNumber>; width: ZodNumber; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; groundHalfSize: ZodNumber; ladders: ZodOptional<ZodArray<ZodObject<{ height: ZodNumber; name: ZodString; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; lifts: ZodOptional<ZodArray<ZodObject<{ depth: ZodNumber; name: ZodString; stops: ZodArray<ZodNumber>; width: ZodNumber; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; manholes: ZodOptional<ZodArray<ZodObject<{ name: ZodString; network: ZodString; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; meshes: ZodRecord<ZodString, ZodObject<{ groups: ZodArray<ZodObject<{ color: ZodTuple<[ZodNumber, ZodNumber, ZodNumber], null>; count: ZodNumber; start: ZodNumber; }, $strip>>; indices: ZodArray<ZodNumber>; vertices: ZodArray<ZodNumber>; }, $strip>>; nailStrips: ZodArray<ZodObject<{ length: ZodNumber; x: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>; npcs: ZodOptional<ZodArray<ZodObject<{ items: ZodArray<ZodObject<{ count: ZodNumber; item: ZodString; }, $strip>>; loop: ZodOptional<ZodBoolean>; name: ZodString; patrol: ZodOptional<ZodArray<ZodTuple<[ZodNumber, ZodNumber], null>>>; refuge: ZodOptional<ZodTuple<[ZodNumber, ZodNumber], null>>; role: ZodEnum<{ civilian: "civilian"; driver: "driver"; guard: "guard"; target: "target"; vip: "vip"; }>; schedule: ZodOptional<ZodArray<ZodObject<{ at: ZodNumber; do: ZodEnum<...>; every: ZodOptional<...>; for: ZodOptional<...>; points: ZodArray<...>; }, $strip>>>; turn: ZodOptional<ZodNumber>; vehicle: ZodOptional<ZodString>; weapon: ZodString; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; placements: ZodArray<ZodObject<{ breakable: ZodOptional<ZodNumber>; kind: ZodEnum<{ building: "building"; prop: "prop"; structure: "structure"; terrain: "terrain"; }>; mesh: ZodString; name: ZodString; pitch: ZodNumber; scale: ZodTuple<[ZodNumber, ZodNumber, ZodNumber], null>; shape: ZodEnum<{ hull: "hull"; none: "none"; trimesh: "trimesh"; }>; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>; roads: ZodArray<ZodObject<{ kind: ZodOptional<ZodEnum<{ avenue: "avenue"; country: "country"; highway: "highway"; lane: "lane"; street: "street"; track: "track"; }>>; lanes: ZodNumber; lanesBack: ZodNumber; name: ZodString; points: ZodArray<ZodTuple<[ZodNumber, ZodNumber, ZodNumber], null>>; speed: ZodNumber; surface: ZodOptional<ZodLiteral<"dirt">>; width: ZodNumber; }, $strip>>; schemaVersion: ZodOptional<ZodNumber>; shops: ZodOptional<ZodArray<ZodObject<{ items: ZodArray<ZodString>; name: ZodString; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; sky: ZodOptional<ZodObject<{ climate: ZodString; clock: ZodOptional<ZodObject<{ pace: ZodNumber; start: ZodString; }, $strip>>; }, $strip>>; spawners: ZodOptional<ZodArray<ZodObject<{ classes: ZodArray<ZodString>; dormant: ZodOptional<ZodBoolean>; key: ZodString; locked: ZodBoolean; name: ZodString; owner: ZodEnum<{ nobody: "nobody"; npc: "npc"; }>; respawn: ZodNumber; wreck: ZodOptional<ZodBoolean>; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; spawns: ZodArray<ZodObject<{ role: ZodOptional<ZodEnum<{ guards: "guards"; hospital: "hospital"; players: "players"; police: "police"; traffic: "traffic"; }>>; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>; substations: ZodOptional<ZodArray<ZodObject<{ name: ZodString; radius: ZodNumber; seconds: ZodNumber; x: ZodNumber; y: ZodNumber; yaw: ZodNumber; z: ZodNumber; }, $strip>>>; water: ZodOptional<ZodArray<ZodObject<{ depth: ZodNumber; kind: ZodEnum<{ lava: "lava"; water: "water"; }>; name: ZodString; width: ZodNumber; x: ZodNumber; y: ZodNumber; z: ZodNumber; }, $strip>>>; }, $strip>

Defined in: packages/world/src/schema.ts:301

Validates a LevelData: every field present, every number finite, every size positive, every triangle within its mesh, every placement's mesh in the level, every door's and container's tag and item well formed (a door's kind known), every camera's sweep within a half turn, every NPC's role known (its schedule's hours and activities too), every spawner's classes and key, every garage's prices, every spawn point's role known, every shop selling something, every district's name, title and theme and its areas, every ladder's height, every lift's stops climbing, every manhole's network well formed, every bascule's angle within a quarter turn and its stars 1 to 10, every substation's radius and time positive.