level editor improvements

This commit is contained in:
Your Name 2026-08-07 00:56:33 -04:00
parent 886679816b
commit a8b469876d
41 changed files with 8367 additions and 8312 deletions

View file

@ -16,3 +16,32 @@ end
function lerp(a, b, amount)
return (1 - amount) * a + (amount * b)
end
-- Write to the project tree itself (not LÖVE's save dir) so edits persist in the
-- repo during dev. Uses plain io.open against love.filesystem.getSource(), which
-- is the absolute project path when running `love .` from a folder. Falls back to
-- love.filesystem.write (save dir) if the source is a packaged .love archive.
function writeToSource(relPath, contents)
local base = love.filesystem.getSource()
local file = io.open(base .. "/" .. relPath, "w")
if file then
file:write(contents)
file:close()
return true
end
return love.filesystem.write(relPath, contents)
end
-- Read from the project tree directly so a stale copy in LÖVE's save directory
-- can't shadow the real source file. Falls back to love.filesystem for a
-- packaged .love.
function readFromSource(relPath)
local base = love.filesystem.getSource()
local file = io.open(base .. "/" .. relPath, "r")
if file then
local contents = file:read("*a")
file:close()
return contents
end
return love.filesystem.read(relPath)
end

1
art/game/box.meta Normal file
View file

@ -0,0 +1 @@
{class="moveable"}

View file

Before

Width:  |  Height:  |  Size: 879 B

After

Width:  |  Height:  |  Size: 879 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 890 B

After

Width:  |  Height:  |  Size: 890 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 879 B

After

Width:  |  Height:  |  Size: 879 B

Before After
Before After

1
art/game/door.meta Normal file
View file

@ -0,0 +1 @@
{class="door"}

View file

Before

Width:  |  Height:  |  Size: 147 B

After

Width:  |  Height:  |  Size: 147 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 159 B

After

Width:  |  Height:  |  Size: 159 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 162 B

After

Width:  |  Height:  |  Size: 162 B

Before After
Before After

1
art/game/player.meta Normal file
View file

@ -0,0 +1 @@
{class="player"}

View file

@ -0,0 +1 @@
{class="immoveable"}

1
art/game/switch.meta Normal file
View file

@ -0,0 +1 @@
{class="switch"}

View file

@ -297,8 +297,10 @@ end
function saveAsset()
gameAssets[selectedAsset] = assetProperties
local save = TSerial.pack(gameAssets, nil, true)
love.filesystem.write("assets.prop", save)
-- the asset's class lives in its .meta next to the art (source of truth,
-- read back by getAllAssets); write it there
local metaPath = "art/" .. assetProperties.directory .. "/" .. selectedAsset .. ".meta"
writeToSource(metaPath, TSerial.pack({ class = assetProperties.class }, nil, true))
assetsView()
end

View file

@ -28,10 +28,18 @@ function getAllAssets()
globalAssetProperties[name] = {}
globalAssetProperties[name].directory = folder
globalAssetProperties[name].sprites = {}
globalAssetProperties[name].class = "unmoveable"
globalAssetProperties[name].preload = false
end
-- class comes from a <name>.meta sitting next to the art
-- (authoritative); default to immoveable if none exists
local metaPath = topFolder .. "/" .. folder .. "/" .. name .. ".meta"
if love.filesystem.exists(metaPath) then
globalAssetProperties[name].class = TSerial.unpack(love.filesystem.read(metaPath)).class
elseif not globalAssetProperties[name].class then
globalAssetProperties[name].class = "immoveable"
end
local sprite = topFolder .. "/" .. folder .. "/" .. fileToAnalyze
globalAssetProperties[name].sprites[color] = sprite
@ -45,7 +53,5 @@ function getAllAssets()
end
end
str = TSerial.pack(globalAssetProperties, nil, true)
love.filesystem.write("assets.prop", str)
return globalAssetProperties
end

View file

