Office.gd is gone. Floorplan.gd consumes a spec Dictionary — bounds, palette, walls
with doors and glazing styles, window runs with mullions and blinds, ceiling style,
light grid and style, slabs, static props, desk clusters, chairs, level-specific
smashables and spawn — and Levels.gd holds four of them.
Making this data rather than four subclasses means a site is authorable in minutes,
levels can be diffed, and a real generator can later emit the same structure (a BSP
split of the footprint -> rooms -> doors on shared walls -> fittings by room type).
That was the actual answer to "can we use this git to generate plans": the repo John
found is OpenSCAD SVG->STL for 3D printing, with no generation, no plan parsing, no
room polygons and GPL-3.0, so it can't help — but Office.gd was already most of a
parametric plan builder, and lifting its numbers out is the real path.
The four sites are deliberately not reskins; they differ in the three things a player
actually reads — palette, light, and what the walls are made of:
SCRANTON magnolia, grey carpet, drop ceiling, fluorescent troffers, daylight
down one glazed wall. The baseline.
PAWNEE civic beige and blue-grey, low partitions everywhere, a public
counter, pinboards. Municipal and over-partitioned.
THE INCUBATOR timber floor, white walls, 3 m ceiling, PENDANT lights, glass wall
onto a pool. Nobody has an office; they work at a dining table.
SUB-LEVEL 4 concrete, NO windows at all, exposed services, bare strip lights, a
wall of server racks. The light is green and everything is junk.
L cycles sites in-game; _load_level tears down the shell, rebuilds, re-registers task
stations and re-arms the shift.
tools/gen_level_props.py adds ten more procedural props. The filing cabinet is the
important one: it exports as a CARCASS plus a separate DRAWER, each with its own
floor-centre origin, so the Gauntlet can pull a drawer out as its own rigid body and
spill the files. Also file folder, desk phone, guillotine, shredder, server rack,
sofa, wastebin, stapler.
dev/probe_levels.gd builds every level and reports residual motion after a full
second. All four read 0.00 m/s.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
46 lines
1.1 KiB
Plaintext
46 lines
1.1 KiB
Plaintext
[remap]
|
|
|
|
importer="scene"
|
|
importer_version=1
|
|
type="PackedScene"
|
|
uid="uid://02eubr818s2p"
|
|
path="res://.godot/imported/stapler.glb-9abfdda7570f61d9ca4808557b7ea9c6.scn"
|
|
|
|
[deps]
|
|
|
|
source_file="res://assets/store/stapler.glb"
|
|
dest_files=["res://.godot/imported/stapler.glb-9abfdda7570f61d9ca4808557b7ea9c6.scn"]
|
|
|
|
[params]
|
|
|
|
nodes/root_type=""
|
|
nodes/root_name=""
|
|
nodes/root_script=null
|
|
mesh_library/use_node_names_as_mesh_names=false
|
|
array_mesh/deduplicate_surfaces=true
|
|
nodes/apply_root_scale=true
|
|
nodes/root_scale=1.0
|
|
nodes/import_as_skeleton_bones=false
|
|
nodes/use_name_suffixes=true
|
|
nodes/use_node_type_suffixes=true
|
|
meshes/ensure_tangents=true
|
|
meshes/generate_lods=true
|
|
meshes/create_shadow_meshes=true
|
|
meshes/light_baking=1
|
|
meshes/lightmap_texel_size=0.2
|
|
meshes/force_disable_compression=false
|
|
skins/use_named_skins=true
|
|
animation/import=true
|
|
animation/fps=30
|
|
animation/trimming=false
|
|
animation/remove_immutable_tracks=true
|
|
animation/import_rest_as_RESET=false
|
|
import_script/path=""
|
|
materials/extract=0
|
|
materials/extract_format=0
|
|
materials/extract_path=""
|
|
_subresources={}
|
|
gltf/naming_version=2
|
|
gltf/embedded_image_handling=1
|
|
gltf/texture_map_mode=1
|