Add files via upload
This commit is contained in:
parent
4b114d591d
commit
ccd56855e6
122
init.lua
122
init.lua
@ -20,6 +20,122 @@ minetest.register_craft({
|
|||||||
{"", "default:stone", ""},
|
{"", "default:stone", ""},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
-- Hidden Trapdoor
|
||||||
|
if minetest.get_modpath("doors") then
|
||||||
|
xgadgets = {}
|
||||||
|
xgadgets.registered_trapdoors = {}
|
||||||
|
function xgadgets.trapdoor_toggle(pos, node, clicker)
|
||||||
|
node = node or minetest.get_node(pos)
|
||||||
|
|
||||||
|
if clicker and not default.can_interact_with_node(clicker, pos) then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local def = minetest.registered_nodes[node.name]
|
||||||
|
|
||||||
|
if string.sub(node.name, -5) == "_open" then
|
||||||
|
minetest.sound_play(def.sound_close,
|
||||||
|
{pos = pos, gain = 0.3, max_hear_distance = 10})
|
||||||
|
minetest.swap_node(pos, {name = string.sub(node.name, 1,
|
||||||
|
string.len(node.name) - 5), param1 = node.param1, param2 = node.param2})
|
||||||
|
else
|
||||||
|
minetest.sound_play(def.sound_open,
|
||||||
|
{pos = pos, gain = 0.3, max_hear_distance = 10})
|
||||||
|
minetest.swap_node(pos, {name = node.name .. "_open",
|
||||||
|
param1 = node.param1, param2 = node.param2})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function xgadgets.register_trapdoor(name, def)
|
||||||
|
if not name:find(":") then
|
||||||
|
name = "xgadgets:" .. name
|
||||||
|
end
|
||||||
|
|
||||||
|
local name_closed = name
|
||||||
|
local name_opened = name.."_open"
|
||||||
|
|
||||||
|
def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||||
|
xgadgets.trapdoor_toggle(pos, node, clicker)
|
||||||
|
return itemstack
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Common trapdoor configuration
|
||||||
|
def.drawtype = "nodebox"
|
||||||
|
def.paramtype = "light"
|
||||||
|
def.paramtype2 = "facedir"
|
||||||
|
def.is_ground_content = false
|
||||||
|
|
||||||
|
if not def.sounds then
|
||||||
|
def.sounds = default.node_sound_wood_defaults()
|
||||||
|
end
|
||||||
|
|
||||||
|
if not def.sound_open then
|
||||||
|
def.sound_open = "doors_door_open"
|
||||||
|
end
|
||||||
|
|
||||||
|
if not def.sound_close then
|
||||||
|
def.sound_close = "doors_door_close"
|
||||||
|
end
|
||||||
|
|
||||||
|
local def_opened = table.copy(def)
|
||||||
|
local def_closed = table.copy(def)
|
||||||
|
|
||||||
|
def_closed.node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5}
|
||||||
|
}
|
||||||
|
def_closed.selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5}
|
||||||
|
}
|
||||||
|
def_closed.tiles = {def.tile_front,
|
||||||
|
def.tile_front .. '^[transformFY',
|
||||||
|
def.tile_side, def.tile_side,
|
||||||
|
def.tile_side, def.tile_side}
|
||||||
|
|
||||||
|
def_opened.node_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5}
|
||||||
|
}
|
||||||
|
def_opened.selection_box = {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5}
|
||||||
|
}
|
||||||
|
def_opened.tiles = {def.tile_side, def.tile_side,
|
||||||
|
def.tile_side .. '^[transform3',
|
||||||
|
def.tile_side .. '^[transform1',
|
||||||
|
def.tile_front .. '^[transform46',
|
||||||
|
def.tile_front .. '^[transform6'}
|
||||||
|
|
||||||
|
def_opened.drop = name_closed
|
||||||
|
def_opened.groups.not_in_creative_inventory = 1
|
||||||
|
|
||||||
|
minetest.register_node(name_opened, def_opened)
|
||||||
|
minetest.register_node(name_closed, def_closed)
|
||||||
|
|
||||||
|
xgadgets.registered_trapdoors[name_opened] = true
|
||||||
|
xgadgets.registered_trapdoors[name_closed] = true
|
||||||
|
end
|
||||||
|
|
||||||
|
xgadgets.register_trapdoor("xgadgets:trapdoor", {
|
||||||
|
description = "Hidden Trapdoor",
|
||||||
|
inventory_image = "xgadgets_trapdoor.png",
|
||||||
|
wield_image = "xgadgets_trapdoor.png",
|
||||||
|
tile_front = "default_grass.png",
|
||||||
|
tile_side = "default_grass.png",
|
||||||
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, door = 1},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = "xgadgets:trapdoor",
|
||||||
|
recipe = {
|
||||||
|
{"default:grass_1", "default:grass_1", "default:grass_1"},
|
||||||
|
{"default:grass_1", "doors:trapdoor", "default:grass_1"},
|
||||||
|
{"default:grass_1", "default:grass_1", "default:grass_1"},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
--- THROWABLE GADGETS ---
|
--- THROWABLE GADGETS ---
|
||||||
-- Function to make bottles that are throwable and place blocks
|
-- Function to make bottles that are throwable and place blocks
|
||||||
function xgadgets_register_throwable(name, descr, def)
|
function xgadgets_register_throwable(name, descr, def)
|
||||||
@ -194,7 +310,6 @@ xgadgets_bottle.on_step = function(self, dtime, pos)
|
|||||||
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
|
self.lastpos= {x = pos.x, y = pos.y, z = pos.z}
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_entity("xgadgets:bottle", xgadgets_bottle)
|
minetest.register_entity("xgadgets:bottle", xgadgets_bottle)
|
||||||
-- Smoke Bottle
|
-- Smoke Bottle
|
||||||
minetest.register_entity("xgadgets:smoke", {
|
minetest.register_entity("xgadgets:smoke", {
|
||||||
@ -289,6 +404,7 @@ minetest.register_craft({
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
--- TRAP GADGETS ---
|
--- TRAP GADGETS ---
|
||||||
|
if minetest.get_modpath("farming") then
|
||||||
minetest.register_node("xgadgets:net_trap", {
|
minetest.register_node("xgadgets:net_trap", {
|
||||||
description = "Net Trap",
|
description = "Net Trap",
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
@ -303,6 +419,7 @@ minetest.register_node("xgadgets:net_trap", {
|
|||||||
liquid_range = 0,
|
liquid_range = 0,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
|
drop = "farming:string 3",
|
||||||
selection_box = {type = "regular"},
|
selection_box = {type = "regular"},
|
||||||
groups = {oddly_breakable_by_hand=1, snappy=2, liquid=3, flammable=3},
|
groups = {oddly_breakable_by_hand=1, snappy=2, liquid=3, flammable=3},
|
||||||
sounds = default.node_sound_leaves_defaults()
|
sounds = default.node_sound_leaves_defaults()
|
||||||
@ -314,4 +431,5 @@ minetest.register_craft({
|
|||||||
{"", "farming:string", ""},
|
{"", "farming:string", ""},
|
||||||
{"farming:string", "", "farming:string"},
|
{"farming:string", "", "farming:string"},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user