From e2c1c4bc88a65376638d7d12a7ca5b5a36c38b7c Mon Sep 17 00:00:00 2001 From: Ivan Grachyov Date: Tue, 9 Nov 2021 21:09:03 +0500 Subject: [PATCH] Implementing starfall version of engine --- koptilnya/.vscode/settings.json | 5 +++ koptilnya/data/models/audi_a6.txt | 2 +- koptilnya/engine/clutch.txt | 16 ++++++++ koptilnya/engine/configs/audi_tt.txt | 55 +++++++++++++++++++++++++++ koptilnya/engine/differential.txt | 18 +++++++++ koptilnya/engine/engine.txt | 20 ++++++++++ koptilnya/engine/gearboxes/auto.txt | 4 ++ koptilnya/engine/gearboxes/base.txt | 28 ++++++++++++++ koptilnya/engine/gearboxes/cvt.txt | 4 ++ koptilnya/engine/gearboxes/manual.txt | 10 +++++ koptilnya/engine/main.txt | 39 +++++++++++++++++++ koptilnya/input_system/cl_input.txt | 3 -- 12 files changed, 200 insertions(+), 4 deletions(-) create mode 100644 koptilnya/.vscode/settings.json create mode 100644 koptilnya/engine/clutch.txt create mode 100644 koptilnya/engine/configs/audi_tt.txt create mode 100644 koptilnya/engine/differential.txt create mode 100644 koptilnya/engine/gearboxes/auto.txt create mode 100644 koptilnya/engine/gearboxes/base.txt create mode 100644 koptilnya/engine/gearboxes/cvt.txt create mode 100644 koptilnya/engine/gearboxes/manual.txt diff --git a/koptilnya/.vscode/settings.json b/koptilnya/.vscode/settings.json new file mode 100644 index 0000000..bc39c59 --- /dev/null +++ b/koptilnya/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.txt": "lua" + } +} \ No newline at end of file diff --git a/koptilnya/data/models/audi_a6.txt b/koptilnya/data/models/audi_a6.txt index 71e99be..768778c 100644 --- a/koptilnya/data/models/audi_a6.txt +++ b/koptilnya/data/models/audi_a6.txt @@ -49,7 +49,7 @@ local Materials = local Colors = { - Body = Color(255,255,255), + Body = Color(230,230,222), Shadow = Color(25,25,25), Grille = Color(130,130,130), WindowsOutline = Color(30,30,30), diff --git a/koptilnya/engine/clutch.txt b/koptilnya/engine/clutch.txt new file mode 100644 index 0000000..b46df16 --- /dev/null +++ b/koptilnya/engine/clutch.txt @@ -0,0 +1,16 @@ +Clutch = class("Clutch") + +function Clutch:initialize(options) + options = options or {} + + self.stiffness = options.Stiffness or 0 + self.capacity = options.Capacity or 0 + self.damping = options.Damping or 0 + + self._engine = options.Engine + self._gearbox = options.Gearbox +end + +function Clutch:update() + +end \ No newline at end of file diff --git a/koptilnya/engine/configs/audi_tt.txt b/koptilnya/engine/configs/audi_tt.txt new file mode 100644 index 0000000..6957849 --- /dev/null +++ b/koptilnya/engine/configs/audi_tt.txt @@ -0,0 +1,55 @@ +config = { + Engine = { + IdleRPM = 800, + MaxRPM = 6500, + FlywheelMass = 4.9, + FlywheelRadius = 0.378, + StartFriction = -50, + FrictionCoeff = 0.02, + LimiterDuration = 0.05, + TorqueMap = {240.29618749947, 251.33093929699, 262.3656910945, 273.40044289202, 284.43519468953, + 295.46994648705, 306.50469828456, 317.53945008208, 328.57420187959, 339.60895367711, + 350.64370547463, 361.67845727214, 372.71320906966, 383.74796086717, 394.78271266469, + 405.8174644622, 416.85221625972, 427.88696805724, 438.92171985475, 449.95647165227, 449.9557104607, + 449.95494926913, 449.95418807757, 449.953426886, 449.95266569443, 449.95190450287, 449.9511433113, + 449.95038211973, 449.94962092816, 449.9488597366, 449.94809854503, 449.94733735346, 449.9465761619, + 449.94581497033, 449.94505377876, 449.9442925872, 449.94353139563, 449.94277020406, + 449.94200901249, 449.94124782093, 449.94048662936, 449.93972543779, 449.93896424623, + 449.93820305466, 449.93744186309, 449.93668067153, 449.93591947996, 449.93515828839, + 449.93439709682, 449.93363590526, 449.93287471369, 449.93211352212, 449.93135233056, + 449.93059113899, 449.92982994742, 449.92906875586, 449.92830756429, 449.92754637272, + 449.92678518115, 449.92602398959, 449.92526279802, 449.92450160645, 449.92374041489, + 449.92297922332, 449.92221803175, 449.92145684019, 449.92069564862, 449.91993445705, + 449.91917326548, 449.91841207392, 449.91765088235, 449.91688969078, 449.91612849922, + 446.34504740794, 442.77396631665, 439.20288522537, 435.63180413409, 432.06072304281, + 428.48964195153, 424.91856086025, 421.34747976897, 417.77639867769, 414.2053175864, + 410.63423649512, 407.06315540384, 403.49207431256, 399.92099322128, 396.34991213, 392.77883103872, + 389.20774994744, 385.63666885615, 382.06558776487, 378.49450667359, 374.92342558231, + 371.35234449103, 367.78126339975, 364.21018230847, 360.63910121719, 357.0680201259, + 353.49693903462, 349.92585794334} + }, + Clutch = { + Stiffness = 22, + Capacity = 1.3, + Damping = 0.5 + }, + Gearbox = { + Ratios = {2.93, 1.96, 1.38, 1.03, 1.06, 0.87}, + Reverse = 3.26, + FinalDrive = 4.77 + }, + FrontDiff = { + Power = 0.25, + Coast = 0.15, + Preload = 10, + UsePowerBias = 10, + ViscousCoeff = 0.96 + }, + RearDiff = { + Power = 0.25, + Coast = 0.15, + Preload = 10, + UsePowerBias = 10, + ViscousCoeff = 0.96 + } +} diff --git a/koptilnya/engine/differential.txt b/koptilnya/engine/differential.txt new file mode 100644 index 0000000..4f7e679 --- /dev/null +++ b/koptilnya/engine/differential.txt @@ -0,0 +1,18 @@ +Differential = class("Differential") + +function Differential:initialize(options) + options = options or {} + + self.power = options.Power or 1 + self.coast = options.Coast or 1 + self.preload = options.Preload or 10 + self.viscousCoeff = options.ViscousCoeff or 0.9 + + self._gearbox = options.Gearbox + self._leftWheel = options.LeftWheel + self._rightWheel = options.RightWheel + + if self._gearbox then + self._gearbox:linkDiff(self) + end +end \ No newline at end of file diff --git a/koptilnya/engine/engine.txt b/koptilnya/engine/engine.txt index e69de29..91f453b 100644 --- a/koptilnya/engine/engine.txt +++ b/koptilnya/engine/engine.txt @@ -0,0 +1,20 @@ +Engine = class("Engine") + +function Engine:initialize(options) + options = options or {} + + self.idleRPM = options.IdleRPM or 800 + self.maxRPM = options.MaxRPM or 8000 + + self.flywheelMass = options.FlywheelMass or 4 + self.flywheelRadius = options.FlywheelRadius or 0.3 + + self.startFriction = options.StartFriction or -30 + self.frictionCoeff = options.FrictionCoeff or 0.02 + + self.limiterDuration = options.LimiterDuration or 0.05 + + self.torqueMap = options.TorqueMap or {} + + self.throttle = 0 +end \ No newline at end of file diff --git a/koptilnya/engine/gearboxes/auto.txt b/koptilnya/engine/gearboxes/auto.txt new file mode 100644 index 0000000..56610c1 --- /dev/null +++ b/koptilnya/engine/gearboxes/auto.txt @@ -0,0 +1,4 @@ +-- @include ./base.txt +require("./base.txt") + +AutomaticGearbox = class("AutomaticGearbox") \ No newline at end of file diff --git a/koptilnya/engine/gearboxes/base.txt b/koptilnya/engine/gearboxes/base.txt new file mode 100644 index 0000000..7a2d4ff --- /dev/null +++ b/koptilnya/engine/gearboxes/base.txt @@ -0,0 +1,28 @@ +Gearbox = class("Gearbox") + +function Gearbox:initialize(options) + options = options or {} + + self.ratios = options.ratios + self.finalDrive = options.finalDrive + + self._linkedDiffs = {} + + self.gear = 0 +end + +function Gearbox:linkDiff(diff) + table.insert(self._linkedDiffs, diff) +end + +function Gearbox:shift(dir) + +end + +function Gearbox:setGear(gear) + self.gear = gear +end + +function Gearbox:update() + +end \ No newline at end of file diff --git a/koptilnya/engine/gearboxes/cvt.txt b/koptilnya/engine/gearboxes/cvt.txt new file mode 100644 index 0000000..e370381 --- /dev/null +++ b/koptilnya/engine/gearboxes/cvt.txt @@ -0,0 +1,4 @@ +-- @include ./base.txt +require("./base.txt") + +CVT = class("CVT") \ No newline at end of file diff --git a/koptilnya/engine/gearboxes/manual.txt b/koptilnya/engine/gearboxes/manual.txt new file mode 100644 index 0000000..9257c4f --- /dev/null +++ b/koptilnya/engine/gearboxes/manual.txt @@ -0,0 +1,10 @@ +-- @include ./base.txt +require("./base.txt") + +ManualGearbox = class("ManualGearbox") + +function ManualGearbox:initialize(options) + -- create base gearbox inside +end + +-- proxy the methods here \ No newline at end of file diff --git a/koptilnya/engine/main.txt b/koptilnya/engine/main.txt index db129d0..c3f0e1b 100644 --- a/koptilnya/engine/main.txt +++ b/koptilnya/engine/main.txt @@ -1,3 +1,42 @@ -- @name Koptilnya Engine -- @author Koptilnya1337 -- @shared +-- +-- @include ./engine.txt +-- +-- @include ./gearboxes/manual.txt +-- @include ./gearboxes/cvt.txt +-- @include ./gearboxes/auto.txt +-- +-- @include ./differential.txt +-- +-- @include ./configs/audi_tt.txt +require("./engine.txt") +-- +require("./gearboxes/manual.txt") +require("./gearboxes/cvt.txt") +require("./gearboxes/auto.txt") +-- +require("./differential.txt") +-- +require("./configs/audi_tt.txt") + +if SERVER then + function adjustPorts() + wire.adjustPorts({ + Input = "table" + }, { + RPM = "number" + }) + end + + function setupHooks() + + end + + adjustPorts() + -- printTable(config) +else + +end + diff --git a/koptilnya/input_system/cl_input.txt b/koptilnya/input_system/cl_input.txt index b17114c..2a2fd91 100644 --- a/koptilnya/input_system/cl_input.txt +++ b/koptilnya/input_system/cl_input.txt @@ -30,9 +30,6 @@ function Input:getAxleValue(axle) local positiveValue = axle.Positive ~= nil and input.isKeyDown(axle.Positive) local negativeValue = axle.Negative ~= nil and input.isKeyDown(axle.Negative) - print(positiveValue) - print(negativeValue) - return (positiveValue and 1 or 0) - (negativeValue and 1 or 0) -- (input.isKeyDown(axle.Positive) and 1 or 0) - (input.isKeyDown(axle.Negative) and 1 or 0) end