better wirer behavior etc
This commit is contained in:
parent
bc4976b324
commit
6a5c2fc951
24 changed files with 11347 additions and 8198 deletions
|
|
@ -938,7 +938,7 @@ function wireView()
|
|||
wireDirtyRooms = {}
|
||||
editorStatus = selectedCircuitId
|
||||
and "Circuit selected. Drag to draw; right-drag erases; arrow keys pan."
|
||||
or "Click a wired door to select its circuit, then drag to its switches."
|
||||
or "Drag from a wired door and release on a switch."
|
||||
end
|
||||
|
||||
function worldView()
|
||||
|
|
@ -1027,10 +1027,12 @@ local function beginWireBrush(x, y, button)
|
|||
end
|
||||
end
|
||||
if not selectedCircuitId then
|
||||
editorStatus = "Start by clicking a wired door."
|
||||
editorStatus = "Start by dragging from a wired door."
|
||||
return
|
||||
end
|
||||
rememberWireRooms(gameWorld:ensureWireAt(cell, selectedCircuitId))
|
||||
-- Do not materialize a wire until this stroke actually crosses into an
|
||||
-- adjacent cell. Previously a click on a door wrote a zero-length track,
|
||||
-- which later behaved like an orphaned circuit underneath that door.
|
||||
else
|
||||
-- Prefer the selected circuit when several routes overlap here; otherwise
|
||||
-- adopt the top route. Repeated right-clicks can therefore remove every
|
||||
|
|
@ -1439,7 +1441,7 @@ function editorDraw()
|
|||
love.graphics.printf("No circuit selected", 10, 54, sb.w - 20, "center")
|
||||
end
|
||||
love.graphics.printf(
|
||||
"Click a door to start a new run, or a wire to edit that run. Each run ends at one switch; start another run from the door for another switch.\n\nLeft-drag draws. Right-drag erases. Independent wires may share a cell without connecting.\n\nArrow keys pan by one room.",
|
||||
"Drag from a door to start a new run, or drag from a wire to edit that run. Release on a switch to terminate it; start another run from the door for another switch.\n\nLeft-drag draws. Right-drag erases. Independent wires may share a cell without connecting.\n\nArrow keys pan by one room.",
|
||||
24, 100, sb.w - 48, "left"
|
||||
)
|
||||
if editorStatus then
|
||||
|
|
|
|||
9
main.lua
9
main.lua
|
|
@ -8,6 +8,7 @@ require "libs/TSerial"
|
|||
require "_debug_helpers"
|
||||
require "_helpers"
|
||||
require "input"
|
||||
require "profiler"
|
||||
require "color"
|
||||
require "room"
|
||||
require "world"
|
||||
|
|
@ -145,6 +146,7 @@ function love.draw()
|
|||
love.graphics.draw(finalCanvas, 0, 0)
|
||||
love.graphics.draw(sideBarCanvas, sideBarBox.x, sideBarBox.y)
|
||||
love.graphics.print("Current FPS: "..tostring(love.timer.getFPS( )), 10, 10)
|
||||
PerfProfiler:draw()
|
||||
Dialogue.draw()
|
||||
love.graphics.setCanvas()
|
||||
|
||||
|
|
@ -164,6 +166,13 @@ function love.draw()
|
|||
end
|
||||
|
||||
function love.keypressed(key)
|
||||
-- Developer CPU sampling: record a representative moving sequence, then
|
||||
-- press F9 again to write folded stacks for flamegraph.pl.
|
||||
if key == "f9" then
|
||||
PerfProfiler:toggle()
|
||||
return
|
||||
end
|
||||
|
||||
-- Available even while a dialogue is open, so the player never has to
|
||||
-- dismiss something important just to change the colour treatment.
|
||||
if key == "f4" then
|
||||
|
|
|
|||
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
2461
rooms/jorge2.sav
2461
rooms/jorge2.sav
File diff suppressed because it is too large
Load diff
|
|
@ -1,76 +1,60 @@
|
|||
{
|
||||
wires={
|
||||
},
|
||||
objects={
|
||||
{
|
||||
color="red",
|
||||
y=4,
|
||||
x=8,
|
||||
class="toilet"
|
||||
class="toilet",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
y=4,
|
||||
x=6,
|
||||
class="toilet"
|
||||
class="toilet",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
y=4,
|
||||
x=4,
|
||||
class="toilet"
|
||||
class="toilet",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
y=4,
|
||||
x=8,
|
||||
class="toilet"
|
||||
class="toilet",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
y=4,
|
||||
x=6,
|
||||
class="toilet"
|
||||
class="toilet",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
y=4,
|
||||
x=4,
|
||||
class="toilet"
|
||||
class="toilet",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
y=4,
|
||||
x=8,
|
||||
class="toilet"
|
||||
class="toilet",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
y=4,
|
||||
x=6,
|
||||
class="toilet"
|
||||
class="toilet",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
y=4,
|
||||
x=4,
|
||||
class="toilet"
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
y=8,
|
||||
x=6,
|
||||
class="player"
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
y=8,
|
||||
x=6,
|
||||
class="player"
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
y=8,
|
||||
x=6,
|
||||
class="player"
|
||||
class="toilet",
|
||||
y=4
|
||||
}
|
||||
}
|
||||
}
|
||||
516
rooms/ok.sav
516
rooms/ok.sav
File diff suppressed because it is too large
Load diff
|
|
@ -1,207 +1,186 @@
|
|||
{
|
||||
objects={
|
||||
{
|
||||
color="green",
|
||||
x=3,
|
||||
y=5,
|
||||
active=true,
|
||||
class="player"
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=3,
|
||||
y=5,
|
||||
active=true,
|
||||
class="player"
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
x=3,
|
||||
y=5,
|
||||
active=true,
|
||||
class="player"
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=2,
|
||||
y=4,
|
||||
class="box"
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=2,
|
||||
y=9,
|
||||
class="box"
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=3,
|
||||
y=6,
|
||||
class="box"
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
x=2,
|
||||
y=9,
|
||||
class="box"
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
x=3,
|
||||
y=6,
|
||||
class="box"
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
x=3,
|
||||
y=9,
|
||||
class="wired_switch"
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=3,
|
||||
y=9,
|
||||
class="wired_switch"
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=3,
|
||||
y=9,
|
||||
class="wired_switch"
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=3,
|
||||
y=4,
|
||||
class="wired_switch"
|
||||
}
|
||||
},
|
||||
wires={
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=6,
|
||||
x=4,
|
||||
y=3,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=3
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=10,
|
||||
x=5,
|
||||
y=3,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=3
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=10,
|
||||
x=6,
|
||||
y=3,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=3
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=12,
|
||||
x=7,
|
||||
y=3,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=3
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=6,
|
||||
x=10,
|
||||
y=3,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=3
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=10,
|
||||
x=11,
|
||||
y=3,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=3
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=2,
|
||||
x=3,
|
||||
y=4,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=4
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=9,
|
||||
x=4,
|
||||
y=4,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=4
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=3,
|
||||
x=7,
|
||||
y=4,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=4
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=10,
|
||||
x=8,
|
||||
y=4,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=4
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=10,
|
||||
x=9,
|
||||
y=4,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=4
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bd969_000a",
|
||||
edges=9,
|
||||
x=10,
|
||||
y=4,
|
||||
circuit="wire_6a7bd969_000a"
|
||||
y=4
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bdb2a_0001",
|
||||
edges=2,
|
||||
x=3,
|
||||
y=9,
|
||||
circuit="wire_6a7bdb2a_0001"
|
||||
y=9
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bdb2a_0001",
|
||||
edges=10,
|
||||
x=4,
|
||||
y=9,
|
||||
circuit="wire_6a7bdb2a_0001"
|
||||
y=9
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bdb2a_0001",
|
||||
edges=10,
|
||||
x=5,
|
||||
y=9,
|
||||
circuit="wire_6a7bdb2a_0001"
|
||||
y=9
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bdb2a_0001",
|
||||
edges=10,
|
||||
x=6,
|
||||
y=9,
|
||||
circuit="wire_6a7bdb2a_0001"
|
||||
y=9
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bdb2a_0001",
|
||||
edges=10,
|
||||
x=7,
|
||||
y=9,
|
||||
circuit="wire_6a7bdb2a_0001"
|
||||
y=9
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bdb2a_0001",
|
||||
edges=10,
|
||||
x=8,
|
||||
y=9,
|
||||
circuit="wire_6a7bdb2a_0001"
|
||||
y=9
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bdb2a_0001",
|
||||
edges=10,
|
||||
x=9,
|
||||
y=9,
|
||||
circuit="wire_6a7bdb2a_0001"
|
||||
y=9
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bdb2a_0001",
|
||||
edges=10,
|
||||
x=10,
|
||||
y=9,
|
||||
circuit="wire_6a7bdb2a_0001"
|
||||
y=9
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bdb2a_0001",
|
||||
edges=10,
|
||||
x=11,
|
||||
y=9,
|
||||
circuit="wire_6a7bdb2a_0001"
|
||||
y=9
|
||||
}
|
||||
},
|
||||
objects={
|
||||
{
|
||||
color="red",
|
||||
x=2,
|
||||
class="box",
|
||||
y=9
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
x=3,
|
||||
class="box",
|
||||
y=6
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=2,
|
||||
class="box",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=2,
|
||||
class="box",
|
||||
y=9
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=3,
|
||||
class="box",
|
||||
y=6
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
x=3,
|
||||
class="wired_switch",
|
||||
y=9
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=3,
|
||||
class="wired_switch",
|
||||
y=9
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=3,
|
||||
class="wired_switch",
|
||||
y=9
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=3,
|
||||
class="wired_switch",
|
||||
y=4
|
||||
}
|
||||
}
|
||||
}
|
||||
1012
rooms/room_10_15.sav
Normal file
1012
rooms/room_10_15.sav
Normal file
File diff suppressed because it is too large
Load diff
6
rooms/room_13_13.sav
Normal file
6
rooms/room_13_13.sav
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
objects={
|
||||
},
|
||||
wires={
|
||||
}
|
||||
}
|
||||
1153
rooms/room_13_14.sav
Normal file
1153
rooms/room_13_14.sav
Normal file
File diff suppressed because it is too large
Load diff
957
rooms/room_14_14.sav
Normal file
957
rooms/room_14_14.sav
Normal file
|
|
@ -0,0 +1,957 @@
|
|||
{
|
||||
objects={
|
||||
{
|
||||
x=1,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=2,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=4,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=10,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=10,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=9,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=8,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=7,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=5,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=3,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=4,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=3,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=10,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
color="blue",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
color="blue",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="blue",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=4,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=2,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=2,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=4,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
color="blue",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=11,
|
||||
y=6,
|
||||
class="wired_door"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="blue",
|
||||
y=7,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="blue",
|
||||
y=6,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="blue",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=2,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=4,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=10,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=10,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=9,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=8,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=7,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=5,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=3,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=4,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=3,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=10,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
color="red",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
color="red",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="red",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=4,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=2,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=2,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=4,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
color="red",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=11,
|
||||
y=6,
|
||||
class="wired_door"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="red",
|
||||
y=7,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="red",
|
||||
y=6,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="red",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=2,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=4,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=10,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=11,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=10,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=9,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=8,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=7,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=5,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=3,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=4,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=3,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=10,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
color="green",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
color="green",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="green",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=4,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=2,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=2,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=4,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
color="green",
|
||||
y=1,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=11,
|
||||
y=6,
|
||||
class="wired_door"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="green",
|
||||
y=7,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="green",
|
||||
y=6,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
color="green",
|
||||
y=2,
|
||||
class="static_wall"
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
color="red",
|
||||
y=8,
|
||||
class="wired_switch"
|
||||
}
|
||||
},
|
||||
wires={
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=9,
|
||||
y=6,
|
||||
edges=6
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=10,
|
||||
y=6,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=11,
|
||||
y=6,
|
||||
edges=8
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=9,
|
||||
y=7,
|
||||
edges=5
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bec68_0012",
|
||||
x=1,
|
||||
y=8,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bec68_0012",
|
||||
x=2,
|
||||
y=8,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bec68_0012",
|
||||
x=3,
|
||||
y=8,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bec68_0012",
|
||||
x=4,
|
||||
y=8,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bec68_0012",
|
||||
x=5,
|
||||
y=8,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be8d1_000a",
|
||||
x=6,
|
||||
y=8,
|
||||
edges=0
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7bec68_0012",
|
||||
x=6,
|
||||
y=8,
|
||||
edges=8
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=8,
|
||||
y=8,
|
||||
edges=6
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=9,
|
||||
y=8,
|
||||
edges=9
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=8,
|
||||
y=9,
|
||||
edges=5
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=1,
|
||||
y=10,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=2,
|
||||
y=10,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=3,
|
||||
y=10,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=4,
|
||||
y=10,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=5,
|
||||
y=10,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=6,
|
||||
y=10,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=7,
|
||||
y=10,
|
||||
edges=10
|
||||
},
|
||||
{
|
||||
circuit="wire_6a7be918_000b",
|
||||
x=8,
|
||||
y=10,
|
||||
edges=9
|
||||
}
|
||||
}
|
||||
}
|
||||
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
File diff suppressed because it is too large
Load diff
|
|
@ -1,548 +1,586 @@
|
|||
{
|
||||
wires={
|
||||
},
|
||||
objects={
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=1,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=2,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=3,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=4,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=5,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=6,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=7,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=8,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=9,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=10,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=2
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=3
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=5
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=6
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=7
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=8
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=9
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=10
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=1,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=2,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=3,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=5,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=6,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=7,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=8,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=9,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=10,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="blue",
|
||||
color="red",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
x=1,
|
||||
y=1
|
||||
x=8,
|
||||
class="box",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
x=2,
|
||||
y=1
|
||||
x=7,
|
||||
class="spiky_box_2x1_11",
|
||||
y=3
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
x=3,
|
||||
y=1
|
||||
x=6,
|
||||
class="spiky_box_2x1_11",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
x=4,
|
||||
class="spiky_box_2x1_11",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
color="red",
|
||||
x=3,
|
||||
class="box_2x2_11-10",
|
||||
y=3
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=1,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=2,
|
||||
class="static_wall",
|
||||
color="red",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=3,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=4,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
color="green",
|
||||
x=5,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=6,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=7,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=8,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=9,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=10,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=2
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=3
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=5
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=6
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=7
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=8
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=9
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=10
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=1,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=2,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=3,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=5,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=6,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=7,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=8,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=9,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=10,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="red",
|
||||
color="green",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
x=1,
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
x=2,
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
x=3,
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
x=4,
|
||||
class="box",
|
||||
y=3
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=1,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=2,
|
||||
class="static_wall",
|
||||
color="green",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=3,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=4,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=5,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=6,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=7,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=8,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=9,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=10,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=1
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=2
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=3
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=4
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=5
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=6
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=7
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=8
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=9
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=10
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=1,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=2,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=3,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=5,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=6,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=7,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=8,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=9,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
color="blue",
|
||||
x=10,
|
||||
y=11
|
||||
},
|
||||
{
|
||||
class="static_wall",
|
||||
color="green",
|
||||
x=11,
|
||||
y=11
|
||||
},
|
||||
{
|
||||
color="blue",
|
||||
x=11,
|
||||
class="static_wall",
|
||||
y=11
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
class="npc",
|
||||
x=5,
|
||||
y=2
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
2120
rooms/white_ok.sav
2120
rooms/white_ok.sav
File diff suppressed because it is too large
Load diff
202
rooms/world.sav
202
rooms/world.sav
|
|
@ -1,232 +1,252 @@
|
|||
{
|
||||
rooms={
|
||||
{
|
||||
x=10,
|
||||
name="3",
|
||||
y=10
|
||||
y=10,
|
||||
x=10
|
||||
},
|
||||
{
|
||||
x=12,
|
||||
name="5",
|
||||
y=10
|
||||
y=10,
|
||||
x=12
|
||||
},
|
||||
{
|
||||
x=12,
|
||||
name="village_1",
|
||||
y=9
|
||||
y=9,
|
||||
x=12
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
name="village_4",
|
||||
y=8
|
||||
y=8,
|
||||
x=11
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
name="yellow_1",
|
||||
y=7
|
||||
y=7,
|
||||
x=11
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
name="yellow_3",
|
||||
y=6
|
||||
y=6,
|
||||
x=11
|
||||
},
|
||||
{
|
||||
x=12,
|
||||
name="yellow_2",
|
||||
y=7
|
||||
y=7,
|
||||
x=12
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
name="yellow_4",
|
||||
y=5
|
||||
y=5,
|
||||
x=11
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
name="yellow_5",
|
||||
y=4
|
||||
y=4,
|
||||
x=11
|
||||
},
|
||||
{
|
||||
x=10,
|
||||
name="yellow_6",
|
||||
y=5
|
||||
y=5,
|
||||
x=10
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
name="default",
|
||||
y=1
|
||||
y=1,
|
||||
x=1
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
name="old_yellow_3",
|
||||
y=1
|
||||
y=1,
|
||||
x=3
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
name="test_patt",
|
||||
y=1
|
||||
y=1,
|
||||
x=5
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
name="test_patt_update",
|
||||
y=1
|
||||
y=1,
|
||||
x=7
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
name="white_asymmetrical",
|
||||
y=1
|
||||
y=1,
|
||||
x=9
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
name="white_ok",
|
||||
y=1
|
||||
y=1,
|
||||
x=11
|
||||
},
|
||||
{
|
||||
x=13,
|
||||
name="white_primary",
|
||||
y=1
|
||||
y=1,
|
||||
x=13
|
||||
},
|
||||
{
|
||||
x=15,
|
||||
name="yellow_arches",
|
||||
y=1
|
||||
y=1,
|
||||
x=15
|
||||
},
|
||||
{
|
||||
x=17,
|
||||
name="yellow_asymmetrical",
|
||||
y=1
|
||||
y=1,
|
||||
x=17
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
name="yellow_cc_moustache",
|
||||
y=3
|
||||
y=3,
|
||||
x=1
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
name="yellow_color_changing_levvel_1",
|
||||
y=3
|
||||
y=3,
|
||||
x=3
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
name="yellow_smile",
|
||||
y=3
|
||||
y=3,
|
||||
x=7
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
name="2",
|
||||
y=10
|
||||
y=10,
|
||||
x=9
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
name="room_11_09",
|
||||
y=9
|
||||
y=9,
|
||||
x=11
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
name="yellow_skull",
|
||||
y=3
|
||||
y=3,
|
||||
x=9
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
name="jorge_room",
|
||||
y=5
|
||||
y=5,
|
||||
x=5
|
||||
},
|
||||
{
|
||||
x=11,
|
||||
name="4",
|
||||
y=10
|
||||
y=10,
|
||||
x=11
|
||||
},
|
||||
{
|
||||
x=1,
|
||||
name="room_01_05",
|
||||
y=5
|
||||
y=5,
|
||||
x=1
|
||||
},
|
||||
{
|
||||
x=2,
|
||||
name="ok",
|
||||
y=8
|
||||
y=8,
|
||||
x=2
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
name="room_05_18",
|
||||
y=18
|
||||
y=18,
|
||||
x=5
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
name="village_start",
|
||||
y=11
|
||||
y=11,
|
||||
x=9
|
||||
},
|
||||
{
|
||||
x=4,
|
||||
name="spiky_test",
|
||||
y=8
|
||||
y=8,
|
||||
x=4
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
name="corner_trimino_test",
|
||||
y=7
|
||||
y=7,
|
||||
x=5
|
||||
},
|
||||
{
|
||||
x=6,
|
||||
name="tetromino_loop_t",
|
||||
y=7
|
||||
y=7,
|
||||
x=6
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
name="corner_trimino_test_copy",
|
||||
y=6
|
||||
y=6,
|
||||
x=5
|
||||
},
|
||||
{
|
||||
x=7,
|
||||
name="blocker_test",
|
||||
y=7
|
||||
y=7,
|
||||
x=7
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
name="spiky_test_2",
|
||||
y=8
|
||||
y=8,
|
||||
x=5
|
||||
},
|
||||
{
|
||||
x=5,
|
||||
name="spiky_test_3",
|
||||
y=9
|
||||
y=9,
|
||||
x=5
|
||||
},
|
||||
{
|
||||
x=3,
|
||||
name="jorge2",
|
||||
y=14
|
||||
y=14,
|
||||
x=3
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
name="room_08_07",
|
||||
y=7
|
||||
y=7,
|
||||
x=8
|
||||
},
|
||||
{
|
||||
x=13,
|
||||
name="village_3",
|
||||
y=8
|
||||
y=8,
|
||||
x=13
|
||||
},
|
||||
{
|
||||
x=12,
|
||||
name="village_2",
|
||||
y=8
|
||||
y=8,
|
||||
x=12
|
||||
},
|
||||
{
|
||||
x=14,
|
||||
name="room_14_07",
|
||||
y=7
|
||||
y=7,
|
||||
x=14
|
||||
},
|
||||
{
|
||||
x=9,
|
||||
name="room_09_13",
|
||||
y=13
|
||||
y=13,
|
||||
x=9
|
||||
},
|
||||
{
|
||||
x=8,
|
||||
name="room_08_13",
|
||||
y=13
|
||||
y=13,
|
||||
x=8
|
||||
},
|
||||
{
|
||||
name="room_10_15",
|
||||
y=15,
|
||||
x=9
|
||||
},
|
||||
{
|
||||
name="room_13_14",
|
||||
y=14,
|
||||
x=13
|
||||
},
|
||||
{
|
||||
name="room_14_14",
|
||||
y=14,
|
||||
x=14
|
||||
},
|
||||
{
|
||||
name="room_13_13",
|
||||
y=13,
|
||||
x=13
|
||||
}
|
||||
},
|
||||
lastRoom="room_09_13",
|
||||
lastRoom="room_14_14",
|
||||
width=18,
|
||||
height=18
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -183,6 +183,54 @@ test("a door requires every independent switch run at its terminal", function()
|
|||
assertTrue(world.circuitState.doorPowered[wiredDoor])
|
||||
end)
|
||||
|
||||
test("an orphaned stub at a door does not block a valid switch run", function()
|
||||
local world, roomA, _, wiredDoor = makeWorld()
|
||||
roomA.wires[1][1].abandoned_stroke = 0
|
||||
world.collidableMatrices.blue[1] = {[4] = {}}
|
||||
world:resolveCircuits()
|
||||
assertTrue(world.circuitState.doorPowered[wiredDoor])
|
||||
assertTrue(wiredDoor.powered)
|
||||
end)
|
||||
|
||||
test("selecting a parked colour changes to its room", function()
|
||||
local function player()
|
||||
local entity = {switched = false}
|
||||
function entity:playSwitchSound(success) self.switched = success end
|
||||
return entity
|
||||
end
|
||||
local function room(name, players, active)
|
||||
local entity = {name = name, player = players, activeColors = active, colorsPlayerHas = {}}
|
||||
for color in pairs(players) do table.insert(entity.colorsPlayerHas, color) end
|
||||
function entity:getPossibleColors() return self.colorsPlayerHas end
|
||||
function entity:setActiveColor(color, value) self.activeColors[color] = value end
|
||||
function entity:getActiveColors()
|
||||
local colors = {}
|
||||
for color, value in pairs(self.activeColors) do if value then table.insert(colors, color) end end
|
||||
return colors
|
||||
end
|
||||
return entity
|
||||
end
|
||||
local roomA = room("a", {red = player()}, {red = true, green = false, blue = false})
|
||||
local roomB = room("b", {blue = player()}, {red = false, green = false, blue = false})
|
||||
local world = setmetatable({
|
||||
levels = {a = roomA, b = roomB},
|
||||
roomByName = {a = {name = "a", x = 1, y = 1}, b = {name = "b", x = 2, y = 1}},
|
||||
}, {__index = World})
|
||||
world.flushRuntime = function(self) self.flushed = true end
|
||||
local oldCurrentRoom, oldSetEditorRoomName = currentRoom, setEditorRoomName
|
||||
currentRoom = roomA
|
||||
setEditorRoomName = function() end
|
||||
|
||||
assertTrue(world:switchPlayerColor(roomA, "blue"))
|
||||
assertTrue(currentRoom == roomB)
|
||||
assertFalse(roomA.activeColors.red)
|
||||
assertTrue(roomB.activeColors.blue)
|
||||
assertTrue(roomB.player.blue.switched)
|
||||
assertTrue(world.flushed)
|
||||
|
||||
currentRoom, setEditorRoomName = oldCurrentRoom, oldSetEditorRoomName
|
||||
end)
|
||||
|
||||
test("one run cannot terminate at two different switches", function()
|
||||
local second = switch("red", 1, 2)
|
||||
local world, _, roomB = makeWorld(second)
|
||||
|
|
|
|||
43
world.lua
43
world.lua
|
|
@ -429,13 +429,16 @@ function World:resolveCircuits()
|
|||
local position = {x = x, y = y}
|
||||
local key = cellKey(position)
|
||||
local tracks = self.wireMatrix[y] and self.wireMatrix[y][x]
|
||||
local runCount, powered = 0, tracks ~= nil
|
||||
-- A circuit can be started with a click before the author drags its
|
||||
-- first segment. Those zero-length fragments are not a completed
|
||||
-- electrical run, so they must not permanently lock a door that also
|
||||
-- has real door-to-switch routes. Only valid components participate
|
||||
-- in the door's AND condition.
|
||||
local runCount, powered = 0, true
|
||||
for circuitId in pairs(tracks or {}) do
|
||||
runCount = runCount + 1
|
||||
local component = components[circuitId] and components[circuitId][key]
|
||||
if not component or not component.valid then
|
||||
powered = false
|
||||
else
|
||||
if component and component.valid then
|
||||
runCount = runCount + 1
|
||||
for switch in pairs(component.switches) do
|
||||
if not switchPressed[switch] then powered = false end
|
||||
end
|
||||
|
|
@ -676,7 +679,35 @@ end
|
|||
|
||||
function World:switchPlayerColor(room, color)
|
||||
local player = room.player[color]
|
||||
if not player then return false end
|
||||
if not player then
|
||||
-- A colour copy can be parked in another world room. Number keys are a
|
||||
-- direct way to resume controlling it: keep every copy where it is, but
|
||||
-- make its owner the active room and select that colour there.
|
||||
local destination
|
||||
for name, candidate in pairs(self.levels or {}) do
|
||||
if self:roomLocation(name) and candidate.player[color] then
|
||||
destination = candidate
|
||||
break
|
||||
end
|
||||
end
|
||||
if not destination then return false end
|
||||
|
||||
for _, possibleColor in ipairs(room:getPossibleColors()) do
|
||||
room:setActiveColor(possibleColor, false)
|
||||
end
|
||||
for _, possibleColor in ipairs(destination:getPossibleColors()) do
|
||||
destination:setActiveColor(possibleColor, possibleColor == color)
|
||||
end
|
||||
|
||||
currentRoom = destination
|
||||
self.lastRoom = destination.name
|
||||
destination.player[color]:playSwitchSound(true)
|
||||
self:markDirty(room)
|
||||
self:markDirty(destination)
|
||||
self:flushRuntime()
|
||||
setEditorRoomName(destination.name)
|
||||
return true
|
||||
end
|
||||
local activeColors = room:getActiveColors()
|
||||
local canSwitch = #activeColors ~= 1 or activeColors[1] ~= color
|
||||
if canSwitch then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue