-- @client -- @include /koptilnya/libs/table.txt -- @include obj_parser.txt require("/koptilnya/libs/table.txt") require("obj_parser.txt") MeshBuilder = class("MeshBuilder") function MeshBuilder:initialize(link, maxQuota) self.link = link self.meshData = {} self._objects = {} self._parser = ObjParser:new(link, maxQuota) self._parser.onLoaded = function(parser, objData, meshData, usedTriangles) self.meshData = meshData self:_applyMeshes() end net.receive("holograms", function() local newObjects = {} local hasNext = net.readBit() while hasNext == 1 do local name = net.readString() net.readEntity(function(ent) local holo = ent:toHologram() local object = {name = name, holo = holo, meshApplied = false} table.insert(newObjects, object) table.insert(self._objects, object) end) hasNext = net.readBit() end timer.simple(0, function() self:_applyMeshes() self:onHologramsReceived(newObjects, self._objects) end) end) end function MeshBuilder:_applyMeshes() for _, v in pairs(self._objects) do if self.meshData[v.name] ~= nil and not v.meshApplied then v.holo:setMesh(self.meshData[v.name]) v.holo:setRenderBounds(Vector(-200), Vector(200)) v.meshApplied = true end end end function MeshBuilder:onHologramsReceived(objects) end