summaryrefslogtreecommitdiff
path: root/mesecons_extrawires
diff options
context:
space:
mode:
Diffstat (limited to 'mesecons_extrawires')
-rw-r--r--mesecons_extrawires/crossing.lua49
-rw-r--r--mesecons_extrawires/crossover.lua151
-rw-r--r--mesecons_extrawires/init.lua3
3 files changed, 152 insertions, 51 deletions
diff --git a/mesecons_extrawires/crossing.lua b/mesecons_extrawires/crossing.lua
deleted file mode 100644
index 9b381bf..0000000
--- a/mesecons_extrawires/crossing.lua
+++ /dev/null
@@ -1,49 +0,0 @@
--- CODE NOT ACTIVE
-
-local crossing_get_rules = function(node)
- --TODO: calculate the real port states and use rules to link to them only if
-end
-
-minetest.register_node("mesecons_extrawires:crossing_on", {
- drawtype = "nodebox",
- tiles = {"jeija_insulated_wire_sides_on.png"},
- paramtype = "light",
- walkable = false,
- stack_max = 99,
- selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}},
- node_box = {
- type = "fixed",
- fixed = {
- { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 },
- { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 },
- { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 },
- { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 },
- { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 },
- { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 },
- },
- },
- groups = {dig_immediate=3, mesecon=3, mesecon_conductor_craftable=1, not_in_creative_inventory=1},
- mesecons = {
- receptor = {
- state = mesecon.state.on,
- rules = crossing_get_rules,
- }
- },
-})
-
-minetest.register_craft({
- type = "shapeless",
- output = "mesecons_extrawires:crossing",
- recipe = {
- "mesecons_insulated:insulated_off",
- "mesecons_insulated:insulated_off",
- },
-})
-
-minetest.register_craft({
- type = "shapeless",
- output = "mesecons_insulated:insulated_off 2",
- recipe = {
- "mesecons_extrawires:crossing",
- },
-})
diff --git a/mesecons_extrawires/crossover.lua b/mesecons_extrawires/crossover.lua
new file mode 100644
index 0000000..b150e03
--- /dev/null
+++ b/mesecons_extrawires/crossover.lua
@@ -0,0 +1,151 @@
+function crossover_get_rules(node)
+ return {
+ {--first wire
+ {x=-1,y=0,z=0},
+ {x=1,y=0,z=0},
+ },
+ {--second wire
+ {x=0,y=0,z=-1},
+ {x=0,y=0,z=1},
+ },
+ }
+end
+
+local crossover_states = {
+ "mesecons_extrawires:crossover_off",
+ "mesecons_extrawires:crossover_01",
+ "mesecons_extrawires:crossover_10",
+ "mesecons_extrawires:crossover_on",
+}
+
+minetest.register_node("mesecons_extrawires:crossover_off", {
+ description = "Insulated Crossover",
+ drawtype = "nodebox",
+ tiles = {"jeija_insulated_wire_sides_off.png"},
+ paramtype = "light",
+ walkable = false,
+ stack_max = 99,
+ selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}},
+ node_box = {
+ type = "fixed",
+ fixed = {
+ { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 },
+ { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 },
+ { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 },
+ { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 },
+ { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 },
+ { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 },
+ },
+ },
+ groups = {dig_immediate=3, mesecon=3, mesecon_conductor_craftable=1},
+ mesecons = {
+ conductor = {
+ states = crossover_states,
+ rules = crossover_get_rules(),
+ }
+ },
+})
+
+minetest.register_node("mesecons_extrawires:crossover_01", {
+ description = "You hacker you!",
+ drop = "mesecons_extrawires:crossover_off",
+ drawtype = "nodebox",
+ tiles = {"default_dirt.png"},
+ paramtype = "light",
+ walkable = false,
+ stack_max = 99,
+ selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}},
+ node_box = {
+ type = "fixed",
+ fixed = {
+ { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 },
+ { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 },
+ { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 },
+ { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 },
+ { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 },
+ { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 },
+ },
+ },
+ groups = {dig_immediate=3, mesecon=3, mesecon_conductor_craftable=1, not_in_creative_inventory=1},
+ mesecons = {
+ conductor = {
+ states = crossover_states,
+ rules = crossover_get_rules(),
+ }
+ },
+})
+
+minetest.register_node("mesecons_extrawires:crossover_10", {
+ description = "You hacker you!",
+ drop = "mesecons_extrawires:crossover_off",
+ drawtype = "nodebox",
+ tiles = {"default_stone.png"},
+ paramtype = "light",
+ walkable = false,
+ stack_max = 99,
+ selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}},
+ node_box = {
+ type = "fixed",
+ fixed = {
+ { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 },
+ { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 },
+ { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 },
+ { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 },
+ { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 },
+ { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 },
+ },
+ },
+ groups = {dig_immediate=3, mesecon=3, mesecon_conductor_craftable=1, not_in_creative_inventory=1},
+ mesecons = {
+ conductor = {
+ states = crossover_states,
+ rules = crossover_get_rules(),
+ }
+ },
+})
+
+minetest.register_node("mesecons_extrawires:crossover_on", {
+ description = "You hacker you!",
+ drop = "mesecons_extrawires:crossover_off",
+ drawtype = "nodebox",
+ tiles = {"jeija_insulated_wire_sides_on.png"},
+ paramtype = "light",
+ walkable = false,
+ stack_max = 99,
+ selection_box = {type="fixed", fixed={-16/32-0.0001, -18/32, -16/32-0.001, 16/32+0.001, -5/32, 16/32+0.001}},
+ node_box = {
+ type = "fixed",
+ fixed = {
+ { -16/32-0.001, -17/32, -3/32, 16/32+0.001, -13/32, 3/32 },
+ { -3/32, -17/32, -16/32-0.001, 3/32, -13/32, -6/32 },
+ { -3/32, -13/32, -9/32, 3/32, -6/32, -6/32 },
+ { -3/32, -9/32, -9/32, 3/32, -6/32, 9/32 },
+ { -3/32, -13/32, 6/32, 3/32, -6/32, 9/32 },
+ { -3/32, -17/32, 6/32, 3/32, -13/32, 16/32+0.001 },
+ },
+ },
+ groups = {dig_immediate=3, mesecon=3, mesecon_conductor_craftable=1, not_in_creative_inventory=1},
+ mesecons = {
+ conductor = {
+ states = crossover_states,
+ rules = crossover_get_rules(),
+ }
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "mesecons_extrawires:crossover_off",
+ recipe = {
+ "mesecons_insulated:insulated_off",
+ "mesecons_insulated:insulated_off",
+ },
+})
+
+minetest.register_craft({
+ type = "shapeless",
+ output = "mesecons_insulated:insulated_off 2",
+ recipe = {
+ "mesecons_extrawires:crossover_off",
+ },
+})
diff --git a/mesecons_extrawires/init.lua b/mesecons_extrawires/init.lua
index c076e3d..b22f2e5 100644
--- a/mesecons_extrawires/init.lua
+++ b/mesecons_extrawires/init.lua
@@ -1,5 +1,4 @@
--- dofile(minetest.get_modpath("mesecons_extrawires").."/crossing.lua");
--- The crossing code is not active right now because it is hard to maintain
+dofile(minetest.get_modpath("mesecons_extrawires").."/crossover.lua");
dofile(minetest.get_modpath("mesecons_extrawires").."/tjunction.lua");
dofile(minetest.get_modpath("mesecons_extrawires").."/corner.lua");
dofile(minetest.get_modpath("mesecons_extrawires").."/vertical.lua");