@ -15,7 +15,7 @@ require "sprite_manager"
require "level_editor/editor"
function love.load()
globalAssetProperties = TSerial.unpack(love.filesystem.read("assets.prop") or "{}")
globalAssetProperties = {} -- rebuilt from the filesystem (art/ + .meta) by getAllAssets
_initDefaults()
_initGridVars()

View file

@ -533,43 +533,40 @@ function Room:nextRoomCheck()
end
-- Instantiate one object from the flat {class,color,x,y} schema. `class` is a
-- key: the built-in behaviour classes (door/switch/player) plus the two generic
-- grid pieces (wall/static_wall), and finally any art asset resolved by name via
-- the globalAssetProperties registry (this is what the level editor places).
-- Instantiate one object from the flat {class,color,x,y} schema. `class` names an
-- art asset, and its .meta declares the behaviour ("door"/"switch"/"player"/
-- "moveable"); anything without a .meta defaults to immoveable. npc is the one
-- keyword handled directly since it has no art.
function Room:createEntity(class, color, x, y)
if class == "npc" then
self:registerNpc(x, y)
return
end
local props = globalAssetProperties and globalAssetProperties[class]
local behavior = props and props.class or "immoveable"
local entity
if class == "door" then
if behavior == "door" then
entity = Door:new(x, y)
self:registerDoor(entity)
elseif class == "switch" then
elseif behavior == "switch" then
entity = Switch:new(x, y, color)
self:registerSwitch(entity, color)
elseif class == "player" then
elseif behavior == "player" then
entity = Player:new(x, y, color)
self:registerPlayer(entity, color)
self:setActiveColor(color, true)
elseif class == "wall" then
entity = GenericUnmoveable:new(x, y, color, sprites.box[color])
self:registerCollidable(entity, {color})
elseif class == "static_wall" then
entity = GenericUnmoveable:new(x, y, color, sprites.wall)
self:registerCollidable(entity, {color})
elseif class == "npc" then
self:registerNpc(x, y)
else
-- generic art asset placed via the editor, resolved by name
local props = globalAssetProperties and globalAssetProperties[class]
if props and props.sprites and props.sprites[color] then
elseif props and props.sprites and props.sprites[color] then
local sprite = loadPlaceImage(props.sprites[color])
if props.class == "moveable" then
if behavior == "moveable" then
entity = GenericMoveable:new(x, y, color, sprite, class)
else
entity = GenericUnmoveable:new(x, y, color, sprite)
end
self:registerCollidable(entity, {color})
end
end
if entity then entity.saveClass = class end
return entity
end
@ -667,7 +664,7 @@ function Room:attemptPlace(name, props, mouseX, mouseY, color)
end
function Room:load(name)
local room = love.filesystem.read("rooms/" .. name .. ".sav")
local room = readFromSource("rooms/" .. name .. ".sav")
if not room then
-- no save yet: start with a blank room to build in the editor
print("no save for '" .. name .. "', starting blank")
@ -686,7 +683,7 @@ function Room:save()
local name = self.name or "test"
local room = TSerial.pack(self:serialize(), nil, true)
local success = love.filesystem.write("rooms/" .. name .. ".sav", room)
local success = writeToSource("rooms/" .. name .. ".sav", room)
if not success then error "great job u fool" end
end

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

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

View file

