:)
This commit is contained in:
95
koptilnya/data/models/example.txt
Normal file
95
koptilnya/data/models/example.txt
Normal file
@@ -0,0 +1,95 @@
|
||||
--@name Mesh loader example
|
||||
--@author Opti1337
|
||||
--@shared
|
||||
-- @include /koptilnya/mesh_loader/builder.txt
|
||||
require("/koptilnya/mesh_loader/builder.txt")
|
||||
|
||||
local LINK = "https://www.dropbox.com/s/k4rte84qv0s3k1d/vaz_2101_wheel.obj?dl=1"
|
||||
local SCALE = Vector(1)
|
||||
|
||||
local builder = {}
|
||||
|
||||
if SERVER then
|
||||
-- Создаем экземпляр MeshBuilder на сервере
|
||||
builder = MeshBuilder:new(LINK)
|
||||
|
||||
builder.onObjectLoaded = function(builder, objData)
|
||||
--[[
|
||||
Вызывается, когда .obj загружен на сервере
|
||||
objData {string} - Внутренности .obj
|
||||
]]
|
||||
end
|
||||
builder.onObjectParsed = function(builder, objectsName)
|
||||
--[[
|
||||
Вызывается, когда .obj разобран на сервере
|
||||
objectsNames {table} - Таблица с названиями объектов в .obj
|
||||
]]
|
||||
end
|
||||
|
||||
builder.onPlayerParsedObj = function(builder, ply)
|
||||
--[[
|
||||
Вызывается, когда игрок разобрал .obj
|
||||
ply {player} - Игрок, который разобрал .obj
|
||||
]]
|
||||
end
|
||||
|
||||
--[[
|
||||
Настраиваем конкретный меш
|
||||
(название_объекта, позиция, угол, размер, цвет, материал, парент, относительно_чего_позиционировать)
|
||||
]]
|
||||
builder:build("wheel", Vector(0), Angle(0), SCALE, Color(255, 255, 255), "sprops/textures/sprops_rubber", chip(), chip())
|
||||
|
||||
--[[
|
||||
Получаем текущий результат и отправляем его по возможности клиентам. Обычно вызывается после всех вызовов build
|
||||
]]
|
||||
builder:getResult()
|
||||
else -- CLIENT
|
||||
function init()
|
||||
-- Создаем экземпляр MeshBuilder на клиенте
|
||||
builder = MeshBuilder:new(LINK)
|
||||
|
||||
builder.onObjLoaded = function(builder, objData)
|
||||
--[[
|
||||
Вызывается, когда .obj загружен на клиенте
|
||||
objData {string} - Внутренности .obj
|
||||
]]
|
||||
end
|
||||
|
||||
builder.onObjParsed = function(builder, meshData, usedTriangles)
|
||||
--[[
|
||||
Вызывается, когда .obj разобран на клиенте
|
||||
meshData {table} - Таблица с мешами
|
||||
usedTriangles {int} - Сколько использовано треугольников
|
||||
]]
|
||||
end
|
||||
|
||||
builder.onHologramsReceived = function(builder, objects)
|
||||
--[[
|
||||
Вызывается, когда были получен список голограмм от сервера
|
||||
objects {table} - Таблица объектов
|
||||
name {string} - Имя объекта
|
||||
holo {entity} - Голограмма
|
||||
]]
|
||||
end
|
||||
|
||||
builder.onMeshesApplied = function(builder)
|
||||
--[[
|
||||
Вызывается, когда меши были применены к голограммам
|
||||
]]
|
||||
end
|
||||
end
|
||||
|
||||
if hasPermission("http.get") and hasPermission("mesh") and hasPermission("entities.setRenderProperty", chip()) then
|
||||
init()
|
||||
else
|
||||
-- Настраиваем нужные права, если их нет
|
||||
setupPermissionRequest({"http.get", "mesh", "entities.setRenderProperty"}, "", true)
|
||||
|
||||
-- Хук, который срабатывает при изменении прав
|
||||
hook.add("permissionrequest", "_permissionrequest", function()
|
||||
if permissionRequestSatisfied() then
|
||||
init()
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user