X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=data%2Fscenes%2FClassic.lua;h=c2ca18387f1ecf01ae9d73b921faf6d522896da9;hp=68b7b660533b918db1db7aab4322c486768d8c1f;hb=e9a16d767785b1a903a4466ff26265a5f7dae9e5;hpb=2d77fb5fb3480f522658f30af6addd5146530517 diff --git a/data/scenes/Classic.lua b/data/scenes/Classic.lua index 68b7b66..c2ca183 100644 --- a/data/scenes/Classic.lua +++ b/data/scenes/Classic.lua @@ -1,7 +1,9 @@ --- Scene: Classic Yoink --- created by Neil Carter --- converted to Lua by Charles McGarvey +LogInfo("-----", + "Scene: Classic", + "Created by Neil Carter", + "Converted to Lua by Charles McGarvey", + "-----") -- Scene API: -- @@ -19,800 +21,17 @@ -- detail - level of detail of the scene (HIGH, MEDIUM, or LOW) -SetBounds({-5, 0, -6}, {45, 15, 7}) - - --- Left end tower block --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - --- Front - -ResetTransform() -Translate(-5, 0, 5) -SetTexture("TowerBlock1") -DrawTilemap({ - width = 5, - 2, 2, 2, 2, 2, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 1, 0, 0, 1, 0, - 4, 4, 4, 4, 4}) - --- Right side - -ResetTransform() -Rotate(Y, 90) -Translate(0, 0, 5) -DrawTilemap({ - width = 5, - surface = RIGHT, - 2, 2, 2, 2, 2, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, - 4, 5, 5, 5, 4}) - --- Top - -ResetTransform() -Rotate(X, 90) -Translate(-5, 15, 0) -DrawTilemap({ - width = 5, - surface = TOP, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3}) - --- Leftmost background tower block --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - --- Front - -if detail > LOW then - ResetTransform() - DrawTilemap({ - width = 7, - 2, 2, 2, 2, 2, 2, 2, - 0, 1, 0, 0, 0, 1, 0, - 0, 1, 0, 0, 0, 1, 0, - 0, 1, 0, 0, 6, 1, 0, - 0, 1, 0, 0, 0, 1, 0, - 0, 1, 0, 0, 0, 1, 0, - 0, 1, 0, 0, 0, 1, 0, - 4, 4, 5, 5, 5, 4, 4}) - - -- Right side - - ResetTransform() - Rotate(Y, 90) - Translate(7, 0, 0) - DrawTilemap({ - width = 6, - 2, 2, 2, 2, 2, 2, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 4, 4, 4, 4, 4, 4}) - - -- Top - - ResetTransform() - Rotate(X, 90) - Translate(-2, 8, -6) - DrawTilemap({ - width = 9, - 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3}) -end - --- Foreground building with pitched roof --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - --- Left wall - -ResetTransform() -Rotate(Y, -90) -Translate(10, 0, 1) -SetTexture("Building") -DrawTilemap({ - width = 4, - surface = LEFT, - -1, 9, 11, -1, - 9, 10, 12, 11, - 15, 7, 7, 16, - 3, 5, 6, 4, - 3, 6, 5, 4}) - --- Right wall - -ResetTransform() -Rotate(Y, -90) -Translate(13, 0, 1) -DrawTilemap({ - width = 4, - surface = RIGHT, - -1, 9, 11, -1, - 9, 10, 12, 11, - 15, 7, 7, 16, - 3, 5, 6, 4, - 3, 8, 5, 4}) - --- Front wall - -ResetTransform() -Translate(10, 0, 5) -DrawTilemap({ - width = 3, - 15, 7, 16, - 3, 5, 4, - 3, 6, 4}) - --- Pitched roof - -ResetTransform() -Rotate(X, 135) -Scale(1, 1.5, 1.5) -Translate(10, 5, 3) -DrawTilemap({ - width = 3, - 13, 13, 13, - 13, 13, 13}) - --- Finial - -ResetTransform() -Translate(10, 5, 3) -DrawTilemap({ - width = 3, - 18, 18, 18}) - --- Cheaty invisible platform - -ResetTransform() -Translate(10, 4, 3) -DrawTilemap({ - width = 3, - surface = TOP, - -1, -1, -1}) - --- The ground --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - --- Courtyard - -ResetTransform() -Rotate(X, 90) -Translate(-3, 0, 0) -SetTexture("Scenery") -DrawTilemap({ - width = 13, - surface = TOP, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, - -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}) - --- Front grass - -if detail > MEDIUM then - ResetTransform() - Scale(8, 1, 1) - Translate(1, -0.5, 5) - DrawTile({ - 2, - u_scale = 8}) - - -- Back grass - - ResetTransform() - Scale(8, 1, 1) - Translate(1, -0.5, 1) - DrawTile({ - 2, - u_scale = 8 - }) - - -- Left grass - - ResetTransform() - Scale(4, 1, 1) - Rotate(Y, -90) - Translate(1, -0.5, 1) - DrawTile({ - 2, - u_scale = 4 - }) - - -- Right grass - - ResetTransform() - Scale(4, 1, 1) - Rotate(Y, -90) - Translate(9, -0.5, 1) - DrawTile({ - 2, - u_scale = 4 - }) - - -- Fence behind house - - ResetTransform() - Scale(11, 1, 1) - Translate(7, 0, 0) - DrawTile({ - 4, - u_scale = 11 - }) -end - --- Background building with pitched roof --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - --- Front wall - -if detail > LOW then - ResetTransform() - Translate(19, 0, 0) - SetTexture("Building") - DrawTilemap({ - width = 4, - -1, 9, 11, -1, - 9, 10, 12, 11, - 15, 7, 7, 16, - 3, 6, 5, 4, - 3, 5, 6, 4, - 3, 8, 5, 4}) - - -- Left wall - - ResetTransform() - Rotate(Y, -90) - Translate(19, 0, -3) - DrawTilemap({ - width = 3, - 15, 1, 16, - 3, 7, 4, - 3, 5, 4, - 3, 0, 4}) - - -- Right wall - - ResetTransform() - Rotate(Y, -90) - Translate(23, 0, -3) - DrawTilemap({ - width = 3, - 15, 0, 16, - 3, 7, 4, - 3, 6, 4, - 3, 2, 4}) - - -- Left pitched roof - - ResetTransform() - Rotate(X, 135) - Scale(1, 1.5, 1.5) - Rotate(Y, -90) - Translate(21, 6, -3) - DrawTilemap({ - width = 3, - 13, 13, 13, - 13, 13, 13}) - - -- Right pitched roof - - ResetTransform() - Rotate(X, -135) - Scale(1, 1.5, 1.5) - Rotate(Y, -90) - Translate(21, 6, -3) - DrawTilemap({ - width = 3, - 13, 13, 13, - 13, 13, 13}) - - -- Finial - - ResetTransform() - Rotate(Y, -90) - Translate(21, 6, -3) - DrawTilemap({ - width = 3, - 18, 18, 18}) -end - --- More ground to the right --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - --- Ground under house - -ResetTransform() -Rotate(X, 90) -Translate(10, 0, 0) -SetTexture("Scenery") -DrawTilemap({ - width = 3, - surface = TOP, - 1, 1, 1, - 1, 1, 1, - -1, -1, -1, - -1, -1, -1, - -1, -1, -1, - -1, -1, -1, - 1, 1, 1}) - --- Left part of center courtyard - -ResetTransform() -Rotate(X, 90) -Translate(13, 0, 0) -DrawTilemap({ - width = 8, - surface = TOP, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 1, 1, - 0, 0, 0, 0, 0, 0, 1, 1, - 1, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 0, 0, 0}) - --- Front grass - -if detail > MEDIUM then - ResetTransform() - Scale(12, 1, 1) - Translate(14, -0.5, 5) - DrawTile({ - 2, - u_scale = 12 - }) - - -- Back grass - - ResetTransform() - Scale(4, 1, 1) - Translate(14, -0.5, 1) - DrawTile({ - 2, - u_scale = 4 - }) - - -- Front grass next to door - - ResetTransform() - Translate(13, -0.5, 3) - DrawTile({ - 2, - u_scale = 1 - }) - - -- Back grass next to door - - ResetTransform() - Translate(13, -0.5, 2) - DrawTile({ - 2, - u_scale = 1 - }) - - -- Left grass - - ResetTransform() - Rotate(Y, -90) - Translate(14, -0.5, 1) - DrawTilemap({ - width = 4, - 2, -1, 2, 2}) - - -- Grass left of house - - ResetTransform() - Rotate(Y, -90) - Translate(18, -0.5, 0) - DrawTile({ - 2, - u_scale = 1 - }) - - -- Grass right of house - - ResetTransform() - Rotate(Y, -90) - Translate(24, -0.5, 0) - DrawTile({ - 2, - u_scale = 1 - }) - - -- Front grass in center - - ResetTransform() - Scale(4, 1, 1) - Translate(19, -0.5, 4) - DrawTile({ - 2, - u_scale = 4 - }) - - -- Back grass in center - - ResetTransform() - Scale(4, 1, 1) - Translate(19, -0.5, 2) - DrawTile({ - 2, - u_scale = 4 - }) - - -- Left grass in center - - ResetTransform() - Scale(2, 1, 1) - Rotate(Y, -90) - Translate(19, -0.5, 2) - DrawTile({ - 2, - u_scale = 2 - }) - - -- Right grass in center - - ResetTransform() - Scale(2, 1, 1) - Rotate(Y, -90) - Translate(23, -0.5, 2) - DrawTile({ - 2, - u_scale = 2 - }) -end - --- Right part of center courtyard - -ResetTransform() -Rotate(X, 90) -Translate(21, 0, 0) -DrawTilemap({ - width = 7, - surface = TOP, - 1, 1, 1, 1, 1, 0, 0, - 1, 1, 1, 1, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 1, 1}) - --- Fence to right of back house - -if detail > MEDIUM then - ResetTransform() - Scale(4, 1, 1) - Translate(24, 0, 0) - DrawTile({ - 4, - u_scale = 4 - }) - - -- Grass in front of fence - - ResetTransform() - Scale(4, 1, 1) - Translate(24, -0.5, 1) - DrawTile({ - 2, - u_scale = 4 - }) - - -- Grass to left of tower block - - ResetTransform() - Scale(2, 1, 1) - Rotate(Y, -90) - Translate(26, -0.5, 5) - DrawTile({ - 2, - u_scale = 2 - }) - - -- Grass to right of tower block - - ResetTransform() - Scale(2, 1, 1) - Rotate(Y, -90) - Translate(35, -0.5, 5) - DrawTile({ - 2, - u_scale = 2 - }) - - -- Next bit of grass - - ResetTransform() - Scale(5, 1, 1) - Translate(35, -0.5, 5) - DrawTile({ - 2, - u_scale = 5 - }) - - -- Back grass - - ResetTransform() - Scale(6, 1, 1) - Translate(34, -0.5, 1) - DrawTile({ - 2, - u_scale = 6 - }) - - -- Extra bit of back grass - - ResetTransform() - Rotate(Y, -90) - Translate(34, -0.5, 0) - DrawTile({ - 2, - u_scale = 1 - }) -end - --- Ground around tower block - -ResetTransform() -Rotate(X, 90) -Translate(28, 0, 4) -DrawTilemap({ - width = 5, - surface = TOP, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0}) - --- Rightmost ground - -ResetTransform() -Rotate(X, 90) -Translate(33, 0, 0) -DrawTilemap({ - width = 10, - surface = TOP, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, - 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, - 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, - 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, - 0, 1, 1, 1, 1, 1, 1, -1, -1, -1}) - --- Right foreground tower block --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - --- Front - -ResetTransform() -Translate(28, 0, 4) -SetTexture("TowerBlock1") -DrawTilemap({ - width = 5, - 2, 2, 2, 2, 2, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 6, 0, - 4, 4, 4, 4, 4}) - --- Right side - -ResetTransform() -Rotate(Y, 90) -Translate(33, 0, 4) -DrawTilemap({ - width = 6, - surface = RIGHT, - 2, 2, 2, 2, 2, 2, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 5, 4, 5, 5, 4, 5}) - --- Left side - -ResetTransform() -Rotate(Y, 90) -Translate(28, 0, 4) -DrawTilemap({ - width = 6, - surface = LEFT, - 2, 2, 2, 2, 2, 2, - 0, 1, 6, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 0, 1, 0, 0, 1, 0, - 5, 4, 5, 5, 4, 5}) - --- Top - -ResetTransform() -Rotate(X, 90) -Translate(28, 7, -2) -DrawTilemap({ - width = 5, - surface = TOP, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3}) - --- Right end tower block --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - --- Front - -ResetTransform() -Translate(40, 0, 5) -DrawTilemap({ - width = 5, - 2, 2, 2, 2, 2, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 6, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 6, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 0, 1, 0, 0, 1, - 4, 4, 4, 4, 4}) - --- Left side - -ResetTransform() -Rotate(Y, 90) -Translate(40, 0, 5) -DrawTilemap({ - width = 5, - surface = LEFT, - 2, 2, 2, 2, 2, - 6, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 6, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 6, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, - 4, 5, 5, 5, 4}) - --- Top - -ResetTransform() -Rotate(X, 90) -Translate(40, 15, 0) -DrawTilemap({ - width = 5, - surface = TOP, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3}) - --- Background --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -ResetTransform() -Translate(-0.32, -0.28, -24) -Scale(105, 52, 1) -SetTexture("BackgroundFar") -DrawTile() - -Translate(0, 0, 5) -SetTexture("BackgroundNear") -DrawTile({ - blend = detail > LOW and true or false -}) - --- Trees --- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -SetTexture("Trees") - --- Left courtyard - -if detail > LOW then - ResetTransform() - Scale(3) - Translate(7.75, -0.1, 0.5) - DrawTile(1) -end - --- Center courtyard - -ResetTransform() ---Translate(610, -2.5, 85) -Scale(3) -Translate(19, -0.1, 2.5) -DrawTile(0) - -ResetTransform() -Scale(3) -Translate(20.25, -0.1, 3.5) -DrawTile(1) - --- Right courtyard - -if detail > LOW then - ResetTransform() - Scale(3) - Translate(34, -0.1, 0.25) - DrawTile(1) - - ResetTransform() - Scale(3) - Translate(36, -0.1, -0.5) - DrawTile(0) - - ResetTransform() - Scale(3) - Translate(37, -0.1, 0.75) - DrawTile(1) -end +SetBounds({-5, 0, -6}, {45, 15, 4}) - -function GetZCoord(x, y) - return 3 -end +--geometry = yoink.mesh("classic.ac") +--geometry:draw() +--geometry = yoink.mesh.fromstring([[ +--AC3Db +--OBJECT poly +--name "Hello World" +--... +--]] -- Functions: @@ -827,23 +46,59 @@ end -- BeginNewWave() -- Events: +-- Think() is called periodically -- BadGuyDied(enemy) --- PlayedDied(player) --- SceneLoaded() +-- HeroineDied(player) -- Globals: -- numberOfBadGuys +--do + --SpawnHeroine({5, 5}) + --local waveNum = BeginNewWave() + --PopulateScene(waveNum) +--end + + -- Events --------- Event = {} -function Event:SceneLoaded() - SpawnHeroine({500, 500}) - local waveNum = BeginNewWave() - PopulateScene(waveNum) +do + local mysound = yoink.sound("Explosion") + --local mysound = yoink.sound() + --mysound:sample("Explosion") + local count = 0 + function Event.Think() + if count % 300 == 0 then + --mysound:play() + end + count = count + 1 + end +end + + +classic_mesh = yoink.mesh("classic") + +--drawme = {} + +--world = classic_mesh:object(1) +--for i = 1, 19 do + --local object = world:kid(i) + --if object then table.insert(drawme, object) end +--end + +--lawn = classic_mesh:object(1):kid("M-Lawn") + +--Event.Draw = function() tower:draw(false) end +Event.Draw = function() + --for i,object in ipairs(drawme) do + --object:draw() + --end + --lawn:draw() + classic_mesh:draw() end function Event:BadGuyDied(enemy) @@ -885,10 +140,13 @@ function PopulateScene(waveNum) end function RandomSpawnPlace() - return {500, 500} + return {5, 5} end function RandomSkillLevel() return "dumb" end + +-- vim: ts=4 sw=4 tw=80 +