61 lines
942 B
Lua
61 lines
942 B
Lua
|
|
Wire = {}
|
|
|
|
FFI.cdef[[
|
|
struct Wire {
|
|
int objref;
|
|
int layer;
|
|
struct Net* group;
|
|
int bounds[6];
|
|
};
|
|
]]
|
|
|
|
function Wire.new(self, objref, layer, bounds, sim)
|
|
local o = {
|
|
objref = objref,
|
|
layer = layer,
|
|
group = nil,
|
|
bounds = bounds,
|
|
sim = sim,
|
|
}
|
|
setmetatable(o, self)
|
|
self.__index = self
|
|
return o
|
|
end
|
|
|
|
function Wire.setlayer(self, layer)
|
|
if self.group ~= nil then
|
|
Group.removewire(self.group, self)
|
|
end
|
|
self.layer = layer
|
|
Simulation.connectwire(Wire.getsim(self), self)
|
|
end
|
|
|
|
function Wire.update(self)
|
|
client:send("WU\t" .. bool_to_int[self.group.state] .. "\t" .. self.objref .. "\n")
|
|
end
|
|
|
|
function Wire.setgroup(self, group)
|
|
self.group = group
|
|
end
|
|
|
|
function Wire.getgroup(self)
|
|
return self.group
|
|
end
|
|
|
|
function Wire.getobjref(self)
|
|
return self.objref
|
|
end
|
|
|
|
function Wire.getlayer(self)
|
|
return self.layer
|
|
end
|
|
|
|
function Wire.getbounds(self)
|
|
return self.bounds
|
|
end
|
|
|
|
function Wire.getsim(wire)
|
|
return wire.sim
|
|
end
|