fixes
This commit is contained in:
parent
20bd0f06d5
commit
813a7d27a7
@ -6,6 +6,19 @@ end
|
|||||||
|
|
||||||
function accessorFunc(tbl, varName, name, defaultValue)
|
function accessorFunc(tbl, varName, name, defaultValue)
|
||||||
tbl[varName] = defaultValue
|
tbl[varName] = defaultValue
|
||||||
tbl["get" .. name] = function(self) return self[varName] end
|
tbl["get" .. name] = function(self)
|
||||||
tbl["set" .. name] = function(self, value) self[varName] = value end
|
return self[varName]
|
||||||
|
end
|
||||||
|
tbl["set" .. name] = function(self, value)
|
||||||
|
self[varName] = value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function rotateAround(entity, pivot, angles)
|
||||||
|
local pos = entity:getPos()
|
||||||
|
local localPivotPos = entity:worldToLocal(pivot)
|
||||||
|
|
||||||
|
entity:setAngles(angles)
|
||||||
|
pos = pos + (pivot - entity:localToWorld(localPivotPos))
|
||||||
|
entity:setPos(pos)
|
||||||
end
|
end
|
||||||
@ -15,7 +15,8 @@ function MeshBuilder:initialize(link)
|
|||||||
self._parser.onLoaded = function(parser, objData, meshData, usedTriangles)
|
self._parser.onLoaded = function(parser, objData, meshData, usedTriangles)
|
||||||
self.meshData = meshData
|
self.meshData = meshData
|
||||||
|
|
||||||
self:_applyMeshes()
|
net.start("ready")
|
||||||
|
net.send()
|
||||||
end
|
end
|
||||||
|
|
||||||
net.receive("holograms", function()
|
net.receive("holograms", function()
|
||||||
@ -35,11 +36,9 @@ function MeshBuilder:initialize(link)
|
|||||||
hasNext = net.readBit()
|
hasNext = net.readBit()
|
||||||
end
|
end
|
||||||
|
|
||||||
timer.simple(0, function()
|
|
||||||
self:onHologramsReceived(self._objects)
|
self:onHologramsReceived(self._objects)
|
||||||
self:_applyMeshes()
|
self:_applyMeshes()
|
||||||
end)
|
end)
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function MeshBuilder:_applyMeshes()
|
function MeshBuilder:_applyMeshes()
|
||||||
|
|||||||
@ -7,7 +7,7 @@ local function setStatus(status)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function ObjParser:initialize(link, maxQuota)
|
function ObjParser:initialize(link, maxQuota)
|
||||||
self.maxQuota = maxQuota or 0.5
|
self.maxQuota = maxQuota or 0.6
|
||||||
|
|
||||||
local triangles = mesh.trianglesLeft()
|
local triangles = mesh.trianglesLeft()
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ function ObjParser:initialize(link, maxQuota)
|
|||||||
|
|
||||||
setStatus("File received, start parsing...")
|
setStatus("File received, start parsing...")
|
||||||
hook.add("think", "loadingMesh", function()
|
hook.add("think", "loadingMesh", function()
|
||||||
while quotaAverage() < quotaMax() * self.maxQuota do
|
while math.max(quotaAverage(), quotaUsed()) < quotaMax() * self.maxQuota do
|
||||||
if loadMesh() then
|
if loadMesh() then
|
||||||
setName(initialChipName)
|
setName(initialChipName)
|
||||||
self:onLoaded(objData, self.meshData, triangles - mesh.trianglesLeft())
|
self:onLoaded(objData, self.meshData, triangles - mesh.trianglesLeft())
|
||||||
|
|||||||
@ -8,6 +8,7 @@ function MeshBuilder:initialize(link, modelPlaceholder)
|
|||||||
|
|
||||||
self._objectsNames = {}
|
self._objectsNames = {}
|
||||||
self._objects = {}
|
self._objects = {}
|
||||||
|
self._readyPlayers = {}
|
||||||
|
|
||||||
http.get(link, function(response)
|
http.get(link, function(response)
|
||||||
for object in string.gmatch(response, "^?\n?o%s([%w_%.%-]+)") do
|
for object in string.gmatch(response, "^?\n?o%s([%w_%.%-]+)") do
|
||||||
@ -16,13 +17,16 @@ function MeshBuilder:initialize(link, modelPlaceholder)
|
|||||||
|
|
||||||
self.isReady = true
|
self.isReady = true
|
||||||
self:onReady(self._objectsNames)
|
self:onReady(self._objectsNames)
|
||||||
self:_sendHolograms()
|
|
||||||
|
for _, v in pairs(self._readyPlayers) do
|
||||||
|
self:_sendHolograms(v)
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
hook.add("ClientInitialized", "MeshBuilder_ClientInitialized", function(ply)
|
net.receive("ready", function(len, ply)
|
||||||
if self.isReady then
|
table.insert(self._readyPlayers, ply)
|
||||||
|
|
||||||
self:_sendHolograms(ply)
|
self:_sendHolograms(ply)
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -45,10 +49,6 @@ function MeshBuilder:onReady(objectsNames)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function MeshBuilder:build(name, pos, ang, scale, color, mat, parent, relativeTo)
|
function MeshBuilder:build(name, pos, ang, scale, color, mat, parent, relativeTo)
|
||||||
if not self.isReady then
|
|
||||||
throw("Call build methods when builder is ready!")
|
|
||||||
end
|
|
||||||
|
|
||||||
if isValid(relativeTo) then
|
if isValid(relativeTo) then
|
||||||
pos = relativeTo:localToWorld(pos)
|
pos = relativeTo:localToWorld(pos)
|
||||||
ang = relativeTo:localToWorldAngles(ang)
|
ang = relativeTo:localToWorldAngles(ang)
|
||||||
@ -63,13 +63,11 @@ function MeshBuilder:build(name, pos, ang, scale, color, mat, parent, relativeTo
|
|||||||
end
|
end
|
||||||
|
|
||||||
table.insert(self._objects, {name = name, holo = holo})
|
table.insert(self._objects, {name = name, holo = holo})
|
||||||
|
|
||||||
|
return name, holo
|
||||||
end
|
end
|
||||||
|
|
||||||
function MeshBuilder:buildAll(pos, ang, scale, color, mat, parent, relativeTo)
|
function MeshBuilder:buildAll(pos, ang, scale, color, mat, parent, relativeTo)
|
||||||
if not self.isReady then
|
|
||||||
throw("Call build methods when builder is ready!")
|
|
||||||
end
|
|
||||||
|
|
||||||
for _, v in pairs(self._objectsNames) do
|
for _, v in pairs(self._objectsNames) do
|
||||||
self:build(v, pos, ang, scale, color, mat, parent, relativeTo)
|
self:build(v, pos, ang, scale, color, mat, parent, relativeTo)
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user