From d1c446b5981b8abb8fb72a692d42846d5c6d263a Mon Sep 17 00:00:00 2001 From: Ivan Grachyov Date: Mon, 22 May 2023 22:35:45 +0300 Subject: [PATCH] update --- koptilnya/engine_remastered/configs/new_sx240.txt | 14 +++++++------- koptilnya/engine_remastered/powertrain/wheel.txt | 14 +++++++++++--- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/koptilnya/engine_remastered/configs/new_sx240.txt b/koptilnya/engine_remastered/configs/new_sx240.txt index c2719f0..b29ff3c 100644 --- a/koptilnya/engine_remastered/configs/new_sx240.txt +++ b/koptilnya/engine_remastered/configs/new_sx240.txt @@ -9,10 +9,10 @@ local Vehicle, POWERTRAIN_COMPONENT = unpack(require('/koptilnya/engine_remaster local WheelConfig = { BrakePower = 800, CustomWheel = {}, - Offset = 180, - Model = 'models/sprops/trans/wheel_d/t_wheel25.mdl' + Model = 'models/sprops/trans/wheel_d/t_wheel25.mdl', + RotationAxle = Angle(1, 0, 0) } -local FrontWheelsConfig = table.merge(table.copy(WheelConfig), { SteerLock = 10 }) +local FrontWheelsConfig = table.merge(table.copy(WheelConfig), { SteerLock = 35 }) local RearWheelsConfig = table.merge(table.copy(WheelConfig), { HandbrakePower = 2000 }) Vehicle:new({ @@ -75,22 +75,22 @@ Vehicle:new({ Name = 'WheelFL', Input = 'Axle1', Type = POWERTRAIN_COMPONENT.Wheel, - Config = FrontWheelsConfig + Config = table.merge(table.copy(FrontWheelsConfig), { Offset = 0 }) }, { Name = 'WheelFR', Input = 'Axle1', Type = POWERTRAIN_COMPONENT.Wheel, - Config = FrontWheelsConfig + Config = table.merge(table.copy(FrontWheelsConfig), { Offset = 180 }) }, { Name = 'WheelRL', Type = POWERTRAIN_COMPONENT.Wheel, - Config = RearWheelsConfig + Config = table.merge(table.copy(RearWheelsConfig), { Offset = 0 }) }, { Name = 'WheelRR', Type = POWERTRAIN_COMPONENT.Wheel, - Config = RearWheelsConfig + Config = table.merge(table.copy(RearWheelsConfig), { Offset = 180 }) } }) diff --git a/koptilnya/engine_remastered/powertrain/wheel.txt b/koptilnya/engine_remastered/powertrain/wheel.txt index effd3df..0acfcd9 100644 --- a/koptilnya/engine_remastered/powertrain/wheel.txt +++ b/koptilnya/engine_remastered/powertrain/wheel.txt @@ -18,6 +18,8 @@ function Wheel:initialize(vehicle, name, config) self.brakePower = config.BrakePower or 0 self.handbrakePower = config.HandbrakePower or 0 + self.rotationAxle = config.RotationAxle or Angle(0, 0, 1) + self.wireInputs = { [self.name] = 'entity' } @@ -52,6 +54,11 @@ function Wheel:initialize(vehicle, name, config) end end end) + + local right = self.entity:getRight() + local offsetRight = self.entity:getRight():rotateAroundAxis(self.entity:getUp(), self.offset) + + self.dir = right:dot(offsetRight) end function Wheel:getEntityRadius() @@ -70,7 +77,7 @@ function Wheel:createHolo(entity) local holo = holograms.create( entity:getPos(), entity:getAngles() + Angle(0, self.offset, 0), - self.CONFIG.Model or 'models/sprops/trans/wheel_b/t_wheel15.mdl' + self.CONFIG.Model or '' ) holo:setParent(entity) @@ -115,9 +122,10 @@ function Wheel:forwardStep(torque, inertia) end if isValid(self.holo) then - self.rot = self.rot + math.deg(self.angularVelocity) * TICK_INTERVAL + self.rot = self.rot + math.deg(self.angularVelocity) * TICK_INTERVAL * self.dir - local angle = self.entity:localToWorldAngles(Angle(0, self.offset - self.customWheel.steerAngle, self.rot)) + local steerAngle = self.entity:localToWorldAngles(Angle(0, self.offset - self.customWheel.steerAngle, 0) + self.rotationAxle * self.rot) + local angle = steerAngle self.holo:setAngles(angle) end