fixes
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
-- @name koptilnya/mesh_loader/builder
|
||||
-- @include sv_builder.txt
|
||||
-- @include cl_builder.txt
|
||||
if SERVER then
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
-- @name koptilnya/mesh_loader/cl_builder
|
||||
-- @client
|
||||
-- @include /koptilnya/libs/table.txt
|
||||
-- @include obj_parser.txt
|
||||
@@ -26,6 +27,9 @@ function MeshBuilder:initialize(link)
|
||||
self:_applyMeshes()
|
||||
end
|
||||
|
||||
net.start("initialized")
|
||||
net.send()
|
||||
|
||||
net.receive("objects", function()
|
||||
self._objects = {}
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
-- @name koptilnya/mesh_loader/obj_parser
|
||||
-- @client
|
||||
-- @include /koptilnya/libs/workers.txt
|
||||
require("/koptilnya/libs/workers.txt")
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user