@ -1,574 +1,574 @@
{
objects={
{
name="slime_woman",
y=2,
class="npc",
x=5,
y=2
name="slime_woman"
},
{
color="green",
y=1,
class="static_wall",
x=1,
y=1
color="green"
},
{
color="blue",
y=1,
class="static_wall",
x=1,
y=1
color="blue"
},
{
color="red",
y=1,
class="static_wall",
x=1,
y=1
color="red"
},
{
color="red",
y=1,
class="static_wall",
x=2,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=2,
y=1
color="blue"
},
{
color="green",
y=1,
class="static_wall",
x=2,
y=1
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=3,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=3,
y=1
color="blue"
},
{
color="green",
y=1,
class="static_wall",
x=3,
y=1
color="green"
},
{
color="green",
y=1,
class="static_wall",
x=4,
y=1
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=4,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=4,
y=1
color="blue"
},
{
color="red",
y=1,
class="static_wall",
x=5,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=5,
y=1
color="blue"
},
{
color="green",
y=1,
class="static_wall",
x=5,
y=1
color="green"
},
{
color="blue",
y=1,
class="static_wall",
x=6,
y=1
color="blue"
},
{
color="red",
y=1,
class="static_wall",
x=6,
y=1
color="red"
},
{
color="green",
y=1,
class="static_wall",
x=6,
y=1
color="green"
},
{
color="blue",
y=1,
class="static_wall",
x=7,
y=1
color="blue"
},
{
color="red",
y=1,
class="static_wall",
x=7,
y=1
color="red"
},
{
color="green",
y=1,
class="static_wall",
x=7,
y=1
color="green"
},
{
color="green",
y=1,
class="static_wall",
x=8,
y=1
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=8,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=8,
y=1
color="blue"
},
{
color="blue",
y=1,
class="static_wall",
x=9,
y=1
color="blue"
},
{
color="green",
y=1,
class="static_wall",
x=9,
y=1
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=9,
y=1
color="red"
},
{
color="green",
y=1,
class="static_wall",
x=10,
y=1
color="green"
},
{
color="blue",
y=1,
class="static_wall",
x=10,
y=1
color="blue"
},
{
color="red",
y=1,
class="static_wall",
x=10,
y=1
color="red"
},
{
color="green",
y=1,
class="static_wall",
x=11,
y=1
color="green"
},
{
color="blue",
y=1,
class="static_wall",
x=11,
y=1
color="blue"
},
{
color="red",
y=1,
class="static_wall",
x=11,
y=1
color="red"
},
{
color="blue",
y=2,
class="static_wall",
x=11,
y=2
color="blue"
},
{
color="red",
y=2,
class="static_wall",
x=11,
y=2
color="red"
},
{
color="green",
y=2,
class="static_wall",
x=11,
y=2
color="green"
},
{
color="green",
y=3,
class="static_wall",
x=11,
y=3
color="green"
},
{
color="blue",
y=3,
class="static_wall",
x=11,
y=3
color="blue"
},
{
color="red",
y=3,
class="static_wall",
x=11,
y=3
color="red"
},
{
color="blue",
y=4,
class="static_wall",
x=11,
y=4
color="blue"
},
{
color="red",
y=4,
class="static_wall",
x=11,
y=4
color="red"
},
{
color="green",
y=4,
class="static_wall",
x=11,
y=4
color="green"
},
{
color="green",
y=5,
class="static_wall",
x=11,
y=5
color="green"
},
{
color="red",
y=5,
class="static_wall",
x=11,
y=5
color="red"
},
{
color="blue",
y=5,
class="static_wall",
x=11,
y=5
color="blue"
},
{
color="green",
y=6,
class="static_wall",
x=11,
y=6
color="green"
},
{
color="red",
y=6,
class="static_wall",
x=11,
y=6
color="red"
},
{
color="blue",
y=6,
class="static_wall",
x=11,
y=6
color="blue"
},
{
color="blue",
y=7,
class="static_wall",
x=11,
y=7
color="blue"
},
{
color="green",
y=7,
class="static_wall",
x=11,
y=7
color="green"
},
{
color="red",
y=7,
class="static_wall",
x=11,
y=7
color="red"
},
{
color="red",
y=8,
class="static_wall",
x=11,
y=8
color="red"
},
{
color="blue",
y=8,
class="static_wall",
x=11,
y=8
color="blue"
},
{
color="green",
y=8,
class="static_wall",
x=11,
y=8
color="green"
},
{
color="blue",
y=9,
class="static_wall",
x=11,
y=9
color="blue"
},
{
color="red",
y=9,
class="static_wall",
x=11,
y=9
color="red"
},
{
color="green",
y=9,
class="static_wall",
x=11,
y=9
color="green"
},
{
color="blue",
y=10,
class="static_wall",
x=11,
y=10
color="blue"
},
{
color="red",
y=10,
class="static_wall",
x=11,
y=10
color="red"
},
{
color="green",
y=10,
class="static_wall",
x=11,
y=10
color="green"
},
{
color="blue",
y=11,
class="static_wall",
x=1,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=1,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=1,
y=11
color="red"
},
{
color="green",
y=11,
class="static_wall",
x=2,
y=11
color="green"
},
{
color="blue",
y=11,
class="static_wall",
x=2,
y=11
color="blue"
},
{
color="red",
y=11,
class="static_wall",
x=2,
y=11
color="red"
},
{
color="red",
y=11,
class="static_wall",
x=3,
y=11
color="red"
},
{
color="green",
y=11,
class="static_wall",
x=3,
y=11
color="green"
},
{
color="blue",
y=11,
class="static_wall",
x=3,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=4,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=4,
y=11
color="red"
},
{
color="blue",
y=11,
class="static_wall",
x=4,
y=11
color="blue"
},
{
color="blue",
y=11,
class="static_wall",
x=5,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=5,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=5,
y=11
color="red"
},
{
color="blue",
y=11,
class="static_wall",
x=6,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=6,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=6,
y=11
color="red"
},
{
color="red",
y=11,
class="static_wall",
x=7,
y=11
color="red"
},
{
color="green",
y=11,
class="static_wall",
x=7,
y=11
color="green"
},
{
color="blue",
y=11,
class="static_wall",
x=7,
y=11
color="blue"
},
{
color="blue",
y=11,
class="static_wall",
x=8,
y=11
color="blue"
},
{
color="red",
y=11,
class="static_wall",
x=8,
y=11
color="red"
},
{
color="green",
y=11,
class="static_wall",
x=8,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=9,
y=11
color="red"
},
{
color="green",
y=11,
class="static_wall",
x=9,
y=11
color="green"
},
{
color="blue",
y=11,
class="static_wall",
x=9,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=10,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=10,
y=11
color="red"
},
{
color="blue",
y=11,
class="static_wall",
x=10,
y=11
color="blue"
},
{
color="red",
y=11,
class="static_wall",
x=11,
y=11
color="red"
},
{
color="blue",
y=11,
class="static_wall",
x=11,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=11,
y=11
color="green"
},
{
color="blue",
class="wall",
y=2,
class="box",
x=4,
y=2
color="blue"
}
}
}

