56 lines
1.2 KiB
Plaintext
56 lines
1.2 KiB
Plaintext
-- @server
|
|
MeshBuilder = class("MeshBuilder")
|
|
|
|
function MeshBuilder:initialize(link, modelPlaceholder)
|
|
self.link = link
|
|
self.modelPlaceholder = modelPlaceholder or "models/holograms/cube.mdl"
|
|
|
|
self._objects = {}
|
|
end
|
|
|
|
function MeshBuilder:_sendHolograms()
|
|
if #self._objects == 0 then
|
|
return
|
|
end
|
|
|
|
net.start("holograms")
|
|
for _, v in pairs(self._objects) do
|
|
net.writeBit(1)
|
|
net.writeString(v.name)
|
|
net.writeEntity(v.holo)
|
|
print(v.name)
|
|
end
|
|
net.writeBit(0)
|
|
net.send()
|
|
end
|
|
|
|
function MeshBuilder:reset()
|
|
self._objects = {}
|
|
end
|
|
|
|
function MeshBuilder:build(name, pos, ang, scale, color, mat, parent, relativeTo)
|
|
if isValid(relativeTo) then
|
|
pos = relativeTo:localToWorld(pos)
|
|
ang = relativeTo:localToWorldAngles(ang)
|
|
end
|
|
|
|
local holo = holograms.create(pos, ang, self.modelPlaceholder, scale)
|
|
holo:setColor(color)
|
|
holo:setMaterial(mat)
|
|
|
|
if isValid(parent) then
|
|
holo:setParent(parent)
|
|
end
|
|
|
|
table.insert(self._objects, {name = name, holo = holo})
|
|
end
|
|
|
|
function MeshBuilder:getResult()
|
|
local result = self._objects
|
|
|
|
self:_sendHolograms()
|
|
self:reset()
|
|
|
|
return result
|
|
end
|