cut set_gate in half

This commit is contained in:
Kyle 2012-09-01 18:26:15 -07:00
parent 9af83593ac
commit dc3fc4deb5
1 changed files with 15 additions and 22 deletions

View File

@ -87,31 +87,24 @@ function set_gate(pos, on)
gate = get_gate(pos)
local meta = minetest.env:get_meta(pos)
local rules = {{x=1, y=0, z=0}}
if on then
if not gate_state(pos) then
yc_heat(meta)
minetest.after(0.5, yc_cool, meta)
if yc_overheat(meta) then
pop_gate(pos)
if on ~= gate_state(pos) then
yc_heat(meta)
minetest.after(0.5, yc_cool, meta)
if yc_overheat(meta) then
pop_gate(pos)
else
heat = meta:get_int("heat")
if on then
onoff = "_on"
else
heat = meta:get_int("heat")
minetest.env:add_node(pos, {name="mesecons_gates:"..gate.."_on"})
local meta2 = minetest.env:get_meta(pos)
meta2:set_int("heat", heat)
mesecon:receptor_on(pos, rules)
onoff = "_off"
end
end
else
if gate_state(pos) then
yc_heat(meta)
minetest.after(0.5, yc_cool, meta)
if yc_overheat(meta) then
pop_gate(pos)
minetest.env:add_node(pos, {name="mesecons_gates:"..gate..onoff})
local meta2 = minetest.env:get_meta(pos)
meta2:set_int("heat", heat)
if on then
mesecon:receptor_on(pos, rules)
else
heat = meta:get_int("heat")
minetest.env:add_node(pos, {name="mesecons_gates:"..gate.."_off"})
local meta2 = minetest.env:get_meta(pos)
meta2:set_int("heat", heat)
mesecon:receptor_off(pos, rules)
end
end