1 -- CC0/Unlicense Emilia/cora 2020
4 "mesecons_torch:redstoneblock"
8 "mcl_minecarts:golden_rail",
12 local tunnelmaterial
= {
13 'mcl_core:glass_light_blue',
15 'mcl_nether:netherrack',
20 "mesecons_torch:redstoneblock"
26 minetest
.register_cheat("RailT",'Bots','scaffold_railtunnel')
27 local function checknode(pos
)
28 local node
= minetest
.get_node_or_nil(pos
)
29 if node
and node
.name
~="mesecons_torch:redstoneblock" and not node
.name
:find("_rail") then return true end
32 local function dignodes(poss
)
33 for k
,v
in pairs(poss
) do
34 if checknode(v
) then ws
.dig(v
) end
37 local function blockliquids()
38 local lp
=ws
.lp
:get_pos()
39 local liquids
={'mcl_core:lava_source','mcl_core:water_source','mcl_core:lava_flowing','mcl_core:water_flowing'}
40 local bn
=minetest
.find_nodes_near(lp
, 5, liquids
, true)
41 for kk
,vv
in pairs(bn
) do
42 scaffold
.place_if_needed(tunnelmaterial
,vv
)
46 local function invcheck(item
)
47 if mintetest
.switch_to_item(item
) then return true end
48 refill
.refill_at(ws
.dircoord(1,1,0),'railkit')
51 ws
.rg("RailBot","Bots", "scaffold_rails", function()
52 local lp
= ws
.dircoord(0,0,0)
53 local below
= ws
.dircoord(0,-1,0)
67 local bln
=minetest
.get_node_or_nil(below
)
68 local lpn
=minetest
.get_node_or_nil(lp
)
70 if bln
and lpn
and lpn
.name
== "mcl_minecarts:golden_rail_on" then
71 minetest
.settings
:set_bool('continuous_forward',true)
73 minetest
.settings
:set_bool('continuous_forward',false)
76 minetest
.after("0",function()
77 local frpos
=ws
.dircoord(1,0,0)
78 local fgpos
=ws
.dircoord(1,-1,0)
79 local rpos
=ws
.dircoord(0,0,0)
80 local gpos
=ws
.dircoord(0,-1,0)
81 scaffold
.place_if_needed(ground
, gpos
)
82 scaffold
.place_if_needed(rails
, rpos
)
83 scaffold
.place_if_needed(ground
, fgpos
)
84 scaffold
.place_if_needed(rails
, frpos
)
87 if minetest
.settings
:get_bool('scaffold_railtunnel') then
88 scaffold
.place_if_needed(tunnelmaterial
, ws
.dircoord(0,2,0))
89 scaffold
.place_if_needed(tunnelmaterial
, ws
.dircoord(0,1,1))
90 scaffold
.place_if_needed(tunnelmaterial
, ws
.dircoord(0,0,1))
91 scaffold
.place_if_needed(tunnelmaterial
, ws
.dircoord(0,1,-1))
92 scaffold
.place_if_needed(tunnelmaterial
, ws
.dircoord(0,0,-1))
97 end,function() --stopfunc
99 end,{'scaffold_ltbm','snapyaw','continuous_forward'})
101 scaffold
.register_template_scaffold("LanternTBM", "scaffold_ltbm", function()
102 local dir
=ws
.getdir()
103 local lp
=vector
.round(ws
.dircoord(0,0,0))
105 if dir
== "north" or dir
== "south" then
115 local lpos
=ws
.dircoord(0,2,0)
116 local nd
=minetest
.get_node_or_nil(lpos
)
117 if nd
and nd
.name
~= 'mcl_ocean:sea_lantern' then
119 minetest
.after("0",function() ws
.place(lpos
,'mcl_ocean:sea_lantern') end)