Script v1_7_1_0
- AI
- Animals
- Collections
- Contracts
- Debug
- Economy
- Elements
- EnvironmentalScore
- Errors
- Events
- GUI
- Handtools
- Hud
- I3d
- Input
- Jobs
- Maps
- Materials
- Misc
- Objects
- Parameters
- Placeables
- Placement
- Player
- Shop
- Sounds
- Specialization
- Specializations
- AIConveyorBelt
- AIDrivable
- AIFieldWorker
- AIImplement
- AIJobVehicle
- AIVehicle
- AIVehicleObstacle
- AnimatedVehicle
- ArticulatedAxis
- Attachable
- AttacherJointControl
- AttacherJoints
- AutoLoader
- BaleGrab
- BaleLoader
- Baler
- BaleWrapper
- BaseMaterial
- BigBag
- BunkerSiloCompacter
- BunkerSiloInteractor
- CCTDrivable
- Combine
- ConnectionHoses
- ConveyorBelt
- Cover
- CrabSteering
- Crawlers
- CropSensor
- Cultivator
- Cutter
- Cylindered
- CylinderedFoldable
- Dashboard
- Dischargeable
- Drivable
- DynamicallyLoadedParts
- DynamicMountAttacher
- Enterable
- ExtendedAIVehicle
- ExtendedCombine
- ExtendedMotorized
- ExtendedMower
- ExtendedSowingMachine
- ExtendedSprayer
- ExtendedWearable
- FertilizingCultivator
- FertilizingSowingMachine
- FillTriggerVehicle
- FillUnit
- FillVolume
- Foldable
- FoliageBending
- ForageWagon
- FrontloaderAttacher
- FruitPreparer
- GroundAdjustedNodes
- GroundReference
- HeadlandAnimation
- Honk
- HookLiftContainer
- HookLiftTrailer
- IKChains
- InlineWrapper
- JigglingParts
- Leveler
- LicensePlates
- Lights
- LivestockTrailer
- Locomotive
- LogGrab
- ManureBarrel
- ManureSensor
- MixerWagon
- Motorized
- Mountable
- Mower
- Mulcher
- MultipleItemPurchase
- Pallet
- Pickup
- Pipe
- PlaceableAI
- PlaceableAnimatedObjects
- PlaceableBeehive
- PlaceableBeehivePalletSpa...
- PlaceableBunkerSilo
- PlaceableBuyingStation
- PlaceableCartridgePlayer
- PlaceableChargingStation
- PlaceableClearAreas
- PlaceableColorable
- PlaceableDeletedNodes
- PlaceableDoghouse
- PlaceableDynamicallyLoade...
- PlaceableFarmhouse
- PlaceableFence
- PlaceableFoliageAreas
- PlaceableGreenhouse
- PlaceableHighPressureWash...
- PlaceableHotspots
- PlaceableHusbandry
- PlaceableHusbandryAnimals
- PlaceableHusbandryFeeding...
- PlaceableHusbandryFence
- PlaceableHusbandryFood
- PlaceableHusbandryLiquidM...
- PlaceableHusbandryMilk
- PlaceableHusbandryPallets
- PlaceableHusbandryStraw
- PlaceableHusbandryWater
- PlaceableIncomePerHour
- PlaceableIndoorAreas
- PlaceableInfoTrigger
- PlaceableLeveling
- PlaceableLights
- PlaceableManureHeap
- PlaceablePlacement
- PlaceableProductionPoint
- PlaceableSellingStation
- PlaceableSilo
- PlaceableSiloExtension
- PlaceableSolarPanels
- PlaceableTipOcclusionArea...
- PlaceableTrainSystem
- PlaceableTriggerMarkers
- PlaceableVine
- PlaceableWardrobe
- PlaceableWeatherStation
- PlaceableWeighingStation
- PlaceableWindTurbine
- PlaceableWorkshop
- Plow
- PlowPacker
- PowerConsumer
- PowerTakeOffs
- PrecisionFarmingStatistic
- PushHandTool
- RandomlyMovingParts
- ReceivingHopper
- ReverseDriving
- Rideable
- RidgeMarker
- Roller
- Ropes
- RTKStation
- SaltSpreader
- SemiTrailerFront
- Shovel
- SlopeCompensation
- SmartAttach
- SoilSampler
- SowingMachine
- SpeedRotatingParts
- SplineVehicle
- Sprayer
- StonePicker
- StrawBlower
- StumpCutter
- SupportVehicle
- Suspensions
- Tedder
- TensionBeltObject
- TensionBelts
- TestAreas
- TipOccluder
- Trailer
- TreePlanter
- TreeSaplingPallet
- TreeSaw
- TurnOnVehicle
- VariableWorkWidth
- VehicleSettings
- VineCutter
- VineDetector
- VinePrepruner
- Washable
- WaterTrailer
- Wearable
- Weeder
- WeedSpotSpray
- Wheels
- WindBending
- Windrower
- Wipers
- WoodCrusher
- WoodHarvester
- WorkArea
- WorkMode
- WorkParticles
- StateMachine
- Statistics
- Tasks
- Triggers
- Utils
- Vehicles
Engine v1_7_1_0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- general
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- NoteNode
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- VoiceChat
- XML
Foundation Reference
VehicleSettings
DescriptionSpecialization to store local settings for the vehicle based on the settings of the client which has entered the vehicleFunctions
- forceVehicleSettingsUpdate
- initSpecialization
- onPreLoad
- onStateChange
- onUpdateTick
- prerequisitesPresent
- registerEventListeners
- registerEvents
- registerFunctions
- registerVehicleSetting
- setVehicleSettingState
forceVehicleSettingsUpdate
DescriptionForce update of vehicle settings -> current settings will be send from client to serverDefinition
forceVehicleSettingsUpdate()Code
115 | function VehicleSettings:forceVehicleSettingsUpdate() |
116 | local spec = self.spec_vehicleSettings |
117 | for i=1, #spec.settings do |
118 | local setting = spec.settings[i] |
119 | self:setVehicleSettingState(setting.index, g_gameSettings:getValue(setting.gameSettingId), true) |
120 | end |
121 | end |
initSpecialization
DescriptionDefinitioninitSpecialization()Code
25 | function VehicleSettings.initSpecialization() |
26 | end |
onPreLoad
DescriptionCalled on loadingDefinition
onPreLoad(table savegame)Arguments
table | savegame | savegame |
54 | function VehicleSettings:onPreLoad(savegame) |
55 | local spec = self.spec_vehicleSettings |
56 | |
57 | spec.isDirty = false |
58 | spec.settings = {} |
59 | |
60 | if self.isServer then |
61 | SpecializationUtil.removeEventListener(self, "onUpdateTick", VehicleSettings) |
62 | end |
63 | end |
onStateChange
DescriptionCalled if vehicle state changesDefinition
onStateChange()Code
148 | function VehicleSettings:onStateChange(state, vehicle, isControlling) |
149 | if isControlling then |
150 | if state == Vehicle.STATE_CHANGE_ENTER_VEHICLE then |
151 | self:forceVehicleSettingsUpdate() |
152 | end |
153 | end |
154 | end |
onUpdateTick
DescriptionCalled on updateTickDefinition
onUpdateTick(float dt, boolean isActiveForInput, boolean isSelected)Arguments
float | dt | time since last call in ms |
boolean | isActiveForInput | true if vehicle is active for input |
boolean | isSelected | true if vehicle is selected |
70 | function VehicleSettings:onUpdateTick(dt, isActiveForInput, isActiveForInputIgnoreSelection, isSelected) |
71 | local spec = self.spec_vehicleSettings |
72 | if spec.isDirty then |
73 | local hasDirtyValue = false |
74 | for i=1, #spec.settings do |
75 | if spec.settings[i].isDirty then |
76 | hasDirtyValue = true |
77 | break |
78 | end |
79 | end |
80 | |
81 | if hasDirtyValue then |
82 | if g_server == nil and g_client ~= nil then |
83 | g_client:getServerConnection():sendEvent(VehicleSettingsChangeEvent.new(self, spec.settings)) |
84 | end |
85 | end |
86 | |
87 | spec.isDirty = false |
88 | end |
89 | end |
prerequisitesPresent
DescriptionChecks if all prerequisite specializations are loadedDefinition
prerequisitesPresent(table specializations)Arguments
table | specializations | specializations |
boolean | hasPrerequisite | true if all prerequisite specializations are loaded |
19 | function VehicleSettings.prerequisitesPresent(specializations) |
20 | return true |
21 | end |
registerEventListeners
DescriptionDefinitionregisterEventListeners()Code
44 | function VehicleSettings.registerEventListeners(vehicleType) |
45 | SpecializationUtil.registerEventListener(vehicleType, "onPreLoad", VehicleSettings) |
46 | SpecializationUtil.registerEventListener(vehicleType, "onUpdateTick", VehicleSettings) |
47 | SpecializationUtil.registerEventListener(vehicleType, "onStateChange", VehicleSettings) |
48 | SpecializationUtil.registerEventListener(vehicleType, "onPreAttach", VehicleSettings) |
49 | end |
registerEvents
DescriptionDefinitionregisterEvents()Code
38 | function VehicleSettings.registerEvents(vehicleType) |
39 | SpecializationUtil.registerEvent(vehicleType, "onVehicleSettingChanged") |
40 | end |
registerFunctions
DescriptionDefinitionregisterFunctions()Code
30 | function VehicleSettings.registerFunctions(vehicleType) |
31 | SpecializationUtil.registerFunction(vehicleType, "registerVehicleSetting", VehicleSettings.registerVehicleSetting) |
32 | SpecializationUtil.registerFunction(vehicleType, "setVehicleSettingState", VehicleSettings.setVehicleSettingState) |
33 | SpecializationUtil.registerFunction(vehicleType, "forceVehicleSettingsUpdate", VehicleSettings.forceVehicleSettingsUpdate) |
34 | end |
registerVehicleSetting
DescriptionRegisters a game settings for this vehicleDefinition
registerVehicleSetting(string gameSettingId, bool isBool)Arguments
string | gameSettingId | id of game setting |
bool | isBool | settings is only a boolean |
95 | function VehicleSettings:registerVehicleSetting(gameSettingId, isBool) |
96 | local spec = self.spec_vehicleSettings |
97 | |
98 | local setting = {} |
99 | setting.index = #spec.settings + 1 |
100 | setting.gameSettingId = gameSettingId |
101 | setting.isBool = isBool |
102 | setting.callback = function(_, state) |
103 | if self:getIsActiveForInput(true, true) then |
104 | self:setVehicleSettingState(setting.index, state) |
105 | end |
106 | end |
107 | |
108 | g_messageCenter:subscribe(MessageType.SETTING_CHANGED[gameSettingId], setting.callback, self) |
109 | |
110 | table.insert(spec.settings, setting) |
111 | end |
setVehicleSettingState
DescriptionSet state of vehicle setting by indexDefinition
setVehicleSettingState(integer settingIndex, any_type state, bool noEventSend)Arguments
integer | settingIndex | index of setting |
any_type | state | state |
bool | noEventSend | no event will be send if true |
128 | function VehicleSettings:setVehicleSettingState(settingIndex, state, noEventSend) |
129 | local spec = self.spec_vehicleSettings |
130 | local setting = spec.settings[settingIndex] |
131 | if setting ~= nil then |
132 | if noEventSend == nil or noEventSend == false then |
133 | if g_server == nil and g_client ~= nil then |
134 | g_client:getServerConnection():sendEvent(VehicleSettingsChangeEvent.new(self, spec.settings)) |
135 | end |
136 | end |
137 | |
138 | setting.state = state |
139 | setting.isDirty = true |
140 | spec.isDirty = true |
141 | |
142 | SpecializationUtil.raiseEvent(self, "onVehicleSettingChanged", setting.gameSettingId, state) |
143 | end |
144 | end |