Fixed the map issue (read more)

The map generation was being written to a trigger function instead of a
glue method. Fixed, map is being drawn correctly now.
This commit is contained in:
Kayne Ruse
2014-07-31 19:17:29 +10:00
parent 2b3ea5eb80
commit 555abf9c95
3 changed files with 21 additions and 18 deletions
+2 -1
View File
@@ -71,7 +71,8 @@ InWorld::InWorld(
//load the tilesheet
//TODO: add the tilesheet to the map system?
tileSheet.Load(config["dir.tilesets"] + "terrain.bmp", 12, 15);
//TODO: Tile size and tile sheet should be loaded elsewhere
tileSheet.Load(config["dir.tilesets"] + "terrain.bmp", 32, 32);
//request a sync
RequestSynchronize();
+1
View File
@@ -26,6 +26,7 @@
#include <stdexcept>
void ConfigUtility::Load(std::string fname) {
//TODO: recursive rerouting?
std::ifstream is(fname);
if (!is.is_open()) {
+18 -17
View File
@@ -1,38 +1,39 @@
print("Lua script check")
--uber lazy declarations
function square(x) return x*x end
function distance(x, y, i, j) return math.sqrt(square(x - i) + square(y - j)) end
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
plains = base + shift * 0
grass = base + shift * 1
dirt = base + shift * 2
sand = base + shift * 3
water = base + shift * 4
tiles = {
plains = base + shift * 0,
grass = base + shift * 1,
dirt = base + shift * 2,
sand = base + shift * 3,
water = base + shift * 4
}
--Overwrite the original OnCreate with my own version
Region.hcOnCreate = Region.OnCreate
Region.OnCreate = function(region)
local ret = Region.hcOnCreate(region) --best practices
--could set custom generation systems here, that differ from the global generators, etc.
function Region.Create(region)
for i = 1, Region.GetWidth() do
for j = 1, Region.GetHeight() do
local dist = distance(0, 0, i + Region.GetX(region) -1, j + Region.GetY(region) -1)
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, plains)
Region.SetTile(region, i, j, 1, tiles.plains)
elseif dist < 12 then
Region.SetTile(region, i, j, 1, sand)
Region.SetTile(region, i, j, 1, tiles.sand)
else
Region.SetTile(region, i, j, 1, water)
Region.SetTile(region, i, j, 1, tiles.water)
Region.SetSolid(region, i, j, true)
end
end
end
return ret
end
--Get some regions
--BUG: The server fails without this
newRoom = RoomMgr.CreateRoom("overworld")
pager = Room.GetPager(newRoom)
regionTable = {
@@ -42,4 +43,4 @@ regionTable = {
RegionPager.GetRegion(pager, Region.GetWidth() *-1, Region.GetHeight() *-1)
}
print("Finished the lua script")
print("Finished the lua script")