Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_SalvageVehicleSlotInfo.c
Go to the documentation of this file.
2{
3 [Attribute("{FD4C5E5CD5C4051A}Prefabs/Vehicles/Core/VehicleSalvageActionEntity.et", uiwidget: UIWidgets.ResourcePickerThumbnail, params: "et", desc: "The entity that is spawned and attached to the vehicle when it is destroyed.")]
5
7
8 //------------------------------------------------------------------------------------------------
9 // On vehicle destroyed, spawn the vehicle salvage action
11 {
12 // Check if setting is enabled
14 if (!additionalGameSettings)
15 return;
16
17 if (state != EDamageState.DESTROYED)
18 return;
19
20 if (!additionalGameSettings.IsVehicleSalvageEnabled())
21 {
23 additionalGameSettings.GetOnChangeAdditionalSettingsInvoker().Insert(OnAdditionalSettingsChanged);
24 return;
25 }
26
28 }
29
30 //------------------------------------------------------------------------------------------------
32 {
33 Vehicle vehicle = Vehicle.Cast(GetOwner());
34 if (!vehicle)
35 return;
36
37 SCR_DamageManagerComponent damageManager = vehicle.GetDamageManager();
38 if (!damageManager)
39 return;
40
41 if (damageManager.GetState() != EDamageState.DESTROYED)
42 return;
43
45 if (!additionalGameSettings || !additionalGameSettings.IsVehicleSalvageEnabled())
46 return;
47
49 additionalGameSettings.GetOnChangeAdditionalSettingsInvoker().Remove(OnAdditionalSettingsChanged);
50
52 }
53
54 //------------------------------------------------------------------------------------------------
55 protected void SpawnSalvageEntity()
56 {
58 if (!resource.IsValid())
59 return;
60
61 IEntity spawnedEntity = GetGame().SpawnEntityPrefab(resource);
62
63 AttachEntity(spawnedEntity);
64 }
65
66 //------------------------------------------------------------------------------------------------
68 {
69 Vehicle vehicle = Vehicle.Cast(GetOwner());
70 if (!vehicle)
71 return;
72
73 SCR_DamageManagerComponent damageManager = vehicle.GetDamageManager();
74 if (!damageManager)
75 return;
76
77 damageManager.GetOnDamageStateChanged().Insert(OnDamageStateChanged);
78 }
79
80 //------------------------------------------------------------------------------------------------
82 {
84
85 if ((gameMode && !gameMode.IsMaster()) || (!gameMode && Replication.IsClient()))
86 return;
87
88 // This is so the vehicle has time to get created
89 GetGame().GetCallqueue().CallLater(DelayedInit);
90 }
91
93 {
95 return;
96
98 if (additionalGameSettings)
99 {
101 additionalGameSettings.GetOnChangeAdditionalSettingsInvoker().Remove(OnAdditionalSettingsChanged);
102 }
103 }
104}
ArmaReforgerScripted GetGame()
Definition game.c:1398
void SCR_AdditionalGameModeSettingsComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
SCR_BaseGameMode GetGameMode()
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Adds ability to attach an object to a slot.
Main replication API.
Definition Replication.c:14
Object holding reference to resource. In destructor release the resource.
Definition Resource.c:25
sealed bool IsMaster()
void OnDamageStateChanged(EDamageState state)
enum EPhysicsLayerPresets Vehicle
Definition gameLib.c:24
IEntity GetOwner()
Owner entity of the fuel tank.
SCR_FieldOfViewSettings Attribute
EDamageState