Skip to content
Snippets Groups Projects
Commit cae3913c authored by dg's avatar dg
Browse files

plop

git-svn-id: http://svn.net-core.org/repos/t-engine4@4003 51575b47-30f0-44d4-a5cc-537603b46e54
parent 64063f9f
No related branches found
No related tags found
No related merge requests found
Showing
with 184 additions and 74 deletions
......@@ -25,6 +25,7 @@ module(..., package.seeall, class.make)
function _M:init()
self.repo = {}
self.repl = {}
self.edits = {}
end
function _M:getTile(name)
......@@ -36,11 +37,16 @@ function _M:getTile(name)
name = n
end
if self.repo[name] then return self.repo[name]
local e
if self.repo[name] then e = self.repo[name]
else
self.repo[name] = game.zone:makeEntityByName(game.level, "terrain", name)
return self.repo[name]
e = self.repo[name]
end
if e and e.force_clone then
e = e:clone()
end
return e
end
function _M:replace(i, j, g)
......@@ -49,10 +55,20 @@ function _M:replace(i, j, g)
end
end
function _M:edit(i, j, id, e)
if not e then return end
self.edits[i] = self.edits[i] or {}
self.edits[i][j] = self.edits[i][j] or {}
local ee = self.edits[i][j]
ee[#ee+1] = {use_id=id, add_displays=e.add_displays, add_mos=e.add_mos, add_mos_shader=e.add_mos_shader, image=e.image, min=e.min, max=e.max}
end
function _M:handle(level, i, j)
local g = level.map(i, j, Map.TERRAIN)
if g and g.nice_tiler then
self["niceTile"..g.nice_tiler.method:capitalize()](self, level, i, j, g, g.nice_tiler)
if g and Map.tiles.nicer_tiles then
if g.nice_tiler then self["niceTile"..g.nice_tiler.method:capitalize()](self, level, i, j, g, g.nice_tiler) end
if g.nice_editer then self["editTile"..g.nice_editer.method:capitalize()](self, level, i, j, g, g.nice_editer) end
if g.nice_editer2 then self["editTile"..g.nice_editer2.method:capitalize()](self, level, i, j, g, g.nice_editer2) end
end
end
......@@ -62,17 +78,85 @@ function _M:replaceAll(level)
level.map(r[1], r[2], Map.TERRAIN, r[3])
end
self.repl = {}
-- In-place entities edition, now this is becoming tricky, but powerful
for i, jj in pairs(self.edits) do for j, ee in pairs(jj) do
local g = level.map(i, j, Map.TERRAIN)
local id = {g.name or "???"}
for __, e in ipairs(ee) do
if not e.use_id then id = nil break end
id[#id+1] = e.use_id
end
if id then id = table.concat(id, "|") end
-- If we made this one already, use it
if self.edit_entity_store and self.edit_entity_store[id] then
level.map(i, j, Map.TERRAIN, self.edit_entity_store[id])
-- Otherwise compute this new combo and store the entity
else
local cloned = false
if not g.force_clone or not self.edit_entity_store then g = g:cloneFull() g.force_clone = true cloned = true end
g:removeAllMOs(true)
-- Edit the first add_display entity, or add a dummy if none
if not g.__edit_d then
g.add_displays = g.add_displays or {}
g.add_displays[#g.add_displays+1] = require(g.__CLASSNAME).new{image="invis.png", force_clone=true}
g.__edit_d = #g.add_displays
end
local gd = g.add_displays[g.__edit_d]
for __, e in ipairs(ee) do
if e.add_mos then
-- Add all the mos
gd.add_mos = gd.add_mos or {}
local mos = gd.add_mos
for i = 1, #e.add_mos do
mos[#mos+1] = table.clone(e.add_mos[i])
mos[#mos].image = mos[#mos].image:format(rng.range(e.min, e.max))
end
if e.add_mos_shader then gd.shader = e.add_mos_shader end
gd._mo = nil
end
if e.add_displays then
g.add_displays = g.add_displays or {}
for i = 1, #e.add_displays do
g.add_displays[#g.add_displays+1] = require(g.__CLASSNAME).new(e.add_displays[i])
g.add_displays[#g.add_displays].image = g.add_displays[#g.add_displays].image:format(rng.range(e.min, e.max))
end
end
if e.image then g.image = e.image end
end
level.map(i, j, Map.TERRAIN, g)
level.map:updateMap(i, j)
if self.edit_entity_store then self.edit_entity_store[id] = g end
end
end end
self.edits = {}
end
function _M:postProcessLevelTiles(level)
if not Map.tiles.nicer_tiles then return end
self.edit_entity_store = {}
for i = 0, level.map.w - 1 do for j = 0, level.map.h - 1 do
self:handle(level, i, j)
end end
self:replaceAll(level)
self.edit_entity_store = nil
end
function _M:updateAround(level, x, y)
if not Map.tiles.nicer_tiles then return end
self.edit_entity_store = nil
for i = x-1, x+1 do for j = y-1, y+1 do
self:handle(level, i, j)
end end
......@@ -84,23 +168,24 @@ end
function _M:niceTileWall3d(level, i, j, g, nt)
local s = level.map:checkEntity(i, j, Map.TERRAIN, "type") or "wall"
local gn = level.map:checkEntity(i, j-1, Map.TERRAIN, "type") or "wall"
local dn = level.map:checkEntity(i, j-1, Map.TERRAIN, "door_opened")
local gs = level.map:checkEntity(i, j+1, Map.TERRAIN, "type") or "wall"
local ds = level.map:checkEntity(i, j+1, Map.TERRAIN, "door_opened")
local gw = level.map:checkEntity(i-1, j, Map.TERRAIN, "type") or "wall"
local ge = level.map:checkEntity(i+1, j, Map.TERRAIN, "type") or "wall"
-- local gnc = level.map:checkEntity(i, j-1, Map.TERRAIN, "block_move", {open_door=true}, false, true) and true or false
-- local gsc = level.map:checkEntity(i, j+1, Map.TERRAIN, "block_move", {open_door=true}, false, true) and true or false
local gnc = gn
local gsc = gs
if gs ~= s and gn ~= s and gw ~= s and ge ~= s then self:replace(i, j, self:getTile(nt.small_pillar))
elseif gs ~= s and gn ~= s and gw ~= s and ge == s then self:replace(i, j, self:getTile(nt.pillar_4))
elseif gs ~= s and gn ~= s and gw == s and ge ~= s then self:replace(i, j, self:getTile(nt.pillar_6))
elseif gs == s and gn ~= s and gw ~= s and ge ~= s then self:replace(i, j, self:getTile(nt.pillar_8))
elseif gs ~= s and gn == s and gw ~= s and ge ~= s then self:replace(i, j, self:getTile(nt.pillar_2))
elseif gsc ~= s and gnc ~= s then self:replace(i, j, self:getTile(nt.north_south))
elseif gsc ~= s then self:replace(i, j, self:getTile(nt.south))
elseif gnc ~= s then self:replace(i, j, self:getTile(nt.north))
elseif gs ~= s and gn ~= s then self:replace(i, j, self:getTile(nt.north_south))
elseif gs == s and ds and gn ~= s then self:replace(i, j, self:getTile(nt.north_south))
elseif gs ~= s and gn == s and dn then self:replace(i, j, self:getTile(nt.north_south))
elseif gs ~= s then self:replace(i, j, self:getTile(nt.south))
elseif gs == s and ds then self:replace(i, j, self:getTile(nt.south))
elseif gn ~= s then self:replace(i, j, self:getTile(nt.north))
elseif gn == s and dn then self:replace(i, j, self:getTile(nt.north))
elseif nt.inner then self:replace(i, j, self:getTile(nt.inner))
end
end
......@@ -164,41 +249,73 @@ function _M:niceTileReplace(level, i, j, g, nt)
self:replace(i, j, self:getTile(nt.base))
end
local defs = {
grass = { method="borders", type="grass", forbid={lava=true, rock=true},
default8={add_mos={{image="terrain/grass/grass_2_%02d.png", display_y=-1}}, min=1, max=5},
default2={add_mos={{image="terrain/grass/grass_8_%02d.png", display_y=1}}, min=1, max=5},
default4={add_mos={{image="terrain/grass/grass_6_%02d.png", display_x=-1}}, min=1, max=5},
default6={add_mos={{image="terrain/grass/grass_4_%02d.png", display_x=1}}, min=1, max=4},
default1={add_mos={{image="terrain/grass/grass_9_%02d.png", display_x=-1, display_y=1}}, min=1, max=3},
default3={add_mos={{image="terrain/grass/grass_7_%02d.png", display_x=1, display_y=1}}, min=1, max=3},
default7={add_mos={{image="terrain/grass/grass_3_%02d.png", display_x=-1, display_y=-1}}, min=1, max=3},
default9={add_mos={{image="terrain/grass/grass_1_%02d.png", display_x=1, display_y=-1}}, min=1, max=3},
default1i={add_mos={{image="terrain/grass/grass_inner_1_%02d.png", display_x=-1, display_y=1}}, min=1, max=3},
default3i={add_mos={{image="terrain/grass/grass_inner_3_%02d.png", display_x=1, display_y=1}}, min=1, max=3},
default7i={add_mos={{image="terrain/grass/grass_inner_7_%02d.png", display_x=-1, display_y=-1}}, min=1, max=3},
default9i={add_mos={{image="terrain/grass/grass_inner_9_%02d.png", display_x=1, display_y=-1}}, min=1, max=3},
},
}
--- Make water have nice transition to other stuff
function _M:niceTileGenericBorders(level, i, j, g, nt, type, allow)
local g8 = level.map:checkEntity(i, j-1, Map.TERRAIN, "subtype") or type
local g2 = level.map:checkEntity(i, j+1, Map.TERRAIN, "subtype") or type
local g4 = level.map:checkEntity(i-1, j, Map.TERRAIN, "subtype") or type
local g6 = level.map:checkEntity(i+1, j, Map.TERRAIN, "subtype") or type
local g7 = level.map:checkEntity(i-1, j-1, Map.TERRAIN, "subtype") or type
local g9 = level.map:checkEntity(i+1, j-1, Map.TERRAIN, "subtype") or type
local g1 = level.map:checkEntity(i-1, j+1, Map.TERRAIN, "subtype") or type
local g3 = level.map:checkEntity(i+1, j+1, Map.TERRAIN, "subtype") or type
function _M:editTileGenericBorders(level, i, j, g, nt, type)
local kind = nt.use_type and "type" or "subtype"
local g5 = level.map:checkEntity(i, j, Map.TERRAIN, kind) or type
local g8 = level.map:checkEntity(i, j-1, Map.TERRAIN, kind) or type
local g2 = level.map:checkEntity(i, j+1, Map.TERRAIN, kind) or type
local g4 = level.map:checkEntity(i-1, j, Map.TERRAIN, kind) or type
local g6 = level.map:checkEntity(i+1, j, Map.TERRAIN, kind) or type
local g7 = level.map:checkEntity(i-1, j-1, Map.TERRAIN, kind) or type
local g9 = level.map:checkEntity(i+1, j-1, Map.TERRAIN, kind) or type
local g1 = level.map:checkEntity(i-1, j+1, Map.TERRAIN, kind) or type
local g3 = level.map:checkEntity(i+1, j+1, Map.TERRAIN, kind) or type
if nt.forbid then
if nt.forbid[g5] then g5 = type end
if nt.forbid[g4] then g4 = type end
if nt.forbid[g6] then g6 = type end
if nt.forbid[g8] then g8 = type end
if nt.forbid[g2] then g2 = type end
if nt.forbid[g1] then g1 = type end
if nt.forbid[g3] then g3 = type end
if nt.forbid[g7] then g7 = type end
if nt.forbid[g9] then g9 = type end
end
local id = "genbord:"..table.concat({type,tostring(g1==g5),tostring(g2==g5),tostring(g3==g5),tostring(g4==g5),tostring(g5==g5),tostring(g6==g5),tostring(g7==g5),tostring(g8==g5),tostring(g9==g5)}, ",")
-- Sides
if g4==type and g6==type and allow[g8] then self:replace(i, j, self:getTile(nt[g8.."8"]))
elseif g4==type and g6==type and allow[g2] then self:replace(i, j, self:getTile(nt[g2.."2"]))
elseif g8==type and g2==type and allow[g4] then self:replace(i, j, self:getTile(nt[g4.."4"]))
elseif g8==type and g2==type and allow[g6] then self:replace(i, j, self:getTile(nt[g6.."6"]))
if g5 ~= g8 then self:edit(i, j, id, nt[g8.."8"] or nt["default8"]) end
if g5 ~= g2 then self:edit(i, j, id, nt[g2.."2"] or nt["default2"]) end
if g5 ~= g4 then self:edit(i, j, id, nt[g4.."4"] or nt["default4"]) end
if g5 ~= g6 then self:edit(i, j, id, nt[g6.."6"] or nt["default6"]) end
-- Corners
elseif allow[g4] and allow[g7] and allow[g8] then self:replace(i, j, self:getTile(nt[g7.."7"]))
elseif allow[g4] and allow[g1] and allow[g2] then self:replace(i, j, self:getTile(nt[g1.."1"]))
elseif allow[g2] and allow[g3] and allow[g6] then self:replace(i, j, self:getTile(nt[g3.."3"]))
elseif allow[g6] and allow[g9] and allow[g8] then self:replace(i, j, self:getTile(nt[g9.."9"]))
if g5 ~= g7 and g5 == g4 and g5 == g8 then self:edit(i, j, id, nt[g7.."7"] or nt["default7"]) end
if g5 ~= g9 and g5 == g6 and g5 == g8 then self:edit(i, j, id, nt[g9.."9"] or nt["default9"]) end
if g5 ~= g1 and g5 == g4 and g5 == g2 then self:edit(i, j, id, nt[g1.."1"] or nt["default1"]) end
if g5 ~= g3 and g5 == g6 and g5 == g2 then self:edit(i, j, id, nt[g3.."3"] or nt["default3"]) end
-- Inner corners
elseif g4==type and allow[g7] and g8==type then self:replace(i, j, self:getTile(nt["inner_"..g7.."3"]))
elseif g4==type and allow[g1] and g2==type then self:replace(i, j, self:getTile(nt["inner_"..g1.."9"]))
elseif g2==type and allow[g3] and g6==type then self:replace(i, j, self:getTile(nt["inner_"..g3.."7"]))
elseif g6==type and allow[g9] and g8==type then self:replace(i, j, self:getTile(nt["inner_"..g9.."1"]))
-- Full
elseif g1==type and g2==type and g3==type and g4==type and g6==type and g7==type and g8==type and g9==type then self:replace(i, j, self:getTile(nt[type]))
end
if g5 ~= g7 and g5 ~= g4 and g5 ~= g8 then self:edit(i, j, id, nt[g7.."7i"] or nt["default7i"]) end
if g5 ~= g9 and g5 ~= g6 and g5 ~= g8 then self:edit(i, j, id, nt[g9.."9i"] or nt["default9i"]) end
if g5 ~= g1 and g5 ~= g4 and g5 ~= g2 then self:edit(i, j, id, nt[g1.."1i"] or nt["default1i"]) end
if g5 ~= g3 and g5 ~= g6 and g5 ~= g2 then self:edit(i, j, id, nt[g3.."3i"] or nt["default3i"]) end
end
function _M:niceTileWater(level, i, j, g, nt)
self:niceTileGenericBorders(level, i, j, g, nt, "water", {grass=true, sand=true})
function _M:editTileBorders(level, i, j, g, nt)
self:editTileGenericBorders(level, i, j, g, nt, nt.type or "grass")
end
function _M:niceTileGrassSand(level, i, j, g, nt)
self:niceTileGenericBorders(level, i, j, g, nt, "sand", {grass=true})
function _M:editTileBorders_def(level, i, j, g, nt)
self:editTileGenericBorders(level, i, j, g, defs[nt.def], defs[nt.def].type or "grass")
end
......@@ -36,6 +36,7 @@ newEntity{
type = "wall", subtype = "floor",
name = "wall", image = "terrain/granite_wall1.png",
display = '#', color_r=255, color_g=255, color_b=255, back_color=colors.GREY,
z = 3,
nice_tiler = { method="wall3d", inner={"WALL", 100, 1, 5}, north={"WALL_NORTH", 100, 1, 5}, south={"WALL_SOUTH", 10, 1, 17}, north_south="WALL_NORTH_SOUTH", small_pillar="WALL_SMALL_PILLAR", pillar_2="WALL_PILLAR_2", pillar_8={"WALL_PILLAR_8", 100, 1, 5}, pillar_4="WALL_PILLAR_4", pillar_6="WALL_PILLAR_6" },
always_remember = true,
does_block_move = true,
......@@ -45,17 +46,17 @@ newEntity{
dig = "FLOOR",
}
for i = 1, 5 do
newEntity{ base = "WALL", define_as = "WALL"..i, image = "terrain/granite_wall1_"..i..".png"}
newEntity{ base = "WALL", define_as = "WALL_NORTH"..i, image = "terrain/granite_wall1_"..i..".png", add_displays = {class.new{image="terrain/granite_wall3.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL_PILLAR_8"..i, image = "terrain/granite_wall1_"..i..".png", add_displays = {class.new{image="terrain/granite_wall_pillar_8.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL"..i, image = "terrain/granite_wall1_"..i..".png", z = 3}
newEntity{ base = "WALL", define_as = "WALL_NORTH"..i, image = "terrain/granite_wall1_"..i..".png", z = 3, add_displays = {class.new{image="terrain/granite_wall3.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL_PILLAR_8"..i, image = "terrain/granite_wall1_"..i..".png", z = 3, add_displays = {class.new{image="terrain/granite_wall_pillar_8.png", z=18, display_y=-1}}}
end
newEntity{ base = "WALL", define_as = "WALL_NORTH_SOUTH", image = "terrain/granite_wall2.png", add_displays = {class.new{image="terrain/granite_wall3.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL_SOUTH", image = "terrain/granite_wall2.png"}
for i = 1, 17 do newEntity{ base = "WALL", define_as = "WALL_SOUTH"..i, image = "terrain/granite_wall2_"..i..".png"} end
newEntity{ base = "WALL", define_as = "WALL_SMALL_PILLAR", image = "terrain/marble_floor.png", add_displays = {class.new{image="terrain/granite_wall_pillar_small.png"}, class.new{image="terrain/granite_wall_pillar_small_top.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL_PILLAR_6", image = "terrain/marble_floor.png", add_displays = {class.new{image="terrain/granite_wall_pillar_3.png"}, class.new{image="terrain/granite_wall_pillar_9.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL_PILLAR_4", image = "terrain/marble_floor.png", add_displays = {class.new{image="terrain/granite_wall_pillar_1.png"}, class.new{image="terrain/granite_wall_pillar_7.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL_PILLAR_2", image = "terrain/marble_floor.png", add_displays = {class.new{image="terrain/granite_wall_pillar_2.png"}}}
newEntity{ base = "WALL", define_as = "WALL_NORTH_SOUTH", image = "terrain/granite_wall2.png", z = 3, add_displays = {class.new{image="terrain/granite_wall3.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL_SOUTH", image = "terrain/granite_wall2.png", z = 3}
for i = 1, 17 do newEntity{ base = "WALL", define_as = "WALL_SOUTH"..i, image = "terrain/granite_wall2_"..i..".png", z = 3} end
newEntity{ base = "WALL", define_as = "WALL_SMALL_PILLAR", image = "terrain/marble_floor.png", z=1, add_displays = {class.new{image="terrain/granite_wall_pillar_small.png",z=3}, class.new{image="terrain/granite_wall_pillar_small_top.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL_PILLAR_6", image = "terrain/marble_floor.png", z=1, add_displays = {class.new{image="terrain/granite_wall_pillar_3.png",z=3}, class.new{image="terrain/granite_wall_pillar_9.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL_PILLAR_4", image = "terrain/marble_floor.png", z=1, add_displays = {class.new{image="terrain/granite_wall_pillar_1.png",z=3}, class.new{image="terrain/granite_wall_pillar_7.png", z=18, display_y=-1}}}
newEntity{ base = "WALL", define_as = "WALL_PILLAR_2", image = "terrain/marble_floor.png", z=1, add_displays = {class.new{image="terrain/granite_wall_pillar_2.png",z=3}}}
-----------------------------------------
-- Doors
......
......@@ -17,36 +17,42 @@
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
local grass_editer = { method="borders_def", def="grass"}
newEntity{
define_as = "GRASS",
type = "floor", subtype = "grass",
name = "grass", image = "terrain/grass.png",
display = '.', color=colors.LIGHT_GREEN, back_color={r=44,g=95,b=43},
grow = "TREE",
nice_tiler = { method="replace", base={"GRASS_PATCH", 70, 1, 15}},
nice_editer = grass_editer,
}
for i = 1, 12 do newEntity{ base = "GRASS", define_as = "GRASS_PATCH"..i, image = "terrain/grass"..(i<7 and "" or "2")..".png" } end
for i = 1, 20 do
newEntity{
define_as = "TREE"..(i > 1 and i or ""),
define_as = "TREE",
type = "wall", subtype = "grass",
name = "tree",
image = "terrain/grass.png",
add_displays = class:makeTrees("terrain/tree_alpha"),
image = "terrain/tree.png",
display = '#', color=colors.LIGHT_GREEN, back_color={r=44,g=95,b=43},
always_remember = true,
can_pass = {pass_tree=1},
does_block_move = true,
block_sight = true,
dig = "GRASS",
nice_tiler = { method="replace", base={"TREE", 100, 1, 30}},
nice_editer = grass_editer,
}
end
for i = 1, 30 do newEntity{ base="TREE", define_as = "TREE"..i, image = "terrain/grass.png", add_displays = class:makeTrees("terrain/tree_alpha", 13, 9)} end
newEntity{
define_as = "FLOWER",
type = "floor", subtype = "grass",
name = "flower", image = "terrain/grass_flower3.png",
name = "flower", image = "terrain/flower.png",
display = ';', color=colors.YELLOW, back_color={r=44,g=95,b=43},
grow = "TREE",
nice_tiler = { method="replace", base={"FLOWER", 100, 3, 8}},
nice_tiler = { method="replace", base={"FLOWER", 100, 1, 6+7}},
nice_editer = grass_editer,
}
for i = 3, 8 do newEntity{ base = "FLOWER", define_as = "FLOWER"..i, image = "terrain/grass_flower"..i..".png"} end
for i = 1, 6+7 do newEntity{ base = "FLOWER", define_as = "FLOWER"..i, image = "terrain/grass.png", add_mos = {{image = "terrain/"..(i<=6 and "flower_0"..i..".png" or "mushroom_0"..(i-6)..".png")}}} end
......@@ -36,19 +36,5 @@ newEntity{
newEntity{ base="WATER_BASE",
define_as = "DEEP_WATER",
add_displays = class:makeWater(true),
nice_tiler = { method="water",
water="WATER_GRASS_5",
grass8={"WATER_GRASS_8", 100, 1, 2}, grass2={"WATER_GRASS_2", 100, 1, 2}, grass4={"WATER_GRASS_4", 100, 1, 2}, grass6={"WATER_GRASS_6", 100, 1, 2}, grass1={"WATER_GRASS_1", 100, 1, 2}, grass3={"WATER_GRASS_3", 100, 1, 2}, grass7={"WATER_GRASS_7", 100, 1, 2}, grass9={"WATER_GRASS_9", 100, 1, 2}, inner_grass1="WATER_GRASS_1I", inner_grass3="WATER_GRASS_3I", inner_grass7="WATER_GRASS_7I", inner_grass9="WATER_GRASS_9I",
sand8={"WATER_SAND_8", 100, 1, 1}, sand2={"WATER_SAND_2", 100, 1, 1}, sand4={"WATER_SAND_4", 100, 1, 1}, sand6={"WATER_SAND_6", 100, 1, 1}, sand1={"WATER_SAND_1", 100, 1, 1}, sand3={"WATER_SAND_3", 100, 1, 1}, sand7={"WATER_SAND_7", 100, 1, 1}, sand9={"WATER_SAND_9", 100, 1, 1}, inner_sand1="WATER_SAND_1I", inner_sand3="WATER_SAND_3I", inner_sand7="WATER_SAND_7I", inner_sand9="WATER_SAND_9I",
},
image="terrain/water_grass_5_1.png",
}
newEntity{base="WATER_BASE", define_as = "WATER_GRASS_5", image="terrain/water_grass_5_1.png"}
for i = 1, 9 do for j = 1, 2 do
if i ~= 5 then newEntity{base="WATER_BASE", define_as = "WATER_GRASS_"..i..j, image="terrain/water_grass_"..i.."_"..j..".png"} end
end end
newEntity{base="WATER_BASE", define_as = "WATER_GRASS_1I", image="terrain/water_grass_1i_1.png"}
newEntity{base="WATER_BASE", define_as = "WATER_GRASS_3I", image="terrain/water_grass_3i_1.png"}
newEntity{base="WATER_BASE", define_as = "WATER_GRASS_7I", image="terrain/water_grass_7i_1.png"}
newEntity{base="WATER_BASE", define_as = "WATER_GRASS_9I", image="terrain/water_grass_9i_1.png"}
game/engines/default/modules/boot/data/gfx/terrain/crystal_alpha1.png

5.25 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_alpha2.png

3.33 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_alpha3.png

3.5 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_alpha4.png

6.57 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_alpha5.png

4.24 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_alpha6.png

6.87 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_floor1.png

6.29 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_floor2.png

5.92 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_floor3.png

5.95 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_floor4.png

5.84 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_floor5.png

5.74 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_floor6.png

6.68 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_floor7.png

5.29 KiB

game/engines/default/modules/boot/data/gfx/terrain/crystal_floor8.png

6.5 KiB

game/engines/default/modules/boot/data/gfx/terrain/granite_door1.png

9.78 KiB

game/engines/default/modules/boot/data/gfx/terrain/granite_door1_open.png

10.5 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment