make states numbers instead of booleans

This commit is contained in:
Redo0
2021-05-29 13:13:26 -05:00
parent ebc9a7f108
commit 8bb4ff4421
6 changed files with 31 additions and 45 deletions

View File

@@ -3,8 +3,8 @@ Group = {}
function Group.new()
local o = {
state = false,
fxstate = false,
state = 0,
fxstate = 0,
update_tick = 0,
wires = {},
out_ports = {},
@@ -91,9 +91,7 @@ function Group.addport(group, port)
group.out_ports[port] = port
group.nout_ports = group.nout_ports + 1
if Port.getstate(port) then
group.state_num = group.state_num + 1
end
group.state_num = group.state_num + Port.getstate(port)
Simulation.queuegroup(GSim, group)
@@ -119,9 +117,7 @@ function Group.removeport(group, port)
group.out_ports[port] = nil
group.nout_ports = group.nout_ports - 1
if Port.getstate(port) then
group.state_num = group.state_num - 1
end
group.state_num = group.state_num - Port.getstate(port)
Simulation.queuegroup(GSim, group)
@@ -175,6 +171,7 @@ function Group.mergeinto(group, group2)
end
function Group.setstate(group, state)
if type(state)~="number" then error("group state type must be number") end
if state ~= group.state then
local sim = GSim
@@ -190,7 +187,7 @@ function Group.setstate(group, state)
end
function Group.update(group)
Group.setstate(group, group.state_num>0)
Group.setstate(group, group.state_num>0 and 1 or 0)
end
function Group.rebuild_ports(group)