This commit is contained in:
Nikita Kruglickiy
2021-04-05 22:38:50 +06:00
parent eb6144ae94
commit 0bd64a0f78
14 changed files with 208 additions and 24 deletions

View File

@@ -1,3 +1,4 @@
-- @name koptilnya/mesh_loader/sv_builder
-- @server
-- @include /koptilnya/libs/workers.txt
require("/koptilnya/libs/workers.txt")
@@ -11,25 +12,40 @@ function MeshBuilder:initialize(link, modelPlaceholder)
self._objectsNames = {}
self._objects = {}
self._objectsToSend = {}
self._playersWithAccess = {}
self._firstTimePlayers = find.allPlayers()
self._firstTimeSended = false
net.receive("obj_parsed", function(len, ply)
if DEBUG_MODE then
print(string.format("%s parsed the .obj", ply:getName()))
end
self:onPlayerParsedObj(ply)
end)
net.receive("initialized", function(len, ply)
if DEBUG_MODE then
print(string.format("%s initialized", ply:getName()))
end
table.insert(self._playersWithAccess, ply)
if self._firstTimeSended then
self:_sendObjects(ply)
end
end)
hook.add("ClientInitialized", "MeshBuilder_ClientInitialized", function(ply)
if #self._firstTimePlayers > 0 then
table.removeByValue(self._firstTimePlayers, ply)
if #self._firstTimePlayers == 0 then
self:_sendObjects(find.allPlayers())
self:_sendObjects(self._playersWithAccess)
self._firstTimeSended = true
end
else
self:_sendObjects(ply)
end
end
end)
hook.add("PlayerConnected", "MeshBuilder_PlayerConnected", function(ply)
@@ -71,11 +87,7 @@ end
function MeshBuilder:_sendObjects(target)
if #self._objectsToSend == 0 then
return
end
if type(target) == "table" and #target == 0 or type(target) == "Player" then
return
end
end
net.start("objects")
for _, v in pairs(self._objectsToSend) do
@@ -119,7 +131,7 @@ function MeshBuilder:getResult()
table.copyFromTo(self._objects, self._objectsToSend)
if self._firstTimeSended then
self:_sendObjects()
self:_sendObjects(self._playersWithAccess)
end
return self._objectsToSend