Make isolated wires depend on facedir, rename them to 'insulated'

This commit is contained in:
Jeija 2012-08-17 11:59:06 +02:00
parent d0c4fc012f
commit 863ef26b63
7 changed files with 74 additions and 59 deletions

@ -243,7 +243,7 @@ function mesecon:turnon(pos)
if mesecon:is_conductor_off(node.name) then
local rules = mesecon:conductor_get_rules(node)
minetest.env:add_node(pos, {name=mesecon:get_conductor_on(node.name)})
minetest.env:add_node(pos, {name=mesecon:get_conductor_on(node.name), param2 = node.param2})
while rules[i]~=nil do
local np = {}
@ -272,7 +272,7 @@ function mesecon:turnoff(pos) --receptor rules used because output could have be
if mesecon:is_conductor_on(node.name) then
rules = mesecon:conductor_get_rules(node)
minetest.env:add_node(pos, {name=mesecon:get_conductor_off(node.name)})
minetest.env:add_node(pos, {name=mesecon:get_conductor_off(node.name), param2 = node.param2})
while rules[i]~=nil do
local np = {

@ -0,0 +1,72 @@
minetest.register_node("mesecons_insulated:insulated_on", {
drawtype = "nodebox",
description = "insulated mesecons",
tiles = {
"jeija_insulated_wire_sides.png",
"jeija_insulated_wire_sides.png",
"jeija_insulated_wire_ends_on.png",
"jeija_insulated_wire_ends_on.png",
"jeija_insulated_wire_sides.png",
"jeija_insulated_wire_sides.png"
},
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
stack_max = 99,
selection_box = {
type = "fixed",
fixed = { -16/32-0.001, -18/32, -7/32, 16/32+0.001, -12/32, 7/32 }
},
node_box = {
type = "fixed",
fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 }
},
groups = {dig_immediate = 3, mesecon = 3, mesecon_conductor_craftable=1, not_in_creative_inventory = 1},
drop = "mesecons_insulated:insulated_off",
})
minetest.register_node("mesecons_insulated:insulated_off", {
drawtype = "nodebox",
description = "insulated mesecons",
tiles = {
"jeija_insulated_wire_sides.png",
"jeija_insulated_wire_sides.png",
"jeija_insulated_wire_ends_off.png",
"jeija_insulated_wire_ends_off.png",
"jeija_insulated_wire_sides.png",
"jeija_insulated_wire_sides.png"
},
paramtype = "light",
paramtype2 = "facedir",
walkable = false,
stack_max = 99,
selection_box = {
type = "fixed",
fixed = { -16/32-0.001, -18/32, -7/32, 16/32+0.001, -12/32, 7/32 }
},
node_box = {
type = "fixed",
fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 }
},
groups = {dig_immediate = 3, mesecon = 3, mesecon_conductor_craftable=1},
})
mesecon:add_rules("insulated_all", { --all possible rules
{x = 1, y = 0, z = 0},
{x =-1, y = 0, z = 0},
{x = 0, y = 0, z = 1},
{x = 0, y = 0, z =-1},})
mesecon:add_rules("insulated", {
{x = 1, y = 0, z = 0},
{x =-1, y = 0, z = 0},})
function insulated_wire_get_rules(param2)
if param2 == 1 or param2 == 3 then
return mesecon:rotate_rules_right(mesecon:get_rules("insulated"))
end
return mesecon:get_rules("insulated")
end
mesecon:register_conductor("mesecons_insulated:insulated_on", "mesecons_insulated:insulated_off", mesecon:get_rules("insulated_all"), insulated_wire_get_rules)

@ -1,57 +0,0 @@
minetest.register_node("mesecons_isolated:isolated_on", {
drawtype = "nodebox",
description = "isolated mesecons",
tiles = {
"jeija_isolated_wire_sides.png",
"jeija_isolated_wire_sides.png",
"jeija_isolated_wire_ends_on.png",
"jeija_isolated_wire_ends_on.png",
"jeija_isolated_wire_sides.png",
"jeija_isolated_wire_sides.png"
},
paramtype = "light",
walkable = false,
stack_max = 99,
selection_box = {
type = "fixed",
fixed = { -16/32-0.001, -18/32, -7/32, 16/32+0.001, -12/32, 7/32 }
},
node_box = {
type = "fixed",
fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 }
},
groups = {dig_immediate = 3, mesecon = 3, mesecon_conductor_craftable=1},
drop = "mesecons_isolated:isolated_off",
})
minetest.register_node("mesecons_isolated:isolated_off", {
drawtype = "nodebox",
description = "isolated mesecons",
tiles = {
"jeija_isolated_wire_sides.png",
"jeija_isolated_wire_sides.png",
"jeija_isolated_wire_ends_off.png",
"jeija_isolated_wire_ends_off.png",
"jeija_isolated_wire_sides.png",
"jeija_isolated_wire_sides.png"
},
paramtype = "light",
walkable = false,
stack_max = 99,
selection_box = {
type = "fixed",
fixed = { -16/32-0.001, -18/32, -7/32, 16/32+0.001, -12/32, 7/32 }
},
node_box = {
type = "fixed",
fixed = { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 }
},
groups = {dig_immediate = 3, mesecon = 3, mesecon_conductor_craftable=1, not_in_creative_inventory = 1},
})
mesecon:add_rules("isolated", {
{x = 1, y = 0, z = 0},
{x =-1, y = 0, z = 0},})
mesecon:register_conductor("mesecons_isolated:isolated_on", "mesecons_isolated:isolated_off", mesecon:get_rules("isolated"))

Before

Width:  |  Height:  |  Size: 213 B

After

Width:  |  Height:  |  Size: 213 B

Before

Width:  |  Height:  |  Size: 211 B

After

Width:  |  Height:  |  Size: 211 B

Before

Width:  |  Height:  |  Size: 200 B

After

Width:  |  Height:  |  Size: 200 B