make simulation non-global
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
|
||||
Group = {}
|
||||
|
||||
function Group.new(self)
|
||||
function Group.new(self, sim)
|
||||
local o = {
|
||||
state = false,
|
||||
fxstate = false,
|
||||
@@ -12,7 +12,9 @@ function Group.new(self)
|
||||
|
||||
nwires = 0,
|
||||
nout_ports = 0,
|
||||
nin_ports = 0
|
||||
nin_ports = 0,
|
||||
|
||||
sim = sim,
|
||||
}
|
||||
setmetatable(o, self)
|
||||
self.__index = self
|
||||
@@ -33,7 +35,7 @@ function Group.addwire(self, wire)
|
||||
|
||||
Wire.setgroup(wire, self)
|
||||
Wire.update(wire)
|
||||
Simulation.queuegroup(sim, self)
|
||||
Simulation.queuegroup(self.sim, self)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -55,15 +57,15 @@ function Group.removewire(self, wire)
|
||||
end
|
||||
|
||||
for k, wire in pairs(self.wires) do
|
||||
Simulation.connectwire(sim, wire)
|
||||
Simulation.connectwire(self.sim, wire)
|
||||
end
|
||||
|
||||
for k, port in pairs(self.out_ports) do
|
||||
Simulation.connectport(sim, port)
|
||||
Simulation.connectport(self.sim, port)
|
||||
end
|
||||
|
||||
for k, port in pairs(self.in_ports) do
|
||||
Simulation.connectport(sim, port)
|
||||
Simulation.connectport(self.sim, port)
|
||||
end
|
||||
|
||||
self.wires = {}
|
||||
@@ -81,7 +83,7 @@ function Group.addport(self, port)
|
||||
if port.type == PortTypes.output then
|
||||
self.out_ports[port] = port
|
||||
self.nout_ports = self.nout_ports + 1
|
||||
sim:queuegroup(self)
|
||||
self.sim:queuegroup(self)
|
||||
elseif port.type == PortTypes.input then
|
||||
self.in_ports[port] = port
|
||||
self.nin_ports = self.nin_ports + 1
|
||||
@@ -98,7 +100,7 @@ function Group.removeport(self, port)
|
||||
self.nin_ports = self.nin_ports - 1
|
||||
end
|
||||
|
||||
Simulation.queuegroup(sim, self)
|
||||
Simulation.queuegroup(self.sim, self)
|
||||
end
|
||||
|
||||
function Group.mergewith(self, group)
|
||||
@@ -137,12 +139,12 @@ end
|
||||
function Group.setstate(self, state)
|
||||
if state ~= self.state then
|
||||
self.state = state
|
||||
self.updatetick = sim.currenttick
|
||||
self.updatetick = self.sim.currenttick
|
||||
|
||||
for k, port in pairs(self.in_ports) do
|
||||
Port.setinputstate(port, state)
|
||||
end
|
||||
|
||||
Simulation.queuegroupfx(sim, self)
|
||||
Simulation.queuegroupfx(self.sim, self)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user