diff --git a/assets/sprites/character/conf.lua b/assets/sprites/character/conf.lua deleted file mode 100644 index b30bcbd..0000000 --- a/assets/sprites/character/conf.lua +++ /dev/null @@ -1,3 +0,0 @@ -return { - -} diff --git a/assets/tiles/grass/atlas.png b/assets/tiles/grass/atlas.png new file mode 100644 index 0000000..dd5d66c Binary files /dev/null and b/assets/tiles/grass/atlas.png differ diff --git a/assets/tiles/grass/manifest.lua b/assets/tiles/grass/manifest.lua new file mode 100644 index 0000000..ab5b777 --- /dev/null +++ b/assets/tiles/grass/manifest.lua @@ -0,0 +1,6 @@ +return { + tilewidth = 32, + tileheight = 32, + spacing = 0, + margin = 0, +} \ No newline at end of file diff --git a/lib/camera.lua b/lib/camera.lua index a22bad8..4040203 100644 --- a/lib/camera.lua +++ b/lib/camera.lua @@ -1,5 +1,5 @@ -local Vec3 = require "lib/vec3" -local utils = require "lib/utils" +local Vec3 = require "lib.utils.vec3" +local utils = require "lib.utils.utils" local EPSILON = 0.001 diff --git a/lib/character/animation.lua b/lib/character/animation.lua index 5871e48..1d3d766 100644 --- a/lib/character/animation.lua +++ b/lib/character/animation.lua @@ -1,4 +1,4 @@ -local anim8 = require "lib/anim8" +local anim8 = require "lib.utils.anim8" --- Скорость между кадрами в анимации local ANIMATION_SPEED = 0.1 diff --git a/lib/character/character.lua b/lib/character/character.lua index 6ce3fda..fe654a7 100644 --- a/lib/character/character.lua +++ b/lib/character/character.lua @@ -1,5 +1,5 @@ -local anim8 = require "lib/anim8" -require 'lib/vec3' +local anim8 = require "lib.utils.anim8" +require 'lib.utils.vec3' --- @alias Id integer diff --git a/lib/controls.lua b/lib/controls.lua index eba01c6..f051fad 100644 --- a/lib/controls.lua +++ b/lib/controls.lua @@ -1,4 +1,4 @@ -local utils = require "lib/utils" +local utils = require "lib.utils.utils" --- @alias Device "mouse" | "key" | "pad" diff --git a/lib/grid.lua b/lib/grid.lua index 2fc5112..5a484b7 100644 --- a/lib/grid.lua +++ b/lib/grid.lua @@ -1,4 +1,4 @@ -local utils = require "lib/utils" +local utils = require "lib.utils.utils" --- @class CharacterGrid --- @field __grid {string: Id|nil} diff --git a/lib/level.lua b/lib/level.lua index 79d4aa8..6248af8 100644 --- a/lib/level.lua +++ b/lib/level.lua @@ -1,4 +1,4 @@ -local utils = require "lib/utils" +local utils = require "lib.utils.utils" --- @class Level --- @field size Vec3 diff --git a/lib/panning.lua b/lib/panning.lua index 29e16cd..6a0a638 100644 --- a/lib/panning.lua +++ b/lib/panning.lua @@ -1,4 +1,4 @@ -local Vec3 = require "lib/vec3" +local Vec3 = require "lib.utils.vec3" --- @class PanningState --- @field pos Vec3 | nil diff --git a/lib/tree.lua b/lib/tree.lua index c3480b7..e747d46 100644 --- a/lib/tree.lua +++ b/lib/tree.lua @@ -5,7 +5,7 @@ Tree = { panning = require "lib/panning", - assets = (require "lib/asset_bundle"):load(), + assets = (require "lib.utils.asset_bundle"):load(), controls = require "lib/controls", level = (require "lib/level"):new() -- для теста у нас только один уровень, который сразу же загружен } diff --git a/lib/anim8.lua b/lib/utils/anim8.lua similarity index 100% rename from lib/anim8.lua rename to lib/utils/anim8.lua diff --git a/lib/asset_bundle.lua b/lib/utils/asset_bundle.lua similarity index 95% rename from lib/asset_bundle.lua rename to lib/utils/asset_bundle.lua index c7cf06d..da4692a 100644 --- a/lib/asset_bundle.lua +++ b/lib/utils/asset_bundle.lua @@ -48,8 +48,9 @@ function AssetBundle.loadFile(path) img elseif (ext == "glsl") then return love.graphics.newShader(path); + elseif (ext == "lua") then + return require(string.gsub(path, ".lua", "")) end - return nil end diff --git a/lib/utils.lua b/lib/utils/utils.lua similarity index 100% rename from lib/utils.lua rename to lib/utils/utils.lua diff --git a/lib/vec3.lua b/lib/utils/vec3.lua similarity index 100% rename from lib/vec3.lua rename to lib/utils/vec3.lua diff --git a/main.lua b/main.lua index b830597..1fe9e57 100644 --- a/main.lua +++ b/main.lua @@ -3,6 +3,8 @@ local character = require "lib/character/character" require "lib/tree" + + function love.conf(t) t.console = true end @@ -11,6 +13,9 @@ function love.load() local char = character.spawn("Hero", "warrior", Tree.assets.files.sprites.character) char:runTo(Vec3 { 5, 5 }) + Grass = Tree.assets.files.tiles.grass.atlas + Gr1 = love.graphics.newQuad(0, 32, 32, 32, Grass) + -- PlayerFaction.characters = { Hero1, Hero2 } love.window.setMode(1080, 720, { resizable = true, msaa = 4, vsync = true }) end @@ -30,15 +35,14 @@ function love.draw() for y = 0, height - 1 do for x = 0, width - 1 do - if (x + y) % 2 == 0 then - love.graphics.setColor(0, 0, 0) - else - love.graphics.setColor(1, 1, 1) - end - love.graphics.rectangle("fill", x, y, 1, 1) + love.graphics.draw(Grass, love.graphics.newQuad(math.random(0, 32), math.random(0, 32), 32, 32, Grass), x, y, + nil, 1 / 32, 1 / 32) end end - love.graphics.setColor(1, 1, 1) + + Tree.level:draw() + + Tree.level.camera:detach() end