From 03b5d1dafb943bd0b66f80b164d038db4bcc2d75 Mon Sep 17 00:00:00 2001 From: Wally Hackenslacker Date: Sun, 5 Oct 2025 15:24:48 -0400 Subject: [PATCH] Reorganized code and assets. --- {bgm => assets/bgm}/eskisky.wav | Bin {fonts => assets/fonts}/BBrick.ttf | Bin {fonts => assets/fonts}/Concrete.ttf | Bin {imgs => assets/imgs}/cpu.png | Bin {imgs => assets/imgs}/pointer.png | Bin {imgs => assets/imgs}/splash.png | Bin {imgs => assets/imgs}/title.png | Bin {imgs => assets/imgs}/wally.png | Bin {snd => assets/snd}/ablhole.wav | Bin {snd => assets/snd}/ablhole2.wav | Bin {snd => assets/snd}/alang.wav | Bin {snd => assets/snd}/click.wav | Bin {snd => assets/snd}/jachiev.wav | Bin main.lua | 2 +- src/{ui => graphics}/drawable.lua | 12 ++------- src/{utils => graphics}/fader.lua | 0 src/{ui => graphics}/sprite.lua | 4 +-- src/gstates/gstate.lua | 2 +- src/gstates/intro.lua | 6 ++--- src/gstates/menu.lua | 11 +++++++-- src/{utils => sound}/sfx.lua | 6 ++--- src/ui/cursor.lua | 2 +- src/utils/asset.lua | 35 +++++++++++++++++++++++++++ 23 files changed, 57 insertions(+), 23 deletions(-) rename {bgm => assets/bgm}/eskisky.wav (100%) rename {fonts => assets/fonts}/BBrick.ttf (100%) rename {fonts => assets/fonts}/Concrete.ttf (100%) rename {imgs => assets/imgs}/cpu.png (100%) rename {imgs => assets/imgs}/pointer.png (100%) rename {imgs => assets/imgs}/splash.png (100%) rename {imgs => assets/imgs}/title.png (100%) rename {imgs => assets/imgs}/wally.png (100%) rename {snd => assets/snd}/ablhole.wav (100%) rename {snd => assets/snd}/ablhole2.wav (100%) rename {snd => assets/snd}/alang.wav (100%) rename {snd => assets/snd}/click.wav (100%) rename {snd => assets/snd}/jachiev.wav (100%) rename src/{ui => graphics}/drawable.lua (92%) rename src/{utils => graphics}/fader.lua (100%) rename src/{ui => graphics}/sprite.lua (91%) rename src/{utils => sound}/sfx.lua (94%) create mode 100644 src/utils/asset.lua diff --git a/bgm/eskisky.wav b/assets/bgm/eskisky.wav similarity index 100% rename from bgm/eskisky.wav rename to assets/bgm/eskisky.wav diff --git a/fonts/BBrick.ttf b/assets/fonts/BBrick.ttf similarity index 100% rename from fonts/BBrick.ttf rename to assets/fonts/BBrick.ttf diff --git a/fonts/Concrete.ttf b/assets/fonts/Concrete.ttf similarity index 100% rename from fonts/Concrete.ttf rename to assets/fonts/Concrete.ttf diff --git a/imgs/cpu.png b/assets/imgs/cpu.png similarity index 100% rename from imgs/cpu.png rename to assets/imgs/cpu.png diff --git a/imgs/pointer.png b/assets/imgs/pointer.png similarity index 100% rename from imgs/pointer.png rename to assets/imgs/pointer.png diff --git a/imgs/splash.png b/assets/imgs/splash.png similarity index 100% rename from imgs/splash.png rename to assets/imgs/splash.png diff --git a/imgs/title.png b/assets/imgs/title.png similarity index 100% rename from imgs/title.png rename to assets/imgs/title.png diff --git a/imgs/wally.png b/assets/imgs/wally.png similarity index 100% rename from imgs/wally.png rename to assets/imgs/wally.png diff --git a/snd/ablhole.wav b/assets/snd/ablhole.wav similarity index 100% rename from snd/ablhole.wav rename to assets/snd/ablhole.wav diff --git a/snd/ablhole2.wav b/assets/snd/ablhole2.wav similarity index 100% rename from snd/ablhole2.wav rename to assets/snd/ablhole2.wav diff --git a/snd/alang.wav b/assets/snd/alang.wav similarity index 100% rename from snd/alang.wav rename to assets/snd/alang.wav diff --git a/snd/click.wav b/assets/snd/click.wav similarity index 100% rename from snd/click.wav rename to assets/snd/click.wav diff --git a/snd/jachiev.wav b/assets/snd/jachiev.wav similarity index 100% rename from snd/jachiev.wav rename to assets/snd/jachiev.wav diff --git a/main.lua b/main.lua index 517f6d0..4172f5f 100644 --- a/main.lua +++ b/main.lua @@ -5,7 +5,7 @@ local love = require 'love' local game_states = require 'src.states' local settings = require 'src.utils.settings' -local Fader = require 'src.utils.fader' +local Fader = require 'src.graphics.fader' ------------------------------------------------------------------------------ diff --git a/src/ui/drawable.lua b/src/graphics/drawable.lua similarity index 92% rename from src/ui/drawable.lua rename to src/graphics/drawable.lua index ec0cf6a..a93f4ab 100644 --- a/src/ui/drawable.lua +++ b/src/graphics/drawable.lua @@ -3,13 +3,13 @@ ------------------------------------------------------------------------------ local make_class = require 'src.utils.classes' - +local Asset = require 'src.utils.asset' ------------------------------------------------------------------------------ -- Class definitions ------------------------------------------------------------------------------ -local Drawable = make_class() +local Drawable = make_class(Asset) ------------------------------------------------------------------------------ @@ -20,10 +20,6 @@ function Drawable:_init() end -function Drawable:load() -end - - function Drawable:update(_) end @@ -32,10 +28,6 @@ function Drawable:draw() end -function Drawable:unload() -end - - function Drawable:keypressed(_, _ , _) end diff --git a/src/utils/fader.lua b/src/graphics/fader.lua similarity index 100% rename from src/utils/fader.lua rename to src/graphics/fader.lua diff --git a/src/ui/sprite.lua b/src/graphics/sprite.lua similarity index 91% rename from src/ui/sprite.lua rename to src/graphics/sprite.lua index a964118..cedc6b7 100644 --- a/src/ui/sprite.lua +++ b/src/graphics/sprite.lua @@ -4,7 +4,7 @@ local love = require 'love' local make_class = require 'src.utils.classes' -local Drawable = require 'src.ui.drawable' +local Drawable = require 'src.graphics.drawable' ------------------------------------------------------------------------------ -- Class definitions @@ -18,7 +18,7 @@ local Sprite = make_class(Drawable) ------------------------------------------------------------------------------ function Sprite:_init(sprite_name, x, y) - self.sprite_name = sprite_name + self.sprite_name = string.format('assets/%s', sprite_name) self.x = (x ~= nil and x) or 0 self.y = (y ~= nil and y) or 0 end diff --git a/src/gstates/gstate.lua b/src/gstates/gstate.lua index 516841f..12cdaa1 100644 --- a/src/gstates/gstate.lua +++ b/src/gstates/gstate.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local make_class = require 'src.utils.classes' -local Drawable = require 'src.ui.drawable' +local Drawable = require 'src.graphics.drawable' ------------------------------------------------------------------------------ -- Class definitions diff --git a/src/gstates/intro.lua b/src/gstates/intro.lua index 4048eb4..a6fa300 100644 --- a/src/gstates/intro.lua +++ b/src/gstates/intro.lua @@ -4,9 +4,9 @@ local make_class = require 'src.utils.classes' local GameState = require 'src.gstates.gstate' -local Sprite = require 'src.ui.sprite' -local Fader = require 'src.utils.fader' -local SoundEffect = require 'src.utils.sfx' +local Sprite = require 'src.graphics.sprite' +local Fader = require 'src.graphics.fader' +local SoundEffect = require 'src.sound.sfx' ------------------------------------------------------------------------------ -- Class definitions diff --git a/src/gstates/menu.lua b/src/gstates/menu.lua index a43f9d2..e339e66 100644 --- a/src/gstates/menu.lua +++ b/src/gstates/menu.lua @@ -5,9 +5,10 @@ local love = require 'love' local make_class = require 'src.utils.classes' local GameState = require 'src.gstates.gstate' -local Fader = require 'src.utils.fader' +local Fader = require 'src.graphics.fader' +local Sprite = require 'src.graphics.sprite' local Cursor = require 'src.ui.cursor' -local SoundEffect = require 'src.utils.sfx' +local SoundEffect = require 'src.sound.sfx' ------------------------------------------------------------------------------ @@ -26,6 +27,9 @@ function MainMenu:_init(name, index) self.skip = false self.fade = Fader() + -- Create sprites and buttons. + self.background = Sprite('imgs/cpu.png') + -- Create a mouse cursor object at the current mouse position. local mx, my = love.mouse.getPosition() self.cursor = Cursor(mx, my) @@ -37,6 +41,7 @@ end function MainMenu:load() -- Load sprites. + self.background:load() self.cursor:load() -- Load sound effects and start playing the background music @@ -55,12 +60,14 @@ end function MainMenu:draw() + self.background:draw() self.cursor:draw() self.fade:draw() end function MainMenu:unload() + self.background:unload() self.cursor:unload() self.bgm:unload() end diff --git a/src/utils/sfx.lua b/src/sound/sfx.lua similarity index 94% rename from src/utils/sfx.lua rename to src/sound/sfx.lua index bcb3773..a9536c4 100644 --- a/src/utils/sfx.lua +++ b/src/sound/sfx.lua @@ -4,7 +4,7 @@ local love = require 'love' local make_class = require 'src.utils.classes' - +local Asset = require 'src.utils.asset' ------------------------------------------------------------------------------ -- Class definitions @@ -13,7 +13,7 @@ local make_class = require 'src.utils.classes' -- SoundEffect is a simple wrapper around Löve's Source class to allow for -- easy loading/unloading and automatically hecking if a sound effect is valid -- before using it. -local SoundEffect = make_class() +local SoundEffect = make_class(Asset) ------------------------------------------------------------------------------ @@ -21,7 +21,7 @@ local SoundEffect = make_class() ------------------------------------------------------------------------------ function SoundEffect:_init(file_name) - self.file_name = file_name + self.file_name = string.format('assets/%s', file_name) end diff --git a/src/ui/cursor.lua b/src/ui/cursor.lua index 15c89cd..dd1f3e0 100644 --- a/src/ui/cursor.lua +++ b/src/ui/cursor.lua @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------ local make_class = require 'src.utils.classes' -local Sprite = require 'src.ui.sprite' +local Sprite = require 'src.graphics.sprite' ------------------------------------------------------------------------------ diff --git a/src/utils/asset.lua b/src/utils/asset.lua new file mode 100644 index 0000000..324c08f --- /dev/null +++ b/src/utils/asset.lua @@ -0,0 +1,35 @@ +------------------------------------------------------------------------------ +-- Imports +------------------------------------------------------------------------------ + +local make_class = require 'src.utils.classes' + + +------------------------------------------------------------------------------ +-- Class definitions +------------------------------------------------------------------------------ + +local Asset = make_class() + + +------------------------------------------------------------------------------ +-- Class methods +------------------------------------------------------------------------------ + +function Asset:_init() +end + + +function Asset:load() +end + + +function Asset:unload() +end + + +------------------------------------------------------------------------------ +-- Module return +------------------------------------------------------------------------------ + +return Asset