]> Dogcows Code - chaz/yoink/blobdiff - data/scenes/Classic.lua
new lua scripting for scene loading
[chaz/yoink] / data / scenes / Classic.lua
diff --git a/data/scenes/Classic.lua b/data/scenes/Classic.lua
new file mode 100644 (file)
index 0000000..62b8a97
--- /dev/null
@@ -0,0 +1,974 @@
+
+-- Scene: Classic Yoink
+-- created by Neil Carter
+-- converted to Lua by Charles McGarvey
+
+-- Scene API:
+--
+-- Functions:
+-- SetPlayfieldBounds(point1, point2)
+-- SetMaximumBounds(point1, point2)
+-- ResetTransform()
+-- Translate(x, y, z)
+-- Scale(x, y, z) or Scale(xyz)
+-- Rotate(axis, degree) or Rotate(x, y, z)
+-- SetTexture(name)
+-- MakeTilemap({width = ..., surface_type = ..., tiles = {}})
+-- MakeBillboard({tile = ..., u_scale = ...})
+--
+-- Globals:
+-- detail - level of detail of the scene
+
+
+SetPlayfieldBounds({0, 0, -100}, {1280, 500, 100})
+SetMaximumBounds({-160, 0, -192}, {1440, 480, 224})
+
+
+-- Left end tower block
+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-- Front
+
+ResetTransform()
+Translate(-5, 0, 5)
+Scale(32)
+SetTexture("TowerBlock1")
+MakeTilemap({
+       width = 5,
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 5,
+       surface_type = 'right',
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 5,
+       surface_type = 'top',
+       tiles = {
+               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 > 1 then
+       ResetTransform()
+       Scale(32)
+       MakeTilemap({
+               width = 7,
+               tiles = {
+                       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)
+       Scale(32)
+       MakeTilemap({
+               width = 6,
+               tiles = {
+                       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)
+       Scale(32)
+       MakeTilemap({
+               width = 9,
+               tiles = {
+                       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)
+Scale(32)
+SetTexture("Building")
+MakeTilemap({
+       width = 4,
+       surface_type = 'left',
+       tiles = {
+               -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)
+Scale(32)
+MakeTilemap({
+       width = 4,
+       surface_type = 'right',
+       tiles = {
+               -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)
+Scale(32)
+MakeTilemap({
+       width = 3,
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 3,
+       tiles = {
+               13,     13,     13,
+               13,     13,     13
+       }
+})
+
+-- Finial
+
+ResetTransform()
+Translate(10, 5, 3)
+Scale(32)
+MakeTilemap({
+       width = 3,
+       tiles = {
+               18,     18,     18
+       }
+})
+
+-- Cheaty invisible platform
+
+ResetTransform()
+Translate(10, 4, 3)
+Scale(32)
+MakeTilemap({
+       width = 3,
+       surface_type = 'top',
+       tiles = {
+               -1,     -1,     -1
+       }
+})
+
+-- The ground
+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+               
+-- Courtyard
+
+ResetTransform()
+Rotate('x', 90)
+Translate(-3, 0, 0)
+Scale(32)
+SetTexture("Scenery")
+MakeTilemap({
+       width = 13,
+       surface_type = 'top',
+       tiles = {
+               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 > 2 then
+       ResetTransform()
+       Scale(8, 1, 1)
+       Translate(1, -0.5, 5)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 8
+       })
+
+       -- Back grass
+
+       ResetTransform()
+       Scale(8, 1, 1)
+       Translate(1, -0.5, 1)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 8
+       })
+
+       -- Left grass
+
+       ResetTransform()
+       Scale(4, 1, 1)
+       Rotate('y', -90)
+       Translate(1, -0.5, 1)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 4
+       })
+
+       -- Right grass
+
+       ResetTransform()
+       Scale(4, 1, 1)
+       Rotate('y', -90)
+       Translate(9, -0.5, 1)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 4
+       })
+
+       -- Fence behind house
+
+       ResetTransform()
+       Scale(11, 1, 1)
+       Translate(7, 0, 0)
+       Scale(32)
+       MakeBillboard({
+               tile = 4,
+               u_scale = 11
+       })
+end
+
+-- Background building with pitched roof
+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+               
+-- Front wall
+
+if detail > 1 then
+       ResetTransform()
+       Translate(19, 0, 0)
+       Scale(32)
+       SetTexture("Building")
+       MakeTilemap({
+               width = 4,
+               tiles = {
+                       -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)
+       Scale(32)
+       MakeTilemap({
+               width = 3,
+               tiles = {
+                       15,     1,      16,
+                       3,      7,      4,
+                       3,      5,      4,
+                       3,      0,      4
+               }
+       })
+
+       -- Right wall
+
+       ResetTransform()
+       Rotate('y', -90)
+       Translate(23, 0, -3)
+       Scale(32)
+       MakeTilemap({
+               width = 3,
+               tiles = {
+                       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)
+       Scale(32)
+       MakeTilemap({
+               width = 3,
+               tiles = {
+                       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)
+       Scale(32)
+       MakeTilemap({
+               width = 3,
+               tiles = {
+                       13,     13,     13,
+                       13,     13,     13
+               }
+       })
+
+       -- Finial
+
+       ResetTransform()
+       Rotate('y', -90)
+       Translate(21, 6, -3)
+       Scale(32)
+       MakeTilemap({
+               width = 3,
+               tiles = {
+                       18,     18,     18
+               }
+       })
+end
+
+-- More ground to the right
+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+               
+-- Ground under house
+
+ResetTransform()
+Rotate('x', 90)
+Translate(10, 0, 0)
+Scale(32)
+SetTexture("Scenery")
+MakeTilemap({
+       width = 3,
+       surface_type = 'top',
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 8,
+       surface_type = 'top',
+       tiles = {
+               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 > 2 then
+       ResetTransform()
+       Scale(12, 1, 1)
+       Translate(14, -0.5, 5)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 12
+       })
+
+       -- Back grass
+
+       ResetTransform()
+       Scale(4, 1, 1)
+       Translate(14, -0.5, 1)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 4
+       })
+
+       -- Front grass next to door
+
+       ResetTransform()
+       Translate(13, -0.5, 3)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 1
+       })
+
+       -- Back grass next to door
+
+       ResetTransform()
+       Translate(13, -0.5, 2)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 1
+       })
+
+       -- Left grass
+
+       ResetTransform()
+       Rotate('y', -90)
+       Translate(14, -0.5, 1)
+       Scale(32)
+       MakeTilemap({
+               width = 4,
+               tiles = {
+                       2,      -1,     2,      2
+               }
+       })
+
+       -- Grass left of house
+
+       ResetTransform()
+       Rotate('y', -90)
+       Translate(18, -0.5, 0)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 1
+       })
+
+       -- Grass right of house
+
+       ResetTransform()
+       Rotate('y', -90)
+       Translate(24, -0.5, 0)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 1
+       })
+
+       -- Front grass in center
+
+       ResetTransform()
+       Scale(4, 1, 1)
+       Translate(19, -0.5, 4)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 4
+       })
+
+       -- Back grass in center
+
+       ResetTransform()
+       Scale(4, 1, 1)
+       Translate(19, -0.5, 2)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 4
+       })
+
+       -- Left grass in center
+
+       ResetTransform()
+       Scale(2, 1, 1)
+       Rotate('y', -90)
+       Translate(19, -0.5, 2)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 2
+       })
+
+       -- Right grass in center
+
+       ResetTransform()
+       Scale(2, 1, 1)
+       Rotate('y', -90)
+       Translate(23, -0.5, 2)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 2
+       })
+end
+
+-- Right part of center courtyard
+
+ResetTransform()
+Rotate('x', 90)
+Translate(21, 0, 0)
+Scale(32)
+MakeTilemap({
+       width = 7,
+       surface_type = 'top',
+       tiles = {
+               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 > 2 then
+       ResetTransform()
+       Scale(4, 1, 1)
+       Translate(24, 0, 0)
+       Scale(32)
+       MakeBillboard({
+               tile = 4,
+               u_scale = 4
+       })
+
+       -- Grass in front of fence
+
+       ResetTransform()
+       Scale(4, 1, 1)
+       Translate(24, -0.5, 1)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 4
+       })
+                       
+       -- Grass to left of tower block
+
+       ResetTransform()
+       Scale(2, 1, 1)
+       Rotate('y', -90)
+       Translate(26, -0.5, 5)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 2
+       })
+
+       -- Grass to right of tower block
+
+       ResetTransform()
+       Scale(2, 1, 1)
+       Rotate('y', -90)
+       Translate(35, -0.5, 5)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 2
+       })
+
+       -- Next bit of grass
+
+       ResetTransform()
+       Scale(5, 1, 1)
+       Translate(35, -0.5, 5)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 5
+       })
+
+       -- Back grass
+
+       ResetTransform()
+       Scale(6, 1, 1)
+       Translate(34, -0.5, 1)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 6
+       })
+
+       -- Extra bit of back grass
+
+       ResetTransform()
+       Rotate('y', -90)
+       Translate(34, -0.5, 0)
+       Scale(32)
+       MakeBillboard({
+               tile = 2,
+               u_scale = 1
+       })
+end
+
+-- Ground around tower block
+
+ResetTransform()
+Rotate('x', 90)
+Translate(28, 0, 4)
+Scale(32)
+MakeTilemap({
+       width = 5,
+       surface_type = 'top',
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 10,
+       surface_type = 'top',
+       tiles = {
+               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)
+Scale(32)
+SetTexture("TowerBlock1")
+MakeTilemap({
+       width = 5,
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 6,
+       surface_type = 'right',
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 6,
+       surface_type = 'left',
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 5,
+       surface_type = 'top',
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 5,
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 5,
+       surface_type = 'left',
+       tiles = {
+               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)
+Scale(32)
+MakeTilemap({
+       width = 5,
+       surface_type = 'top',
+       tiles = {
+               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.3, -0.17, -900)
+Scale(3200, 1600, 1)
+SetTexture("BackgroundFar")
+MakeBillboard()
+
+Translate(0, 0, 300)
+SetTexture("BackgroundNear")
+MakeBillboard({
+       blend = detail > 1 and true or false
+})
+
+-- Trees
+-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+SetTexture("Trees")
+
+-- Left courtyard
+
+if detail > 1 then
+       ResetTransform()
+       Scale(96)
+       Translate(250, -2.5, 16)
+       MakeBillboard({
+               tile = 1
+       })
+end
+
+-- Center courtyard
+
+ResetTransform()
+Scale(96)
+Translate(610, -2.5, 85)
+MakeBillboard({
+       tile = 0
+})
+
+ResetTransform()
+Scale(96)
+Translate(650, -2.5, 115)
+MakeBillboard({
+       tile = 1
+})
+
+-- Right courtyard
+
+if detail > 1 then
+       ResetTransform()
+       Scale(96)
+       Translate(1080, -2.5, 10)
+       MakeBillboard({
+               tile = 1
+       })
+
+       ResetTransform()
+       Scale(96)
+       Translate(1120, -2.5, -15)
+       MakeBillboard({
+               tile = 0
+       })
+
+       ResetTransform()
+       Scale(96)
+       Translate(1220, -2.5, -30)
+       MakeBillboard({
+               tile = 1
+       })
+end
+
This page took 0.032116 seconds and 4 git commands to generate.