132 lines
7.0 KiB
Plaintext
132 lines
7.0 KiB
Plaintext
-- @shared
|
|
-- @name Ford Mustang GT 2015
|
|
-- @author Opti1337, DarkSupah
|
|
-- @include /koptilnya/mesh_loader/builder.txt
|
|
-- @include /koptilnya/car_systems/lights_controller.txt
|
|
require("/koptilnya/mesh_loader/builder.txt")
|
|
require("/koptilnya/car_systems/lights_controller.txt")
|
|
|
|
DEBUG_MODE = true
|
|
|
|
local LINK = "https://www.dropbox.com/s/mw882znuj8c83ek/mustang.obj?dl=1"
|
|
local SCALE = Vector(1)
|
|
local MATERIALS = {
|
|
Interior = "models/debug/debugwhite",
|
|
Torpedo = "models/debug/debugwhite",
|
|
Seats = "models/debug/debugwhite",
|
|
SteeringWheelAndDoors = "models/debug/debugwhite",
|
|
Stripes = "models/debug/debugwhite",
|
|
DashboardDetails = "models/debug/debugwhite",
|
|
SteeringWheelControls = "models/debug/debugwhite",
|
|
Bottom = "models/debug/debugwhite",
|
|
Bottom2 = "models/debug/debugwhite",
|
|
ExteriorDetails = "models/debug/debugwhite",
|
|
Body = "models/shiny",
|
|
MirrorsAndExhaust = "models/debug/debugwhite",
|
|
Lights = "models/debug/debugwhite",
|
|
Glass = "phoenix_storms/glass",
|
|
ExteriorDetails2 = "models/debug/debugwhite",
|
|
LightsBase = "models/debug/debugwhite"
|
|
}
|
|
local COLORS = {
|
|
Interior = Color(40, 40, 40),
|
|
Torpedo = Color(50, 50, 50),
|
|
Seats = Color(50, 50, 50),
|
|
SteeringWheelAndDoors = Color(55, 55, 55),
|
|
Stripes = Color(10, 10, 10),
|
|
DashboardDetails = Color(130, 130, 130),
|
|
SteeringWheelControls = Color(25, 25, 25),
|
|
Bottom = Color(0, 0, 0),
|
|
Bottom2 = Color(0, 0, 0),
|
|
ExteriorDetails = Color(120, 120, 120),
|
|
Body = Color(245, 221, 31),
|
|
MirrorsAndExhaust = Color(255, 255, 255),
|
|
Lights = Color(255, 255, 255),
|
|
Glass = Color(255, 255, 255),
|
|
ExteriorDetails2 = Color(130, 130, 130),
|
|
LightsBase = Color(255, 255, 255)
|
|
}
|
|
|
|
local builder = {}
|
|
local lightsController = {}
|
|
|
|
if SERVER then
|
|
builder = MeshBuilder:new(LINK)
|
|
builder.onObjectParsed = function(builder, objectsNames)
|
|
printTable(objectsNames)
|
|
end
|
|
|
|
|
|
builder:build("Interior_body1_model0", Vector(0), Angle(0), SCALE, COLORS.Interior, MATERIALS.Interior, chip(), chip())
|
|
builder:build("Torpedo_body1_model0.001", Vector(0), Angle(0), SCALE, COLORS.Torpedo, MATERIALS.Torpedo, chip(), chip())
|
|
builder:build("Seats_body1_model0.002", Vector(0), Angle(0), SCALE, COLORS.Seats, MATERIALS.Seats, chip(), chip())
|
|
builder:build("SteeringWheelAndDoors_body1_model0.003", Vector(0), Angle(0), SCALE, COLORS.SteeringWheelAndDoors, MATERIALS.SteeringWheelAndDoors, chip(), chip())
|
|
builder:build("Stripes_body1_model0.004", Vector(0), Angle(0), SCALE, COLORS.Stripes, MATERIALS.Stripes, chip(), chip())
|
|
builder:build("DashboardDetails_body1_model0.005", Vector(0), Angle(0), SCALE, COLORS.DashboardDetails, MATERIALS.DashboardDetails, chip(), chip())
|
|
builder:build("SteeringWheelControls_body1_model0.006", Vector(0), Angle(0), SCALE, COLORS.SteeringWheelControls, MATERIALS.SteeringWheelControls, chip(), chip())
|
|
builder:build("Bottom_body1_model0.007", Vector(0), Angle(0), SCALE, COLORS.Bottom, MATERIALS.Bottom, chip(), chip())
|
|
builder:build("Bottom2_body1_model0.008", Vector(0), Angle(0), SCALE, COLORS.Bottom2, MATERIALS.Bottom2, chip(), chip())
|
|
builder:build("ExteriorDetails2_body1_model0.009", Vector(0), Angle(0), SCALE, COLORS.ExteriorDetails2, MATERIALS.ExteriorDetails2, chip(), chip())
|
|
builder:build("Body_body1_model0.010", Vector(0), Angle(0), SCALE, COLORS.Body, MATERIALS.Body, chip(), chip())
|
|
builder:build("MirrorsAndExhaust_body1_model0.011", Vector(0), Angle(0), SCALE, COLORS.MirrorsAndExhaust, MATERIALS.MirrorsAndExhaust, chip(), chip())
|
|
builder:build("Lights_body1_model0.012", Vector(0), Angle(0), SCALE, COLORS.Lights, MATERIALS.Lights, chip(), chip())
|
|
builder:build("Glass_body1_model0.013", Vector(0), Angle(0), SCALE, COLORS.Glass, MATERIALS.Glass, chip(), chip())
|
|
builder:build("ExteriorDetails_body1_model0.014", Vector(0), Angle(0), SCALE, COLORS.ExteriorDetails, MATERIALS.ExteriorDetails, chip(), chip())
|
|
builder:build("DoorPanels_body1_model0.003", Vector(0), Angle(0), SCALE, COLORS.Interior, MATERIALS.Interior, chip(), chip())
|
|
|
|
-- Lights
|
|
local StopLights = builder:build("StopLights_body1_model0.016", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip())
|
|
local ReverseLights = builder:build("ReverseLight_body1_model0.015", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip())
|
|
local LowBeamLights = builder:build("LowBeamLights_body1_model0.006", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip())
|
|
local HighBeamLights = builder:build("HighBeamLights_body1_model0.017", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip())
|
|
local FogLights = builder:build("FogLights_body1_model0.018", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip())
|
|
|
|
local result = builder:getResult()
|
|
|
|
local lights = {
|
|
StopLights = {Entities = {StopLights}, LerpSpeed = 0.2, Colors = {On = Color(250, 0, 0), Off = Color(30, 0, 0), Active = Color(90, 0, 0)}},
|
|
ReverseLights = {Entities = {ReverseLights}, LerpSpeed = 0.1, Colors = {On = Color(255, 255, 255), Off = Color(20, 20, 20)}},
|
|
LowBeamLights = {Entities = {LowBeamLights}, LerpSpeed = 0.1, Colors = {On = Color(255, 255, 255), Off = Color(20, 20, 20)}},
|
|
HighBeamLights = {Entities = {HighBeamLights}, LerpSpeed = 0.1, Colors = {On = Color(255, 255, 255), Off = Color(20, 20, 20)}},
|
|
FogLights = {Entities = {FogLights}, LerpSpeed = 0.1, Colors = {On = Color(255, 255, 255), Off = Color(20, 20, 20)}}
|
|
}
|
|
|
|
-- local lightsEntities = {StopLights = {StopLights}, ReverseLights = {ReverseLights}, LowBeamLights = {LowBeamLights}, HighBeamLights = {HighBeamLights}}
|
|
-- local lightColors = {StopLights = {On = Color(250, 0, 0), Off = Color(30, 0, 0), Active = Color(90, 0, 0)}, ReverseLights = {On = Color(255, 255, 255), Off = Color(20, 20, 20), Active = Color(20, 20, 20)}}
|
|
-- local lights = {Lights = lightsEntities, Colors = lightColors}
|
|
|
|
lightsController = LightsController:new(lights)
|
|
|
|
wire.adjustPorts({LightInputs = "table"}, {})
|
|
|
|
hook.add("think", "lights", function()
|
|
lightsController:useStopLights(wire.ports.LightInputs.Stop)
|
|
lightsController:useReverseLights(wire.ports.LightInputs.Reverse)
|
|
lightsController:useLowBeam(wire.ports.LightInputs.LowBeam)
|
|
lightsController:useHighBeam(wire.ports.LightInputs.HighBeam)
|
|
|
|
lightsController:setActive(wire.ports.LightInputs.LowBeam == 1)
|
|
|
|
lightsController:update()
|
|
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
|