summaryrefslogtreecommitdiff
path: root/mesecons_microcontroller
diff options
context:
space:
mode:
authorJeija <jeija@mesecons.net>2014-11-22 11:37:47 +0100
committerJeija <jeija@mesecons.net>2014-11-22 11:40:58 +0100
commit194155fff8e848750dc716fd920045b3c340310d (patch)
tree5717748611bf2483e68a1eba908381fb7b064f19 /mesecons_microcontroller
parent87bfbb4de9b447eb3f69decc68a7695c070c99af (diff)
downloadmesecons-194155fff8e848750dc716fd920045b3c340310d.tar
mesecons-194155fff8e848750dc716fd920045b3c340310d.tar.gz
mesecons-194155fff8e848750dc716fd920045b3c340310d.tar.bz2
mesecons-194155fff8e848750dc716fd920045b3c340310d.tar.xz
mesecons-194155fff8e848750dc716fd920045b3c340310d.zip
Rewrite mesecon wires. This should increase the efficiency and speed of
large machines. It also makes the wires.lua code easier to understand and more maintainable. In case any other mod depends on mesecon:update_autoconnect, please update it to use mesecon.update_autoconnect. This should also fix some other minor bugs. Please report bugs if this commit creates new ones. This commit changes wire looks and removes some unneccesary textures.
Diffstat (limited to 'mesecons_microcontroller')
-rw-r--r--mesecons_microcontroller/init.lua14
1 files changed, 8 insertions, 6 deletions
diff --git a/mesecons_microcontroller/init.lua b/mesecons_microcontroller/init.lua
index 8c9f3b8..9883b85 100644
--- a/mesecons_microcontroller/init.lua
+++ b/mesecons_microcontroller/init.lua
@@ -1,5 +1,7 @@
EEPROM_SIZE = 255
+local microc_rules = {}
+
for a = 0, 1 do
for b = 0, 1 do
for c = 0, 1 do
@@ -34,7 +36,7 @@ if (a == 0) then table.insert(input_rules, {x = -1, y = 0, z = 0, name = "A"})
if (b == 0) then table.insert(input_rules, {x = 0, y = 0, z = 1, name = "B"}) end
if (c == 0) then table.insert(input_rules, {x = 1, y = 0, z = 0, name = "C"}) end
if (d == 0) then table.insert(input_rules, {x = 0, y = 0, z = -1, name = "D"}) end
-mesecon:add_rules(nodename, rules)
+microc_rules[nodename] = rules
local mesecons = {effector =
{
@@ -131,7 +133,7 @@ minetest.register_node(nodename, {
sounds = default.node_sound_stone_defaults(),
mesecons = mesecons,
after_dig_node = function (pos, node)
- rules = mesecon:get_rules(node.name)
+ rules = microc_rules[node.name]
mesecon:receptor_off(pos, rules)
end,
})
@@ -600,22 +602,22 @@ function yc_action_setports(pos, L, Lv)
local name = "mesecons_microcontroller:microcontroller"
local rules
if Lv.a ~= L.a then
- rules = mesecon:get_rules(name.."0001")
+ rules = microc_rules[name.."0001"]
if L.a == true then mesecon:receptor_on(pos, rules)
else mesecon:receptor_off(pos, rules) end
end
if Lv.b ~= L.b then
- rules = mesecon:get_rules(name.."0010")
+ rules = microc_rules[name.."0010"]
if L.b == true then mesecon:receptor_on(pos, rules)
else mesecon:receptor_off(pos, rules) end
end
if Lv.c ~= L.c then
- rules = mesecon:get_rules(name.."0100")
+ rules = microc_rules[name.."0100"]
if L.c == true then mesecon:receptor_on(pos, rules)
else mesecon:receptor_off(pos, rules) end
end
if Lv.d ~= L.d then
- rules = mesecon:get_rules(name.."1000")
+ rules = microc_rules[name.."1000"]
if L.d == true then mesecon:receptor_on(pos, rules)
else mesecon:receptor_off(pos, rules) end
end