mirror of
https://bitbucket.org/Infinatum/scaffolding.git
synced 2025-01-09 16:40:17 +01:00
> Fixed Height Bug
scaffolding will always go up to 32 nodes, no matter where you place the node > Height Set to 32 nodes Scaffolding cannot go over 32 nodes.
This commit is contained in:
parent
a00e2ff125
commit
31edf283f7
57
init.lua
57
init.lua
@ -33,34 +33,50 @@ minetest.register_node("scaffolding:scaffolding", {
|
|||||||
|
|
||||||
-- many thanks to addi for improveing (rewriteing) my crappy code --
|
-- many thanks to addi for improveing (rewriteing) my crappy code --
|
||||||
local name = minetest.get_node(pos).name -- get loacation of node
|
local name = minetest.get_node(pos).name -- get loacation of node
|
||||||
height = 0; -- set hite of scaffolding (not set)
|
height = 0;
|
||||||
|
depth = 0; -- !!Note!! depth is not needed at the moment
|
||||||
|
|
||||||
--[[ debug stuff ]]
|
--[[ debug stuff ]]
|
||||||
minetest.chat_send_all(string.format("node: %s",name))
|
minetest.chat_send_all(string.format("node: %s",name))
|
||||||
|
|
||||||
minetest.chat_send_all(string.format("node: %s %s %s ",pos.x, pos.y, pos.z ))
|
minetest.chat_send_all(string.format("node: %s %s %s ",pos.x, pos.y, pos.z ))
|
||||||
|
|
||||||
|
-- set pos at bottom of scafolding tower.
|
||||||
|
repeat
|
||||||
|
pos.y = pos.y - 1; --every run get one node up
|
||||||
|
depth = depth - 1
|
||||||
|
local current_node = minetest.get_node(pos); --get the node of the new position
|
||||||
|
minetest.chat_send_all(string.format("found %q at location: %s",
|
||||||
|
current_node.name,
|
||||||
|
minetest.pos_to_string(pos)
|
||||||
|
))
|
||||||
|
|
||||||
|
until current_node.name ~= "scaffolding:scaffolding" -- will repeat untill it dose not find a scaffolding node
|
||||||
|
minetest.chat_send_all(string.format("exit loop"))
|
||||||
|
|
||||||
|
-- check height of scaffolding tower --
|
||||||
|
|
||||||
repeat
|
repeat
|
||||||
pos.y = pos.y + 1; --every run get one node up
|
pos.y = pos.y + 1; --every run get one node up
|
||||||
height = height + 1
|
height = height + 1
|
||||||
local current_node = minetest.get_node(pos); --get the node of the new position
|
local current_node = minetest.get_node(pos); --get the node of the new position
|
||||||
minetest.chat_send_all(string.format("found %q at location: %s",
|
minetest.chat_send_all(string.format("found %q at location: %s",
|
||||||
current_node.name,
|
current_node.name,
|
||||||
minetest.pos_to_string(pos)
|
minetest.pos_to_string(pos)
|
||||||
))
|
))
|
||||||
|
|
||||||
if current_node.name == "air" then
|
if current_node.name == "air" then
|
||||||
minetest.set_node(pos, {name = "scaffolding:scaffolding"} )
|
minetest.set_node(pos, {name = "scaffolding:scaffolding"} )
|
||||||
itemstack:take_item(1); --//and remove one if its the correct one
|
itemstack:take_item(1); --//and remove one if its the correct one
|
||||||
player:set_wielded_item(itemstack);--//update inventory of the player
|
player:set_wielded_item(itemstack);--//update inventory of the player
|
||||||
end
|
end
|
||||||
until current_node.name ~= "scaffolding:scaffolding" or height >= 64 --we repeat until we find something else then "scaffolding:scaffolding"
|
until current_node.name ~= "scaffolding:scaffolding" or height >= 32 --we repeat until we find something else then "scaffolding:scaffolding"
|
||||||
--maybe there should be also another limit, because its currently possible to build infinite towers
|
--maybe there should be also another limit, because its currently possible to build infinite towers
|
||||||
minetest.chat_send_all(string.format("exit loop"))
|
minetest.chat_send_all(string.format("exit loop"))
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end,
|
end,
|
||||||
|
|
||||||
node_box = {
|
node_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
@ -237,13 +253,30 @@ minetest.register_node("scaffolding:reinforced_scaffolding", {
|
|||||||
|
|
||||||
-- many thanks to addi for improveing (rewriteing) my crappy code --
|
-- many thanks to addi for improveing (rewriteing) my crappy code --
|
||||||
local name = minetest.get_node(pos).name -- get loacation of node
|
local name = minetest.get_node(pos).name -- get loacation of node
|
||||||
height = 0; -- set hite of scaffolding (not set)
|
height = 0;
|
||||||
|
depth = 0; -- !!Note!! depth is not deeded at the moment
|
||||||
|
|
||||||
--[[ debug stuff ]]
|
--[[ debug stuff ]]
|
||||||
minetest.chat_send_all(string.format("node: %s",name))
|
minetest.chat_send_all(string.format("node: %s",name))
|
||||||
|
|
||||||
minetest.chat_send_all(string.format("node: %s %s %s ",pos.x, pos.y, pos.z ))
|
minetest.chat_send_all(string.format("node: %s %s %s ",pos.x, pos.y, pos.z ))
|
||||||
|
|
||||||
|
-- set pos at bottom of scafolding tower.
|
||||||
|
repeat
|
||||||
|
pos.y = pos.y - 1; --every run get one node up
|
||||||
|
depth = depth - 1 -- !!Note!! depth is not needed at the moment
|
||||||
|
|
||||||
|
local current_node = minetest.get_node(pos); --get the node of the new position
|
||||||
|
minetest.chat_send_all(string.format("found %q at location: %s",
|
||||||
|
current_node.name,
|
||||||
|
minetest.pos_to_string(pos)
|
||||||
|
))
|
||||||
|
|
||||||
|
until current_node.name ~= "scaffolding:iron_scaffolding" -- will repeat untill it dose not find a scaffolding node
|
||||||
|
minetest.chat_send_all(string.format("exit loop"))
|
||||||
|
|
||||||
|
-- check height of scaffolding tower --
|
||||||
|
|
||||||
repeat
|
repeat
|
||||||
pos.y = pos.y + 1; --every run get one node up
|
pos.y = pos.y + 1; --every run get one node up
|
||||||
height = height + 1
|
height = height + 1
|
||||||
@ -258,7 +291,7 @@ minetest.register_node("scaffolding:reinforced_scaffolding", {
|
|||||||
itemstack:take_item(1); --//and remove one if its the correct one
|
itemstack:take_item(1); --//and remove one if its the correct one
|
||||||
player:set_wielded_item(itemstack);--//update inventory of the player
|
player:set_wielded_item(itemstack);--//update inventory of the player
|
||||||
end
|
end
|
||||||
until current_node.name ~= "scaffolding:iron_scaffolding" or height >= 64 --we repeat until we find something else then "scaffolding:scaffolding"
|
until current_node.name ~= "scaffolding:iron_scaffolding" or height >= 32 --we repeat until we find something else then "scaffolding:scaffolding"
|
||||||
--maybe there should be also another limit, because its currently possible to build infinite towers
|
--maybe there should be also another limit, because its currently possible to build infinite towers
|
||||||
minetest.chat_send_all(string.format("exit loop"))
|
minetest.chat_send_all(string.format("exit loop"))
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user