use get/set for parameters on ports and wires

This commit is contained in:
Redo
2021-02-03 09:32:05 -06:00
parent 941348002b
commit 54f45520c0
7 changed files with 118 additions and 74 deletions

View File

@@ -24,46 +24,46 @@ function Group.getsize(self)
end
function Group.addwire(self, wire)
if wire.group ~= self then
if wire.group ~= nil then
self:mergewith(wire.group)
if Wire.getgroup(wire) ~= self then
if Wire.getgroup(wire) ~= nil then
Group.mergewith(self, Wire.getgroup(wire))
else
self.wires[wire] = wire
self.nwires = self.nwires + 1
wire.group = self
wire:update()
sim:queuegroup(self)
Wire.setgroup(wire, self)
Wire.update(wire)
Simulation.queuegroup(sim, self)
end
end
end
function Group.removewire(self, wire)
wire.group = nil
Wire.setgroup(wire, nil)
self.wires[wire] = nil
for k, wire in pairs(self.wires) do
wire.group = nil
Wire.setgroup(wire, nil)
end
for k, port in pairs(self.out_ports) do
port.group = nil
Port.setgroup(port, nil)
end
for k, port in pairs(self.in_ports) do
port.group = nil
Port.setgroup(port, nil)
end
for k, wire in pairs(self.wires) do
sim:connectwire(wire)
Simulation.connectwire(sim, wire)
end
for k, port in pairs(self.out_ports) do
sim:connectport(port)
Simulation.connectport(sim, port)
end
for k, port in pairs(self.in_ports) do
sim:connectport(port)
Simulation.connectport(sim, port)
end
self.wires = {}
@@ -113,7 +113,7 @@ end
function Group.mergeinto(self, group)
for k, wire in pairs(self.wires) do
wire.group = nil
Wire.setgroup(wire, nil)
Group.addwire(group, wire)
end