2021-11-12 18:27:25 +03:00

75 lines
2.7 KiB
Plaintext

-- @shared
-- @name JDM Wheels
-- @author Opti1337, .hemp
-- @include /koptilnya/mesh_loader/builder.txt
require("/koptilnya/mesh_loader/builder.txt")
local LINK = "https://raw.githubusercontent.com/koptilnya/gmod-data/main/jdmwheel1.obj?d=1"
local SCALE = Vector(0.6)
local MATERIALS = {
Center = "models/debug/debugwhite",
Bolt = "sprops/textures/sprops_chrome",
Chrome = "sprops/trans/wheels/wheel_d_rim1",
Plastic = "sprops/textures/sprops_rubber2",
Rim = "sprops/trans/wheels/wheel_d_rim1",
RimAround = "sprops/trans/wheels/wheel_d_rim1"
}
local COLORS = {
Center = Color(45,45,45),
Bolt = Color(255, 255, 255),
Chrome = Color(255, 255, 255),
Plastic = Color(255, 255, 255),
Rim = Color(255, 255, 255),
RimAround = Color(255,255,255)
}
local OFFSET = 1
local builder = {}
if SERVER then
wire.adjustPorts(
{
Wheels = "ARRAY"
},
{
}
)
builder = MeshBuilder:new(LINK)
hook.add("input", "_input", function(name, value)
if name == "Wheels" then
builder:reset()
for _, wheel in pairs(wire.ports.Wheels) do
builder:build("center", Vector(0, OFFSET - 0.6, 0), Angle(0), SCALE, COLORS.Center, MATERIALS.Center, wheel, wheel)
builder:build("bolt", Vector(0, OFFSET- 0.6, 0), Angle(0), SCALE, COLORS.Bolt, MATERIALS.Bolt, wheel, wheel)
builder:build("chrome", Vector(0, OFFSET - 1, 0), Angle(0), SCALE, COLORS.Chrome, MATERIALS.Chrome, wheel, wheel)
builder:build("plastic", Vector(0, OFFSET, 0), Angle(0), SCALE, COLORS.Plastic, MATERIALS.Plastic, wheel, wheel)
builder:build("rim1", Vector(0, OFFSET, 0), Angle(0), SCALE - Vector(0, 0.1, 0), COLORS.RimAround, MATERIALS.Rim, wheel, wheel)
builder:build("rimAround", Vector(0, OFFSET, 0), Angle(0), SCALE - Vector(0, 0.1, 0), COLORS.Rim, MATERIALS.RimAround, wheel, wheel)
builder:build("tyre", Vector(0, OFFSET, 0), Angle(0), SCALE - Vector(0, 0.1, 0), Color(255, 255, 255), "sprops/textures/sprops_rubber", wheel, wheel)
end
builder:getResult()
end
end)
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