View file

@ -1,652 +1,652 @@
{
objects={
{
color="red",
y=1,
class="door",
x=6,
y=1
color="red"
},
{
color="green",
y=6,
class="door",
x=3,
y=6
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=1,
y=1
color="red"
},
{
color="green",
y=1,
class="static_wall",
x=1,
y=1
color="green"
},
{
color="blue",
y=1,
class="static_wall",
x=1,
y=1
color="blue"
},
{
color="green",
y=1,
class="static_wall",
x=2,
y=1
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=2,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=2,
y=1
color="blue"
},
{
color="blue",
y=1,
class="static_wall",
x=3,
y=1
color="blue"
},
{
color="green",
y=1,
class="static_wall",
x=3,
y=1
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=3,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=4,
y=1
color="blue"
},
{
color="green",
y=1,
class="static_wall",
x=4,
y=1
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=4,
y=1
color="red"
},
{
color="green",
y=1,
class="static_wall",
x=5,
y=1
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=5,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=5,
y=1
color="blue"
},
{
color="green",
y=1,
class="static_wall",
x=7,
y=1
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=7,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=7,
y=1
color="blue"
},
{
color="red",
y=1,
class="static_wall",
x=8,
y=1
color="red"
},
{
color="green",
y=1,
class="static_wall",
x=8,
y=1
color="green"
},
{
color="blue",
y=1,
class="static_wall",
x=8,
y=1
color="blue"
},
{
color="red",
y=1,
class="static_wall",
x=9,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=9,
y=1
color="blue"
},
{
color="green",
y=1,
class="static_wall",
x=9,
y=1
color="green"
},
{
color="green",
y=1,
class="static_wall",
x=10,
y=1
color="green"
},
{
color="red",
y=1,
class="static_wall",
x=10,
y=1
color="red"
},
{
color="blue",
y=1,
class="static_wall",
x=10,
y=1
color="blue"
},
{
color="red",
y=1,
class="static_wall",
x=11,
y=1
color="red"
},
{
color="green",
y=1,
class="static_wall",
x=11,
y=1
color="green"
},
{
color="blue",
y=1,
class="static_wall",
x=11,
y=1
color="blue"
},
{
color="green",
y=2,
class="static_wall",
x=1,
y=2
color="green"
},
{
color="blue",
y=2,
class="static_wall",
x=1,
y=2
color="blue"
},
{
color="red",
y=2,
class="static_wall",
x=1,
y=2
color="red"
},
{
color="green",
y=3,
class="static_wall",
x=1,
y=3
color="green"
},
{
color="blue",
y=3,
class="static_wall",
x=1,
y=3
color="blue"
},
{
color="red",
y=3,
class="static_wall",
x=1,
y=3
color="red"
},
{
color="green",
y=4,
class="static_wall",
x=1,
y=4
color="green"
},
{
color="red",
y=4,
class="static_wall",
x=1,
y=4
color="red"
},
{
color="blue",
y=4,
class="static_wall",
x=1,
y=4
color="blue"
},
{
color="green",
y=5,
class="static_wall",
x=1,
y=5
color="green"
},
{
color="red",
y=5,
class="static_wall",
x=1,
y=5
color="red"
},
{
color="blue",
y=5,
class="static_wall",
x=1,
y=5
color="blue"
},
{
color="blue",
y=5,
class="static_wall",
x=2,
y=5
color="blue"
},
{
color="green",
y=5,
class="static_wall",
x=2,
y=5
color="green"
},
{
color="red",
y=5,
class="static_wall",
x=2,
y=5
color="red"
},
{
color="green",
y=5,
class="static_wall",
x=3,
y=5
color="green"
},
{
color="blue",
y=5,
class="static_wall",
x=3,
y=5
color="blue"
},
{
color="red",
y=5,
class="static_wall",
x=3,
y=5
color="red"
},
{
color="red",
y=6,
class="static_wall",
x=1,
y=6
color="red"
},
{
color="green",
y=6,
class="static_wall",
x=1,
y=6
color="green"
},
{
color="blue",
y=6,
class="static_wall",
x=1,
y=6
color="blue"
},
{
color="green",
y=7,
class="static_wall",
x=1,
y=7
color="green"
},
{
color="red",
y=7,
class="static_wall",
x=1,
y=7
color="red"
},
{
color="blue",
y=7,
class="static_wall",
x=1,
y=7
color="blue"
},
{
color="red",
y=7,
class="static_wall",
x=2,
y=7
color="red"
},
{
color="blue",
y=7,
class="static_wall",
x=2,
y=7
color="blue"
},
{
color="green",
y=7,
class="static_wall",
x=2,
y=7
color="green"
},
{
color="blue",
y=7,
class="static_wall",
x=3,
y=7
color="blue"
},
{
color="green",
y=7,
class="static_wall",
x=3,
y=7
color="green"
},
{
color="red",
y=7,
class="static_wall",
x=3,
y=7
color="red"
},
{
color="blue",
y=8,
class="static_wall",
x=1,
y=8
color="blue"
},
{
color="green",
y=8,
class="static_wall",
x=1,
y=8
color="green"
},
{
color="red",
y=8,
class="static_wall",
x=1,
y=8
color="red"
},
{
color="red",
y=9,
class="static_wall",
x=1,
y=9
color="red"
},
{
color="blue",
y=9,
class="static_wall",
x=1,
y=9
color="blue"
},
{
color="green",
y=9,
class="static_wall",
x=1,
y=9
color="green"
},
{
color="red",
y=10,
class="static_wall",
x=1,
y=10
color="red"
},
{
color="blue",
y=10,
class="static_wall",
x=1,
y=10
color="blue"
},
{
color="green",
y=10,
class="static_wall",
x=1,
y=10
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=1,
y=11
color="red"
},
{
color="green",
y=11,
class="static_wall",
x=1,
y=11
color="green"
},
{
color="blue",
y=11,
class="static_wall",
x=1,
y=11
color="blue"
},
{
color="red",
y=11,
class="static_wall",
x=2,
y=11
color="red"
},
{
color="blue",
y=11,
class="static_wall",
x=2,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=2,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=3,
y=11
color="red"
},
{
color="blue",
y=11,
class="static_wall",
x=3,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=3,
y=11
color="green"
},
{
color="blue",
y=11,
class="static_wall",
x=4,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=4,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=4,
y=11
color="red"
},
{
color="red",
y=11,
class="static_wall",
x=5,
y=11
color="red"
},
{
color="blue",
y=11,
class="static_wall",
x=5,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=5,
y=11
color="green"
},
{
color="green",
y=11,
class="static_wall",
x=6,
y=11
color="green"
},
{
color="blue",
y=11,
class="static_wall",
x=6,
y=11
color="blue"
},
{
color="red",
y=11,
class="static_wall",
x=6,
y=11
color="red"
},
{
color="green",
y=11,
class="static_wall",
x=7,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=7,
y=11
color="red"
},
{
color="blue",
y=11,
class="static_wall",
x=7,
y=11
color="blue"
},
{
color="blue",
y=11,
class="static_wall",
x=8,
y=11
color="blue"
},
{
color="red",
y=11,
class="static_wall",
x=8,
y=11
color="red"
},
{
color="green",
y=11,
class="static_wall",
x=8,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=9,
y=11
color="red"
},
{
color="green",
y=11,
class="static_wall",
x=9,
y=11
color="green"
},
{
color="blue",
y=11,
class="static_wall",
x=9,
y=11
color="blue"
},
{
color="green",
y=11,
class="static_wall",
x=10,
y=11
color="green"
},
{
color="blue",
y=11,
class="static_wall",
x=10,
y=11
color="blue"
},
{
color="red",
y=11,
class="static_wall",
x=10,
y=11
color="red"
},
{
color="green",
y=11,
class="static_wall",
x=11,
y=11
color="green"
},
{
color="red",
y=11,
class="static_wall",
x=11,
y=11
color="red"
},
{
color="blue",
y=11,
class="static_wall",
x=11,
y=11
color="blue"
},
{
color="green",
y=3,
class="switch",
x=3,
y=3
color="green"
},
{
color="red",
y=6,
class="switch",
x=6,
y=6
color="red"
},
{
color="green",
class="wall",
y=3,
class="box",
x=9,
y=3
color="green"
},
{
color="red",
class="wall",
y=9,
class="box",
x=6,
y=9
color="red"
}
}
}

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

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

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

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2,15 +2,15 @@ sprites = {
player = love.graphics.newImage("art/game/player.png"),
wall = love.graphics.newImage("art/game/static_wall.png"),
box = {
red = love.graphics.newImage("art/game/wall_r.png"),
green = love.graphics.newImage("art/game/wall_g.png"),
blue = love.graphics.newImage("art/game/wall_b.png")
red = love.graphics.newImage("art/game/box_r.png"),
green = love.graphics.newImage("art/game/box_g.png"),
blue = love.graphics.newImage("art/game/box_b.png")
},
door = {
white = love.graphics.newImage("art/game/door_locked_w.png"),
red = love.graphics.newImage("art/game/door_locked_r.png"),
green = love.graphics.newImage("art/game/door_locked_g.png"),
blue = love.graphics.newImage("art/game/door_locked_b.png"),
red = love.graphics.newImage("art/game/door_r.png"),
green = love.graphics.newImage("art/game/door_g.png"),
blue = love.graphics.newImage("art/game/door_b.png"),
unlocked = love.graphics.newImage("art/game/door_unlocked.png")
},
switch = {