Moved the debug island into a module
This commit is contained in:
@@ -71,7 +71,7 @@ InWorld::InWorld(
|
||||
//load the tilesheet
|
||||
//TODO: add the tilesheet to the map system?
|
||||
//TODO: Tile size and tile sheet should be loaded elsewhere
|
||||
tileSheet.Load(config["dir.tilesets"] + "terrain.bmp", 32, 32);
|
||||
tileSheet.Load(config["dir.tilesets"] + "overworld.bmp", 32, 32);
|
||||
|
||||
//send this player's character info
|
||||
CharacterPacket newPacket;
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 768 KiB |
@@ -1,7 +1,37 @@
|
||||
local mapMaker = {}
|
||||
|
||||
function mapMaker.foo()
|
||||
print("--> Hello map maker! <--")
|
||||
--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
|
||||
@@ -1,55 +1,11 @@
|
||||
print("Lua script check")
|
||||
|
||||
mapMaker = require "map_maker"
|
||||
mapMaker.foo()
|
||||
|
||||
--uber lazy declarations
|
||||
function math.sqr(x) return x*x end
|
||||
function math.dist(x, y, i, j) return math.sqrt(math.sqr(x - i) + math.sqr(y - j)) end
|
||||
|
||||
--tile macros, mapped to the tilesheet
|
||||
local base = 14
|
||||
local shift = 36
|
||||
tiles = {
|
||||
plains = base + shift * 0,
|
||||
grass = base + shift * 1,
|
||||
dirt = base + shift * 2,
|
||||
sand = base + shift * 3,
|
||||
water = base + shift * 4
|
||||
}
|
||||
|
||||
--custom generation systems here
|
||||
function islandGenerator(region)
|
||||
-- io.write("Generating (", Region.GetX(region), ", ", Region.GetY(region), ")\n")
|
||||
for i = 1, Region.GetWidth(region) do
|
||||
for j = 1, Region.GetHeight(region) do
|
||||
local dist = math.dist(0, 0, i + Region.GetX(region) -1, j + Region.GetY(region) -1)
|
||||
if dist < 10 then
|
||||
Region.SetTile(region, i, j, 1, tiles.plains)
|
||||
elseif dist < 12 then
|
||||
Region.SetTile(region, i, j, 1, tiles.sand)
|
||||
else
|
||||
Region.SetTile(region, i, j, 1, tiles.water)
|
||||
Region.SetSolid(region, i, j, true)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--Get some regions
|
||||
--BUG: #35 The server fails without at least one room
|
||||
--TODO: Create rooms with names?
|
||||
newRoom = RoomManager.CreateRoom()
|
||||
pager = Room.GetPager(newRoom)
|
||||
RegionPager.SetOnCreate(pager, islandGenerator)
|
||||
|
||||
--[[
|
||||
regionTable = {
|
||||
RegionPager.GetRegion(pager, Region.GetWidth() * 0, Region.GetHeight() * 0),
|
||||
RegionPager.GetRegion(pager, Region.GetWidth() *-1, Region.GetHeight() * 0),
|
||||
RegionPager.GetRegion(pager, Region.GetWidth() * 0, Region.GetHeight() *-1),
|
||||
RegionPager.GetRegion(pager, Region.GetWidth() *-1, Region.GetHeight() *-1)
|
||||
}
|
||||
]]
|
||||
RegionPager.SetOnCreate(pager, mapMaker.debugIsland)
|
||||
|
||||
print("Finished the lua script")
|
||||
|
||||
Reference in New Issue
Block a user