chore: initial deploy — SLA Industries Foundry VTT
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
node_modules/
|
||||
.DS_Store
|
||||
._*
|
||||
*.swp
|
||||
worlds/
|
||||
@@ -0,0 +1,295 @@
|
||||
{
|
||||
"scifi": {
|
||||
"bridge": [
|
||||
{ "key": "console", "w": 2, "h": 1, "shape": "r", "qty": [1, 3], "placement": "wall", "label": "", "occlusion": "none", "densityMod": 0.8 },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [1, 2], "placement": "center", "label": "", "occlusion": "none", "densityMod": 0.8 },
|
||||
{ "key": "viewscreen", "w": 3, "h": 1, "shape": "r", "qty": [0, 1], "placement": "far-wall", "label": "VIEWSCREEN", "occlusion": "sight" }
|
||||
],
|
||||
"engineering": [
|
||||
{ "key": "workbench", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "sight" },
|
||||
{ "key": "console", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "none" },
|
||||
{ "key": "conduit", "w": 1, "h": 1, "shape": "r", "qty": [2, 4], "placement": "scatter", "label": "", "occlusion": "none" },
|
||||
{ "key": "floor-hatch", "w": 1, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "HATCH", "occlusion": "none", "isHatch": true },
|
||||
{ "key": "junction-box", "w": 1, "h": 1, "shape": "r", "qty": [1, 3], "placement": "corners", "label": "JUNCT", "occlusion": "sight" }
|
||||
],
|
||||
"crew-quarters": [
|
||||
{ "key": "bunk", "w": 1, "h": 2, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "sight" },
|
||||
{ "key": "locker", "w": 1, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "sight" }
|
||||
],
|
||||
"medical": [
|
||||
{ "key": "table", "w": 1, "h": 2, "shape": "r", "qty": [1, 2], "placement": "center", "label": "MED TABLE", "occlusion": "sight" },
|
||||
{ "key": "cabinet", "w": 1, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "sight" }
|
||||
],
|
||||
"mess-hall": [
|
||||
{ "key": "table", "w": 2, "h": 1, "shape": "r", "qty": [1, 3], "placement": "center", "label": "", "occlusion": "none" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [2, 6], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"cargo": [
|
||||
{ "key": "crate", "w": 1, "h": 1, "shape": "r", "qty": [3, 8], "placement": "scatter", "label": "", "occlusion": "solid", "densityMod": 2.0 },
|
||||
{ "key": "barrel", "w": 1, "h": 1, "shape": "e", "qty": [1, 4], "placement": "scatter", "label": "", "occlusion": "sight", "densityMod": 1.5 },
|
||||
{ "key": "container", "w": 2, "h": 1, "shape": "r", "qty": [0, 3], "placement": "wall", "label": "CARGO", "occlusion": "solid", "densityMod": 1.5 }
|
||||
],
|
||||
"armory": [
|
||||
{ "key": "rack", "w": 1, "h": 2, "shape": "r", "qty": [1, 3], "placement": "wall", "label": "WEAPON RACK", "occlusion": "sight" },
|
||||
{ "key": "crate", "w": 1, "h": 1, "shape": "r", "qty": [1, 2], "placement": "scatter", "label": "", "occlusion": "solid" }
|
||||
],
|
||||
"reactor": [
|
||||
{ "key": "core", "w": 2, "h": 2, "shape": "e", "qty": [1, 1], "placement": "center", "label": "REACTOR", "occlusion": "solid" },
|
||||
{ "key": "coolant-loop", "w": 1, "h": 2, "shape": "r", "qty": [2, 4], "placement": "wall", "label": "COOLANT", "occlusion": "sight" },
|
||||
{ "key": "control-rod", "w": 1, "h": 1, "shape": "r", "qty": [2, 4], "placement": "wall", "label": "ROD", "occlusion": "sight" },
|
||||
{ "key": "rad-shield", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "RAD", "occlusion": "solid" }
|
||||
],
|
||||
"escape-pods": [
|
||||
{ "key": "escape-pod", "w": 1, "h": 2, "shape": "e", "qty": [2, 4], "placement": "wall", "label": "POD", "occlusion": "sight" },
|
||||
{ "key": "release-ctrl", "w": 1, "h": 1, "shape": "r", "qty": [1, 1], "placement": "wall", "label": "RELEASE", "occlusion": "none" }
|
||||
],
|
||||
"weapon-bay": [
|
||||
{ "key": "torpedo-rack", "w": 2, "h": 1, "shape": "r", "qty": [1, 3], "placement": "wall", "label": "TORP", "occlusion": "solid" },
|
||||
{ "key": "targeting-sys", "w": 2, "h": 1, "shape": "r", "qty": [1, 1], "placement": "wall", "label": "TARGET", "occlusion": "sight" },
|
||||
{ "key": "ammo-store", "w": 1, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "AMMO", "occlusion": "solid" }
|
||||
],
|
||||
"navigation": [
|
||||
{ "key": "star-chart", "w": 2, "h": 2, "shape": "r", "qty": [1, 1], "placement": "center", "label": "CHART", "occlusion": "none" },
|
||||
{ "key": "console", "w": 2, "h": 1, "shape": "r", "qty": [2, 4], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"fuel-bay": [
|
||||
{ "key": "tank", "w": 1, "h": 2, "shape": "e", "qty": [2, 4], "placement": "wall", "label": "", "occlusion": "sight" }
|
||||
],
|
||||
"lab": [
|
||||
{ "key": "bench", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "none" },
|
||||
{ "key": "equipment", "w": 1, "h": 1, "shape": "r", "qty": [2, 4], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"brig": [
|
||||
{ "key": "cell-bar", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "CELL", "occlusion": "sight" },
|
||||
{ "key": "cot", "w": 1, "h": 2, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"storage": [
|
||||
{ "key": "shelf", "w": 1, "h": 1, "shape": "r", "qty": [2, 5], "placement": "wall", "label": "", "occlusion": "sight" },
|
||||
{ "key": "crate", "w": 1, "h": 1, "shape": "r", "qty": [1, 3], "placement": "scatter", "label": "", "occlusion": "solid" }
|
||||
],
|
||||
"ops": [
|
||||
{ "key": "console", "w": 2, "h": 1, "shape": "r", "qty": [2, 4], "placement": "wall", "label": "", "occlusion": "none" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [1, 3], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"observation": [
|
||||
{ "key": "viewport", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "far-wall", "label": "VIEWPORT", "occlusion": "none" },
|
||||
{ "key": "recliner", "w": 1, "h": 1, "shape": "r", "qty": [1, 4], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"airlock": [
|
||||
{ "key": "eva-locker", "w": 1, "h": 2, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "EVA SUIT", "occlusion": "sight" },
|
||||
{ "key": "decon-tank", "w": 1, "h": 1, "shape": "e", "qty": [0, 1], "placement": "center", "label": "DECON", "occlusion": "none" },
|
||||
{ "key": "pressure-ctrl", "w": 1, "h": 1, "shape": "r", "qty": [1, 1], "placement": "wall", "label": "PRESS", "occlusion": "none" }
|
||||
],
|
||||
"cryo-bay": [
|
||||
{ "key": "cryo-pod", "w": 1, "h": 2, "shape": "r", "qty": [2, 6], "placement": "wall", "label": "CRYO", "occlusion": "sight" },
|
||||
{ "key": "revival-unit", "w": 2, "h": 1, "shape": "r", "qty": [0, 1], "placement": "wall", "label": "REVIVAL", "occlusion": "sight" }
|
||||
],
|
||||
"life-support": [
|
||||
{ "key": "o2-tank", "w": 1, "h": 2, "shape": "e", "qty": [1, 3], "placement": "wall", "label": "O2", "occlusion": "sight" },
|
||||
{ "key": "scrubber", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "SCRUB", "occlusion": "sight" },
|
||||
{ "key": "water-reclaim", "w": 1, "h": 2, "shape": "r", "qty": [0, 1], "placement": "wall", "label": "H2O", "occlusion": "sight" },
|
||||
{ "key": "floor-hatch", "w": 1, "h": 1, "shape": "r", "qty": [1, 1], "placement": "wall", "label": "HATCH", "occlusion": "none", "isHatch": true }
|
||||
],
|
||||
"docking-bay": [
|
||||
{ "key": "docking-clamp", "w": 2, "h": 1, "shape": "r", "qty": [1, 3], "placement": "wall", "label": "CLAMP", "occlusion": "sight" },
|
||||
{ "key": "fuel-coupling", "w": 1, "h": 1, "shape": "e", "qty": [1, 2], "placement": "wall", "label": "FUEL", "occlusion": "none" },
|
||||
{ "key": "gantry-node", "w": 1, "h": 1, "shape": "r", "qty": [2, 4], "placement": "corners", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"maintenance": [
|
||||
{ "key": "floor-hatch", "w": 1, "h": 1, "shape": "r", "qty": [1, 1], "placement": "wall", "label": "HATCH", "occlusion": "none", "isHatch": true },
|
||||
{ "key": "access-panel", "w": 1, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "ACCESS", "occlusion": "none", "isHatch": true },
|
||||
{ "key": "junction-box", "w": 1, "h": 1, "shape": "r", "qty": [0, 2], "placement": "corners", "label": "JUNCT", "occlusion": "sight" },
|
||||
{ "key": "power-conduit", "w": 3, "h": 1, "shape": "r", "qty": [0, 2], "placement": "wall", "label": "PWR", "occlusion": "none" },
|
||||
{ "key": "tool-cabinet", "w": 1, "h": 2, "shape": "r", "qty": [0, 2], "placement": "wall", "label": "", "occlusion": "sight" }
|
||||
],
|
||||
"nav-suite": [
|
||||
{ "key": "star-chart", "w": 2, "h": 2, "shape": "r", "qty": [1, 1], "placement": "center", "label": "CHART", "occlusion": "none" },
|
||||
{ "key": "console", "w": 2, "h": 1, "shape": "r", "qty": [2, 4], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"armory-small": [
|
||||
{ "key": "rack", "w": 1, "h": 2, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "WEAPONS", "occlusion": "sight" },
|
||||
{ "key": "crate", "w": 1, "h": 1, "shape": "r", "qty": [0, 2], "placement": "scatter", "label": "", "occlusion": "solid" }
|
||||
],
|
||||
"gravity-ctrl": [
|
||||
{ "key": "console", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "GRAV CTRL", "occlusion": "none" },
|
||||
{ "key": "generator", "w": 2, "h": 2, "shape": "e", "qty": [0, 1], "placement": "center", "label": "FIELD GEN", "occlusion": "solid" }
|
||||
],
|
||||
"comms-array": [
|
||||
{ "key": "antenna-ctrl", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "COMMS", "occlusion": "none" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [1, 2], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
]
|
||||
},
|
||||
"dungeon": {
|
||||
"boss-chamber": [
|
||||
{ "key": "throne", "w": 2, "h": 2, "shape": "r", "qty": [1, 1], "placement": "far-wall", "label": "THRONE", "occlusion": "solid" },
|
||||
{ "key": "pillar", "w": 1, "h": 1, "shape": "r", "qty": [2, 4], "placement": "corners", "label": "", "occlusion": "solid" }
|
||||
],
|
||||
"throne-room": [
|
||||
{ "key": "throne", "w": 2, "h": 2, "shape": "r", "qty": [1, 1], "placement": "far-wall", "label": "THRONE", "occlusion": "solid" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [4, 8], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"vault": [
|
||||
{ "key": "chest", "w": 1, "h": 1, "shape": "r", "qty": [1, 3], "placement": "scatter", "label": "CHEST", "occlusion": "none" },
|
||||
{ "key": "pile", "w": 1, "h": 1, "shape": "e", "qty": [1, 4], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"shrine": [
|
||||
{ "key": "altar", "w": 2, "h": 1, "shape": "r", "qty": [1, 1], "placement": "far-wall", "label": "ALTAR", "occlusion": "sight" },
|
||||
{ "key": "candle", "w": 1, "h": 1, "shape": "r", "qty": [2, 4], "placement": "corners", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"ritual-room": [
|
||||
{ "key": "altar", "w": 2, "h": 1, "shape": "r", "qty": [1, 1], "placement": "center", "label": "ALTAR", "occlusion": "sight" },
|
||||
{ "key": "circle", "w": 3, "h": 3, "shape": "e", "qty": [0, 1], "placement": "center", "label": "", "occlusion": "none" },
|
||||
{ "key": "candle", "w": 1, "h": 1, "shape": "r", "qty": [4, 6], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"barracks": [
|
||||
{ "key": "bunk", "w": 1, "h": 2, "shape": "r", "qty": [2, 4], "placement": "wall", "label": "", "occlusion": "sight" },
|
||||
{ "key": "rack", "w": 1, "h": 2, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "ARMS", "occlusion": "sight" }
|
||||
],
|
||||
"guardroom": [
|
||||
{ "key": "table", "w": 2, "h": 1, "shape": "r", "qty": [1, 1], "placement": "center", "label": "", "occlusion": "none" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [2, 4], "placement": "scatter", "label": "", "occlusion": "none" },
|
||||
{ "key": "rack", "w": 1, "h": 2, "shape": "r", "qty": [0, 1], "placement": "wall", "label": "ARMS", "occlusion": "sight" }
|
||||
],
|
||||
"library": [
|
||||
{ "key": "shelf", "w": 1, "h": 2, "shape": "r", "qty": [2, 6], "placement": "wall", "label": "", "occlusion": "sight" },
|
||||
{ "key": "table", "w": 2, "h": 1, "shape": "r", "qty": [0, 1], "placement": "center", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"trophy-room": [
|
||||
{ "key": "plinth", "w": 1, "h": 1, "shape": "r", "qty": [2, 4], "placement": "scatter", "label": "TROPHY", "occlusion": "none" }
|
||||
],
|
||||
"alchemy": [
|
||||
{ "key": "bench", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "none" },
|
||||
{ "key": "cauldron", "w": 1, "h": 1, "shape": "e", "qty": [1, 2], "placement": "center", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"forge": [
|
||||
{ "key": "anvil", "w": 1, "h": 1, "shape": "r", "qty": [1, 1], "placement": "center", "label": "ANVIL", "occlusion": "solid" },
|
||||
{ "key": "rack", "w": 1, "h": 2, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "sight" }
|
||||
],
|
||||
"antechamber": [
|
||||
{ "key": "bench", "w": 2, "h": 1, "shape": "r", "qty": [0, 1], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"laboratory": [
|
||||
{ "key": "bench", "w": 2, "h": 1, "shape": "r", "qty": [1, 3], "placement": "wall", "label": "", "occlusion": "none" },
|
||||
{ "key": "shelf", "w": 1, "h": 2, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "sight" },
|
||||
{ "key": "cauldron", "w": 1, "h": 1, "shape": "e", "qty": [0, 2], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"crypt": [
|
||||
{ "key": "sarcophagus", "w": 1, "h": 2, "shape": "r", "qty": [1, 4], "placement": "wall", "label": "TOMB", "occlusion": "solid" }
|
||||
],
|
||||
"torture": [
|
||||
{ "key": "rack", "w": 1, "h": 2, "shape": "r", "qty": [1, 2], "placement": "center", "label": "RACK", "occlusion": "solid" },
|
||||
{ "key": "table", "w": 1, "h": 2, "shape": "r", "qty": [0, 1], "placement": "wall", "label": "", "occlusion": "sight" }
|
||||
],
|
||||
"prison": [
|
||||
{ "key": "cot", "w": 1, "h": 2, "shape": "r", "qty": [1, 3], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"cistern": [
|
||||
{ "key": "pool", "w": 3, "h": 3, "shape": "e", "qty": [0, 1], "placement": "center", "label": "WATER", "occlusion": "none" }
|
||||
],
|
||||
"armoury": [
|
||||
{ "key": "rack", "w": 1, "h": 2, "shape": "r", "qty": [2, 4], "placement": "wall", "label": "ARMS", "occlusion": "sight" },
|
||||
{ "key": "chest", "w": 1, "h": 1, "shape": "r", "qty": [0, 2], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"store": [
|
||||
{ "key": "barrel", "w": 1, "h": 1, "shape": "e", "qty": [2, 5], "placement": "scatter", "label": "", "occlusion": "none" },
|
||||
{ "key": "crate", "w": 1, "h": 1, "shape": "r", "qty": [1, 4], "placement": "scatter", "label": "", "occlusion": "solid" }
|
||||
]
|
||||
},
|
||||
"building": {
|
||||
"office": [
|
||||
{ "key": "desk", "w": 2, "h": 1, "shape": "r", "qty": [1, 3], "placement": "wall", "label": "", "occlusion": "none" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [1, 3], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"meeting": [
|
||||
{ "key": "table", "w": 3, "h": 2, "shape": "r", "qty": [1, 1], "placement": "center", "label": "", "occlusion": "none" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [4, 8], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"lobby": [
|
||||
{ "key": "desk", "w": 2, "h": 1, "shape": "r", "qty": [1, 1], "placement": "far-wall", "label": "RECEPTION", "occlusion": "none" },
|
||||
{ "key": "sofa", "w": 2, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"exec-office": [
|
||||
{ "key": "desk", "w": 2, "h": 1, "shape": "r", "qty": [1, 1], "placement": "far-wall", "label": "", "occlusion": "none" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [1, 3], "placement": "scatter", "label": "", "occlusion": "none" },
|
||||
{ "key": "sofa", "w": 2, "h": 1, "shape": "r", "qty": [0, 1], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"bedroom": [
|
||||
{ "key": "bed", "w": 2, "h": 3, "shape": "r", "qty": [1, 1], "placement": "wall", "label": "", "occlusion": "sight" },
|
||||
{ "key": "wardrobe", "w": 1, "h": 2, "shape": "r", "qty": [0, 1], "placement": "wall", "label": "", "occlusion": "sight" }
|
||||
],
|
||||
"kitchen": [
|
||||
{ "key": "counter", "w": 3, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "none" },
|
||||
{ "key": "table", "w": 2, "h": 1, "shape": "r", "qty": [0, 1], "placement": "center", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"living": [
|
||||
{ "key": "sofa", "w": 3, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "none" },
|
||||
{ "key": "table", "w": 2, "h": 1, "shape": "r", "qty": [0, 1], "placement": "center", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"common-room": [
|
||||
{ "key": "table", "w": 2, "h": 1, "shape": "r", "qty": [2, 4], "placement": "scatter", "label": "", "occlusion": "none" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [4, 8], "placement": "scatter", "label": "", "occlusion": "none" },
|
||||
{ "key": "fireplace", "w": 2, "h": 1, "shape": "r", "qty": [0, 1], "placement": "far-wall", "label": "HEARTH", "occlusion": "sight" }
|
||||
],
|
||||
"bar": [
|
||||
{ "key": "counter", "w": 3, "h": 1, "shape": "r", "qty": [1, 2], "placement": "far-wall", "label": "BAR", "occlusion": "sight" },
|
||||
{ "key": "stool", "w": 1, "h": 1, "shape": "r", "qty": [2, 4], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"dining": [
|
||||
{ "key": "table", "w": 3, "h": 2, "shape": "r", "qty": [1, 1], "placement": "center", "label": "", "occlusion": "none" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [4, 8], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"ballroom": [
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [6, 12], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"library": [
|
||||
{ "key": "shelf", "w": 1, "h": 2, "shape": "r", "qty": [3, 6], "placement": "wall", "label": "", "occlusion": "sight" },
|
||||
{ "key": "table", "w": 2, "h": 1, "shape": "r", "qty": [0, 1], "placement": "center", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"warehouse": [
|
||||
{ "key": "shelf", "w": 1, "h": 3, "shape": "r", "qty": [3, 7], "placement": "wall", "label": "", "occlusion": "sight", "densityMod": 1.5 },
|
||||
{ "key": "crate", "w": 1, "h": 1, "shape": "r", "qty": [2, 6], "placement": "scatter", "label": "", "occlusion": "solid", "densityMod": 2.0 }
|
||||
],
|
||||
"stairwell": [
|
||||
{ "key": "landing", "w": 2, "h": 2, "shape": "r", "qty": [1, 1], "placement": "center", "label": "STAIRS", "occlusion": "none" }
|
||||
],
|
||||
"courtyard": [
|
||||
{ "key": "tree", "w": 1, "h": 1, "shape": "e", "qty": [1, 3], "placement": "scatter", "label": "", "occlusion": "none" },
|
||||
{ "key": "bench", "w": 2, "h": 1, "shape": "r", "qty": [0, 2], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"garden": [
|
||||
{ "key": "bed", "w": 2, "h": 1, "shape": "r", "qty": [1, 3], "placement": "scatter", "label": "", "occlusion": "none" },
|
||||
{ "key": "tree", "w": 1, "h": 1, "shape": "e", "qty": [1, 2], "placement": "corners", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"armoury": [
|
||||
{ "key": "rack", "w": 1, "h": 2, "shape": "r", "qty": [2, 4], "placement": "wall", "label": "ARMS", "occlusion": "sight" }
|
||||
],
|
||||
"server": [
|
||||
{ "key": "rack", "w": 1, "h": 3, "shape": "r", "qty": [2, 6], "placement": "wall", "label": "SERVER", "occlusion": "sight", "densityMod": 1.5 }
|
||||
],
|
||||
"living-room": [
|
||||
{ "key": "sofa", "w": 2, "h": 1, "shape": "r", "qty": [0, 1], "placement": "wall", "label": "", "occlusion": "none" },
|
||||
{ "key": "chair", "w": 1, "h": 1, "shape": "r", "qty": [1, 3], "placement": "scatter", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"entrance-hall": [
|
||||
{ "key": "table", "w": 2, "h": 1, "shape": "r", "qty": [0, 1], "placement": "center", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"surgery": [
|
||||
{ "key": "table", "w": 1, "h": 2, "shape": "r", "qty": [1, 1], "placement": "center", "label": "OPERATING TABLE", "occlusion": "sight" },
|
||||
{ "key": "cabinet", "w": 1, "h": 1, "shape": "r", "qty": [1, 2], "placement": "wall", "label": "", "occlusion": "sight" }
|
||||
],
|
||||
"padded-cell": [
|
||||
{ "key": "cot", "w": 1, "h": 2, "shape": "r", "qty": [0, 1], "placement": "wall", "label": "", "occlusion": "none" }
|
||||
],
|
||||
"basement": [
|
||||
{ "key": "crate", "w": 1, "h": 1, "shape": "r", "qty": [2, 5], "placement": "scatter", "label": "", "occlusion": "solid" },
|
||||
{ "key": "rack", "w": 1, "h": 2, "shape": "r", "qty": [0, 2], "placement": "wall", "label": "", "occlusion": "sight" }
|
||||
],
|
||||
"boiler-room": [
|
||||
{ "key": "boiler", "w": 2, "h": 2, "shape": "e", "qty": [1, 1], "placement": "center", "label": "BOILER", "occlusion": "solid" }
|
||||
],
|
||||
"attic": [
|
||||
{ "key": "crate", "w": 1, "h": 1, "shape": "r", "qty": [3, 7], "placement": "scatter", "label": "", "occlusion": "solid", "densityMod": 2.0 },
|
||||
{ "key": "rack", "w": 1, "h": 2, "shape": "r", "qty": [0, 2], "placement": "wall", "label": "", "occlusion": "sight" }
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"rooms": [
|
||||
{ "key": "bridge", "label": "BRIDGE", "placement": "bow", "weight": 1, "unique": true, "minSize": [4, 4] },
|
||||
{ "key": "engineering", "label": "ENGINEERING", "placement": "stern", "weight": 1, "unique": true, "minSize": [4, 4] },
|
||||
{ "key": "cargo", "label": "CARGO BAY", "placement": "any", "weight": 8, "unique": false, "minSize": [3, 3], "numbered": true },
|
||||
{ "key": "crew-quarters", "label": "CREW QUARTERS", "placement": "any", "weight": 10, "unique": false, "minSize": [2, 3], "numbered": true },
|
||||
{ "key": "medical", "label": "MEDICAL BAY", "placement": "any", "weight": 3, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "armory", "label": "ARMOURY", "placement": "any", "weight": 2, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "brig", "label": "BRIG", "placement": "any", "weight": 2, "unique": true, "minSize": [2, 2] },
|
||||
{ "key": "airlock", "label": "AIRLOCK", "placement": "edge", "weight": 4, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "mess-hall", "label": "MESS HALL", "placement": "any", "weight": 3, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "ops", "label": "OPS", "placement": "any", "weight": 3, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "comms", "label": "COMMS", "placement": "bow", "weight": 2, "unique": true, "minSize": [2, 2] },
|
||||
{ "key": "lab", "label": "RESEARCH LAB", "placement": "any", "weight": 3, "unique": false, "minSize": [3, 3], "numbered": true },
|
||||
{ "key": "reactor", "label": "REACTOR CORE", "placement": "stern", "weight": 1, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "escape-pods", "label": "ESCAPE PODS", "placement": "edge", "weight": 2, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "weapon-bay", "label": "WEAPON BAY", "placement": "stern", "weight": 1, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "navigation", "label": "NAVIGATION", "placement": "bow", "weight": 2, "unique": true, "minSize": [2, 2] },
|
||||
{ "key": "fuel-bay", "label": "FUEL STORAGE", "placement": "stern", "weight": 2, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "storage", "label": "STORAGE", "placement": "any", "weight": 10, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "docking-bay", "label": "DOCKING BAY", "placement": "bow", "weight": 2, "unique": true, "minSize": [5, 4] },
|
||||
{ "key": "life-support", "label": "LIFE SUPPORT", "placement": "any", "weight": 2, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "maintenance", "label": "MAINTENANCE", "placement": "any", "weight": 5, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "observation", "label": "OBSERVATION", "placement": "bow", "weight": 2, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "void", "label": "VOID", "placement": "any", "weight": 1, "unique": false, "minSize": [2, 2] }
|
||||
],
|
||||
"sla_overrides": {
|
||||
"bridge": { "label": "COMMAND CENTRE" },
|
||||
"armory": { "label": "ORDNANCE LOCKER" },
|
||||
"brig": { "label": "HOLDING CELLS" },
|
||||
"crew-quarters": { "label": "OPERATIVE BARRACKS" },
|
||||
"lab": { "label": "EBB LAB" },
|
||||
"escape-pods": { "label": "EMERGENCY BAYS" },
|
||||
"navigation": { "label": "NAV STATION" }
|
||||
},
|
||||
"dungeon": {
|
||||
"rooms": [
|
||||
{ "key": "entrance", "label": "ENTRANCE", "placement": "edge", "weight": 1, "unique": true, "minSize": [3, 3], "doorType": "none" },
|
||||
{ "key": "boss-chamber", "label": "BOSS CHAMBER", "placement": "far", "weight": 1, "unique": true, "minSize": [5, 5], "doorType": "locked" },
|
||||
{ "key": "throne-room", "label": "THRONE ROOM", "placement": "far", "weight": 1, "unique": true, "minSize": [4, 4], "doorType": "locked" },
|
||||
{ "key": "vault", "label": "VAULT", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 3], "doorType": "locked" },
|
||||
{ "key": "shrine", "label": "SHRINE", "placement": "any", "weight": 2, "unique": true, "minSize": [3, 3], "doorType": "none" },
|
||||
{ "key": "torture", "label": "TORTURE CHAMBER", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 3], "doorType": "locked" },
|
||||
{ "key": "barracks", "label": "BARRACKS", "placement": "any", "weight": 4, "unique": false, "minSize": [3, 3], "numbered": true },
|
||||
{ "key": "guardroom", "label": "GUARD ROOM", "placement": "any", "weight": 3, "unique": false, "minSize": [2, 3], "numbered": true, "doorType": "none" },
|
||||
{ "key": "prison", "label": "PRISON CELLS", "placement": "any", "weight": 2, "unique": true, "minSize": [3, 3], "doorType": "locked" },
|
||||
{ "key": "armoury", "label": "ARMOURY", "placement": "any", "weight": 2, "unique": true, "minSize": [2, 3], "doorType": "locked" },
|
||||
{ "key": "store", "label": "STOREROOM", "placement": "any", "weight": 6, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "library", "label": "LIBRARY", "placement": "any", "weight": 2, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "laboratory", "label": "LABORATORY", "placement": "any", "weight": 2, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "trophy-room", "label": "TROPHY ROOM", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "alchemy", "label": "ALCHEMIST WORKSHOP", "placement": "any", "weight": 2, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "forge", "label": "FORGE", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "antechamber", "label": "ANTECHAMBER", "placement": "any", "weight": 3, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "crypt", "label": "CRYPT", "placement": "any", "weight": 3, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "ritual-room", "label": "RITUAL CHAMBER", "placement": "any", "weight": 2, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "quarters", "label": "QUARTERS", "placement": "any", "weight": 5, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "cistern", "label": "CISTERN", "placement": "any", "weight": 2, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "collapsed", "label": "COLLAPSED HALL", "placement": "any", "weight": 3, "unique": false, "minSize": [2, 2] },
|
||||
{ "key": "trap-room", "label": "TRAP ROOM", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2] },
|
||||
{ "key": "void", "label": "", "placement": "any", "weight": 4, "unique": false, "minSize": [2, 2] }
|
||||
]
|
||||
},
|
||||
"building": {
|
||||
"subtypes": {
|
||||
"office": {
|
||||
"rooms": [
|
||||
{ "key": "lobby", "label": "LOBBY", "placement": "entrance", "weight": 1, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "office", "label": "OFFICE", "placement": "any", "weight": 10, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "meeting", "label": "MEETING ROOM", "placement": "any", "weight": 4, "unique": false, "minSize": [3, 3], "numbered": true },
|
||||
{ "key": "server", "label": "SERVER ROOM", "placement": "any", "weight": 2, "unique": true, "minSize": [2, 2], "doorType": "locked" },
|
||||
{ "key": "reception", "label": "RECEPTION", "placement": "entrance", "weight": 2, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "breakroom", "label": "BREAK ROOM", "placement": "any", "weight": 3, "unique": true, "minSize": [2, 2] },
|
||||
{ "key": "bathroom", "label": "BATHROOM", "placement": "any", "weight": 4, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "storage", "label": "STORAGE", "placement": "any", "weight": 4, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "stairwell", "label": "STAIRWELL", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "exec-office", "label": "EXECUTIVE SUITE", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 3], "doorType": "locked" },
|
||||
{ "key": "void", "label": "", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2] }
|
||||
]
|
||||
},
|
||||
"warehouse": {
|
||||
"rooms": [
|
||||
{ "key": "loading", "label": "LOADING DOCK", "placement": "entrance", "weight": 1, "unique": true, "minSize": [4, 3] },
|
||||
{ "key": "warehouse", "label": "WAREHOUSE FLOOR", "placement": "any", "weight": 8, "unique": false, "minSize": [4, 4], "numbered": true },
|
||||
{ "key": "office", "label": "SITE OFFICE", "placement": "any", "weight": 2, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "security", "label": "SECURITY ROOM", "placement": "entrance", "weight": 1, "unique": true, "minSize": [2, 2], "doorType": "locked" },
|
||||
{ "key": "coldstore", "label": "COLD STORE", "placement": "any", "weight": 2, "unique": true, "minSize": [3, 3], "doorType": "locked" },
|
||||
{ "key": "bathroom", "label": "BATHROOM", "placement": "any", "weight": 3, "unique": false, "minSize": [2, 2] },
|
||||
{ "key": "storage", "label": "STORAGE", "placement": "any", "weight": 4, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "stairwell", "label": "STAIRWELL", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "void", "label": "", "placement": "any", "weight": 3, "unique": false, "minSize": [2, 2] }
|
||||
]
|
||||
},
|
||||
"residential": {
|
||||
"rooms": [
|
||||
{ "key": "living", "label": "LIVING ROOM", "placement": "entrance", "weight": 1, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "kitchen", "label": "KITCHEN", "placement": "any", "weight": 1, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "bedroom", "label": "BEDROOM", "placement": "any", "weight": 6, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "bathroom", "label": "BATHROOM", "placement": "any", "weight": 3, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "dining", "label": "DINING ROOM", "placement": "any", "weight": 1, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "study", "label": "STUDY", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2] },
|
||||
{ "key": "stairwell", "label": "STAIRWELL", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "cellar", "label": "CELLAR", "placement": "any", "weight": 1, "unique": true, "minSize": [2, 2], "doorType": "locked" },
|
||||
{ "key": "void", "label": "", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2] }
|
||||
]
|
||||
},
|
||||
"tavern": {
|
||||
"rooms": [
|
||||
{ "key": "common-room", "label": "COMMON ROOM", "placement": "entrance", "weight": 1, "unique": true, "minSize": [4, 4] },
|
||||
{ "key": "bar", "label": "BAR", "placement": "entrance", "weight": 1, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "kitchen", "label": "KITCHEN", "placement": "any", "weight": 1, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "room", "label": "GUEST ROOM", "placement": "any", "weight": 6, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "cellar", "label": "CELLAR", "placement": "any", "weight": 1, "unique": true, "minSize": [2, 2], "doorType": "locked" },
|
||||
{ "key": "stable", "label": "STABLE", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "courtyard", "label": "COURTYARD", "placement": "any", "weight": 1, "unique": true, "minSize": [4, 4] },
|
||||
{ "key": "stairwell", "label": "STAIRWELL", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "privy", "label": "PRIVY", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2] },
|
||||
{ "key": "storeroom", "label": "STOREROOM", "placement": "any", "weight": 3, "unique": false, "minSize": [2, 2] },
|
||||
{ "key": "void", "label": "", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2] }
|
||||
]
|
||||
},
|
||||
"mansion": {
|
||||
"rooms": [
|
||||
{ "key": "foyer", "label": "FOYER", "placement": "entrance", "weight": 1, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "ballroom", "label": "BALLROOM", "placement": "any", "weight": 1, "unique": true, "minSize": [5, 5] },
|
||||
{ "key": "dining", "label": "DINING ROOM", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 4] },
|
||||
{ "key": "library", "label": "LIBRARY", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "study", "label": "STUDY", "placement": "any", "weight": 1, "unique": true, "minSize": [2, 3], "doorType": "locked" },
|
||||
{ "key": "bedroom", "label": "BEDROOM", "placement": "any", "weight": 4, "unique": false, "minSize": [2, 3], "numbered": true },
|
||||
{ "key": "servant", "label": "SERVANTS QUARTERS", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "kitchen", "label": "KITCHEN", "placement": "any", "weight": 1, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "garden", "label": "GARDEN ROOM", "placement": "any", "weight": 1, "unique": true, "minSize": [4, 4] },
|
||||
{ "key": "armoury", "label": "ARMOURY", "placement": "any", "weight": 1, "unique": true, "minSize": [2, 3], "doorType": "locked" },
|
||||
{ "key": "stairwell", "label": "STAIRWELL", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2], "numbered": true },
|
||||
{ "key": "vault", "label": "VAULT", "placement": "any", "weight": 1, "unique": true, "minSize": [2, 2], "doorType": "locked" },
|
||||
{ "key": "bathroom", "label": "BATHROOM", "placement": "any", "weight": 3, "unique": false, "minSize": [2, 2] },
|
||||
{ "key": "void", "label": "", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2] }
|
||||
]
|
||||
},
|
||||
"horror": {
|
||||
"rooms": [
|
||||
{ "key": "entrance-hall", "label": "ENTRANCE HALL", "placement": "entrance", "weight": 1, "unique": true, "minSize": [3, 3] },
|
||||
{ "key": "living-room", "label": "LIVING ROOM", "placement": "any", "weight": 3, "unique": false, "minSize": [3, 3] },
|
||||
{ "key": "kitchen", "label": "KITCHEN", "placement": "any", "weight": 2, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "bedroom", "label": "BEDROOM", "placement": "any", "weight": 3, "unique": false, "minSize": [2, 3], "numbered": true },
|
||||
{ "key": "bathroom", "label": "BATHROOM", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2] },
|
||||
{ "key": "basement", "label": "BASEMENT", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 4], "doorType": "locked" },
|
||||
{ "key": "surgery", "label": "SURGERY ROOM", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 4] },
|
||||
{ "key": "padded-cell", "label": "PADDED CELL", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2], "doorType": "locked", "numbered": true },
|
||||
{ "key": "boiler-room", "label": "BOILER ROOM", "placement": "any", "weight": 1, "unique": true, "minSize": [2, 3] },
|
||||
{ "key": "attic", "label": "ATTIC", "placement": "any", "weight": 1, "unique": true, "minSize": [3, 4] },
|
||||
{ "key": "collapse", "label": "COLLAPSED AREA", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2] },
|
||||
{ "key": "void", "label": "", "placement": "any", "weight": 2, "unique": false, "minSize": [2, 2] }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,300 @@
|
||||
{
|
||||
"profiles": [
|
||||
{
|
||||
"key": "hauler",
|
||||
"label": "Class-C Hauler",
|
||||
"columns": 36,
|
||||
"rows": 18,
|
||||
"decks": 2,
|
||||
"mode": "bsp",
|
||||
"hullShape": "tapered",
|
||||
"splitBias": "horizontal",
|
||||
"theme": "industrial",
|
||||
"roomCount": 14,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 8
|
||||
},
|
||||
{
|
||||
"key": "frigate",
|
||||
"label": "Patrol Frigate",
|
||||
"columns": 28,
|
||||
"rows": 14,
|
||||
"decks": 3,
|
||||
"mode": "bsp",
|
||||
"hullShape": "hammerhead",
|
||||
"splitBias": "horizontal",
|
||||
"theme": "steel",
|
||||
"roomCount": 10,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 7
|
||||
},
|
||||
{
|
||||
"key": "research",
|
||||
"label": "Research Vessel",
|
||||
"columns": 24,
|
||||
"rows": 16,
|
||||
"decks": 2,
|
||||
"mode": "corridor",
|
||||
"hullShape": "tapered",
|
||||
"theme": "clean-corporate",
|
||||
"roomCount": 12,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 6
|
||||
},
|
||||
{
|
||||
"key": "station-sector",
|
||||
"label": "Space Station Sector",
|
||||
"columns": 30,
|
||||
"rows": 30,
|
||||
"decks": 1,
|
||||
"mode": "corridor",
|
||||
"hullShape": "cross",
|
||||
"theme": "steel",
|
||||
"roomCount": 18,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 8
|
||||
},
|
||||
{
|
||||
"key": "derelict",
|
||||
"label": "Derelict Wreck",
|
||||
"columns": 28,
|
||||
"rows": 18,
|
||||
"decks": 2,
|
||||
"mode": "bsp",
|
||||
"hullShape": "l-shape",
|
||||
"splitBias": "balanced",
|
||||
"theme": "derelict",
|
||||
"roomCount": 12,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 7
|
||||
},
|
||||
{
|
||||
"key": "custom",
|
||||
"label": "Custom",
|
||||
"columns": 32,
|
||||
"rows": 20,
|
||||
"decks": 1,
|
||||
"mode": "bsp",
|
||||
"hullShape": "rectangle",
|
||||
"splitBias": "balanced",
|
||||
"theme": "steel",
|
||||
"roomCount": 12,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 8
|
||||
},
|
||||
{
|
||||
"key": "small-dungeon",
|
||||
"label": "Small Dungeon",
|
||||
"columns": 24,
|
||||
"rows": 18,
|
||||
"decks": 1,
|
||||
"mode": "dungeon",
|
||||
"hullShape": "rectangle",
|
||||
"theme": "stone",
|
||||
"roomCount": 8,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 6,
|
||||
"loopFactor": 20,
|
||||
"corridorWidth": 1,
|
||||
"secretDoorDensity": "minimal"
|
||||
},
|
||||
{
|
||||
"key": "medium-dungeon",
|
||||
"label": "Medium Dungeon",
|
||||
"columns": 30,
|
||||
"rows": 24,
|
||||
"decks": 2,
|
||||
"mode": "dungeon",
|
||||
"hullShape": "rectangle",
|
||||
"theme": "stone",
|
||||
"roomCount": 14,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 7,
|
||||
"loopFactor": 28,
|
||||
"corridorWidth": 1,
|
||||
"secretDoorDensity": "sparse"
|
||||
},
|
||||
{
|
||||
"key": "crypt-dungeon",
|
||||
"label": "Undead Crypt",
|
||||
"columns": 28,
|
||||
"rows": 20,
|
||||
"decks": 2,
|
||||
"mode": "dungeon",
|
||||
"hullShape": "ring",
|
||||
"theme": "crypt",
|
||||
"roomCount": 10,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 6,
|
||||
"loopFactor": 22,
|
||||
"corridorWidth": 1,
|
||||
"secretDoorDensity": "sparse"
|
||||
},
|
||||
{
|
||||
"key": "cave-system",
|
||||
"label": "Cave System",
|
||||
"columns": 34,
|
||||
"rows": 28,
|
||||
"decks": 1,
|
||||
"mode": "dungeon",
|
||||
"hullShape": "cross",
|
||||
"theme": "cave",
|
||||
"roomCount": 16,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 7,
|
||||
"loopFactor": 35,
|
||||
"corridorWidth": 2,
|
||||
"secretDoorDensity": "minimal"
|
||||
},
|
||||
{
|
||||
"key": "stronghold",
|
||||
"label": "Bandit Stronghold",
|
||||
"columns": 26,
|
||||
"rows": 22,
|
||||
"decks": 2,
|
||||
"mode": "dungeon",
|
||||
"hullShape": "l-shape",
|
||||
"theme": "wood",
|
||||
"roomCount": 12,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 6,
|
||||
"loopFactor": 24,
|
||||
"corridorWidth": 1,
|
||||
"secretDoorDensity": "minimal"
|
||||
},
|
||||
{
|
||||
"key": "sewer-complex",
|
||||
"label": "Sewer Complex",
|
||||
"columns": 32,
|
||||
"rows": 26,
|
||||
"decks": 1,
|
||||
"mode": "dungeon",
|
||||
"hullShape": "rectangle",
|
||||
"theme": "sewer",
|
||||
"roomCount": 14,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 7,
|
||||
"loopFactor": 30,
|
||||
"corridorWidth": 2,
|
||||
"secretDoorDensity": "sparse"
|
||||
},
|
||||
{
|
||||
"key": "small-office",
|
||||
"label": "Small Office",
|
||||
"columns": 24,
|
||||
"rows": 18,
|
||||
"decks": 1,
|
||||
"mode": "building",
|
||||
"hullShape": "rect",
|
||||
"theme": "concrete-office",
|
||||
"roomCount": 10,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 6,
|
||||
"splitBias": "balanced",
|
||||
"buildingSubtype": "office"
|
||||
},
|
||||
{
|
||||
"key": "warehouse",
|
||||
"label": "Warehouse",
|
||||
"columns": 32,
|
||||
"rows": 20,
|
||||
"decks": 1,
|
||||
"mode": "building",
|
||||
"hullShape": "rect",
|
||||
"theme": "concrete-office",
|
||||
"roomCount": 8,
|
||||
"minRoomSize": 4,
|
||||
"maxRoomSize": 8,
|
||||
"splitBias": "horizontal",
|
||||
"buildingSubtype": "warehouse"
|
||||
},
|
||||
{
|
||||
"key": "townhouse",
|
||||
"label": "Townhouse",
|
||||
"columns": 22,
|
||||
"rows": 20,
|
||||
"decks": 3,
|
||||
"mode": "building",
|
||||
"hullShape": "rect",
|
||||
"theme": "wood-floor",
|
||||
"roomCount": 9,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 6,
|
||||
"splitBias": "vertical",
|
||||
"buildingSubtype": "residential"
|
||||
},
|
||||
{
|
||||
"key": "tavern",
|
||||
"label": "Tavern",
|
||||
"columns": 26,
|
||||
"rows": 18,
|
||||
"decks": 2,
|
||||
"mode": "building",
|
||||
"hullShape": "t-shape",
|
||||
"theme": "wood-floor",
|
||||
"roomCount": 11,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 7,
|
||||
"splitBias": "balanced",
|
||||
"buildingSubtype": "tavern"
|
||||
},
|
||||
{
|
||||
"key": "mansion",
|
||||
"label": "Mansion",
|
||||
"columns": 30,
|
||||
"rows": 24,
|
||||
"decks": 2,
|
||||
"mode": "building",
|
||||
"hullShape": "u-shape",
|
||||
"theme": "carpet",
|
||||
"roomCount": 14,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 8,
|
||||
"splitBias": "balanced",
|
||||
"buildingSubtype": "mansion"
|
||||
},
|
||||
{
|
||||
"key": "l-shape-office",
|
||||
"label": "L-Shape Office",
|
||||
"columns": 28,
|
||||
"rows": 20,
|
||||
"decks": 1,
|
||||
"mode": "building",
|
||||
"hullShape": "l-shape",
|
||||
"theme": "concrete-office",
|
||||
"roomCount": 12,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 7,
|
||||
"splitBias": "balanced",
|
||||
"buildingSubtype": "office"
|
||||
},
|
||||
{
|
||||
"key": "forest-ambush",
|
||||
"label": "Forest Ambush",
|
||||
"columns": 34,
|
||||
"rows": 26,
|
||||
"decks": 1,
|
||||
"mode": "wilderness",
|
||||
"hullShape": "clearing",
|
||||
"theme": "forest",
|
||||
"roomCount": 10,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 7,
|
||||
"corridorWidth": 1
|
||||
},
|
||||
{
|
||||
"key": "swamp-expedition",
|
||||
"label": "Swamp Expedition",
|
||||
"columns": 36,
|
||||
"rows": 28,
|
||||
"decks": 1,
|
||||
"mode": "wilderness",
|
||||
"hullShape": "ford",
|
||||
"theme": "swamp",
|
||||
"roomCount": 12,
|
||||
"minRoomSize": 3,
|
||||
"maxRoomSize": 8,
|
||||
"corridorWidth": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"SDPG.SceneButton": "Map Generator",
|
||||
"SDPG.MenuName": "Sci-Fi & Fantasy Map Generator",
|
||||
"SDPG.MenuHint": "Generate sci-fi deck plans, dungeons, buildings, and wilderness battlemaps as Foundry scenes.",
|
||||
"SDPG.AppTitle": "Sci-Fi & Fantasy Map Generator",
|
||||
"SDPG.ToolbarGroup": "Map Generator",
|
||||
"SDPG.ToolbarOpen": "Open Sci-Fi & Fantasy Map Generator"
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"id": "scifi-deckplan-generator",
|
||||
"title": "Sci-Fi & Fantasy Map Generator",
|
||||
"description": "Procedurally generates sci-fi deck plans, fantasy dungeons, horror buildings, wilderness encounter maps, and tactical battlemaps as Foundry VTT scenes.",
|
||||
"version": "0.9.1",
|
||||
"compatibility": {
|
||||
"minimum": "13",
|
||||
"verified": "13.350",
|
||||
"maximum": "13"
|
||||
},
|
||||
"authors": [
|
||||
{
|
||||
"name": "Tim Evans"
|
||||
}
|
||||
],
|
||||
"esmodules": [
|
||||
"module/scifi-deckplan-generator.mjs"
|
||||
],
|
||||
"styles": [
|
||||
"styles/scifi-deckplan-generator.css"
|
||||
],
|
||||
"languages": [
|
||||
{
|
||||
"lang": "en",
|
||||
"name": "English",
|
||||
"path": "lang/en.json"
|
||||
}
|
||||
],
|
||||
"manifest": "https://raw.githubusercontent.com/slaguru666/scifi-deckplan-generator/main/module.json",
|
||||
"download": "https://github.com/slaguru666/scifi-deckplan-generator/releases/latest/download/scifi-deckplan-generator.zip"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,214 @@
|
||||
.scifi-deckplan-generator .window-content,
|
||||
.sdpg-app {
|
||||
background: linear-gradient(180deg, #0d1520 0%, #111e2c 100%);
|
||||
color: #e9f4fb;
|
||||
}
|
||||
|
||||
.scifi-deckplan-generator {
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
.scifi-deckplan-generator .window-content {
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
max-height: calc(100vh - 120px);
|
||||
min-height: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.sdpg-app {
|
||||
display: grid;
|
||||
gap: 14px;
|
||||
padding: 10px;
|
||||
min-height: min-content;
|
||||
}
|
||||
|
||||
.sdpg-section {
|
||||
background: rgba(255, 255, 255, 0.05);
|
||||
border: 1px solid rgba(74, 156, 200, 0.24);
|
||||
border-radius: 12px;
|
||||
padding: 14px;
|
||||
box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
|
||||
}
|
||||
|
||||
.sdpg-section h2 {
|
||||
margin: 0 0 12px;
|
||||
color: #8fd4ff;
|
||||
font-size: 1rem;
|
||||
letter-spacing: 0.08em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.sdpg-grid {
|
||||
display: grid;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.sdpg-grid-2 {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.sdpg-grid label,
|
||||
.sdpg-checks label {
|
||||
display: grid;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.sdpg-mode-field.is-hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.sdpg-grid label span {
|
||||
font-size: 0.84rem;
|
||||
color: rgba(233, 244, 251, 0.82);
|
||||
}
|
||||
|
||||
.sdpg-seed-row {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) auto;
|
||||
gap: 8px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.sdpg-grid input,
|
||||
.sdpg-grid select {
|
||||
width: 100%;
|
||||
padding: 7px 9px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(143, 212, 255, 0.18);
|
||||
background: rgba(6, 11, 18, 0.88);
|
||||
color: #f7fcff;
|
||||
}
|
||||
|
||||
.sdpg-grid input[type="range"] {
|
||||
padding: 0;
|
||||
accent-color: #8fd4ff;
|
||||
min-height: 36px;
|
||||
}
|
||||
|
||||
.sdpg-reroll-seed {
|
||||
min-width: 40px;
|
||||
height: 36px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(143, 212, 255, 0.22);
|
||||
background: rgba(24, 43, 59, 0.96);
|
||||
color: #f4fbff;
|
||||
}
|
||||
|
||||
.sdpg-grid input:disabled,
|
||||
.sdpg-grid select:disabled,
|
||||
.sdpg-checks input:disabled {
|
||||
opacity: 0.45;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.sdpg-checks {
|
||||
display: grid;
|
||||
gap: 6px;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
.sdpg-actions {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
margin-top: 14px;
|
||||
}
|
||||
|
||||
.sdpg-actions-secondary {
|
||||
margin-top: 12px;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.sdpg-actions-secondary select {
|
||||
min-width: 240px;
|
||||
max-width: 340px;
|
||||
padding: 7px 9px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(143, 212, 255, 0.18);
|
||||
background: rgba(6, 11, 18, 0.88);
|
||||
color: #f7fcff;
|
||||
}
|
||||
|
||||
.sdpg-actions button {
|
||||
border-radius: 10px;
|
||||
padding: 8px 12px;
|
||||
color: #f4fbff;
|
||||
background: linear-gradient(180deg, #2b5f7c 0%, #1b3e55 100%);
|
||||
border: 1px solid rgba(143, 212, 255, 0.22);
|
||||
}
|
||||
|
||||
.sdpg-preset-list {
|
||||
display: grid;
|
||||
gap: 8px;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.sdpg-preset-card {
|
||||
display: grid;
|
||||
gap: 4px;
|
||||
padding: 10px;
|
||||
border-radius: 10px;
|
||||
background: rgba(255, 255, 255, 0.04);
|
||||
}
|
||||
|
||||
.sdpg-preset-card strong {
|
||||
color: #c8ecff;
|
||||
}
|
||||
|
||||
.sdpg-preset-card span {
|
||||
font-size: 0.8rem;
|
||||
color: rgba(233, 244, 251, 0.76);
|
||||
line-height: 1.35;
|
||||
}
|
||||
|
||||
.sdpg-preset-card em {
|
||||
font-size: 0.72rem;
|
||||
color: rgba(143, 212, 255, 0.74);
|
||||
font-style: normal;
|
||||
letter-spacing: 0.04em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.sdpg-preview {
|
||||
display: grid;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.sdpg-preview-frame {
|
||||
min-height: 180px;
|
||||
max-height: 260px;
|
||||
border-radius: 12px;
|
||||
border: 1px solid rgba(143, 212, 255, 0.24);
|
||||
background: linear-gradient(180deg, rgba(8, 12, 18, 0.92), rgba(18, 28, 40, 0.98));
|
||||
display: grid;
|
||||
place-items: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.sdpg-preview-frame img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
.sdpg-preview-summary {
|
||||
font-size: 0.84rem;
|
||||
line-height: 1.45;
|
||||
color: rgba(233, 244, 251, 0.82);
|
||||
}
|
||||
|
||||
.sdpg-scene-directory-actions {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
@media (max-width: 980px) {
|
||||
.sdpg-grid-2,
|
||||
.sdpg-preset-list {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,304 @@
|
||||
<div class="sdpg-app">
|
||||
<section class="sdpg-section">
|
||||
<h2>Generation</h2>
|
||||
<div class="sdpg-grid sdpg-grid-2">
|
||||
<label>
|
||||
<span>Generation Mode</span>
|
||||
<select name="mode">
|
||||
{{#each modes as |mode|}}
|
||||
<option value="{{mode.value}}" {{#if mode.selected}}selected{{/if}}>{{mode.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Map Profile</span>
|
||||
<select name="profile">
|
||||
{{#each profiles as |profile|}}
|
||||
<option value="{{profile.value}}" {{#if profile.selected}}selected{{/if}}>{{profile.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Map Name</span>
|
||||
<input type="text" name="shipName" value="{{defaults.shipName}}" />
|
||||
</label>
|
||||
<label>
|
||||
<span>Seed</span>
|
||||
<div class="sdpg-seed-row">
|
||||
<input type="text" name="seed" value="{{defaults.seed}}" />
|
||||
<button type="button" class="sdpg-reroll-seed" title="Generate new random seed">🎲</button>
|
||||
</div>
|
||||
</label>
|
||||
<label>
|
||||
<span>Deck Width</span>
|
||||
<input type="number" name="columns" min="10" max="80" value="{{defaults.columns}}" />
|
||||
</label>
|
||||
<label>
|
||||
<span>Deck Height</span>
|
||||
<input type="number" name="rows" min="6" max="50" value="{{defaults.rows}}" />
|
||||
</label>
|
||||
<label>
|
||||
<span>Grid Size</span>
|
||||
<select name="gridSize">
|
||||
{{#each gridSizes as |grid|}}
|
||||
<option value="{{grid.value}}" {{#if grid.selected}}selected{{/if}}>{{grid.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Grid Mode</span>
|
||||
<select name="gridMode">
|
||||
{{#each gridModes as |grid|}}
|
||||
<option value="{{grid.value}}" {{#if grid.selected}}selected{{/if}}>{{grid.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Decks</span>
|
||||
<input type="number" name="decks" min="1" max="8" value="{{defaults.decks}}" />
|
||||
</label>
|
||||
<label>
|
||||
<span>Theme</span>
|
||||
<select name="theme">
|
||||
{{#each themes as |theme|}}
|
||||
<option value="{{theme.value}}" {{#if theme.selected}}selected{{/if}}>{{theme.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Hull / Footprint</span>
|
||||
<select name="hullShape">
|
||||
{{#each hullShapes as |shape|}}
|
||||
<option value="{{shape.value}}" {{#if shape.selected}}selected{{/if}}>{{shape.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label data-modes="building" class="sdpg-mode-field">
|
||||
<span>Building Type</span>
|
||||
<select name="buildingSubtype">
|
||||
{{#each buildingSubtypes as |subtype|}}
|
||||
<option value="{{subtype.value}}" {{#if subtype.selected}}selected{{/if}}>{{subtype.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Coordinate Labels</span>
|
||||
<select name="coordinates">
|
||||
{{#each coordinates as |coord|}}
|
||||
<option value="{{coord.value}}" {{#if coord.selected}}selected{{/if}}>{{coord.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Room Count</span>
|
||||
<input type="number" name="roomCount" min="6" max="40" value="{{defaults.roomCount}}" />
|
||||
</label>
|
||||
<label data-modes="bsp corridor dungeon building geomorph" class="sdpg-mode-field">
|
||||
<span>Corner Style</span>
|
||||
<select name="cornerStyle">
|
||||
{{#each cornerStyles as |style|}}
|
||||
<option value="{{style.value}}" {{#if style.selected}}selected{{/if}}>{{style.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label data-modes="bsp corridor dungeon building geomorph" class="sdpg-mode-field">
|
||||
<span>Chamfer Size</span>
|
||||
<select name="chamferSize">
|
||||
{{#each chamferSizes as |size|}}
|
||||
<option value="{{size.value}}" {{#if size.selected}}selected{{/if}}>{{size.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label data-modes="bsp corridor building" class="sdpg-mode-field">
|
||||
<span>Min Room Size</span>
|
||||
<input type="number" name="minRoomSize" min="2" max="8" value="{{defaults.minRoomSize}}" />
|
||||
</label>
|
||||
<label data-modes="bsp corridor building" class="sdpg-mode-field">
|
||||
<span>Max Room Size</span>
|
||||
<input type="number" name="maxRoomSize" min="4" max="12" value="{{defaults.maxRoomSize}}" />
|
||||
</label>
|
||||
<label data-modes="bsp building" class="sdpg-mode-field">
|
||||
<span>Split Bias</span>
|
||||
<select name="splitBias">
|
||||
{{#each splitBiases as |bias|}}
|
||||
<option value="{{bias.value}}" {{#if bias.selected}}selected{{/if}}>{{bias.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label data-modes="bsp building" class="sdpg-mode-field">
|
||||
<span>Corridor Style</span>
|
||||
<select name="corridorStyle">
|
||||
{{#each corridorStyles as |style|}}
|
||||
<option value="{{style.value}}" {{#if style.selected}}selected{{/if}}>{{style.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label data-modes="corridor dungeon" class="sdpg-mode-field">
|
||||
<span>Loop Factor %</span>
|
||||
<input type="number" name="loopFactor" min="0" max="100" value="{{defaults.loopFactor}}" />
|
||||
</label>
|
||||
<label data-modes="corridor dungeon" class="sdpg-mode-field">
|
||||
<span>Corridor Width</span>
|
||||
<select name="corridorWidth">
|
||||
{{#each corridorWidths as |width|}}
|
||||
<option value="{{width.value}}" {{#if width.selected}}selected{{/if}}>{{width.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label data-modes="bsp corridor dungeon building" class="sdpg-mode-field">
|
||||
<span>Secret Doors</span>
|
||||
<select name="secretDoorDensity">
|
||||
{{#each secretDoorDensities as |d|}}
|
||||
<option value="{{d.value}}" {{#if d.selected}}selected{{/if}}>{{d.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label data-modes="bsp corridor" class="sdpg-mode-field">
|
||||
<span>Maintenance Shafts</span>
|
||||
<select name="maintenanceShaftDensity">
|
||||
{{#each maintenanceShaftDensities as |d|}}
|
||||
<option value="{{d.value}}" {{#if d.selected}}selected{{/if}}>{{d.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<input type="checkbox" name="placeRegions" {{#if defaults.placeRegions}}checked{{/if}} />
|
||||
<span>Place Scene Regions (v13)</span>
|
||||
</label>
|
||||
<label data-modes="bsp corridor dungeon building" class="sdpg-mode-field">
|
||||
<span>Furniture</span>
|
||||
<select name="furnitureDensity">
|
||||
{{#each furnitureDensities as |density|}}
|
||||
<option value="{{density.value}}" {{#if density.selected}}selected{{/if}}>{{density.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Mission Brief Style</span>
|
||||
<select name="missionTemplate">
|
||||
{{#each missionTemplates as |template|}}
|
||||
<option value="{{template.value}}" {{#if template.selected}}selected{{/if}}>{{template.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Encounter Faction</span>
|
||||
<select name="encounterFaction">
|
||||
{{#each encounterFactions as |faction|}}
|
||||
<option value="{{faction.value}}" {{#if faction.selected}}selected{{/if}}>{{faction.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Encounter Density</span>
|
||||
<select name="encounterDensity">
|
||||
{{#each encounterDensities as |density|}}
|
||||
<option value="{{density.value}}" {{#if density.selected}}selected{{/if}}>{{density.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Encounter Actor Pack</span>
|
||||
<select name="encounterPack">
|
||||
{{#each actorPacks as |pack|}}
|
||||
<option value="{{pack.value}}" {{#if pack.selected}}selected{{/if}}>{{pack.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Room Population Pack</span>
|
||||
<select name="roomPopulationPack">
|
||||
{{#each roomPopulationPacks as |pack|}}
|
||||
<option value="{{pack.value}}" {{#if pack.selected}}selected{{/if}}>{{pack.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Map Age</span>
|
||||
<input type="range" name="mapAge" min="0" max="100" step="5" value="{{defaults.mapAge}}" />
|
||||
</label>
|
||||
<label>
|
||||
<span>Faction Territory</span>
|
||||
<select name="factionPreset">
|
||||
{{#each factionPresets as |preset|}}
|
||||
<option value="{{preset.value}}" {{#if preset.selected}}selected{{/if}}>{{preset.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Reroll Target</span>
|
||||
<select name="regenerateTarget">
|
||||
{{#each regenerateTargets as |target|}}
|
||||
<option value="{{target.value}}" {{#if target.selected}}selected{{/if}}>{{target.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
<span>Target Scene Folder</span>
|
||||
<select name="targetSceneFolder">
|
||||
{{#each sceneFolders as |folder|}}
|
||||
<option value="{{folder.value}}" {{#if folder.selected}}selected{{/if}}>{{folder.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
<div class="sdpg-checks">
|
||||
<label><input type="checkbox" name="compactPrintMode" {{#if defaults.compactPrintMode}}checked{{/if}} /> One-page compact print mode</label>
|
||||
<label><input type="checkbox" name="circularSpecialRooms" {{#if defaults.circularSpecialRooms}}checked{{/if}} /> Circular special rooms</label>
|
||||
<label><input type="checkbox" name="softRoomOutlines" {{#if defaults.softRoomOutlines}}checked{{/if}} /> Soft room outlines</label>
|
||||
<label><input type="checkbox" name="activateScenes" {{#if defaults.activateScenes}}checked{{/if}} /> Activate final scene</label>
|
||||
<label><input type="checkbox" name="regenerateInPlace" {{#if defaults.regenerateInPlace}}checked{{/if}} /> Regenerate viewed scene in place (single deck)</label>
|
||||
<label><input type="checkbox" name="showRoomLabels" {{#if defaults.showRoomLabels}}checked{{/if}} /> Add room labels</label>
|
||||
<label><input type="checkbox" name="placeLights" {{#if defaults.placeLights}}checked{{/if}} /> Place ambient lights</label>
|
||||
<label><input type="checkbox" name="generateMissionBrief" {{#if defaults.generateMissionBrief}}checked{{/if}} /> Create mission brief journal</label>
|
||||
<label><input type="checkbox" name="generateMissionPacket" {{#if defaults.generateMissionPacket}}checked{{/if}} /> Export mission packet handout</label>
|
||||
<label><input type="checkbox" name="seedEncounters" {{#if defaults.seedEncounters}}checked{{/if}} /> Seed hidden encounter tokens</label>
|
||||
<label><input type="checkbox" name="populateRoomsFromCompendium" {{#if defaults.populateRoomsFromCompendium}}checked{{/if}} /> Populate matching rooms from compendium</label>
|
||||
<label><input type="checkbox" name="createGmOverlay" {{#if defaults.createGmOverlay}}checked{{/if}} /> Create GM-only overlay tile</label>
|
||||
<label><input type="checkbox" name="createRoomNotes" {{#if defaults.createRoomNotes}}checked{{/if}} /> Create GM-only room / zone notes</label>
|
||||
<label><input type="checkbox" name="exportMetadataJson" {{#if defaults.exportMetadataJson}}checked{{/if}} /> Export metadata JSON</label>
|
||||
<label data-modes="bsp corridor" class="sdpg-mode-field"><input type="checkbox" name="exportMothershipJson" {{#if defaults.exportMothershipJson}}checked{{/if}} /> Export Mothership viewer JSON</label>
|
||||
</div>
|
||||
<div class="sdpg-actions sdpg-actions-secondary">
|
||||
<select name="savedPreset">
|
||||
{{#each savedPresets as |preset|}}
|
||||
<option value="{{preset.value}}" {{#if preset.selected}}selected{{/if}}>{{preset.label}}</option>
|
||||
{{/each}}
|
||||
</select>
|
||||
<button type="button" data-action="load-saved-preset"><i class="fas fa-folder-open"></i> Load Preset</button>
|
||||
<button type="button" data-action="save-current-preset"><i class="fas fa-save"></i> Save Preset</button>
|
||||
<button type="button" data-action="delete-saved-preset"><i class="fas fa-trash"></i> Delete Preset</button>
|
||||
</div>
|
||||
<div class="sdpg-actions">
|
||||
<button type="button" data-action="apply-profile"><i class="fas fa-sliders"></i> Apply Profile</button>
|
||||
<button type="button" data-action="preview-map"><i class="fas fa-eye"></i> Preview</button>
|
||||
<button type="button" data-action="export-png"><i class="fas fa-image"></i> Save PNG</button>
|
||||
<button type="button" data-action="share-seed"><i class="fas fa-share-alt"></i> Share Seed</button>
|
||||
<button type="button" data-action="import-seed"><i class="fas fa-file-import"></i> Import Seed</button>
|
||||
<button type="submit"><i class="fas fa-rocket"></i> Generate Map</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sdpg-section">
|
||||
<h2>Preview</h2>
|
||||
<div class="sdpg-preview" data-preview-root>
|
||||
<div class="sdpg-preview-frame">
|
||||
<img alt="Map preview" data-preview-image />
|
||||
</div>
|
||||
<div class="sdpg-preview-summary" data-preview-summary>Preview will appear here.</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="sdpg-section">
|
||||
<h2>Profiles</h2>
|
||||
<div class="sdpg-preset-list">
|
||||
{{#each profileCards as |profile|}}
|
||||
<div class="sdpg-preset-card">
|
||||
<strong>{{profile.label}}</strong>
|
||||
<em>{{profile.mode}}</em>
|
||||
<span>{{profile.summary}}</span>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
Reference in New Issue
Block a user