diff --git a/sonic-radiance.love/datas/gamedata/maps/sti/test/arena.lua b/sonic-radiance.love/datas/gamedata/maps/sti/test/map.lua similarity index 100% rename from sonic-radiance.love/datas/gamedata/maps/sti/test/arena.lua rename to sonic-radiance.love/datas/gamedata/maps/sti/test/map.lua diff --git a/sonic-radiance.love/game/init.lua b/sonic-radiance.love/game/init.lua index d5fb673..5fa2716 100644 --- a/sonic-radiance.love/game/init.lua +++ b/sonic-radiance.love/game/init.lua @@ -28,6 +28,8 @@ local Characters = require "game.characters" local binser = require "core.modules.gamesystem.libs.binser" +Game.utils = require "game.modules.utils" + function Game:new() self.slot = -1 self.gametime = 0 diff --git a/sonic-radiance.love/game/modules/utils/init.lua b/sonic-radiance.love/game/modules/utils/init.lua index 870735b..93643fb 100644 --- a/sonic-radiance.love/game/modules/utils/init.lua +++ b/sonic-radiance.love/game/modules/utils/init.lua @@ -1,15 +1,14 @@ local gameutils = {} function gameutils.getMapPath(maptype, mapname) - if (maptype ~= "battle") then - error("Map type " .. maptype .. " doesn't exist.") - end - - return "datas.gamedata.maps." .. maptype .. "." .. mapname + local dir = gameutils.getMapDirectory(maptype, mapname) + local path = dir .. "map.lua" + core.debug:print("game/utils", "path is " .. path) + return path end function gameutils.getMapDirectory(maptype, mapname) - if (maptype ~= "battle") then + if (maptype ~= "battle") and (maptype ~= "sti") then error("Map type " .. maptype .. " doesn't exist.") end diff --git a/sonic-radiance.love/scenes/test_scene/actors/init.lua b/sonic-radiance.love/game/modules/world/actors/init.lua similarity index 100% rename from sonic-radiance.love/scenes/test_scene/actors/init.lua rename to sonic-radiance.love/game/modules/world/actors/init.lua diff --git a/sonic-radiance.love/scenes/test_scene/actors/parent.lua b/sonic-radiance.love/game/modules/world/actors/parent.lua similarity index 100% rename from sonic-radiance.love/scenes/test_scene/actors/parent.lua rename to sonic-radiance.love/game/modules/world/actors/parent.lua diff --git a/sonic-radiance.love/scenes/test_scene/actors/player.lua b/sonic-radiance.love/game/modules/world/actors/player.lua similarity index 100% rename from sonic-radiance.love/scenes/test_scene/actors/player.lua rename to sonic-radiance.love/game/modules/world/actors/player.lua diff --git a/sonic-radiance.love/scenes/test_scene/actors/wall.lua b/sonic-radiance.love/game/modules/world/actors/wall.lua similarity index 100% rename from sonic-radiance.love/scenes/test_scene/actors/wall.lua rename to sonic-radiance.love/game/modules/world/actors/wall.lua diff --git a/sonic-radiance.love/game/modules/world/init.lua b/sonic-radiance.love/game/modules/world/init.lua new file mode 100644 index 0000000..a94aa44 --- /dev/null +++ b/sonic-radiance.love/game/modules/world/init.lua @@ -0,0 +1,9 @@ +local World3D = require "core.modules.world.world3D" +local RadianceWorld = World3D:extend() + +function RadianceWorld:new(scene, maptype, mapname) + local mappath = game.utils.getMapPath(maptype, mapname) + RadianceWorld.super.new(self, scene, "game.modules.world.actors", mappath, maptype) +end + +return RadianceWorld diff --git a/sonic-radiance.love/scenes/test_scene/init.lua b/sonic-radiance.love/scenes/test_scene/init.lua index bc6fa10..3ca7f8f 100644 --- a/sonic-radiance.love/scenes/test_scene/init.lua +++ b/sonic-radiance.love/scenes/test_scene/init.lua @@ -24,7 +24,7 @@ local Scene = require "core.modules.scenes" local MovePlayer = Scene:extend() -local World = require "core.modules.world.world3D" +local World = require "game.modules.world" function MovePlayer:new(playerNumber, cameraMode) local playerNumber = playerNumber or 1 @@ -33,7 +33,7 @@ function MovePlayer:new(playerNumber, cameraMode) MovePlayer.super.new(self) self.assets:batchImport("scenes.test_scene.assets") - World(self, "scenes.test_scene.actors", "datas/gamedata/maps/sti/test/arena.lua") + World(self, "sti", "test") self.world:setPlayerNumber(playerNumber) self.world.cameras:setMode(cameraMode)