split it into separate files
This commit is contained in:
202
scripts/signs.lua
Normal file
202
scripts/signs.lua
Normal file
@@ -0,0 +1,202 @@
|
||||
stone_sounds = {}
|
||||
stone_sounds.footstep = {name = "stone_walk", gain = 1.0}
|
||||
stone_sounds.dug = {name = "stone_break", gain = 1.0}
|
||||
stone_sounds.place = {name = "block_place", gain = 1.0}
|
||||
glass_sounds = {}
|
||||
glass_sounds.footstep = {name = "glass_walk", gain = 1.0}
|
||||
glass_sounds.dug = {name = "glass_break", gain = 1.0}
|
||||
glass_sounds.place = {name = "block_place", gain = 1.0}
|
||||
wood_sounds = {}
|
||||
wood_sounds.footstep = {name = "wood_walk", gain = 1.0}
|
||||
wood_sounds.dug = {name = "wood_break", gain = 1.0}
|
||||
wood_sounds.place = {name = "block_place", gain = 1.0}
|
||||
local snuma = 1
|
||||
for ii = 0, 9, 1 do
|
||||
if ii == 1 then
|
||||
snuma = 0
|
||||
end
|
||||
minetest.register_node(
|
||||
"portalgun:sign_numa" .. ii,
|
||||
{
|
||||
description = "Sign number (" .. ii .. ")",
|
||||
tiles = {"portalgun_snum" .. ii .. ".png"},
|
||||
drop = "portalgun:sign_numa1",
|
||||
drawtype = "nodebox",
|
||||
groups = {mesecon = 2, portalnuma = 1, dig_immediate = 3, not_in_creative_inventory = snuma},
|
||||
sounds = wood_sounds,
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
light_source = 3,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, 0.4375, 0, 0.5, 0.5}
|
||||
}
|
||||
},
|
||||
after_place_node = function(pos, placer, itemstack)
|
||||
local param2 = minetest.get_node(pos).param2
|
||||
local pos2 = portalgun_param2(pos, param2)
|
||||
if minetest.get_node(pos2) and minetest.get_node(pos2).name == "air" then
|
||||
minetest.set_node(pos2, {name = "portalgun:sign_numb1", param2 = param2})
|
||||
minetest.swap_node(pos, {name = "portalgun:sign_numa0", param2 = minetest.get_node(pos).param2})
|
||||
end
|
||||
end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
if not minetest.is_protected(pos, clicker:get_player_name()) then
|
||||
local iin = ii + 1
|
||||
if iin == 10 then
|
||||
iin = 0
|
||||
end
|
||||
minetest.swap_node(
|
||||
pos,
|
||||
{name = "portalgun:sign_numa" .. iin, param2 = minetest.get_node(pos).param2}
|
||||
)
|
||||
end
|
||||
end,
|
||||
on_punch = function(pos, node, player, pointed_thing)
|
||||
local param2 = minetest.get_node(pos).param2
|
||||
local pos2 = portalgun_param2(pos, param2)
|
||||
local node = minetest.get_node(pos2)
|
||||
if node and minetest.get_node_group(node.name, "portalnumb") > 0 then
|
||||
minetest.set_node(pos2, {name = "air"})
|
||||
end
|
||||
end
|
||||
}
|
||||
)
|
||||
if snuma == 0 then
|
||||
snuma = 1
|
||||
end
|
||||
minetest.register_node(
|
||||
"portalgun:sign_numb" .. ii,
|
||||
{
|
||||
description = "Sign number",
|
||||
tiles = {"portalgun_snum" .. ii .. ".png"},
|
||||
drop = "portalgun:sign_numa1",
|
||||
drawtype = "nodebox",
|
||||
groups = {mesecon = 2, portalnumb = 1, dig_immediate = 3, not_in_creative_inventory = 1},
|
||||
sounds = wood_sounds,
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
light_source = 3,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-1, -0.5, 0.4375, -0.5, 0.5, 0.5}
|
||||
}
|
||||
},
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
if not minetest.is_protected(pos, clicker:get_player_name()) then
|
||||
local iin = ii + 1
|
||||
if iin == 10 then
|
||||
iin = 0
|
||||
end
|
||||
minetest.swap_node(
|
||||
pos,
|
||||
{name = "portalgun:sign_numb" .. iin, param2 = minetest.get_node(pos).param2}
|
||||
)
|
||||
end
|
||||
end,
|
||||
on_punch = function(pos, node, player, pointed_thing)
|
||||
local param2 = minetest.get_node(pos).param2
|
||||
local pos2 = portalgun_param2(pos, param2, true)
|
||||
local node = minetest.get_node(pos2)
|
||||
if node and minetest.get_node_group(node.name, "portalnuma") > 0 then
|
||||
minetest.set_node(pos2, {name = "air"})
|
||||
end
|
||||
end
|
||||
}
|
||||
)
|
||||
end
|
||||
minetest.register_node(
|
||||
"portalgun:sign1",
|
||||
{
|
||||
description = "Portal sign blue",
|
||||
tiles = {"portalgun_testblock.png^portalgun_sign1.png"},
|
||||
inventory_image = "portalgun_testblock.png^portalgun_sign1.png",
|
||||
drawtype = "nodebox",
|
||||
groups = {snappy = 3, not_in_creative_inventory = 0},
|
||||
sounds = wood_sounds,
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, 0.45, 0.5, 0.5, 0.5}
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
minetest.register_node(
|
||||
"portalgun:sign2",
|
||||
{
|
||||
description = "Portal sign orange",
|
||||
tiles = {"portalgun_testblock.png^portalgun_sign2.png"},
|
||||
inventory_image = "portalgun_testblock.png^portalgun_sign2.png",
|
||||
drawtype = "nodebox",
|
||||
groups = {snappy = 3, not_in_creative_inventory = 0},
|
||||
sounds = wood_sounds,
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, 0.45, 0.5, 0.5, 0.5}
|
||||
}
|
||||
}
|
||||
)
|
||||
minetest.register_node(
|
||||
"portalgun:sign_v",
|
||||
{
|
||||
description = "Sign V",
|
||||
tiles = {"portalgun_v.png"},
|
||||
inventory_image = "portalgun_v.png",
|
||||
drop = "portalgun:sign_x",
|
||||
drawtype = "nodebox",
|
||||
groups = {mesecon = 2, snappy = 3, not_in_creative_inventory = 1},
|
||||
sounds = wood_sounds,
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
light_source = 5,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, 0.45, 0.5, 0.5, 0.5}
|
||||
},
|
||||
mesecons = {
|
||||
effector = {
|
||||
action_off = function(pos, node)
|
||||
minetest.swap_node(pos, {name = "portalgun:sign_x", param2 = minetest.get_node(pos).param2})
|
||||
end
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
minetest.register_node(
|
||||
"portalgun:sign_x",
|
||||
{
|
||||
description = "Sign X",
|
||||
tiles = {"portalgun_x.png"},
|
||||
inventory_image = "portalgun_x.png",
|
||||
drawtype = "nodebox",
|
||||
groups = {mesecon = 2, snappy = 3, not_in_creative_inventory = 0},
|
||||
sounds = wood_sounds,
|
||||
is_ground_content = false,
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
light_source = 3,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, 0.45, 0.5, 0.5, 0.5}
|
||||
},
|
||||
mesecons = {
|
||||
effector = {
|
||||
action_on = function(pos, node)
|
||||
minetest.swap_node(pos, {name = "portalgun:sign_v", param2 = minetest.get_node(pos).param2})
|
||||
end
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
Reference in New Issue
Block a user