diff options
author | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2018-03-30 20:28:44 +0200 |
---|---|---|
committer | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2018-03-30 20:28:44 +0200 |
commit | 2b27b8d8f1a629ff10f295cb8432225a3a9a943b (patch) | |
tree | aa2ff16b22537a546547ff905bcedf7addbad19e /init.lua | |
parent | cb219eff2cf7ba4e95f56fc891ca43b766416b54 (diff) | |
download | advtrains_construction_train-master.tar.gz advtrains_construction_train-master.tar.bz2 advtrains_construction_train-master.zip |
Diffstat (limited to 'init.lua')
-rw-r--r-- | init.lua | 14 |
1 files changed, 8 insertions, 6 deletions
@@ -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 |