Mesh loader refactor
This commit is contained in:
51
koptilnya/mesh_loader/cl_builder.txt
Normal file
51
koptilnya/mesh_loader/cl_builder.txt
Normal file
@@ -0,0 +1,51 @@
|
||||
-- @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)
|
||||
self.link = link
|
||||
self.meshData = {}
|
||||
|
||||
self._objects = {}
|
||||
self._parser = ObjParser:new(link)
|
||||
self._parser.onLoaded = function(parser, objData, meshData, usedTriangles)
|
||||
self.meshData = meshData
|
||||
|
||||
self:_applyMeshes()
|
||||
end
|
||||
|
||||
net.receive("holograms", function()
|
||||
local hasNext = net.readBit()
|
||||
|
||||
while hasNext == 1 do
|
||||
local name = net.readString()
|
||||
|
||||
net.readEntity(function(ent)
|
||||
local holo = ent:toHologram()
|
||||
|
||||
table.insert(self._objects, {name = name, holo = holo})
|
||||
end)
|
||||
|
||||
hasNext = net.readBit()
|
||||
end
|
||||
|
||||
self:onHologramsReceived(self._objects)
|
||||
self:_applyMeshes()
|
||||
end)
|
||||
end
|
||||
|
||||
function MeshBuilder:_applyMeshes()
|
||||
for _, v in pairs(self._objects) do
|
||||
if self.meshData[v.name] ~= nil then
|
||||
v.holo:setMesh(self.meshData[v.name])
|
||||
v.holo:setRenderBounds(Vector(-200), Vector(200))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function MeshBuilder:onHologramsReceived(objects)
|
||||
end
|
||||
Reference in New Issue
Block a user