From 2b27b8d8f1a629ff10f295cb8432225a3a9a943b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20P=C3=A9rez-Cerezo?= Date: Fri, 30 Mar 2018 20:28:44 +0200 Subject: relicensed under agpl, fixed bugs with slopes --- init.lua | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'init.lua') 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 -- cgit v1.2.3