mirror of
https://git.minetest.land/MineClone2/MineClone2.git
synced 2024-11-26 21:03:45 +01:00
Mcl_fences: Allow 2 register fences/gates seperate
parent
e866c610cb
commit
6cbf1d098f
@ -19,7 +19,8 @@ local cz1 = {2/16, -1/2+6/16, -2/16, -2/16, 1, -1/2} --unten(quer) -z
|
|||||||
local cz2 = {-2/16, -1/2+6/16, 2/16, 2/16, 1, 1/2} --unten(quer) z
|
local cz2 = {-2/16, -1/2+6/16, 2/16, 2/16, 1, 1/2} --unten(quer) z
|
||||||
|
|
||||||
mcl_fences = {}
|
mcl_fences = {}
|
||||||
mcl_fences.register_fence = function(id, fence_name, fence_gate_name, texture, fence_image, gate_image, groups, connects_to, sounds)
|
|
||||||
|
mcl_fences.register_fence = function(id, fence_name, texture, fence_image, groups, connects_to, sounds)
|
||||||
if groups == nil then groups = {} end
|
if groups == nil then groups = {} end
|
||||||
groups.fence = 1
|
groups.fence = 1
|
||||||
groups.deco_block = 1
|
groups.deco_block = 1
|
||||||
@ -28,7 +29,6 @@ mcl_fences.register_fence = function(id, fence_name, fence_gate_name, texture, f
|
|||||||
table.insert(connects_to, "group:solid")
|
table.insert(connects_to, "group:solid")
|
||||||
table.insert(connects_to, "group:fence_gate")
|
table.insert(connects_to, "group:fence_gate")
|
||||||
table.insert(connects_to, fence_id)
|
table.insert(connects_to, fence_id)
|
||||||
local id_gate = id .. "_gate"
|
|
||||||
minetest.register_node(fence_id, {
|
minetest.register_node(fence_id, {
|
||||||
description = fence_name,
|
description = fence_name,
|
||||||
tiles = {texture},
|
tiles = {texture},
|
||||||
@ -60,7 +60,9 @@ mcl_fences.register_fence = function(id, fence_name, fence_gate_name, texture, f
|
|||||||
},
|
},
|
||||||
sounds = sounds,
|
sounds = sounds,
|
||||||
})
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
mcl_fences.register_fence_gate = function(id, fence_gate_name, texture, gate_image, groups, connects_to, sounds)
|
||||||
local meta2
|
local meta2
|
||||||
local state2 = 0
|
local state2 = 0
|
||||||
|
|
||||||
@ -68,6 +70,7 @@ mcl_fences.register_fence = function(id, fence_name, fence_gate_name, texture, f
|
|||||||
minetest.set_node(pos, node)
|
minetest.set_node(pos, node)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local gate_id = minetest.get_current_modname()..":"..id.."_gate"
|
||||||
local function punch_gate(pos, node)
|
local function punch_gate(pos, node)
|
||||||
meta2 = minetest.get_meta(pos)
|
meta2 = minetest.get_meta(pos)
|
||||||
state2 = meta2:get_int("state")
|
state2 = meta2:get_int("state")
|
||||||
@ -75,24 +78,27 @@ mcl_fences.register_fence = function(id, fence_name, fence_gate_name, texture, f
|
|||||||
if state2 == 1 then
|
if state2 == 1 then
|
||||||
state2 = 0
|
state2 = 0
|
||||||
minetest.sound_play("doors_fencegate_close", {gain = 0.3, max_hear_distance = 10})
|
minetest.sound_play("doors_fencegate_close", {gain = 0.3, max_hear_distance = 10})
|
||||||
tmp_node2 = {name="mcl_fences:"..id_gate, param1=node.param1, param2=node.param2}
|
tmp_node2 = {name=gate_id, param1=node.param1, param2=node.param2}
|
||||||
else
|
else
|
||||||
state2 = 1
|
state2 = 1
|
||||||
minetest.sound_play("doors_fencegate_open", {gain = 0.3, max_hear_distance = 10})
|
minetest.sound_play("doors_fencegate_open", {gain = 0.3, max_hear_distance = 10})
|
||||||
tmp_node2 = {name="mcl_fences:"..id_gate.."_open", param1=node.param1, param2=node.param2}
|
tmp_node2 = {name=gate_id.."_open", param1=node.param1, param2=node.param2}
|
||||||
end
|
end
|
||||||
update_gate(pos, tmp_node2)
|
update_gate(pos, tmp_node2)
|
||||||
meta2:set_int("state", state2)
|
meta2:set_int("state", state2)
|
||||||
end
|
end
|
||||||
|
|
||||||
if fence_gate_name == nil then
|
if groups == nil then groups = {} end
|
||||||
-- Don't create fence gate when fence gate name is mising
|
groups.fence_gate = 1
|
||||||
return
|
groups.deco_block = 1
|
||||||
end
|
if connects_to == nil then connects_to = {} end
|
||||||
|
table.insert(connects_to, "group:solid")
|
||||||
|
table.insert(connects_to, "group:fence_gate")
|
||||||
|
table.insert(connects_to, fence_id)
|
||||||
|
|
||||||
groups.mesecon_effector_on = 1
|
groups.mesecon_effector_on = 1
|
||||||
groups.fence_gate = 1
|
groups.fence_gate = 1
|
||||||
minetest.register_node(minetest.get_current_modname()..":"..id_gate.."_open", {
|
minetest.register_node(gate_id.."_open", {
|
||||||
tiles = {texture},
|
tiles = {texture},
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
paramtype2 = "facedir",
|
paramtype2 = "facedir",
|
||||||
@ -136,7 +142,7 @@ mcl_fences.register_fence = function(id, fence_name, fence_gate_name, texture, f
|
|||||||
|
|
||||||
groups.mesecon_effector_on = nil
|
groups.mesecon_effector_on = nil
|
||||||
groups.mesecon_effector_off = nil
|
groups.mesecon_effector_off = nil
|
||||||
minetest.register_node(minetest.get_current_modname()..":"..id_gate, {
|
minetest.register_node(gate_id, {
|
||||||
description = fence_gate_name,
|
description = fence_gate_name,
|
||||||
tiles = {texture},
|
tiles = {texture},
|
||||||
inventory_image = "mcl_fences_fence_gate_mask.png^" .. texture .. "^mcl_fences_fence_gate_mask.png^[makealpha:255,126,126",
|
inventory_image = "mcl_fences_fence_gate_mask.png^" .. texture .. "^mcl_fences_fence_gate_mask.png^[makealpha:255,126,126",
|
||||||
@ -192,6 +198,11 @@ mcl_fences.register_fence = function(id, fence_name, fence_gate_name, texture, f
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
mcl_fences.register_fence_and_fence_gate = function(id, fence_name, fence_gate_name, texture, fence_image, gate_image, groups, connects_to, sounds)
|
||||||
|
mcl_fences.register_fence(id, fence_name, texture, fence_image, groups, connects_to, sounds)
|
||||||
|
mcl_fences.register_fence_gate(id, fence_gate_name, texture, gate_image, groups, connects_to, sounds)
|
||||||
|
end
|
||||||
|
|
||||||
local wood_groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fence_wood=1}
|
local wood_groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=2,fence_wood=1}
|
||||||
local wood_connect = {"group:fence_wood"}
|
local wood_connect = {"group:fence_wood"}
|
||||||
local wood_sounds = mcl_sounds.node_sound_wood_defaults()
|
local wood_sounds = mcl_sounds.node_sound_wood_defaults()
|
||||||
@ -215,7 +226,7 @@ for w=1, #woods do
|
|||||||
id = wood[1].."_fence"
|
id = wood[1].."_fence"
|
||||||
id_gate = wood[1].."_fence_gate"
|
id_gate = wood[1].."_fence_gate"
|
||||||
end
|
end
|
||||||
mcl_fences.register_fence(id, wood[2], wood[3], wood[4], wood[5], wood[6], wood_groups, wood_connect, wood_sounds)
|
mcl_fences.register_fence_and_fence_gate(id, wood[2], wood[3], wood[4], wood[5], wood[6], wood_groups, wood_connect, wood_sounds)
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'mcl_fences:'..id..' 3',
|
output = 'mcl_fences:'..id..' 3',
|
||||||
@ -233,8 +244,9 @@ for w=1, #woods do
|
|||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- Nether Brick Fence (without fence gate!)
|
-- Nether Brick Fence (without fence gate!)
|
||||||
mcl_fences.register_fence("nether_brick_fence", "Nether Brick Fence", nil, "mcl_nether_nether_brick.png", "default_fence.png", nil, {cracky=2, deco_block=1, fence_nether_brick=1}, {"group:fence_nether_brick"}, mcl_sounds.node_sound_stone_defaults())
|
mcl_fences.register_fence("nether_brick_fence", "Nether Brick Fence", "mcl_nether_nether_brick.png", "default_fence.png", {cracky=2, deco_block=1, fence_nether_brick=1}, {"group:fence_nether_brick"}, mcl_sounds.node_sound_stone_defaults())
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = 'mcl_fences:nether_brick_fence 6',
|
output = 'mcl_fences:nether_brick_fence 6',
|
||||||
|
Loading…
Reference in New Issue
Block a user