-- @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 LeftStopLight1 = builder:build("LR_TurnLight_1_body1_model0.019", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip()) local LeftStopLight2 = builder:build("LR_TurnLight_2_body1_model0.020", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip()) local LeftStopLight3 = builder:build("LR_TurnLight_3_body1_model0.021", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip()) local RightStopLight1 = builder:build("RR_TurnLight_1_body1_model0.016", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip()) local RightStopLight2 = builder:build("RR_TurnLight_2_body1_model0.023", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip()) local RightStopLight3 = builder:build("RR_TurnLight_3_body1_model0.022", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip()) local LeftMirrorTurnLight = builder:build("LeftMirrorTurnLight_body1_model0.024", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip()) local RightMirrorTurnLight = builder:build("RightMirrorTurnLight_body1_model0.025", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip()) local LeftBumperTurnLight = builder:build("LeftBumperTurnLight_body1_model0.027", Vector(0), Angle(0), SCALE, COLORS.LightsBase, MATERIALS.LightsBase, chip(), chip()) local RightMirrorTurnLight = builder:build("RightBumperTurnLight_body1_model0.026", 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 = {LeftStopLight1, LeftStopLight2, LeftStopLight3, RightStopLight1, RightStopLight2, RightStopLight3}, 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)}} TurnLights = {LeftEntities = {LeftStopLight1, LeftStopLight2, LeftStopLight3}, RightEntities = {RightStopLight1, RightStopLight2, RightStopLight3}, LerpSpeed = 0.2, Colors = {On = Color(250, 120, 0), Off = Color(30, 0, 0)}} } -- 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