37 lines
1.0 KiB
Lua
37 lines
1.0 KiB
Lua
local mapMaker = {}
|
|
|
|
--utility functions
|
|
function mapMaker.sqr(x) return x*x end
|
|
function mapMaker.dist(x, y, i, j) return math.sqrt(mapMaker.sqr(x - i) + mapMaker.sqr(y - j)) end
|
|
|
|
--tile macros, mapped to the tilesheet "overworld.bmp"
|
|
mapMaker.edges = {}
|
|
mapMaker.edges.north = -16
|
|
mapMaker.edges.south = 16
|
|
mapMaker.edges.east = 1
|
|
mapMaker.edges.west = -1
|
|
|
|
mapMaker.water = 18 + 3 * 0
|
|
mapMaker.sand = 18 + 3 * 1
|
|
mapMaker.plains = 18 + 3 * 2
|
|
mapMaker.grass = 18 + 3 * 3
|
|
mapMaker.dirt = 18 + 3 * 4
|
|
|
|
--custom generation systems here
|
|
function mapMaker.debugIsland(region)
|
|
for i = 1, Region.GetWidth(region) do
|
|
for j = 1, Region.GetHeight(region) do
|
|
local dist = mapMaker.dist(0, 0, i + Region.GetX(region) -1, j + Region.GetY(region) -1)
|
|
if dist < 10 then
|
|
Region.SetTile(region, i, j, 1, mapMaker.plains)
|
|
elseif dist < 12 then
|
|
Region.SetTile(region, i, j, 1, mapMaker.sand)
|
|
else
|
|
Region.SetTile(region, i, j, 1, mapMaker.water)
|
|
Region.SetSolid(region, i, j, true)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
return mapMaker |