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

@@ -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

View File

@@ -4,6 +4,8 @@
-- @include /koptilnya/mesh_loader/builder.txt
require("/koptilnya/mesh_loader/builder.txt")
DEBUG_MODE = true
local LINK = "https://drive.google.com/uc?id=1PvM_NNtdl43L_r2LZz_E9lO_JhWexFxW"
local SCALE = Vector(0.9)
@@ -11,9 +13,6 @@ local builder = {}
if SERVER then
builder = MeshBuilder:new(LINK)
builder.onPlayerParsedObj = function(builder, ply)
print(ply)
end
builder:build("Podnojki", Vector(0), Angle(0), SCALE, Color(200, 200, 200), "sprops/textures/sprops_chrome", chip(), chip())
builder:build("Kenguryatnik", Vector(0), Angle(0), SCALE, Color(200, 200, 200), "sprops/textures/sprops_chrome", chip(), chip())
@@ -21,7 +20,7 @@ if SERVER then
builder:build("Vihlop", Vector(0), Angle(0), SCALE, Color(200, 200, 200), "sprops/textures/sprops_chrome", chip(), chip())
builder:build("Podtumanniki", Vector(0), Angle(0), SCALE, Color(100, 100, 100), "models/debug/debugwhite", chip(), chip())
builder:build("Nomera", Vector(0), Angle(0), SCALE, Color(54, 225, 220), "models/debug/debugwhite", chip(), chip())
builder:build("Nomera", Vector(0), Angle(0), SCALE, Color(54, 225, 220), "sprops/sprops_grid_orange_12x12", chip(), chip())
builder:build("Okna", Vector(0), Angle(0), SCALE, Color(0, 0, 0, 200), "models/debug/debugwhite", chip(), chip())
builder:build("Skobi", Vector(0), Angle(0), SCALE, Color(55, 55, 55, 255), "models/debug/debugwhite", chip(), chip())
builder:build("Nakladki", Vector(0), Angle(0), SCALE, Color(44, 44, 44, 255), "models/debug/debugwhite", chip(), chip())

View File

@@ -0,0 +1,43 @@
--@name Helicopter
--@author Opti1337
--@shared
-- @include /koptilnya/mesh_loader/builder.txt
require("/koptilnya/mesh_loader/builder.txt")
DEBUG_MODE = true
local LINK = "https://drive.google.com/uc?id=171YCCoAebzS0y1WRLQ8FZ6lyG_aZZtUB"
local SCALE = Vector(0.5)
local builder = {}
if SERVER then
builder = MeshBuilder:new(LINK)
builder:build("heli.016", Vector(0), Angle(0), SCALE, Color(0, 203, 0), "models/debug/debugwhite", chip(), chip())
builder:build("heli.001_heli.017", Vector(0), Angle(0), SCALE, Color(255, 225, 255, 90), "models/debug/debugwhite", chip(), chip())
builder:build("heli.002_heli.018", Vector(0), Angle(0), SCALE, Color(255, 225, 255), "models/debug/debugwhite", chip(), chip())
builder:build("heli.003_heli.019", Vector(0), Angle(0), SCALE, Color(231, 0, 0), "models/debug/debugwhite", chip(), chip())
builder:build("heli.004_heli.020", Vector(0), Angle(0), SCALE, Color(96, 96, 203), "models/debug/debugwhite", chip(), chip())
builder:build("heli.005_heli.021", Vector(0), Angle(0), SCALE, Color(130, 130, 130), "models/debug/debugwhite", chip(), chip())
builder:build("heli.006_heli.022", Vector(0), Angle(0), SCALE, Color(255, 224, 0), "models/debug/debugwhite", chip(), chip())
builder:build("heli.007_heli.023", Vector(0), Angle(0), SCALE, Color(255, 225, 255), "models/debug/debugwhite", chip(), chip())
builder:getResult()
else
function init()
builder = MeshBuilder:new(LINK)
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

View File

@@ -1,7 +1,7 @@
--@shared
--@name JDM Wheels
--@author Opti1337, .hemp
--@include /koptilnya/mesh_loader/builder.txt
-- @shared
-- @name JDM Wheels
-- @author Opti1337, .hemp
-- @include /koptilnya/mesh_loader/builder.txt
require("/koptilnya/mesh_loader/builder.txt")

View File

@@ -4,6 +4,8 @@
-- @include /koptilnya/mesh_loader/builder.txt
require("/koptilnya/mesh_loader/builder.txt")
DEBUG_MODE = true
local LINK = "https://www.dropbox.com/s/ovw7f8q65tlcdy5/is300.obj?dl=1"
local SCALE = Vector(0.8, 0.79, 0.8)

View File

@@ -1,4 +1,3 @@
-- @shared
-- @name VAZ 2106
-- @author Opti1337, DarkSupah
-- @include /koptilnya/mesh_loader/builder.txt
@@ -68,6 +67,7 @@ local builder = {}
if SERVER then
builder = MeshBuilder:new(LINK)
builder:build("Body__Exterior", Vector(0), Angle(0), SCALE, COLORS.Exterior, MATERIALS.Exterior, chip(), chip())
builder:build("Glass", Vector(0), Angle(0), SCALE, COLORS.Glass, MATERIALS.Glass, chip(), chip())
@@ -91,11 +91,11 @@ if SERVER then
builder:build("Body__DoorsFrame__Chrome", Vector(0), Angle(0), SCALE, COLORS.Chrome, MATERIALS.Chrome, chip(), chip())
-- builder:build("Body__FrontBumper__Chrome", Vector(0), Angle(0), SCALE, COLORS.Chrome, MATERIALS.Chrome, chip(), chip())
-- builder:build("Body__FrontBumper__Plastic", Vector(0), Angle(0), SCALE, COLORS.Plastic, MATERIALS.Plastic, chip(), chip())
builder:build("Body__FrontBumper__Chrome", Vector(0), Angle(0), SCALE, COLORS.Chrome, MATERIALS.Chrome, chip(), chip())
builder:build("Body__FrontBumper__Plastic", Vector(0), Angle(0), SCALE, COLORS.Plastic, MATERIALS.Plastic, chip(), chip())
-- builder:build("Body__RearBumper__Chrome", Vector(0), Angle(0), SCALE, COLORS.Chrome, MATERIALS.Chrome, chip(), chip())
-- builder:build("Body__RearBumper__Plastic", Vector(0), Angle(0), SCALE, COLORS.Plastic, MATERIALS.Plastic, chip(), chip())
builder:build("Body__RearBumper__Chrome", Vector(2, 0, 0), Angle(0), SCALE, COLORS.Chrome, MATERIALS.Chrome, chip(), chip())
builder:build("Body__RearBumper__Plastic", Vector(2, 0, 0), Angle(0), SCALE, COLORS.Plastic, MATERIALS.Plastic, chip(), chip())
builder:build("Interior__Floor__InteriorFloor", Vector(0), Angle(0), SCALE, COLORS.InteriorFloor, MATERIALS.InteriorFloor, chip(), chip())
builder:build("Interior__DashBase__Dashboard", Vector(0), Angle(0), SCALE, COLORS.DashboardBase, MATERIALS.DashboardBase, chip(), chip())