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
- StateMachine
- PlayerStateAnimalInteract
- PlayerStateAnimalPet
- PlayerStateAnimalRide
- PlayerStateBase
- PlayerStateCrouch
- PlayerStateCycleHandtool
- PlayerStateDrop
- PlayerStateFall
- PlayerStateIdle
- PlayerStateJump
- PlayerStateMachine
- PlayerStatePickup
- PlayerStateRun
- PlayerStateSwim
- PlayerStateThrow
- PlayerStateUseLight
- PlayerStateWalk
- 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
PlayerStateAnimalRide
ParentPlayerStateBaseFunctions
activate
DescriptionActivate method.Definition
activate()Code
51 | function PlayerStateAnimalRide:activate() |
52 | PlayerStateAnimalRide:superClass().activate(self) |
53 | if self.placeable ~= nil then |
54 | if self.placeable:getAnimalCanBeRidden(self.cluster.id) then |
55 | g_currentMission:fadeScreen(1, self.timeFadeToBlack, self.endFadeToBlack, self, {self.placeable, self.cluster, self.player}) |
56 | g_inputBinding:setContext(PlayerStateAnimalRide.INPUT_CONTEXT_EMPTY, true, false) |
57 | else |
58 | g_currentMission:addIngameNotification(FSBaseMission.INGAME_NOTIFICATION_CRITICAL, g_i18n:getText("shop_messageAnimalRideableLimitReached")) |
59 | end |
60 | end |
61 | |
62 | self:deactivate() |
63 | end |
animalRaycastCallback
DescriptionRaycast to check if animal husbandry has been detectedDefinition
animalRaycastCallback(float dt)Arguments
float | dt | delta time in ms |
75 | function PlayerStateAnimalRide:animalRaycastCallback(hitObjectId, x, y, z, distance) |
76 | local husbandryId, animalId = getAnimalFromCollisionNode(hitObjectId) |
77 | |
78 | if husbandryId ~= nil and husbandryId ~= 0 then |
79 | local clusterHusbandry = g_currentMission.husbandrySystem:getClusterHusbandyById(husbandryId) |
80 | if clusterHusbandry ~= nil then |
81 | local placeable = clusterHusbandry:getPlaceable() |
82 | local cluster = clusterHusbandry:getClusterByAnimalId(animalId) |
83 | if cluster ~= nil and g_currentMission.accessHandler:canFarmAccess(self.player.farmId, placeable) then |
84 | if placeable:getAnimalSupportsRiding(cluster.id) then |
85 | self.placeable = placeable |
86 | self.cluster = cluster |
87 | return true |
88 | end |
89 | end |
90 | end |
91 | end |
92 | |
93 | return false |
94 | end |
endFadeToBlack
DescriptionDefinitionendFadeToBlack()Code
67 | function PlayerStateAnimalRide:endFadeToBlack(arguments) |
68 | local placeable, cluster, player = arguments[1], arguments[2], arguments[3] |
69 | placeable:startRiding(cluster.id, player) |
70 | end |
getRideableName
DescriptionDefinitiongetRideableName()Code
98 | function PlayerStateAnimalRide:getRideableName() |
99 | local rideableName = "" |
100 | if self.placeable ~= nil and self.cluster.getName ~= nil then |
101 | rideableName = self.cluster:getName() |
102 | end |
103 | return rideableName |
104 | end |
isAvailable
DescriptionCheck if we can ride animal.Definition
isAvailable()Return Values
bool | returns | true if player can ride an animal |
36 | function PlayerStateAnimalRide:isAvailable() |
37 | local cameraX, cameraY, cameraZ = localToWorld(self.player.cameraNode, 0.0, 0.0, 0.0) |
38 | local dirX, dirY, dirZ = localDirectionToWorld(self.player.cameraNode, 0.0, 0.0, -1.0) |
39 | local collisionMask = CollisionFlag.ANIMAL |
40 | self.placeable = nil |
41 | self.cluster = nil |
42 | raycastClosest(cameraX, cameraY, cameraZ, dirX, dirY, dirZ, "animalRaycastCallback", self.castDistance, self, collisionMask) |
43 | if self.placeable ~= nil then |
44 | return true |
45 | end |
46 | return false |
47 | end |
new
DescriptionCreating instance of state.Definition
new(table player, table stateMachine)Arguments
table | player | instance of player |
table | stateMachine | instance of the state machine manager |
table | instance | instance of object |
21 | function PlayerStateAnimalRide.new(player, stateMachine) |
22 | local self = PlayerStateBase.new(player, stateMachine, PlayerStateAnimalRide_mt) |
23 | |
24 | self.placeable = nil |
25 | self.cluster = nil |
26 | |
27 | self.castDistance = 1.5 -- in m |
28 | self.timeFadeToBlack = 250 |
29 | |
30 | return self |
31 | end |