summaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua14
1 files changed, 8 insertions, 6 deletions
diff --git a/init.lua b/init.lua
index dc54dbc..08d33f5 100644
--- a/init.lua
+++ b/init.lua
@@ -6,7 +6,11 @@ else
end
function round_down(pos)
- return {x=pos.x, y=math.floor(pos.y), z=pos.z}
+ return {x=math.floor(pos.x), y=math.floor(pos.y), z=math.floor(pos.z)}
+end
+
+function round_new(vec)
+ return {x=math.floor(vec.x+0.5), y=math.floor(vec.y+0.3), z=math.floor(vec.z+0.5)}
end
advtrains.register_wagon("construction_train", {
@@ -84,7 +88,7 @@ advtrains.register_wagon("construction_train", {
if self:train().velocity == 0 then
return
end
- local rpos = vector.round(round_down(self.object:getpos()))
+ local rpos = round_new(self.object:getpos())
rpos.y = rpos.y -1
-- Find train tracks, if we find train tracks, we will only replace blocking nodes
local tracks_below = false
@@ -94,21 +98,19 @@ advtrains.register_wagon("construction_train", {
local ps = {x=rpos.x+x, y=rpos.y+y, z=rpos.z+z}
if minetest.get_item_group(minetest.get_node(ps).name, "advtrains_track") > 0 then
tracks_below = true
- minetest.chat_send_all("Found a track!")
break
end
end
end
end
-
for x = -1,1 do
for z = -1,1 do
local ps = {x=rpos.x+x, y=rpos.y, z=rpos.z+z}
local name = minetest.get_node(ps).name
- if (not tracks_below) or (minetest.get_item_group(name, "not_blocking_trains") == 0 and minetest.get_node(ps).walkable and name ~= "air" ) then
+ if (not tracks_below) or (minetest.get_item_group(name, "not_blocking_trains") == 0 and minetest.registered_nodes[name].walkable ) then
minetest.set_node(ps, {name = "default:gravel"})
ps.y = ps.y-1
- if not minetest.get_node(ps).walkable then
+ if not minetest.registered_nodes[minetest.get_node(ps).name].walkable then
minetest.set_node(ps, {name = "default:cobble"})
end
end