Remastering engine
This commit is contained in:
50
koptilnya/engine_remastered/vehicle.txt
Normal file
50
koptilnya/engine_remastered/vehicle.txt
Normal file
@@ -0,0 +1,50 @@
|
||||
-- @include ./engine.txt
|
||||
-- @include /koptilnya/libs/table.txt
|
||||
require('./engine.txt')
|
||||
require('/koptilnya/libs/table.txt')
|
||||
|
||||
Vehicle = class('Vehicle')
|
||||
|
||||
function Vehicle:initialize(config)
|
||||
if config == nil then
|
||||
throw('Vehicle config not provided')
|
||||
end
|
||||
|
||||
-- self.clutch = Clutch:new(config.Clutch)
|
||||
self.engine = Engine:new(config.Engine, self.clutch)
|
||||
-- self.gearbox = GearboxBuilder:create(config.Gearbox, self.clutch)
|
||||
-- self.axles = table.map(config.Axles, function(config)
|
||||
-- return Differential:new(config)
|
||||
-- end)
|
||||
-- self.systems = table.map(config.Systems, function(config)
|
||||
-- return SystemsBuilder:create(config)
|
||||
-- end)
|
||||
|
||||
self.components = {self.engine} -- , self.gearbox, self.clutch}
|
||||
-- self.components = table.add(self.components, self.axles)
|
||||
-- self.components = table.add(self.components, self.systems)
|
||||
|
||||
local inputs = {}
|
||||
local outputs = {}
|
||||
|
||||
for _, comp in ipairs(self.components) do
|
||||
inputs = table.merge(inputs, comp:getInputs())
|
||||
outputs = table.merge(outputs, comp:getOutputs())
|
||||
end
|
||||
|
||||
wire.adjustPorts(inputs, outputs)
|
||||
|
||||
-- for _, ent in self.entities do
|
||||
-- ent:createInputs()
|
||||
-- ent:createOutputs()
|
||||
-- end
|
||||
|
||||
hook.add('tick', 'vehicle_update', function()
|
||||
local outputs = {}
|
||||
|
||||
for _, comp in pairs(self.components) do
|
||||
comp:update()
|
||||
comp:updateOutputs()
|
||||
end
|
||||
end)
|
||||
end
|
||||
Reference in New Issue
Block a user