diff --git a/charts/satin-panties/script.lua b/charts/satin-panties/script.lua index 4e2c97a..b1a8887 100644 --- a/charts/satin-panties/script.lua +++ b/charts/satin-panties/script.lua @@ -1,7 +1,7 @@ local module = {} -local myMath = require("modules.math") -local myTypes = require("modules.types") + + local lastChange = 0 diff --git a/charts/winter-horrorland/script.lua b/charts/winter-horrorland/script.lua new file mode 100644 index 0000000..4ba2f69 --- /dev/null +++ b/charts/winter-horrorland/script.lua @@ -0,0 +1,23 @@ + + +local module = {} + +local time = 0 +local started = false + +function module.onCreate() + module.shared.canStart = false + render.cameraPosition = Vector2(500, 1000) + started = false + time = 0 +end + +function module.onUpdate(dt) + time = time + dt + if time > 5 and not started then + started = true + module.shared.canStart = true + end +end + +return module \ No newline at end of file diff --git a/src/main.lua b/src/main.lua index 16fbfce..52ba712 100644 --- a/src/main.lua +++ b/src/main.lua @@ -1,4 +1,7 @@ require("modules.loveanimate") +print("Loaded") +require("modules.types") +require("modules.math") curChar = "bf" @@ -7,14 +10,16 @@ local gamePath = love.filesystem.getSourceBaseDirectory() -- Assuming it's alway -- love TaggedEngine.love --fused local mounted = love.filesystem.mount(gamePath, "") -- Mounting the game directory, should be accessible like if normal. -local myTypes = require("modules.types") + assert(mounted, "Couldn't mount the game directory.") local states = { playstate = "states.playstate", freeplaystate = "states.freeplaystate", - resultsstate = "states.resultsstate" + resultsstate = "states.resultsstate", + menustate = "states.menustate", + weekstate = "states.weekstate" } local curState @@ -30,7 +35,7 @@ function setState(name, ...) curState.quit = function(accuracy, score) curState = nil stateLoaded = false - myTypes.destroyAllSprites() + render.destroyAllSprites() setState("freeplaystate") end @@ -38,7 +43,7 @@ function setState(name, ...) local lastStateName = curState.name curState = nil stateLoaded = false - myTypes.destroyAllSprites() + render.destroyAllSprites() setState(lastStateName, ...) end @@ -46,7 +51,7 @@ function setState(name, ...) curState.changeState = function(...) curState = nil stateLoaded = false - myTypes.destroyAllSprites() + render.destroyAllSprites() setState(...) end diff --git a/src/modules/conductor.lua b/src/modules/conductor.lua index 29906dd..f1c090d 100644 --- a/src/modules/conductor.lua +++ b/src/modules/conductor.lua @@ -1,6 +1,7 @@ -local myMath = require("modules.math") + local logging = require("modules.logging") +--- @class Conductor local conductor = {} conductor.bpm = 120 conductor.crochet = 1000 @@ -86,7 +87,7 @@ function conductor:mapBpmChanges(song) table.insert(self.bpmChangeMap, change) end - local deltaSteps = myMath.round(self:getSectionBeats(song, index) * 4) + local deltaSteps = Round(self:getSectionBeats(song, index) * 4) totalSteps = totalSteps + deltaSteps totalPos = (totalPos + (60/curBPM) * 1000 / 4) * deltaSteps end diff --git a/src/modules/math.lua b/src/modules/math.lua index 87f1029..a6069ea 100644 --- a/src/modules/math.lua +++ b/src/modules/math.lua @@ -1,11 +1,7 @@ -local module = {} - -function module.lerp(a, b,c) +function Lerp(a, b,c) return a + (b - a) * c end -function module.round(a) +function Round(a) return math.floor(a + .5) -end - -return module \ No newline at end of file +end \ No newline at end of file diff --git a/src/modules/types/character.lua b/src/modules/types/character.lua index c8b60fd..a9319d0 100644 --- a/src/modules/types/character.lua +++ b/src/modules/types/character.lua @@ -1,10 +1,12 @@ +print("init") local module = {} +chars = module --- local myTypes = require("modules.types") local files = require("modules.files") local json = require("modules.json") -local logging = require("modules.logging") +print("evil") +---@class Character local CharacterClass = {} CharacterClass.__index = CharacterClass @@ -12,11 +14,11 @@ function CharacterClass:PlayAnimation(name) local animName = self.animations[name] if self.animInfo[name].random then - self.sprite.extraOffset = module.myTypes.Vector2(self.animInfo[name].offsets[1] * (self.flipX and -1 or 1) - self.stagePosition.x, self.animInfo[name].offsets[2] - self.stagePosition.y) + self.sprite.extraOffset = Vector2(self.animInfo[name].offsets[1] * (self.flipX and -1 or 1) - self.stagePosition.x, self.animInfo[name].offsets[2] - self.stagePosition.y) self.sprite:PlayAnimation(animName..string.format("%s ", math.random(self.animInfo[name].random[1], self.animInfo[name].random[2])), self.animInfo[name].fps) else - self.sprite.extraOffset = module.myTypes.Vector2(self.animInfo[name].offsets[1] * (self.flipX and -1 or 1) - self.stagePosition.x, self.animInfo[name].offsets[2] - self.stagePosition.y) + self.sprite.extraOffset = Vector2(self.animInfo[name].offsets[1] * (self.flipX and -1 or 1) - self.stagePosition.x, self.animInfo[name].offsets[2] - self.stagePosition.y) self.sprite.allowedFrames = self.animInfo[name].indices and #self.animInfo[name].indices > 0 and self.animInfo[name].indices self.sprite.allowedFrame = 1 @@ -33,7 +35,7 @@ function CharacterClass:Destroy() self = nil end -function module.character(name) +function Character(name) local charFile = files.read_file(string.format("characters/%s.json", name)) if not charFile then error("Failed to load character "..name) @@ -44,8 +46,8 @@ function module.character(name) local image = parsed.image..".png" local sheet = parsed.image..".json" - local sprite = module.myTypes.Sprite(image, sheet) - sprite.position = module.myTypes.Vector2(parsed.position[1], parsed.position[2]) + local sprite = Sprite(image, sheet) + sprite.position = Vector2(parsed.position[1], parsed.position[2]) sprite.flipX = parsed.flip_x sprite.layer = 5 @@ -56,8 +58,8 @@ function module.character(name) animInfo = {}, sprite = sprite, singing = false, - stagePosition = module.myTypes.Vector2(0,0), -- Changeable - stageCamera = module.myTypes.Vector2(parsed.camera_position[1], parsed.camera_position[2]), + stagePosition = Vector2(0,0), -- Changeable + stageCamera = Vector2(parsed.camera_position[1], parsed.camera_position[2]), flipX = parsed.flip_x, beats = parsed.beats or 4, animation = "idle", @@ -91,7 +93,7 @@ function module.preload(name) local image = parsed.image..".png" local sheet = parsed.image..".json" - module.myTypes.preload(image, sheet) + render.preload(image, sheet) end return module diff --git a/src/modules/types/init.lua b/src/modules/types/init.lua index cbec113..dcc18e3 100644 --- a/src/modules/types/init.lua +++ b/src/modules/types/init.lua @@ -1,29 +1,11 @@ -local module = {} +for index, type in next, love.filesystem.getDirectoryItems("modules/types") do + if type == "init.lua" then goto continue end -local noteclass = require("modules.types.note") -local characterclass = require("modules.types.character") -local renderClasses = require("modules.types.render") -local vectorClass = require("modules.types.vector") + print(type) + local file = type:split(".")[1] + print("modules.types."..file) -noteclass.types = module -module.note = noteclass.note + require("modules.types."..file) -characterclass.myTypes = module -module.character = characterclass.character -module.preloadChar = characterclass.preload - -renderClasses.myTypes = module -module.Sprite = renderClasses.Sprite -module.Rect = renderClasses.Rect -module.Image = renderClasses.Image -module.destroyAllSprites = renderClasses.destroyAllSprites -module.drawSprites = renderClasses.drawSprites -module.updateSprites = renderClasses.updateSprites -module.preload = renderClasses.preLoad -module.drawUI = renderClasses.drawUI - -module.Vector2 = vectorClass.Vector2 - -module.render = renderClasses - -return module + ::continue:: +end \ No newline at end of file diff --git a/src/modules/types/note.lua b/src/modules/types/note.lua index a8de195..51e43a6 100644 --- a/src/modules/types/note.lua +++ b/src/modules/types/note.lua @@ -1,5 +1,6 @@ local module = {} +---@class Note local NoteClass = {} NoteClass.__index = NoteClass @@ -10,7 +11,7 @@ local sprites = { "red" } -function module.note(raw, mustHitSection, hold, holdEnd) +function _G.Note(raw, mustHitSection, hold, holdEnd) local newNote = setmetatable({ position = raw[1], @@ -24,14 +25,14 @@ function module.note(raw, mustHitSection, hold, holdEnd) last = holdEnd, hitHealth = 0.02, missHealth = 0.05, - offset = module.types.Vector2() + offset = Vector2() }, NoteClass) return newNote end function NoteClass:spawn() - local sprite = module.types.Rect("sprites/NOTE_assets.png", "sprites/NOTE_assets.json") + local sprite = Rect("sprites/NOTE_assets.png", "sprites/NOTE_assets.json") self.sprite = sprite sprite.layer = 10 @@ -43,7 +44,7 @@ function NoteClass:spawn() sprite.layer = 10 spriteName = string.format("%s hold end", sprites[self.direction]) if self.flipY then - sprite.extraOffset = module.types.Vector2(0, -70) + sprite.extraOffset = Vector2(0, -70) end else spriteName = string.format("%s hold piece", sprites[self.direction]) diff --git a/src/modules/types/render.lua b/src/modules/types/render.lua index bfd28c0..4df8159 100644 --- a/src/modules/types/render.lua +++ b/src/modules/types/render.lua @@ -2,10 +2,13 @@ local json = require("modules.json") local files = require("modules.files") local module = {} +_G.render = module +---@class Sprite local Sprite = {} Sprite.__index = Sprite +---@class Image local Image = {} Image.__index = Image @@ -16,7 +19,7 @@ local loadedShaders = {} local Sprites, Rects, Images, Atlases = {}, {}, {}, {} -function module.Sprite(image, sheet) +function _G.Sprite(image, sheet) if not cachedQuads[sheet] then local sheetString = files.read_file(sheet) if not sheetString then @@ -34,9 +37,9 @@ function module.Sprite(image, sheet) fps = 10, animation = nil, frame = 0, - position = module.myTypes.Vector2(200, 100), -- changeable + position = Vector2(200, 100), -- changeable looping = false, - extraOffset = module.myTypes.Vector2(0,0), + extraOffset = Vector2(0,0), rect = false, modifier = 1, layer = 0 @@ -60,7 +63,7 @@ function module.Sprite(image, sheet) quads[name:sub(0, name:len() - 4)] = {} end - quads[name:sub(0, name:len() - 4)][num] = {quad = love.graphics.newQuad(x, y, width, height, newSprite.image), offset = module.myTypes.Vector2(frameX or 0, frameY or 0), resize = module.myTypes.Vector2(1,1)} + quads[name:sub(0, name:len() - 4)][num] = {quad = love.graphics.newQuad(x, y, width, height, newSprite.image), offset = Vector2(frameX or 0, frameY or 0), resize = Vector2(1,1)} end newSprite.quads = quads @@ -77,9 +80,9 @@ function module.Sprite(image, sheet) fps = 10, animation = nil, frame = 0, - position = module.myTypes.Vector2(200, 100), -- changeable + position = Vector2(200, 100), -- changeable looping = false, - extraOffset = module.myTypes.Vector2(0,0), + extraOffset = Vector2(0,0), rect = false, modifier = 1, allowedFrame = 0, @@ -168,7 +171,7 @@ function module.updateSprites(dt) sprite.elapsed = 0 end - -- sprite.quads[sprite.animation][sprite.frame].resize = module.myTypes.Vector2(love.graphics.getWidth() / 1920, love.graphics.getHeight() / 1080) + -- sprite.quads[sprite.animation][sprite.frame].resize = Vector2(love.graphics.getWidth() / 1920, love.graphics.getHeight() / 1080) ::continue:: -- At the end. always. end @@ -178,10 +181,10 @@ function module.updateSprites(dt) end if not module.cameraPosition then - module.cameraPosition = module.myTypes.Vector2() + module.cameraPosition = Vector2() end - module.cameraPosition = module.cameraPosition:Lerp(module.cameraTarget or module.myTypes.Vector2(0,0), .2) + module.cameraPosition = module.cameraPosition:Lerp(module.cameraTarget or Vector2(0,0), .2) end local leftOvers = {} @@ -221,7 +224,7 @@ function module.drawSprites() end if thing.isImage then - local cameraOffset = thing.ui and module.myTypes.Vector2() or module.cameraPosition + local cameraOffset = thing.ui and Vector2() or module.cameraPosition if thing.shader and loadedShaders[thing.shader] then love.graphics.setShader(loadedShaders[thing.shader]) end @@ -244,7 +247,7 @@ function module.drawSprites() quad.offset.x = -quad.offset.x end - local cameraOffset = sprite.ui and module.myTypes.Vector2() or module.cameraPosition or module.myTypes.Vector2() + local cameraOffset = sprite.ui and Vector2() or module.cameraPosition or Vector2() if sprite.shader and loadedShaders[sprite.shader] then love.graphics.setShader(loadedShaders[sprite.shader]) @@ -264,7 +267,7 @@ function module.drawSprites() quad.offset.x = -quad.offset.x end - local cameraOffset = rect.ui and module.myTypes.Vector2() or module.cameraPosition or module.myTypes.Vector2() + local cameraOffset = rect.ui and Vector2() or module.cameraPosition or Vector2() if rect.shader and loadedShaders[rect.shader] then love.graphics.setShader(loadedShaders[rect.shader]) @@ -275,7 +278,7 @@ function module.drawSprites() love.graphics.setShader() end elseif thing.isAtlas then - local cameraOffset = thing.ui and module.myTypes.Vector2() or module.cameraPosition or module.myTypes.Vector2() + local cameraOffset = thing.ui and Vector2() or module.cameraPosition or Vector2() thing.atlas:draw(thing.position.x + (cameraOffset.x * thing.modifier), thing.position.y + (cameraOffset.y * thing.modifier), thing.rotation, thing.resize.x, thing.resize.y) end @@ -288,7 +291,7 @@ function module.drawUI() for index, thing in ipairs(leftOvers) do if thing.isImage then - local cameraOffset = thing.ui and module.myTypes.Vector2() or module.cameraPosition + local cameraOffset = thing.ui and Vector2() or module.cameraPosition love.graphics.draw(thing.image, thing.position.x + cameraOffset.x * thing.modifier , thing.position.y + cameraOffset.y * thing.modifier, thing.rotation, thing.resize.x * (thing.flipX and -1 or 1), thing.resize.y * (thing.flipY and -1 or 1)) elseif thing.isSprite then local sprite = thing @@ -308,7 +311,7 @@ function module.drawUI() quad.offset.y = - quad.offset.y end - local cameraOffset = sprite.ui and module.myTypes.Vector2() or module.cameraPosition or module.myTypes.Vector2() + local cameraOffset = sprite.ui and Vector2() or module.cameraPosition or Vector2() love.graphics.draw(sprite.image, quad.quad, (sprite.position.x + (sprite.position.x - quad.offset.x - sprite.extraOffset.x) + cameraOffset.x * sprite.modifier), (sprite.position.y + (sprite.position.y - quad.offset.y - sprite.extraOffset.y) + cameraOffset.y * sprite.modifier), sprite.rotation or 0, quad.resize.x * (sprite.flipX and -1 or 1), quad.resize.y* (sprite.flipY and -1 or 1)) end @@ -326,7 +329,7 @@ function module.drawUI() quad.offset.y = - quad.offset.y end - local cameraOffset = rect.ui and module.myTypes.Vector2() or module.cameraPosition or module.myTypes.Vector2() + local cameraOffset = rect.ui and Vector2() or module.cameraPosition or Vector2() love.graphics.draw(rect.image, quad.quad, (rect.position.x + (rect.position.x - quad.offset.x - rect.extraOffset.x) + cameraOffset.x * rect.modifier), (rect.position.y + (rect.position.y - quad.offset.y - rect.extraOffset.y) + cameraOffset.y * rect.modifier), rect.rotation or 0, quad.resize.x * (rect.flipX and -1 or 1), quad.resize.y* (rect.flipY and -1 or 1)) end @@ -336,7 +339,7 @@ function module.drawUI() end end -function module.Rect(image, sheet) +function _G.Rect(image, sheet) if not cachedQuads[sheet] then local sheetString = files.read_file(sheet) @@ -355,9 +358,9 @@ function module.Rect(image, sheet) fps = 10, animation = nil, frame = 0, - position = module.myTypes.Vector2(200, 100), -- changeable + position = Vector2(200, 100), -- changeable looping = false, - extraOffset = module.myTypes.Vector2(0,0), + extraOffset = Vector2(0,0), rect = false, modifier = 1, layer = 0 @@ -381,7 +384,7 @@ function module.Rect(image, sheet) quads[name:sub(0, name:len() - 4)] = {} end - quads[name:sub(0, name:len() - 4)][num] = {quad = love.graphics.newQuad(x, y, width, height, newSprite.image), offset = module.myTypes.Vector2(frameX or 0, frameY or 0), resize = module.myTypes.Vector2(1,1)} + quads[name:sub(0, name:len() - 4)][num] = {quad = love.graphics.newQuad(x, y, width, height, newSprite.image), offset = Vector2(frameX or 0, frameY or 0), resize = Vector2(1,1)} end newSprite.quads = quads @@ -398,9 +401,9 @@ function module.Rect(image, sheet) fps = 10, animation = nil, frame = 0, - position = module.myTypes.Vector2(200, 100), -- changeable + position = Vector2(200, 100), -- changeable looping = false, - extraOffset = module.myTypes.Vector2(0,0), + extraOffset = Vector2(0,0), rect = false, modifier = 1, layer = 0 @@ -430,15 +433,15 @@ function module.destroyAllSprites() Atlases = {} end -function module.Image(path, scrollFactor) +function _G.Image(path, scrollFactor) if not cachedImages[path] then cachedImages[path] = love.graphics.newImage(path) end local newImage = setmetatable({ image = cachedImages[path], - resize = module.myTypes.Vector2(1,1), - position = module.myTypes.Vector2(), + resize = Vector2(1,1), + position = Vector2(), modifier = scrollFactor or 1, rotation = 0, layer = 0 @@ -478,7 +481,7 @@ function module.preLoad(imagePath, sheetPath) if not quads[name:sub(0, name:len() - 4)] then quads[name:sub(0, name:len() - 4)] = {} end - quads[name:sub(0, name:len() - 4)][num] = {quad = love.graphics.newQuad(x, y, width, height, image), offset = module.myTypes.Vector2(frameX or 0, frameY or 0), resize = module.myTypes.Vector2(1,1)} + quads[name:sub(0, name:len() - 4)][num] = {quad = love.graphics.newQuad(x, y, width, height, image), offset = Vector2(frameX or 0, frameY or 0), resize = Vector2(1,1)} end cachedQuads[sheetPath] = {quads = quads, image = image} @@ -500,6 +503,7 @@ function module.getShader(name) return loadedShaders[name] end +---@class Atlas local Atlas = {} Atlas.__index = Atlas @@ -511,12 +515,12 @@ function Atlas:Destroy() Atlases[self.index] = nil end -function module.Atlas(folder) +function _G.Atlas(folder) local newAtlas = setmetatable({ atlas = love.animate.newTextureAtlas(), - position = module.myTypes.Vector2(), + position = Vector2(), rotation = 0, - resize = module.myTypes.Vector2(1,1), + resize = Vector2(1,1), index = 0, modifier = 1 }, Atlas) diff --git a/src/modules/types/vector.lua b/src/modules/types/vector.lua index bad0342..2c83e48 100644 --- a/src/modules/types/vector.lua +++ b/src/modules/types/vector.lua @@ -1,36 +1,31 @@ -local myMath = require("modules.math") +--- @class Vector2 +local Vector2Class = {} +Vector2Class.__index = Vector2Class -local module = {} - -local Vector2 = {} -Vector2.__index = Vector2 - -function Vector2:Lerp(newVector2, position) - return module.Vector2(myMath.lerp(self.x, newVector2.x, position), myMath.lerp(self.y, newVector2.y, position)) +function Vector2Class:Lerp(newVector2, position) + return Vector2(Lerp(self.x, newVector2.x, position), Lerp(self.y, newVector2.y, position)) end -function Vector2:Get() +function Vector2Class:Get() return self.x, self.y end -function Vector2:Negate() - return module.Vector2(-self.x, -self.y) +function Vector2Class:Negate() + return Vector2(-self.x, -self.y) end -function Vector2:Add(addVector2) - return module.Vector2(self.x + addVector2.x, self.y + addVector2.y) +function Vector2Class:Add(addVector2) + return Vector2(self.x + addVector2.x, self.y + addVector2.y) end -function Vector2:Mul(num) - return module.Vector2(self.x * num, self.y * num) +function Vector2Class:Mul(num) + return Vector2(self.x * num, self.y * num) end -function Vector2:Div(num) - return module.Vector2(self.x / num, self.y / num) +function Vector2Class:Div(num) + return Vector2(self.x / num, self.y / num) end -function module.Vector2(x, y) - return setmetatable({x = x or 0, y = y or 0}, Vector2) -end - -return module \ No newline at end of file +function _G.Vector2(x, y) + return setmetatable({x = x or 0, y = y or 0}, Vector2Class) +end \ No newline at end of file diff --git a/src/states/freeplaystate.lua b/src/states/freeplaystate.lua index 8ac7f0a..927fdcb 100644 --- a/src/states/freeplaystate.lua +++ b/src/states/freeplaystate.lua @@ -3,8 +3,8 @@ return function() local dataFolder = love.filesystem.getSaveDirectory() - local myMath = require("modules.math") - local myTypes = require("modules.types") + + local files = require("modules.files") local json = require("modules.json") local logging = require("modules.logging") @@ -27,7 +27,7 @@ return function() local icon = song.icon if not icon then goto evilgoto end - local spriteicon = myTypes.Sprite(string.format("sprites/freeplay/icons/%s.png", icon), + local spriteicon = Sprite(string.format("sprites/freeplay/icons/%s.png", icon), string.format("sprites/freeplay/icons/%s.json", icon)) spriteicon:PlayAnimation("idle", .005, false) spriteicon.frame = 1 @@ -81,41 +81,41 @@ return function() local function setup() start = false - bg = myTypes.Image("images/menuBG.png", 0) + bg = Image("images/menuBG.png", 0) bg.ui = false bg.layer = -10 -- NO MORE GF - left = myTypes.Image("images/MenuLeft.png") + left = Image("images/MenuLeft.png") left.layer = 0 - left.resize = myTypes.Vector2(2, 1) + left.resize = Vector2(2, 1) - arrow = myTypes.Sprite("sprites/freeplay/freeplaySelector.png", "sprites/freeplay/freeplaySelector.json") + arrow = Sprite("sprites/freeplay/freeplaySelector.png", "sprites/freeplay/freeplaySelector.json") arrow.position.y = 330 arrow.position.x = 20 arrow.layer = 1 - arrow.resize = myTypes.Vector2(.5, .5) + arrow.resize = Vector2(.5, .5) arrow.flipX = true arrow:PlayAnimation("arrow pointer loop", 24, true) - -- myTypes.render.preLoad( + -- render.preLoad( -- "sprites/freeplay/freeplaySelector_pico.png", -- "sprites/freeplay/freeplaySelector.json" -- ) - myTypes.render.preLoad("sprites/freeplay/freeplaySelector_pico.png", + render.preLoad("sprites/freeplay/freeplaySelector_pico.png", "sprites/freeplay/freeplaySelector_pico.json") - diffIMG = myTypes.Sprite("images/diff/diffList.png", "images/diff/diffList.json") --look there was a different plan going in + diffIMG = Sprite("images/diff/diffList.png", "images/diff/diffList.json") --look there was a different plan going in diffIMG:PlayAnimation(curDiff, 24, false) - diffIMG.position = myTypes.Vector2(200, 320) + diffIMG.position = Vector2(200, 320) diffIMG.layer = 2 - charIcon = myTypes.Sprite("sprites/menu/charIcons.png", "sprites/menu/charIcons.json") + charIcon = Sprite("sprites/menu/charIcons.png", "sprites/menu/charIcons.json") charIcon:PlayAnimation(curChar .. iconNum, 24, false) - charIcon.position = myTypes.Vector2(175, 100) - charIcon.resize = myTypes.Vector2(0.25, 0.25) --this doesnt work and idk why + charIcon.position = Vector2(175, 100) + charIcon.resize = Vector2(0.25, 0.25) --this doesnt work and idk why charIcon.layer = 2 --since they won't overlap this is ok i think freaky:play() @@ -139,7 +139,7 @@ return function() end local function run() - myTypes.destroyAllSprites() + render.destroyAllSprites() freaky:stop() state.changeState("playstate", curSong.name, curDiff, true) @@ -171,15 +171,15 @@ return function() end end bfAtlas:update(dt) - myTypes.render.cameraTarget = myTypes.Vector2(0, 0) - myTypes.updateSprites(dt) + render.cameraTarget = Vector2(0, 0) + render.updateSprites(dt) end function state.draw() love.graphics.setDefaultFilter("nearest", "nearest") - myTypes.drawSprites() + render.drawSprites() - evilCurIndex = myMath.lerp(evilCurIndex, curIndex, .3) + evilCurIndex = Lerp(evilCurIndex, curIndex, .3) for index, song in next, songs do local color = index == curIndex and { 50, 50, 50 } or { 0, 0, 0 } @@ -188,12 +188,12 @@ return function() local icon = icons[song.name] if icon then - icon.position = myTypes.Vector2(5 * (index - evilCurIndex) + 80 + (song.name:len() * 10), + icon.position = Vector2(5 * (index - evilCurIndex) + 80 + (song.name:len() * 10), love.graphics:getHeight() / 4 + (25 * (index - evilCurIndex - .5))) end end - arrow.position = myTypes.Vector2(30 + 8 * (evilCurIndex - curIndex), + arrow.position = Vector2(30 + 8 * (evilCurIndex - curIndex), love.graphics:getHeight() / 4 + (evilCurIndex - curIndex - 1) * 25) --love.graphics.print({{0,0,0}, curDiff}, font, 400, 660) @@ -305,23 +305,23 @@ return function() bfAtlas:stop() bfAtlas:load("sprites/charSelect/picoChill") bfAtlas:play("pico slide in") - arrow = myTypes.Sprite( + arrow = Sprite( "sprites/freeplay/freeplaySelector_pico.png", "sprites/freeplay/freeplaySelector_pico.json" ) arrow.position.y = 330 arrow.position.x = 20 arrow.layer = 1 - arrow.resize = myTypes.Vector2(.5, .5) + arrow.resize = Vector2(.5, .5) arrow.flipX = true arrow:PlayAnimation("arrow pointer loop", 24, true) else - arrow = myTypes.Sprite("sprites/freeplay/freeplaySelector.png", + arrow = Sprite("sprites/freeplay/freeplaySelector.png", "sprites/freeplay/freeplaySelector.json") arrow.position.y = 330 arrow.position.x = 20 arrow.layer = 1 - arrow.resize = myTypes.Vector2(.5, .5) + arrow.resize = Vector2(.5, .5) arrow.flipX = true arrow:PlayAnimation("arrow pointer loop", 24, true) songs = require("charts.songs") @@ -345,6 +345,8 @@ return function() charSwapSND:play() lastChange = 0 setupIcons() + elseif key == "escape" then + state.changeState("menustate") elseif tonumber(key) and tonumber(key) < 5 then if key == "0" then settings.Downscroll = not settings.Downscroll diff --git a/src/states/menustate.lua b/src/states/menustate.lua new file mode 100644 index 0000000..1b539df --- /dev/null +++ b/src/states/menustate.lua @@ -0,0 +1,5 @@ +return function() + local state = {} + + return state +end \ No newline at end of file diff --git a/src/states/playstate.lua b/src/states/playstate.lua index 41c87d8..4bd23bf 100644 --- a/src/states/playstate.lua +++ b/src/states/playstate.lua @@ -2,8 +2,8 @@ local function state(songName, songDifficulty, show) local state = {} -- Returns needed functions for the state to work after loading it properly -- I NEED THEM IMPORTS - local myMath = require("modules.math") - local myTypes = require("modules.types") + + local conductor = require("modules.conductor") local json = require("modules.json") local files = require("modules.files") @@ -169,17 +169,17 @@ local function state(songName, songDifficulty, show) local sharedVars = { canStart = true, - screenSize = myTypes.Vector2(1280, 720), - canvasSize = myTypes.Vector2(1920,1080), + screenSize = Vector2(1280, 720), + canvasSize = Vector2(1920,1080), singVectors = { - singLEFT = myTypes.Vector2(20, 0), - singDOWN = myTypes.Vector2(0, -20), - singUP = myTypes.Vector2(0, 20), - singRIGHT = myTypes.Vector2(-20, 0), - ["singLEFT-alt"] = myTypes.Vector2(20, 0), -- alt anims need to be here too - ["singDOWN-alt"] = myTypes.Vector2(0, -20), - ["singUP-alt"] = myTypes.Vector2(0, 20), - ["singRIGHT-alt"] = myTypes.Vector2(-20, 0) + singLEFT = Vector2(20, 0), + singDOWN = Vector2(0, -20), + singUP = Vector2(0, 20), + singRIGHT = Vector2(-20, 0), + ["singLEFT-alt"] = Vector2(20, 0), -- alt anims need to be here too + ["singDOWN-alt"] = Vector2(0, -20), + ["singUP-alt"] = Vector2(0, 20), + ["singRIGHT-alt"] = Vector2(-20, 0) }, settings = settings, receptors = receptors, @@ -312,9 +312,9 @@ local function state(songName, songDifficulty, show) miss:stop() miss:release() - myTypes.destroyAllSprites() + render.destroyAllSprites() - deadBF = myTypes.character(string.format("%s-dead", chart.player1)) + deadBF = Character(string.format("%s-dead", chart.player1)) deadBF:PlayAnimation("firstDeath") loss:play() @@ -385,7 +385,7 @@ local function state(songName, songDifficulty, show) startTime = socket.gettime() end if dead then - myTypes.render.cameraTarget = deadBF.stageCamera + render.cameraTarget = deadBF.stageCamera if not restart then if deadBF and deadBF.sprite.ended then deadBF:PlayAnimation("deathLoop") @@ -406,7 +406,7 @@ local function state(songName, songDifficulty, show) state.restart(songName, songDifficulty) end end - myTypes.updateSprites(dt) + render.updateSprites(dt) end return end @@ -482,6 +482,12 @@ local function state(songName, songDifficulty, show) module.onBeat(beat) end end + + + inst:seek(elapsed / 1000 > 0 and elapsed / 1000 or 0, "seconds") + if chart.needsVoices then + voices:seek(elapsed / 1000 > 0 and elapsed / 1000 or 0, "seconds") + end end local section = chart.notes[math.floor(step / 16) + 1] @@ -489,27 +495,27 @@ local function state(songName, songDifficulty, show) if section then if not section.gfSection then if section.mustHitSection then - local currentSingVector = sharedVars.singVectors[characters.bf.animation] or myTypes.Vector2() - myTypes.render.cameraTarget = myTypes.Vector2(-stage.camera_boyfriend[1], -stage.camera_boyfriend[2]):Add(characters.bf.stageCamera:Negate()):Add(myTypes.Vector2(0, -200)):Add(currentSingVector) + local currentSingVector = sharedVars.singVectors[characters.bf.animation] or Vector2() + render.cameraTarget = Vector2(-stage.camera_boyfriend[1], -stage.camera_boyfriend[2]):Add(characters.bf.stageCamera:Negate()):Add(Vector2(0, -200)):Add(currentSingVector) else if characters.dad then - local currentSingVector = sharedVars.singVectors[characters.dad.animation] or myTypes.Vector2() - myTypes.render.cameraTarget = myTypes.Vector2(stage.camera_opponent[1], stage.camera_opponent[2]):Add(characters.dad.stageCamera:Negate()):Add(myTypes.Vector2(0, -200)):Add(currentSingVector) + local currentSingVector = sharedVars.singVectors[characters.dad.animation] or Vector2() + render.cameraTarget = Vector2(stage.camera_opponent[1], stage.camera_opponent[2]):Add(characters.dad.stageCamera:Negate()):Add(Vector2(0, -200)):Add(currentSingVector) else - local currentSingVector = sharedVars.singVectors[characters.gf.animation] or myTypes.Vector2() - myTypes.render.cameraTarget = myTypes.Vector2(stage.camera_girlfriend[1], stage.camera_girlfriend[2]):Add(characters.gf.stageCamera:Negate()):Add(myTypes.Vector2(0, -200)):Add(currentSingVector) + local currentSingVector = sharedVars.singVectors[characters.gf.animation] or Vector2() + render.cameraTarget = Vector2(stage.camera_girlfriend[1], stage.camera_girlfriend[2]):Add(characters.gf.stageCamera:Negate()):Add(Vector2(0, -200)):Add(currentSingVector) end end else - local currentSingVector = sharedVars.singVectors[characters.gf.animation] or myTypes.Vector2() - myTypes.render.cameraTarget = myTypes.Vector2(stage.camera_girlfriend[1], stage.camera_girlfriend[2]):Add(characters.gf.stageCamera:Negate()):Add(myTypes.Vector2(0, -200)):Add(currentSingVector) + local currentSingVector = sharedVars.singVectors[characters.gf.animation] or Vector2() + render.cameraTarget = Vector2(stage.camera_girlfriend[1], stage.camera_girlfriend[2]):Add(characters.gf.stageCamera:Negate()):Add(Vector2(0, -200)):Add(currentSingVector) end else - local currentSingVector = sharedVars.singVectors[characters.bf.animation] or myTypes.Vector2() - myTypes.render.cameraTarget = myTypes.Vector2(-stage.camera_boyfriend[1], -stage.camera_boyfriend[2]):Add(characters.bf.stageCamera:Negate()):Add(myTypes.Vector2(0, -200)):Add(currentSingVector) + local currentSingVector = sharedVars.singVectors[characters.bf.animation] or Vector2() + render.cameraTarget = Vector2(-stage.camera_boyfriend[1], -stage.camera_boyfriend[2]):Add(characters.bf.stageCamera:Negate()):Add(Vector2(0, -200)):Add(currentSingVector) end - myTypes.updateSprites(dt) + render.updateSprites(dt) for name, character in next, characters do if name ~= "gf" and character.animInfo.idle and character.sprite.animation ~= "idle" and character.sprite.ended then @@ -546,7 +552,7 @@ local function state(songName, songDifficulty, show) for index, note in next, notes do if note.mustPress then - note.sprite.position = myTypes.Vector2(receptors[note.direction].position.x + note.offset.x, settings.Downscroll and receptors[note.direction].position.y - (note.position-elapsed) * speed or receptors[note.direction].position.y + (note.position - elapsed) * speed) + note.sprite.position = Vector2(receptors[note.direction].position.x + note.offset.x, settings.Downscroll and receptors[note.direction].position.y - (note.position-elapsed) * speed or receptors[note.direction].position.y + (note.position - elapsed) * speed) if (note.position - elapsed) * speed < -150 then note:destroy() miss:stop() @@ -561,7 +567,7 @@ local function state(songName, songDifficulty, show) end end else - note.sprite.position = myTypes.Vector2(opponentReceptors[note.direction].position.x + note.offset.x, settings.Downscroll and opponentReceptors[note.direction].position.y - (note.position-elapsed) * speed or opponentReceptors[note.direction].position.y + (note.position - elapsed) * speed) + note.sprite.position = Vector2(opponentReceptors[note.direction].position.x + note.offset.x, settings.Downscroll and opponentReceptors[note.direction].position.y - (note.position-elapsed) * speed or opponentReceptors[note.direction].position.y + (note.position - elapsed) * speed) if (note.position - elapsed) * speed < 10 then notes[index] = nil if section then @@ -589,7 +595,7 @@ local function state(songName, songDifficulty, show) for index, hold in next, holdNotes do if hold.mustPress then - hold.sprite.position = myTypes.Vector2(receptors[hold.direction].position.x + hold.offset.x, settings.Downscroll and receptors[hold.direction].position.y - (hold.position-elapsed) * speed or receptors[hold.direction].position.y + (hold.position - elapsed) * speed) + hold.sprite.position = Vector2(receptors[hold.direction].position.x + hold.offset.x, settings.Downscroll and receptors[hold.direction].position.y - (hold.position-elapsed) * speed or receptors[hold.direction].position.y + (hold.position - elapsed) * speed) if (hold.position - elapsed) * speed < 10 then if love.keyboard.isDown(keyBinds[hold.direction]) then if characters.bf.animInfo["sing"..directions[hold.direction].."-alt"] and (section.altAnim or hold.altAnim) then @@ -608,7 +614,7 @@ local function state(songName, songDifficulty, show) end end else - hold.sprite.position = myTypes.Vector2(opponentReceptors[hold.direction].position.x + hold.offset.x, settings.Downscroll and opponentReceptors[hold.direction].position.y - (hold.position-elapsed) * speed or opponentReceptors[hold.direction].position.y + (hold.position - elapsed) * speed) + hold.sprite.position = Vector2(opponentReceptors[hold.direction].position.x + hold.offset.x, settings.Downscroll and opponentReceptors[hold.direction].position.y - (hold.position-elapsed) * speed or opponentReceptors[hold.direction].position.y + (hold.position - elapsed) * speed) if (hold.position - elapsed) * speed < 10 then if characters.dad.animInfo["sing"..directions[hold.direction].."-alt"] and (section.altAnim or hold.altAnim) then characters.dad:PlayAnimation("sing"..directions[hold.direction].."-alt") @@ -627,7 +633,7 @@ local function state(songName, songDifficulty, show) if event.name == "change character" then characters[event.var1]:Destroy() - characters[event.var1] = myTypes.character(event.var2) + characters[event.var1] = Character(event.var2) elseif event.name == "play animation" then characters[event.var2]:PlayAnimation(event.var1) elseif event.name == "hey!" then @@ -642,8 +648,8 @@ local function state(songName, songDifficulty, show) end end - zoom = myMath.lerp(zoom, stage.defaultZoom or 1, .05) - uiZoom = myMath.lerp(uiZoom, 1, .05) + zoom = Lerp(zoom, stage.defaultZoom or 1, .05) + uiZoom = Lerp(uiZoom, 1, .05) if inst and inst:getVolume() ~= volume / 100 then inst:setVolume(volume / 100) @@ -680,7 +686,7 @@ local function state(songName, songDifficulty, show) love.graphics.clear() - myTypes.drawSprites() + render.drawSprites() for i, module in next, modules do if module.drawBelowUI then @@ -692,7 +698,7 @@ local function state(songName, songDifficulty, show) love.graphics.clear() - myTypes.drawUI() + render.drawUI() if playing and ui.score then love.graphics.print({{0,0,0,1}, string.format("Score: %s Accuracy: %s", score, tostring(accuracy):sub(1, 5))}, evenBiggerFont, 760, settings.Downscroll and 1030 or 50) @@ -773,14 +779,14 @@ local function state(songName, songDifficulty, show) -- GF first so she is below other chars if chart.gfVersion ~= "none" then - characters.gf = myTypes.character(chart.gfVersion) - characters.gf.stagePosition = myTypes.Vector2(stage.girlfriend[1], stage.girlfriend[2]) + characters.gf = Character(chart.gfVersion) + characters.gf.stagePosition = Vector2(stage.girlfriend[1], stage.girlfriend[2]) characters.gf:PlayAnimation("danceLeft") characters.gf.sprite.layer = 0 end - characters.bf = myTypes.character(chart.player1) - characters.bf.stagePosition = myTypes.Vector2(stage.boyfriend[1], stage.boyfriend[2]) + characters.bf = Character(chart.player1) + characters.bf.stagePosition = Vector2(stage.boyfriend[1], stage.boyfriend[2]) characters.bf:PlayAnimation("idle") characters.bf.sprite.layer = 1 @@ -788,8 +794,8 @@ local function state(songName, songDifficulty, show) icons.bf = {image = image, alive = love.graphics.newQuad(0,0, 150, 150, image), dead = love.graphics.newQuad(150, 0, 150, 150, image)} if chart.player2 ~= "none" then -- you can have no player2 but always player1 - characters.dad = myTypes.character(chart.player2) - characters.dad.stagePosition = myTypes.Vector2(stage.opponent[1], stage.opponent[2]) + characters.dad = Character(chart.player2) + characters.dad.stagePosition = Vector2(stage.opponent[1], stage.opponent[2]) characters.dad:PlayAnimation(characters.dad.animInfo.idle and "idle" or "danceLeft") characters.dad.sprite.layer = 1 @@ -803,30 +809,30 @@ local function state(songName, songDifficulty, show) local noteSplash = chart.splashSkin or "noteSplashes" for i = 0, 3 do - local receptor = myTypes.Rect("sprites/NOTE_assets.png", "sprites/NOTE_assets.json") + local receptor = Rect("sprites/NOTE_assets.png", "sprites/NOTE_assets.json") receptor:Frame("arrow"..directions[i+1], 0) receptor.layer = 9 - receptor.position = myTypes.Vector2(600 + (79* i), settings.Downscroll and 430 or 0) + receptor.position = Vector2(600 + (79* i), settings.Downscroll and 430 or 0) receptor.ui = true -- So it doesnt move with the camera. receptors[i + 1] = receptor - local splash = myTypes.Sprite("sprites/noteSplashes.png", "sprites/noteSplashes.json") + local splash = Sprite("sprites/noteSplashes.png", "sprites/noteSplashes.json") splash.layer = 11 - splash.position = myTypes.Vector2(570 + (79* i), settings.Downscroll and 400 or -50) + splash.position = Vector2(570 + (79* i), settings.Downscroll and 400 or -50) splash.ui = true splashes[i + 1] = splash end for i = 0, 3 do -- opponent receptors, purely graphics - local receptor = myTypes.Rect("sprites/NOTE_assets.png", "sprites/NOTE_assets.json") + local receptor = Rect("sprites/NOTE_assets.png", "sprites/NOTE_assets.json") receptor:Frame("arrow"..directions[i+1], 0) - receptor.position = myTypes.Vector2(50 + 79 * i, settings.Downscroll and 430 or 0) + receptor.position = Vector2(50 + 79 * i, settings.Downscroll and 430 or 0) receptor.layer = 9 receptor.ui = true -- So it doesnt move with the camera. @@ -838,18 +844,18 @@ local function state(songName, songDifficulty, show) for index, section in next, chart.notes do for index, note in next, section.sectionNotes do if note[2] >= 0 then - local newNote = myTypes.note(note, section.mustHitSection) + local newNote = Note(note, section.mustHitSection) unspawnedNotes[#unspawnedNotes+1] = newNote if note[3] > 0 then local length = math.floor(note[3] / conductor.stepCrochet) for i = 0, length - .1, .1 do - local newHold = myTypes.note({note[1] + i * conductor.stepCrochet, note[2], note[3], note[4]}, section.mustHitSection, true) + local newHold = Note({note[1] + i * conductor.stepCrochet, note[2], note[3], note[4]}, section.mustHitSection, true) unspawnedHoldNotes[#unspawnedHoldNotes+1] = newHold end - local newHold = myTypes.note({note[1] + length * conductor.stepCrochet, note[2], note[3], note[4]}, section.mustHitSection, true, true) + local newHold = Note({note[1] + length * conductor.stepCrochet, note[2], note[3], note[4]}, section.mustHitSection, true, true) unspawnedHoldNotes[#unspawnedHoldNotes+1] = newHold newHold.holdEnd = true if settings.Downscroll then @@ -867,7 +873,7 @@ local function state(songName, songDifficulty, show) events[#events+1] = newEvent if newEvent.name == "change character" then - myTypes.preloadChar(newEvent.var2) + chars.preloadChar(newEvent.var2) end end end @@ -893,7 +899,7 @@ local function state(songName, songDifficulty, show) events[#events+1] = newEvent if newEvent.name == "change character" then - myTypes.preloadChar(newEvent.var2) + chars.preloadChar(newEvent.var2) end logging.log(string.lower(note[3])) @@ -915,7 +921,7 @@ local function state(songName, songDifficulty, show) events[#events+1] = newEvent if newEvent.name == "change character" then - myTypes.preloadChar(newEvent.var2) + chars.preloadChar(newEvent.var2) end end end @@ -940,13 +946,13 @@ local function state(songName, songDifficulty, show) events[#events+1] = newEvent if newEvent.name == "change character" then - myTypes.preloadChar(newEvent.var2) + chars.preloadChar(newEvent.var2) end end end end - myTypes.render.cameraTarget = myTypes.Vector2() + render.cameraTarget = Vector2() keyBinds = settings.Keybinds @@ -962,39 +968,12 @@ local function state(songName, songDifficulty, show) end end - logging.log(logging.dump(modules)) - - local sickImage = myTypes.Image("images/ui/sick.png") - local goodImage = myTypes.Image("images/ui/good.png") - local badImage = myTypes.Image("images/ui/bad.png") - local shitImage = myTypes.Image("images/ui/shit.png") - - sickImage.position.y = 330 - goodImage.position.y = 405 - badImage.position.y = 480 - shitImage.position.y = 555 - - sickImage.ui = true - goodImage.ui = true - badImage.ui = true - shitImage.ui = true - - sickImage.layer = 7 - goodImage.layer = 7 - badImage.layer = 7 - shitImage.layer = 7 - - sickImage.resize = myTypes.Vector2(0.5,0.5) - goodImage.resize = myTypes.Vector2(0.5,0.5) - badImage.resize = myTypes.Vector2(0.5,0.5) - shitImage.resize = myTypes.Vector2(0.5,0.5) - - local canvasSize = sharedVars.canvasSize or myTypes.Vector2(1920,1080) + local canvasSize = sharedVars.canvasSize or Vector2(1920,1080) mainCanvas = love.graphics.newCanvas(canvasSize.x, canvasSize.y) uiCanvas = love.graphics.newCanvas(canvasSize.x, canvasSize.y) - local screenSize = sharedVars.screenSize or myTypes.Vector2(1280, 720) + local screenSize = sharedVars.screenSize or Vector2(1280, 720) love.window.setMode(screenSize.x, screenSize.y, { fullscreen = false , resizable = false}) end diff --git a/src/states/resultsstate.lua b/src/states/resultsstate.lua index 5fea474..c2cea90 100644 --- a/src/states/resultsstate.lua +++ b/src/states/resultsstate.lua @@ -1,4 +1,4 @@ -local myTypes = require("modules.types") + local logging = require("modules.logging") local files = require("modules.files") local json = require("modules.json") @@ -8,7 +8,7 @@ text.__index = text function text:Move(position) for index, tex in next, self.text do - tex.position = myTypes.Vector2(position.x + 15 * (index - 1), position.y) + tex.position = Vector2(position.x + 15 * (index - 1), position.y) end self.position = position end @@ -23,9 +23,9 @@ local function createFunkinNumbers(number, position, layer) for i = 1, #str do local l = str:sub(i, i) - local newText = myTypes.Rect("sprites/resultScreen/tallieNumber.png", "sprites/resultScreen/tallieNumber.json") + local newText = Rect("sprites/resultScreen/tallieNumber.png", "sprites/resultScreen/tallieNumber.json") newText:Frame(string.format("%s small", l), 0) - newText.position = myTypes.Vector2(position.x + 15 * (i - 1), position.y) + newText.position = Vector2(position.x + 15 * (i - 1), position.y) newText.layer = layer - (i / 200) newText.modifier = 0 @@ -83,7 +83,7 @@ return function(score, accuracy, ratings, combo) local state = {} function state.update(dt) - myTypes.updateSprites(dt) + render.updateSprites(dt) end function state.keypressed(key, un, is) @@ -104,29 +104,29 @@ return function(score, accuracy, ratings, combo) end end - soundSystem = myTypes.Sprite("sprites/resultScreen/soundSystem.png", "sprites/resultScreen/soundSystem.json") + soundSystem = Sprite("sprites/resultScreen/soundSystem.png", "sprites/resultScreen/soundSystem.json") soundSystem:PlayAnimation("sound system", 24, false) - soundSystem.position = myTypes.Vector2(0, -100) + soundSystem.position = Vector2(0, -100) soundSystem.layer = 10 soundSystem.modifier = 0 - rantingPopin = myTypes.Sprite("sprites/resultScreen/ratingsPopin.png", "sprites/resultScreen/ratingsPopin.json") - rantingPopin.position = myTypes.Vector2(-60, 70) + rantingPopin = Sprite("sprites/resultScreen/ratingsPopin.png", "sprites/resultScreen/ratingsPopin.json") + rantingPopin.position = Vector2(-60, 70) rantingPopin.layer = 11 rantingPopin:PlayAnimation("Categories", 24, false) rantingPopin.modifier = 0 - local scorePopin = myTypes.Sprite("sprites/resultScreen/scorePopin.png", "sprites/resultScreen/scorePopin.json") - scorePopin.position = myTypes.Vector2(-100, 255) + local scorePopin = Sprite("sprites/resultScreen/scorePopin.png", "sprites/resultScreen/scorePopin.json") + scorePopin.position = Vector2(-100, 255) scorePopin.layer = 12 scorePopin:PlayAnimation("tally score", 24, false) scorePopin.modifier = 0 - local top = myTypes.Image("sprites/resultScreen/topBarBlack.png", 0) + local top = Image("sprites/resultScreen/topBarBlack.png", 0) top.layer = 6 - local resultsLabel = myTypes.Sprite("sprites/resultScreen/results.png", "sprites/resultScreen/results.json") - resultsLabel.position = myTypes.Vector2(-100) + local resultsLabel = Sprite("sprites/resultScreen/results.png", "sprites/resultScreen/results.json") + resultsLabel.position = Vector2(-100) resultsLabel.layer = 12 resultsLabel:PlayAnimation("results instance 1", 24, false) resultsLabel.modifier = 0 @@ -138,28 +138,28 @@ return function(score, accuracy, ratings, combo) total = total + notes end - local totalText = createFunkinNumbers(total, myTypes.Vector2(165, 75), 30) - local comboText = createFunkinNumbers(combo, myTypes.Vector2(165, 105), 30) + local totalText = createFunkinNumbers(total, Vector2(165, 75), 30) + local comboText = createFunkinNumbers(combo, Vector2(165, 105), 30) - local sick = createFunkinNumbers(ratings.sick, myTypes.Vector2(105, 135), 30) - local good = createFunkinNumbers(ratings.good, myTypes.Vector2(95, 165), 30) - local bad = createFunkinNumbers(ratings.bad, myTypes.Vector2(80, 195), 30) - local shit = createFunkinNumbers(ratings.shit, myTypes.Vector2(85, 220), 30) - local miss = createFunkinNumbers(ratings.miss, myTypes.Vector2(115, 250), 30) + local sick = createFunkinNumbers(ratings.sick, Vector2(105, 135), 30) + local good = createFunkinNumbers(ratings.good, Vector2(95, 165), 30) + local bad = createFunkinNumbers(ratings.bad, Vector2(80, 195), 30) + local shit = createFunkinNumbers(ratings.shit, Vector2(85, 220), 30) + local miss = createFunkinNumbers(ratings.miss, Vector2(115, 250), 30) local info = json.parse(files.read_file(string.format("resultScreens/%s.json", curChar))) for index, evil in next, info.results[string.lower(rank)] do if evil.renderType == "animateatlas" then - local atlas = myTypes.render.Atlas(evil.assetPath) + local atlas = Atlas(evil.assetPath) atlas.layer = evil.zIndex - 900 - atlas.position = myTypes.Vector2(evil.offsets.x, evil.offsets.y) + atlas.position = Vector2(evil.offsets.x, evil.offsets.y) atlas:PlayAnimation() atlas.modifier = 0 elseif evil.renderType == "sparrow" then - local sprite = myTypes.Sprite(evil.assetPath .. ".png", evil.assetPath .. ".json") + local sprite = Sprite(evil.assetPath .. ".png", evil.assetPath .. ".json") sprite.layer = evil.zIndex - 900 - sprite.position = myTypes.Vector2(evil.offsets.x, evil.offsets.y) + sprite.position = Vector2(evil.offsets.x, evil.offsets.y) sprite.modifier = 0 local anim for name, quad in next, sprite.quads do @@ -189,22 +189,22 @@ return function(score, accuracy, ratings, combo) for i = 0, 9 do local letter = i <= score:len() and tonumber(score:sub(score:len() - i, score:len() - i)) or 0 - local resultsLabel = myTypes.Sprite("sprites/resultScreen/score-digital-numbers.png", "sprites/resultScreen/score-digital-numbers.json") - resultsLabel.position = myTypes.Vector2(-100) + local resultsLabel = Sprite("sprites/resultScreen/score-digital-numbers.png", "sprites/resultScreen/score-digital-numbers.json") + resultsLabel.position = Vector2(-100) resultsLabel.layer = 15 resultsLabel:PlayAnimation(string.format("%s DIGITAL", numbers[letter + 1]), 24, false) resultsLabel.modifier = 0 - resultsLabel.position = myTypes.Vector2(300 - (30 * i), 300) + resultsLabel.position = Vector2(300 - (30 * i), 300) resultsLabel.frame = 1 end - myTypes.render.cameraPosition = myTypes.Vector2() + render.cameraPosition = Vector2() end function state.draw() love.graphics.clear({ 1, 0.96470588235, 0.60784313725 }) - myTypes.drawSprites() - myTypes.drawUI() + render.drawSprites() + render.drawUI() end return state diff --git a/src/states/weekstate.lua b/src/states/weekstate.lua new file mode 100644 index 0000000..8ee83cb --- /dev/null +++ b/src/states/weekstate.lua @@ -0,0 +1,65 @@ +local weeks = require("weeks") + + + +local weekOrder = {} +local backWeekOrder = {} +local orderIndex = 1 +local evilorderIndex = 1 + +local weekImages = {} +local currentWeek = "tutorial" +local currentDifficulty = "easy" + +return function() + local state = {} + + local function setup() + local bg = Image("images/menuBG.png", 0) + bg.ui = false + bg.layer = -10 + + for name, week in next, weeks do + weekOrder[#weekOrder+1] = name + backWeekOrder[week] = #weekOrder + weekImages[name] = love.graphics.newImage("images/story/"..week.icon..".png") + end + end + + function state.update(dt) + render.updateSprites(dt) + + evilorderIndex = Lerp(evilorderIndex, orderIndex, .05) + + for week, weekImage in next, weekImages do + weekImage.position = Vector2(love.graphics:getWidth() / 2 - weekImage:getWidth() / 2, love.graphics:getHeight() / 2 - weekImage:getHeight() / 2 - (week - evilorderIndex)) + end + end + + function state.draw() + render.drawSprites() + render.drawUI() + end + + function state.keypressed(key) + if key == "down" then + orderIndex, currentWeek = next(weekOrder, orderIndex) + + if not orderIndex then + orderIndex = 1 + currentWeek = weekOrder[1] + end + elseif key == "return" then + gameMode = "storymode" + currentSong = 1 + songOrder = weeks[currentWeek].songs + state.changeState(songOrder[currentSong], currentDifficulty) + end + end + + function state.load() + setup() + end + + return state +end \ No newline at end of file diff --git a/stages/billy.lua b/stages/billy.lua index c1e20b0..8c9ed04 100644 --- a/stages/billy.lua +++ b/stages/billy.lua @@ -1,4 +1,4 @@ -local myTypes = require("modules.types") + local files = require("modules.files") local module = {} @@ -33,9 +33,9 @@ local rain = love.graphics.newShader("shaders/rain.frag") local evilShader = love.graphics.newShader(evilShaderScript) ---receptor.position = myTypes.Vector2(600 + (79* i), settings.Downscroll and 430 or 0) -local nextplayerReceptorPosition = myTypes.Vector2(600, 430) -- Its gonna be a forced downscroll so idc lmao lmao skill issue -local currentplayerReceptorPosition = myTypes.Vector2(600, 430) +--receptor.position = Vector2(600 + (79* i), settings.Downscroll and 430 or 0) +local nextplayerReceptorPosition = Vector2(600, 430) -- Its gonna be a forced downscroll so idc lmao lmao skill issue +local currentplayerReceptorPosition = Vector2(600, 430) local moveAway = false @@ -44,49 +44,49 @@ function module.onCreate() sillyVideo = love.graphics.newVideo("videos/SO_STAY_FINAL_1.ogv") sillyVideo:getSource():setVolume(0) - mirror = myTypes.Image("images/billy/silly_mirror.png") + mirror = Image("images/billy/silly_mirror.png") mirror.layer = -20 - mirror.resize = myTypes.Vector2(1,1) + mirror.resize = Vector2(1,1) mirror.position.y = -300 mirror.position.x = -800 - evilMirror = myTypes.Image("images/billy/broken_mirror.png") + evilMirror = Image("images/billy/broken_mirror.png") evilMirror.layer = -21 -- I will put this one forward on break mirror event ig - evilMirror.resize = myTypes.Vector2(1,1) + evilMirror.resize = Vector2(1,1) evilMirror.position.y = -300 evilMirror.position.x = -800 - local floor = myTypes.Rect("images/billy/bgAssets.png", "images/billy/bgAssets.json") + local floor = Rect("images/billy/bgAssets.png", "images/billy/bgAssets.json") floor.layer = -15 floor:Frame("Silly_floor", 0) - floor.quads["Silly_floor"][0].resize = myTypes.Vector2(1.4, 1) + floor.quads["Silly_floor"][0].resize = Vector2(1.4, 1) floor.position.y = -300 floor.position.x = -100 - local asset1 = myTypes.Rect("images/billy/bgAssets.png", "images/billy/bgAssets.json") + local asset1 = Rect("images/billy/bgAssets.png", "images/billy/bgAssets.json") asset1.layer = -10 asset1:Frame("Silly_idk_1", 0) - asset1.quads["Silly_idk_1"][0].resize = myTypes.Vector2(1, 1) + asset1.quads["Silly_idk_1"][0].resize = Vector2(1, 1) asset1.position.y = -270 asset1.position.x = -400 for index, receptor in next, module.shared.opponentReceptors do receptor.ui = false - receptor.position = myTypes.Vector2(100 * (index - 1), 300) + receptor.position = Vector2(100 * (index - 1), 300) receptor.layer = -5 end - -- local asset2 = myTypes.Rect("images/billy/bgAssets.png", "images/billy/bgAssets.json") + -- local asset2 = Rect("images/billy/bgAssets.png", "images/billy/bgAssets.json") -- asset2.layer = -8 -- asset2:Frame("Silly_idk_2", 0) - -- asset2.quads["Silly_idk_2"][0].resize = myTypes.Vector2(0.5, 0.5) - -- local asset3 = myTypes.Rect("images/billy/bgAssets.png", "images/billy/bgAssets.json") + -- asset2.quads["Silly_idk_2"][0].resize = Vector2(0.5, 0.5) + -- local asset3 = Rect("images/billy/bgAssets.png", "images/billy/bgAssets.json") -- asset3.layer = -7 -- asset3:Frame("Yo_y_mi_silly_pana", 0) - -- asset3.quads["Yo_y_mi_silly_pana"][0].resize = myTypes.Vector2(0.5, 0.5) + -- asset3.quads["Yo_y_mi_silly_pana"][0].resize = Vector2(0.5, 0.5) - evilAtlas = myTypes.render.Atlas("sprites/lyric") - evilAtlas.position = myTypes.Vector2(50000,50000) + evilAtlas = Atlas("sprites/lyric") + evilAtlas.position = Vector2(50000,50000) evilAtlas.layer = 1 module.shared.settings.Downscroll = true -- forcing downscroll because i am not coding upscroll positions dawg @@ -98,9 +98,9 @@ function module.onEvent(event) if event.var1 == "anim" then oldPosition = module.shared.characters.dad.stagePosition oldSpritePosition = module.shared.characters.dad.sprite.position - module.shared.characters.dad.stagePosition = myTypes.Vector2(50000,5000) - module.shared.characters.dad.sprite.position = myTypes.Vector2(50000,5000) - evilAtlas.position = myTypes.Vector2(920, 600) + module.shared.characters.dad.stagePosition = Vector2(50000,5000) + module.shared.characters.dad.sprite.position = Vector2(50000,5000) + evilAtlas.position = Vector2(920, 600) evilAtlas:PlayAnimation("story_of_yourtalebilly") elseif event.var1 == "vid" then evilAtlas:Destroy() @@ -108,17 +108,17 @@ function module.onEvent(event) module.shared.characters.dad.sprite.position = oldPosition sillyVideo:play() startedEvilVideo = true - nextplayerReceptorPosition = myTypes.Vector2(324, -90) + nextplayerReceptorPosition = Vector2(324, -90) for index, receptor in next, module.shared.opponentReceptors do receptor.ui = false - receptor.position = myTypes.Vector2(10000,10000) -- not visible honk mimimi + receptor.position = Vector2(10000,10000) -- not visible honk mimimi receptor.layer = -5 end elseif event.var1 == "break mirror" then evilMirror.layer = -19 elseif event.var1 == "die" then elseif event.var1 == "pre" then - nextplayerReceptorPosition = myTypes.Vector2(600, -90) --Those are tweened to look bettah + nextplayerReceptorPosition = Vector2(600, -90) --Those are tweened to look bettah moveAway = true module.shared.ui.timebar = false module.shared.ui.health = false @@ -134,7 +134,7 @@ function module.onEvent(event) } ]] elseif event.var1 == "hud in" then - nextplayerReceptorPosition = myTypes.Vector2(324, 430) + nextplayerReceptorPosition = Vector2(324, 430) end end end @@ -160,13 +160,13 @@ function module.onUpdate(dt, el) end for index, receptor in next, module.shared.receptors do - receptor.position = myTypes.Vector2(currentplayerReceptorPosition.x + 79 * (index - 1), currentplayerReceptorPosition.y) + receptor.position = Vector2(currentplayerReceptorPosition.x + 79 * (index - 1), currentplayerReceptorPosition.y) end for index, receptor in next, module.shared.splashes do - receptor.position = myTypes.Vector2(currentplayerReceptorPosition.x - 30 + 79 * (index - 1), currentplayerReceptorPosition.y - 30) + receptor.position = Vector2(currentplayerReceptorPosition.x - 30 + 79 * (index - 1), currentplayerReceptorPosition.y - 30) end for index, receptor in next, module.shared.opponentReceptors do - receptor.position = receptor.position:Lerp(moveAway and myTypes.Vector2(100 * (index - 1), -100) or myTypes.Vector2(100 * (index - 1), 300), .05) + receptor.position = receptor.position:Lerp(moveAway and Vector2(100 * (index - 1), -100) or Vector2(100 * (index - 1), 300), .05) end if el > 0 and not introVideo:isPlaying() and not paused and not playedIntro then @@ -177,7 +177,7 @@ function module.onUpdate(dt, el) end if not sillyVideo:isPlaying() and not paused and startedEvilVideo and not endedEvilVideo then endedEvilVideo = true - nextplayerReceptorPosition = myTypes.Vector2(600, 430) + nextplayerReceptorPosition = Vector2(600, 430) module.shared.globalShader = evilShader end end diff --git a/stages/limo.lua b/stages/limo.lua index 66708fe..606f2cd 100644 --- a/stages/limo.lua +++ b/stages/limo.lua @@ -1,4 +1,4 @@ -local myTypes = require("modules.types") + local dancers = {} @@ -10,33 +10,33 @@ return { dancers = {} - local sunset = myTypes.Image("images/limo/limoSunset.png", .2) - sunset.position = myTypes.Vector2(-1000, -100) - sunset.resize = myTypes.Vector2(1.5, 1.5) + local sunset = Image("images/limo/limoSunset.png", .2) + sunset.position = Vector2(-1000, -100) + sunset.resize = Vector2(1.5, 1.5) sunset.layer = -10 - local road = myTypes.Sprite("sprites/limo/limoRoad.png", "sprites/limo/limoRoad.json") + local road = Sprite("sprites/limo/limoRoad.png", "sprites/limo/limoRoad.json") road:PlayAnimation("COOLROAD", 24, true) - road.position = myTypes.Vector2(-300, 230) + road.position = Vector2(-300, 230) road.modifier = 0.6 road.layer = -9 - local limobg = myTypes.Sprite("sprites/limo/bgLimo.png", "sprites/limo/bgLimo.json") + local limobg = Sprite("sprites/limo/bgLimo.png", "sprites/limo/bgLimo.json") limobg:PlayAnimation("background limo pink", 24, true) - limobg.position = myTypes.Vector2(-100, 350) + limobg.position = Vector2(-100, 350) limobg.modifier = .6 limobg.layer = -8 - local limoDriver = myTypes.Sprite("sprites/limo/limoDrive.png", "sprites/limo/limoDrive.json") + local limoDriver = Sprite("sprites/limo/limoDrive.png", "sprites/limo/limoDrive.json") limoDriver:PlayAnimation("Limo stage", 24, true) - limoDriver.position = myTypes.Vector2(-300, 450) + limoDriver.position = Vector2(-300, 450) limoDriver.layer = -7 for i = 1, 5 do - local dancer = myTypes.Sprite("sprites/limo/limoDancer.png", "sprites/limo/limoDancer.json") + local dancer = Sprite("sprites/limo/limoDancer.png", "sprites/limo/limoDancer.json") dancer.modifier = .6 dancer:PlayAnimation("bg dancer sketch PINK", 24, false) - dancer.position = myTypes.Vector2(-10 + i * 150, 155) + dancer.position = Vector2(-10 + i * 150, 155) dancer.layer = -7 + i dancers[i] = dancer diff --git a/stages/limoErect.lua b/stages/limoErect.lua index a42fcde..3bc6897 100644 --- a/stages/limoErect.lua +++ b/stages/limoErect.lua @@ -1,4 +1,4 @@ -local myTypes = require("modules.types") + local dancers = {} @@ -17,89 +17,89 @@ return { dancers = {} - local sunset = myTypes.Image("images/limo/erect/limoSunset.png") - sunset.position = myTypes.Vector2(-100, 0) - sunset.resize = myTypes.Vector2(1, 1) + local sunset = Image("images/limo/erect/limoSunset.png") + sunset.position = Vector2(-100, 0) + sunset.resize = Vector2(1, 1) sunset.modifier = 0.1 sunset.layer = -12 - shootingStar = myTypes.Sprite("sprites/limo/erect/shooting star.png", "sprites/limo/erect/shooting star.json") + shootingStar = Sprite("sprites/limo/erect/shooting star.png", "sprites/limo/erect/shooting star.json") shootingStar:PlayAnimation("shooting star idle", 24, true) - shootingStar.position = myTypes.Vector2(200, 0) + shootingStar.position = Vector2(200, 0) shootingStar.modifier = 0.12 shootingStar.layer = -11 - local mistBG1 = myTypes.Image("images/limo/erect/mistBack.png", .2) - mistBG1.position = myTypes.Vector2(860, 100) - mistBG1.resize = myTypes.Vector2(1.8, 1.3) + local mistBG1 = Image("images/limo/erect/mistBack.png", .2) + mistBG1.position = Vector2(860, 100) + mistBG1.resize = Vector2(1.8, 1.3) mistBG1.layer = -10 - local mistBG2 = myTypes.Image("images/limo/erect/mistBack.png", .2) - mistBG2.position = myTypes.Vector2(-300, 100) - mistBG2.resize = myTypes.Vector2(1.8, 1.3) + local mistBG2 = Image("images/limo/erect/mistBack.png", .2) + mistBG2.position = Vector2(-300, 100) + mistBG2.resize = Vector2(1.8, 1.3) mistBG2.layer = -10 mist[1] = mistBG1 mist[2] = mistBG2 - local road = myTypes.Sprite("sprites/limo/limoRoad.png", "sprites/limo/limoRoad.json") + local road = Sprite("sprites/limo/limoRoad.png", "sprites/limo/limoRoad.json") road:PlayAnimation("COOLROAD", 24, true) - road.position = myTypes.Vector2(-300, 230) + road.position = Vector2(-300, 230) road.modifier = 0.6 road.layer = -9 --nevermind --funkin team why would you need to alpha this out in game - --[[local backFog = myTypes.Image("images/limo/erect/mistBack.png") - backFog.position = myTypes.Vector2(-100, 0) + --[[local backFog = Image("images/limo/erect/mistBack.png") + backFog.position = Vector2(-100, 0) backFog.modifier = 0.6]] - local limobg = myTypes.Sprite("sprites/limo/erect/bgLimo.png", "sprites/limo/erect/bgLimo.json") + local limobg = Sprite("sprites/limo/erect/bgLimo.png", "sprites/limo/erect/bgLimo.json") limobg:PlayAnimation("background limo blue", 24, true) - limobg.position = myTypes.Vector2(-100, 350) + limobg.position = Vector2(-100, 350) limobg.modifier = 0.6 limobg.layer = -8 - local mistMid1 = myTypes.Image("images/limo/erect/mistMid.png", .5) - mistMid1.position = myTypes.Vector2(860, 300) - mistMid1.resize = myTypes.Vector2(1.8, 1.3) + local mistMid1 = Image("images/limo/erect/mistMid.png", .5) + mistMid1.position = Vector2(860, 300) + mistMid1.resize = Vector2(1.8, 1.3) mistMid1.layer = -6.5 - local mistMid2 = myTypes.Image("images/limo/erect/mistMid.png", .5) - mistMid2.position = myTypes.Vector2(-300, 300) - mistMid2.resize = myTypes.Vector2(1.8, 1.3) + local mistMid2 = Image("images/limo/erect/mistMid.png", .5) + mistMid2.position = Vector2(-300, 300) + mistMid2.resize = Vector2(1.8, 1.3) mistMid2.layer = -6.5 mist[3] = mistMid1 mist[4] = mistMid2 - local limoDriver = myTypes.Sprite("sprites/limo/erect/limoDrive.png", "sprites/limo/erect/limoDrive.json") + local limoDriver = Sprite("sprites/limo/erect/limoDrive.png", "sprites/limo/erect/limoDrive.json") limoDriver:PlayAnimation("Limo stage", 24, true) - limoDriver.position = myTypes.Vector2(-300, 450) + limoDriver.position = Vector2(-300, 450) limoDriver = -6 for i = 1, 5 do - local dancer = myTypes.Sprite("sprites/limo/limoDancer.png", "sprites/limo/limoDancer.json") + local dancer = Sprite("sprites/limo/limoDancer.png", "sprites/limo/limoDancer.json") dancer.modifier = .6 dancer:PlayAnimation("bg dancer sketch PINK", 24, false) - dancer.position = myTypes.Vector2(-10 + i * 150, 155) + dancer.position = Vector2(-10 + i * 150, 155) dancer.layer = -6 + i dancers[i] = dancer end - local mistFront1 = myTypes.Image("images/limo/erect/mistFront.png", .7) - mistFront1.position = myTypes.Vector2(-350, 500) - mistFront1.resize = myTypes.Vector2(1.8, 1.3) + local mistFront1 = Image("images/limo/erect/mistFront.png", .7) + mistFront1.position = Vector2(-350, 500) + mistFront1.resize = Vector2(1.8, 1.3) mistFront1.layer = 5 - local mistFront2 = myTypes.Image("images/limo/erect/mistFront.png", .7) - mistFront2.position = myTypes.Vector2(-1630, 500) - mistFront2.resize = myTypes.Vector2(1.8, 1.3) + local mistFront2 = Image("images/limo/erect/mistFront.png", .7) + mistFront2.position = Vector2(-1630, 500) + mistFront2.resize = Vector2(1.8, 1.3) mistFront2.layer = 5 mist[5] = mistFront1 diff --git a/stages/mall.lua b/stages/mall.lua index 19d70b8..8e91c6a 100644 --- a/stages/mall.lua +++ b/stages/mall.lua @@ -1,51 +1,51 @@ -local myTypes = require("modules.types") + local upperBop, bottomBop, santa local snow = {} return { onCreate = function(song) - local bg = myTypes.Image("images/mall/bgWalls.png") - bg.position = myTypes.Vector2(-600, -440) - bg.resize = myTypes.Vector2(0.8, 0.8) + local bg = Image("images/mall/bgWalls.png") + bg.position = Vector2(-600, -440) + bg.resize = Vector2(0.8, 0.8) bg.modifier = 0.2 bg.layer = -10 - upperBop = myTypes.Sprite("sprites/mall/upperBop.png", "sprites/mall/upperBop.json") + upperBop = Sprite("sprites/mall/upperBop.png", "sprites/mall/upperBop.json") upperBop:PlayAnimation("Upper Crowd Bob", 24, false) - upperBop.position = myTypes.Vector2(-240, -40) + upperBop.position = Vector2(-240, -40) upperBop.modifier = 0.33 - upperBop.resize = myTypes.Vector2(0.85, 0.85) + upperBop.resize = Vector2(0.85, 0.85) upperBop.layer = -9 - local escalator = myTypes.Image("images/mall/bgEscalator.png") - escalator.position = myTypes.Vector2(-1100, -540) - escalator.resize = myTypes.Vector2(0.9, 0.9) + local escalator = Image("images/mall/bgEscalator.png") + escalator.position = Vector2(-1100, -540) + escalator.resize = Vector2(0.9, 0.9) escalator.modifier = 0.3 escalator.layer = -8 - local christmasTree = myTypes.Image("images/mall/christmasTree.png") - christmasTree.position = myTypes.Vector2(370, -250) + local christmasTree = Image("images/mall/christmasTree.png") + christmasTree.position = Vector2(370, -250) christmasTree.modifier = 0.4 christmasTree.layer = -7 for i = 1, 4 do --repeating cus fuck rectangles - local snowPart = myTypes.Image("images/mall/fgSnow.png") - snowPart.position = myTypes.Vector2(-1150 , 480 + i * 200) + local snowPart = Image("images/mall/fgSnow.png") + snowPart.position = Vector2(-1150 , 480 + i * 200) snowPart.layer = -6 snow[i] = snowPart end - bottomBop = myTypes.Sprite("sprites/mall/bottomBop.png", "sprites/mall/bottomBop.json") + bottomBop = Sprite("sprites/mall/bottomBop.png", "sprites/mall/bottomBop.json") bottomBop:PlayAnimation("Bottom Level Boppers", 24, false) - bottomBop.position = myTypes.Vector2(-300, 120) + bottomBop.position = Vector2(-300, 120) bottomBop.modifier = 0.9 bottomBop.layer = -5 - santa = myTypes.Sprite("sprites/mall/santa.png", "sprites/mall/santa.json") + santa = Sprite("sprites/mall/santa.png", "sprites/mall/santa.json") santa:PlayAnimation("santa idle in fear", 24, false) - santa.position = myTypes.Vector2(-600, 140) + santa.position = Vector2(-600, 140) santa.layer = -4 end, onBeat = function(beat) diff --git a/stages/mallErect.lua b/stages/mallErect.lua index c54f44e..f796463 100644 --- a/stages/mallErect.lua +++ b/stages/mallErect.lua @@ -1,57 +1,57 @@ -local myTypes = require("modules.types") + local upperBop, bottomBop, santa local snow = {} return { onCreate = function(song) - local bg = myTypes.Image("images/mall/erect/bgWalls.png") - bg.position = myTypes.Vector2(-650, -440) - bg.resize = myTypes.Vector2(0.9, 0.9) + local bg = Image("images/mall/erect/bgWalls.png") + bg.position = Vector2(-650, -440) + bg.resize = Vector2(0.9, 0.9) bg.modifier = 0.2 bg.layer = -10 - upperBop = myTypes.Sprite("sprites/mall/erect/upperBop.png", "sprites/mall/erect/upperBop.json") + upperBop = Sprite("sprites/mall/erect/upperBop.png", "sprites/mall/erect/upperBop.json") upperBop:PlayAnimation("upperBop", 24, false) - upperBop.position = myTypes.Vector2(-240, -40) + upperBop.position = Vector2(-240, -40) upperBop.modifier = 0.33 - upperBop.resize = myTypes.Vector2(0.85, 0.85) + upperBop.resize = Vector2(0.85, 0.85) upperBop.layer = -9 - local escalator = myTypes.Image("images/mall/erect/bgEscalator.png") - escalator.position = myTypes.Vector2(-1100, -540) - escalator.resize = myTypes.Vector2(0.9, 0.9) + local escalator = Image("images/mall/erect/bgEscalator.png") + escalator.position = Vector2(-1100, -540) + escalator.resize = Vector2(0.9, 0.9) escalator.modifier = 0.3 escalator.layer = -8 - local christmasTree = myTypes.Image("images/mall/erect/christmasTree.png") - christmasTree.position = myTypes.Vector2(370, -250) + local christmasTree = Image("images/mall/erect/christmasTree.png") + christmasTree.position = Vector2(370, -250) christmasTree.modifier = 0.4 christmasTree.layer = -7 - local fog = myTypes.Image("images/mall/erect/white.png") - fog.position = myTypes.Vector2(-1100, 200) - fog.resize = myTypes.Vector2(0.9, 0.9) + local fog = Image("images/mall/erect/white.png") + fog.position = Vector2(-1100, 200) + fog.resize = Vector2(0.9, 0.9) fog.modifier = 0.85 fog.layer = -6 for i = 1, 4 do --repeating cus fuck rectangles - local snowPart = myTypes.Image("images/mall/fgSnow.png") - snowPart.position = myTypes.Vector2(-1150 , 480 + i * 200) + local snowPart = Image("images/mall/fgSnow.png") + snowPart.position = Vector2(-1150 , 480 + i * 200) snowPart.layer = -5 snow[i] = snowPart end - bottomBop = myTypes.Sprite("sprites/mall/erect/bottomBop.png", "sprites/mall/erect/bottomBop.json") + bottomBop = Sprite("sprites/mall/erect/bottomBop.png", "sprites/mall/erect/bottomBop.json") bottomBop:PlayAnimation("bottomBop", 24, false) - bottomBop.position = myTypes.Vector2(-350, 120) + bottomBop.position = Vector2(-350, 120) bottomBop.modifier = 0.9 bottomBop.layer = -3 - santa = myTypes.Sprite("sprites/mall/santa.png", "sprites/mall/santa.json") + santa = Sprite("sprites/mall/santa.png", "sprites/mall/santa.json") santa:PlayAnimation("santa idle in fear", 24, false) - santa.position = myTypes.Vector2(-600, 140) + santa.position = Vector2(-600, 140) santa.layer = -2 end, onBeat = function(beat) diff --git a/stages/mallEvil.lua b/stages/mallEvil.lua index 418209c..3f3f459 100644 --- a/stages/mallEvil.lua +++ b/stages/mallEvil.lua @@ -1,4 +1,4 @@ -local myTypes = require("modules.types") + local snow = {} @@ -9,20 +9,20 @@ local snow = {} --evilfuckeduplebronjames.png return { onCreate = function(song) - local bg = myTypes.Image("images/mall/evil/evilBG.png") - bg.position = myTypes.Vector2(-300, -500) - bg.resize = myTypes.Vector2(0.9, 0.9) + local bg = Image("images/mall/evil/evilBG.png") + bg.position = Vector2(-300, -500) + bg.resize = Vector2(0.9, 0.9) bg.modifier = 0.2 bg.layer = -15 - local christmasTree = myTypes.Image("images/mall/evil/evilTree.png") - christmasTree.position = myTypes.Vector2(400, -300) + local christmasTree = Image("images/mall/evil/evilTree.png") + christmasTree.position = Vector2(400, -300) christmasTree.modifier = 0.4 christmasTree.layer = -14 for i = 1, 4 do --repeating cus fuck rectangles - local snowPart = myTypes.Image("images/mall/evil/evilSnow.png") - snowPart.position = myTypes.Vector2(-1000 , 480 + i * 200) + local snowPart = Image("images/mall/evil/evilSnow.png") + snowPart.position = Vector2(-1000 , 480 + i * 200) snowPart.layer = -6 - i snow[i] = snowPart diff --git a/stages/philly.lua b/stages/philly.lua index 0c5d469..0b9e03a 100644 --- a/stages/philly.lua +++ b/stages/philly.lua @@ -1,4 +1,4 @@ -local myTypes = require("modules.types") + local cd = math.random(20, 25) @@ -12,36 +12,36 @@ local stage = { } function stage.onCreate() - local bg = myTypes.Image("images/philly/sky.png") - bg.resize = myTypes.Vector2(1.5, 1.5) + local bg = Image("images/philly/sky.png") + bg.resize = Vector2(1.5, 1.5) bg.modifier = 0.1 - bg.position = myTypes.Vector2(-300) + bg.position = Vector2(-300) bg.layer = -10 - local city = myTypes.Image("images/philly/city.png") - city.resize = myTypes.Vector2(1.5, 1.5) + local city = Image("images/philly/city.png") + city.resize = Vector2(1.5, 1.5) city.modifier = 0.4 - city.position = myTypes.Vector2(-300) + city.position = Vector2(-300) city.layer = -9 - local windows = myTypes.Image("images/philly/window.png") - windows.resize = myTypes.Vector2(1.5, 1.5) + local windows = Image("images/philly/window.png") + windows.resize = Vector2(1.5, 1.5) windows.modifier = 0.4 - windows.position = myTypes.Vector2(-300) + windows.position = Vector2(-300) windows.layer = -8 - local behindTrain = myTypes.Image("images/philly/behindTrain.png") - behindTrain.resize = myTypes.Vector2(1.5, 1.5) - behindTrain.position = myTypes.Vector2(-885) + local behindTrain = Image("images/philly/behindTrain.png") + behindTrain.resize = Vector2(1.5, 1.5) + behindTrain.position = Vector2(-885) behindTrain.layer = -7 - train = myTypes.Image("images/philly/train.png") - train.position = myTypes.Vector2(2000, 600) + train = Image("images/philly/train.png") + train.position = Vector2(2000, 600) train.layer = -6 - local street = myTypes.Image("images/philly/street.png") - street.resize = myTypes.Vector2(1.5, 1.5) - street.position = myTypes.Vector2(-885) + local street = Image("images/philly/street.png") + street.resize = Vector2(1.5, 1.5) + street.position = Vector2(-885) street.layer = -5 passing = love.audio.newSource("sounds/philly/train_passes.ogg", "static") @@ -53,7 +53,7 @@ function stage.onBeat(beat) cd = cd - 1 if cd == 0 then cd = math.random(20, 25) - train.position = myTypes.Vector2(2000, 600) + train.position = Vector2(2000, 600) trainPassing = true stage.shared.characters.gf:PlayAnimation("hairBlow") end diff --git a/stages/school.lua b/stages/school.lua index fb75e5e..8c75068 100644 --- a/stages/school.lua +++ b/stages/school.lua @@ -1,10 +1,8 @@ -local mytypes = require('modules.types') - local module = {} function module.onCreate() - module.shared.canvasSize = mytypes.Vector2(311, 161) - module.shared.screenSize = mytypes.Vector2(967, 500) + module.shared.canvasSize = Vector2(311, 161) + module.shared.screenSize = Vector2(967, 500) for index, dir in next, module.shared.singVectors do module.shared.singVectors[index] = dir:Div(5) @@ -12,26 +10,26 @@ function module.onCreate() love.graphics.setDefaultFilter("nearest", "nearest", 0) - local sky = mytypes.Image("images/weeb/weebSky.png") + local sky = Image("images/weeb/weebSky.png") sky.modifier = 0 sky.layer = -15 - local backTrees = mytypes.Image("images/weeb/weebBackTrees.png", .1) + local backTrees = Image("images/weeb/weebBackTrees.png", .1) backTrees.layer = -14 - backTrees.position = mytypes.Vector2(-10) + backTrees.position = Vector2(-10) - local school = mytypes.Image("images/weeb/weebSchool.png", .4) + local school = Image("images/weeb/weebSchool.png", .4) school.layer = -10 - backTrees.position = mytypes.Vector2(-15) + backTrees.position = Vector2(-15) - local road = mytypes.Image("images/weeb/weebStreet.png", 1) + local road = Image("images/weeb/weebStreet.png", 1) road.layer = -9 - backTrees.position = mytypes.Vector2(-50, 30) + backTrees.position = Vector2(-50, 30) - local ZHENSHINI = mytypes.Sprite("sprites/weeb/bgFreaks.png", "sprites/weeb/bgFreaks.json") + local ZHENSHINI = Sprite("sprites/weeb/bgFreaks.png", "sprites/weeb/bgFreaks.json") ZHENSHINI.layer = -2 - backTrees.position = mytypes.Vector2(-70, 50) + backTrees.position = Vector2(-70, 50) end diff --git a/stages/spooky.lua b/stages/spooky.lua index c22c16b..351d7cc 100644 --- a/stages/spooky.lua +++ b/stages/spooky.lua @@ -1,19 +1,19 @@ -local myTypes = require("modules.types") + local lightningCountdown = love.math.random(15, 20) --holy fuck local mansion local sounds return { onCreate = function(song) - mansion = myTypes.Sprite("sprites/spooky/halloween_bg.png", "sprites/spooky/halloween_bg.json") - mansion.resize = myTypes.Vector2(2,2) + mansion = Sprite("sprites/spooky/halloween_bg.png", "sprites/spooky/halloween_bg.json") + mansion.resize = Vector2(2,2) mansion:PlayAnimation("halloweem bg", 1, false) - mansion.position = myTypes.Vector2(-400, -200) + mansion.position = Vector2(-400, -200) mansion.layer = -1 for index, anim in next, mansion.quads do for index, quad in next, anim do - quad.resize = myTypes.Vector2(1.4,1.4) + quad.resize = Vector2(1.4,1.4) end end diff --git a/stages/spookyErect.lua b/stages/spookyErect.lua index 2997556..4262f9e 100644 --- a/stages/spookyErect.lua +++ b/stages/spookyErect.lua @@ -1,19 +1,19 @@ -local myTypes = require("modules.types") + return { onCreate = function(song) - local trees = myTypes.Sprite("sprites/spooky/erect/bgtrees.png", "sprites/spooky/erect/bgtrees.json") + local trees = Sprite("sprites/spooky/erect/bgtrees.png", "sprites/spooky/erect/bgtrees.json") trees:PlayAnimation("bgtrees", 5, true) - trees.position = myTypes.Vector2(100, 0) + trees.position = Vector2(100, 0) trees.modifier = 0.8 trees.layer = -2 - local mansion = myTypes.Image("images/spooky/erect/bgDark.png") - mansion.position = myTypes.Vector2(-325, -300) + local mansion = Image("images/spooky/erect/bgDark.png") + mansion.position = Vector2(-325, -300) mansion.layer = -1 - local stairs = myTypes.Image("images/spooky/erect/stairsDark.png") - stairs.position = myTypes.Vector2(1100, -225) + local stairs = Image("images/spooky/erect/stairsDark.png") + stairs.position = Vector2(1100, -225) stairs.layer = 2 end } \ No newline at end of file diff --git a/stages/stage.lua b/stages/stage.lua index e86e386..f67c8ba 100644 --- a/stages/stage.lua +++ b/stages/stage.lua @@ -1,17 +1,17 @@ -local myTypes = require("modules.types") + return { onCreate = function(song) - local back = myTypes.Image("images/stage/stageback.png") + local back = Image("images/stage/stageback.png") back.layer = -10 - back.position = myTypes.Vector2(-800, 50) + back.position = Vector2(-800, 50) - local front = myTypes.Image("images/stage/stagefront.png") + local front = Image("images/stage/stagefront.png") front.layer = -1 - front.position = myTypes.Vector2(-900, 1000) + front.position = Vector2(-900, 1000) - local curtains = myTypes.Image("images/stage/stagecurtains.png") - curtains.position = myTypes.Vector2(-1150, 50) + local curtains = Image("images/stage/stagecurtains.png") + curtains.position = Vector2(-1150, 50) curtains.modifier = 1.3 curtains.layer = 5 end diff --git a/stages/stageErect.lua b/stages/stageErect.lua index 0024ef6..f81da6b 100644 --- a/stages/stageErect.lua +++ b/stages/stageErect.lua @@ -1,49 +1,49 @@ -local myTypes = require("modules.types") + return { onCreate = function(song) - local backDark = myTypes.Image("images/stage/erect/backDark.png") - backDark.position = myTypes.Vector2(729, -170) + local backDark = Image("images/stage/erect/backDark.png") + backDark.position = Vector2(729, -170) backDark.layer = -10 - local crowd = myTypes.Sprite("sprites/stage/erect/crowd.png", "sprites/stage/erect/crowd.json") + local crowd = Sprite("sprites/stage/erect/crowd.png", "sprites/stage/erect/crowd.json") crowd:PlayAnimation("Symbol 2 instance 1", 24, true) - crowd.position = myTypes.Vector2(560, 150) + crowd.position = Vector2(560, 150) crowd.modifier = 0.8 crowd.layer = -9 - local brightLightSmall = myTypes.Image("images/stage/erect/brightLightSmall.png") - brightLightSmall.position = myTypes.Vector2(967, -103) + local brightLightSmall = Image("images/stage/erect/brightLightSmall.png") + brightLightSmall.position = Vector2(967, -103) brightLightSmall.modifier = 1.2 brightLightSmall.layer = -8 - local bg = myTypes.Image("images/stage/erect/bg.png") - bg.position = myTypes.Vector2(-603, -187) + local bg = Image("images/stage/erect/bg.png") + bg.position = Vector2(-603, -187) bg.layer = -7 - local server = myTypes.Image("images/stage/erect/server.png") - server.position = myTypes.Vector2(-361, 205) + local server = Image("images/stage/erect/server.png") + server.position = Vector2(-361, 205) server.layer = -6 - local lightGreen = myTypes.Image("images/stage/erect/lightgreen.png") - lightGreen.position = myTypes.Vector2(-171, 242) + local lightGreen = Image("images/stage/erect/lightgreen.png") + lightGreen.position = Vector2(-171, 242) lightGreen.layer = -5 - local lightRed = myTypes.Image("images/stage/erect/lightred.png") - lightRed.position = myTypes.Vector2(-101, 560) + local lightRed = Image("images/stage/erect/lightred.png") + lightRed.position = Vector2(-101, 560) lightRed.layer = -4 - local lightOrange = myTypes.Image("images/stage/erect/orangeLight.png") - lightOrange.position = myTypes.Vector2(189, -195) + local lightOrange = Image("images/stage/erect/orangeLight.png") + lightOrange.position = Vector2(189, -195) lightOrange.layer = -3 - local lights = myTypes.Image("images/stage/erect/lights.png") - lights.position = myTypes.Vector2(-601, -147) + local lights = Image("images/stage/erect/lights.png") + lights.position = Vector2(-601, -147) lights.modifier = 1.2 lights.layer = 5 - local lightAbove = myTypes.Image("images/stage/erect/lightAbove.png") - lights.position = myTypes.Vector2(804, -117) + local lightAbove = Image("images/stage/erect/lightAbove.png") + lights.position = Vector2(804, -117) lightAbove.layer = 6 end } \ No newline at end of file diff --git a/stages/tank.lua b/stages/tank.lua index 1dd06f8..80850ed 100644 --- a/stages/tank.lua +++ b/stages/tank.lua @@ -1,4 +1,4 @@ -local myTypes = require("modules.types") + local rollingBGTank local bgTankX = 200 local bgTankY = 50 @@ -6,107 +6,107 @@ local watchtower, audience1, audience2, audience3, audience4, audience5, audienc return { onCreate = function(song) - local tankSky = myTypes.Image("images/tank/tankSky.png") + local tankSky = Image("images/tank/tankSky.png") tankSky.layer = -10 - tankSky.position = myTypes.Vector2(-800, -400) + tankSky.position = Vector2(-800, -400) tankSky.modifer = 0 - tankSky.resize = myTypes.Vector2(2.5, 2.5) + tankSky.resize = Vector2(2.5, 2.5) - local tankMountains = myTypes.Image("images/tank/tankMountains.png") + local tankMountains = Image("images/tank/tankMountains.png") tankMountains.layer = -9 - tankMountains.position = myTypes.Vector2(-150, 150) + tankMountains.position = Vector2(-150, 150) tankMountains.modifier = 0.2 - tankMountains.resize = myTypes.Vector2(1.7, 1.7) + tankMountains.resize = Vector2(1.7, 1.7) - local tankBuildings = myTypes.Image("images/tank/tankBuildings.png") - tankBuildings.position = myTypes.Vector2(-400, -100) + local tankBuildings = Image("images/tank/tankBuildings.png") + tankBuildings.position = Vector2(-400, -100) tankBuildings.modifier = 0.3 tankBuildings.layer = -7 - tankBuildings.resize = myTypes.Vector2(1.6, 1.6) + tankBuildings.resize = Vector2(1.6, 1.6) - local tankRuins = myTypes.Image("images/tank/tankRuins.png") - tankRuins.position = myTypes.Vector2(-400, -100) + local tankRuins = Image("images/tank/tankRuins.png") + tankRuins.position = Vector2(-400, -100) tankRuins.modifier = 0.35 tankRuins.layer = -6 - tankRuins.resize = myTypes.Vector2(1.6, 1.6) + tankRuins.resize = Vector2(1.6, 1.6) - local clouds = myTypes.Image("images/tank/tankClouds.png") - clouds.position = myTypes.Vector2(0, 0) + local clouds = Image("images/tank/tankClouds.png") + clouds.position = Vector2(0, 0) clouds.modifier = 0.4 clouds.layer = -8 - local smokeLeft = myTypes.Sprite("sprites/tank/smokeLeft.png", "sprites/tank/smokeLeft.json") + local smokeLeft = Sprite("sprites/tank/smokeLeft.png", "sprites/tank/smokeLeft.json") smokeLeft:PlayAnimation("SmokeBlurLeft instance 1", 24, true) - smokeLeft.position = myTypes.Vector2(-100, 0) + smokeLeft.position = Vector2(-100, 0) smokeLeft.modifier = 0.4 smokeLeft.layer = -5 - local smokeRight = myTypes.Sprite("sprites/tank/smokeRight.png", "sprites/tank/smokeRight.json") + local smokeRight = Sprite("sprites/tank/smokeRight.png", "sprites/tank/smokeRight.json") smokeRight:PlayAnimation("SmokeRight instance 1", 24, true) - smokeRight.position = myTypes.Vector2(700, -100) + smokeRight.position = Vector2(700, -100) smokeRight.modifier = 0.4 smokeRight.layer = -5 - watchtower = myTypes.Sprite("sprites/tank/tankWatchtower.png", "sprites/tank/tankWatchtower.json") + watchtower = Sprite("sprites/tank/tankWatchtower.png", "sprites/tank/tankWatchtower.json") watchtower:PlayAnimation("watchtower gradient color instance 1", 24, false) - watchtower.position = myTypes.Vector2(25, 50) + watchtower.position = Vector2(25, 50) watchtower.modifier = 0.5 - watchtower.resize = myTypes.Vector2(2, 2) + watchtower.resize = Vector2(2, 2) watchtower.layer = -4 - rollingBGTank = myTypes.Sprite("sprites/tank/tankRolling.png", "sprites/tank/tankRolling.json") + rollingBGTank = Sprite("sprites/tank/tankRolling.png", "sprites/tank/tankRolling.json") rollingBGTank:PlayAnimation("BG tank w lighting instance 1", 24, true) rollingBGTank.modifier = 0.5 rollingBGTank.layer = -3 rollingBGTank.flipY = true - local tankGround = myTypes.Image("images/tank/tankGround.png") - tankGround.position = myTypes.Vector2(-420, -150) + local tankGround = Image("images/tank/tankGround.png") + tankGround.position = Vector2(-420, -150) tankGround.layer = -2 - tankGround.resize = myTypes.Vector2(1.15, 1.15) + tankGround.resize = Vector2(1.15, 1.15) - audience1 = myTypes.Sprite("sprites/tank/tank0.png", "sprites/tank/tank0.json") + audience1 = Sprite("sprites/tank/tank0.png", "sprites/tank/tank0.json") audience1:PlayAnimation("fg tankhead far right instance 1", 24, false) - audience1.position = myTypes.Vector2(-200, 350) + audience1.position = Vector2(-200, 350) audience1.modifier = 1.5 audience1.layer = 2 - audience1.resize = myTypes.Vector2(1.6, 1.6) + audience1.resize = Vector2(1.6, 1.6) - audience2 = myTypes.Sprite("sprites/tank/tank2.png", "sprites/tank/tank2.json") + audience2 = Sprite("sprites/tank/tank2.png", "sprites/tank/tank2.json") audience2:PlayAnimation("foreground man 3 instance 1", 24, false) - audience2.position = myTypes.Vector2(0, 400) + audience2.position = Vector2(0, 400) audience2.modifier = 1.5 audience2.layer = 3 - audience2.resize = myTypes.Vector2(1.6, 1.6) + audience2.resize = Vector2(1.6, 1.6) - audience3 = myTypes.Sprite("sprites/tank/tank3.png", "sprites/tank/tank3.json") + audience3 = Sprite("sprites/tank/tank3.png", "sprites/tank/tank3.json") audience3:PlayAnimation("fg tankhead 4 instance 1", 24, false) - audience3.position = myTypes.Vector2(-100, 500) + audience3.position = Vector2(-100, 500) audience3.modifier = 2.5 audience3.layer = 5 - audience3.resize = myTypes.Vector2(1.6, 1.6) + audience3.resize = Vector2(1.6, 1.6) - audience4 = myTypes.Sprite("sprites/tank/tank4.png", "sprites/tank/tank4.json") + audience4 = Sprite("sprites/tank/tank4.png", "sprites/tank/tank4.json") audience4:PlayAnimation("fg tankman bobbin 3 instance 1", 24, false) - audience4.position = myTypes.Vector2(300, 400) + audience4.position = Vector2(300, 400) audience4.modifier = 1.5 audience4.layer = 4 - audience4.resize = myTypes.Vector2(1.6, 1.6) + audience4.resize = Vector2(1.6, 1.6) - audience5 = myTypes.Sprite("sprites/tank/tank5.png", "sprites/tank/tank5.json") + audience5 = Sprite("sprites/tank/tank5.png", "sprites/tank/tank5.json") audience5:PlayAnimation("fg tankhead far right instance 1", 24, false) - audience5.position = myTypes.Vector2(500, 350) + audience5.position = Vector2(500, 350) audience5.modifier = 1.5 audience5.layer = 3 - audience5.resize = myTypes.Vector2(1.6, 1.6) + audience5.resize = Vector2(1.6, 1.6) --I'm not even gonna try what is this - --[[audience6 = myTypes.Sprite("sprites/tank/tank1.png", "sprites/tank/tank1.json") + --[[audience6 = Sprite("sprites/tank/tank1.png", "sprites/tank/tank1.json") audience6:PlayAnimation("fg tankhead 5 instance 1", 24, false) - audience6.position = myTypes.Vector2(700, 500) + audience6.position = Vector2(700, 500) audience6.modifier = 1.5 audience6.layer = 2 - audience6.resize = myTypes.Vector2(1.6, 1.6)]] + audience6.resize = Vector2(1.6, 1.6)]] end, onBeat = function(beat) @@ -126,7 +126,7 @@ return { bgTankX = math.cos(math.rad(elapsed / 100)) * 500 bgTankY = math.sin(math.rad(elapsed / 100)) * 500 bgTankRotate = elapsed / 5000 - rollingBGTank.position = myTypes.Vector2(bgTankX, bgTankY) + rollingBGTank.position = Vector2(bgTankX, bgTankY) rollingBGTank.rotation = bgTankRotate --testing end } \ No newline at end of file diff --git a/weeks/init.lua b/weeks/init.lua new file mode 100644 index 0000000..11ee391 --- /dev/null +++ b/weeks/init.lua @@ -0,0 +1,9 @@ +local weeks = {} + +for index, week in next, love.filesystem.getDirectoryItems("weeks") do + if week == "init.lua" then goto continue end + weeks[week] = require("weeks."..week:replace(".lua", "")) + ::continue:: +end + +return weeks \ No newline at end of file