Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_DeployablePlaceableItemComponent.c
Go to the documentation of this file.
1[EntityEditorProps(category: "GameScripted/Components", description: "")]
5
6class SCR_DeployablePlaceableItemComponent : SCR_PlaceableItemComponent
7{
9 protected SCR_CampaignBuildingGadgetToolComponent m_PlacingGadget;
10
11 //------------------------------------------------------------------------------------------------
13 void SetPlacingGadget(SCR_CampaignBuildingGadgetToolComponent gadget)
14 {
15 m_PlacingGadget = gadget;
16 }
17
18 //------------------------------------------------------------------------------------------------
20 {
21 if (!m_PlacingGadget)
22 return super.GetForwardAwayFromPlayer();
23
24 SCR_MultiPartDeployableItemComponent deployableComp = m_PlacingGadget.GetCurrentlyHandledComponent();
25 if (deployableComp)
26 return !deployableComp.GetFrontTowardPlayer();
27
28 return super.GetForwardAwayFromPlayer();
29 }
30
31 //------------------------------------------------------------------------------------------------
32 override float GetMaxAllowedTilt()
33 {
34 if (!m_PlacingGadget)
35 return super.GetMaxAllowedTilt();
36
37 return m_PlacingGadget.GetMaxAllowedTilt();
38 }
39
40 //------------------------------------------------------------------------------------------------
41 override bool OverrideIsSurfaceValid(notnull SCR_ItemPlacementComponent caller, out ENotification cantPlaceReason, IEntity surfaceEnt, vector worldPosition, vector surfaceNorm, int nodeIndex, int colliderIndex, SurfaceProperties surfaceProps, string surfaceMaterial, string colliderName)
42 {
43 if (!m_PlacingGadget)
44 return false;
45
46 return m_PlacingGadget.ValidateSurface(caller, cantPlaceReason, surfaceEnt, worldPosition, surfaceNorm, nodeIndex, colliderIndex, surfaceProps, surfaceMaterial, colliderName);
47 }
48
49 //------------------------------------------------------------------------------------------------
50 override bool OverrideSpaceValidation(notnull SCR_ItemPlacementComponent caller, inout vector transform[4], out ENotification cantPlaceReason)
51 {
52 if (!m_PlacingGadget)
53 return false;
54
55 return m_PlacingGadget.ValidateSpace(caller, transform, cantPlaceReason);
56 }
57
58 //------------------------------------------------------------------------------------------------
59 override void OverridePreviewTransform(notnull SCR_ItemPlacementComponent caller, inout vector transform[4])
60 {
61 if (!m_PlacingGadget)
62 return;
63
64 return m_PlacingGadget.OverridePreviewTransform(caller, transform);
65 }
66
67 //------------------------------------------------------------------------------------------------
68 override bool OverrideStartPlaceAction(notnull SCR_ItemPlacementComponent caller, out bool skipItemUsage = false)
69 {
70 if (!m_PlacingGadget)
71 return false;
72
73 m_PlacingGadget.OnItemPlacementStart(caller);
74 skipItemUsage = true;
75 return true;
76 }
77
78 //------------------------------------------------------------------------------------------------
80 {
81 return true;
82 }
83
84 //------------------------------------------------------------------------------------------------
85 override void OverrideAfterItemPlaced(notnull SCR_ItemPlacementComponent caller, notnull IEntity item, bool success, bool equipNext)
86 {
87 if (!m_PlacingGadget)
88 return;
89
90 m_PlacingGadget.OnAfterItemPlaced(caller, item, success, equipNext);
91 m_PlacingGadget = null;
92 }
93
94 //------------------------------------------------------------------------------------------------
95 override bool OverrideAutoEquipMechanism(out ScriptedInventoryOperationCallback callBackHolder, notnull SCR_ItemPlacementComponent caller, IEntity placedItem, bool autoEquipNext)
96 {
98 invoker.Insert(OverrideAfterItemPlaced);
99 callBackHolder = new SCR_PlacementInventoryOperationCallback(invoker, caller, placedItem, autoEquipNext);
100 return true;
101 }
102}
ENotification
void OverridePreviewTransform(notnull SCR_ItemPlacementComponent caller, inout vector transform[4])
enum SCR_ECompassType EntityEditorProps(category:"GameScripted/Gadgets", description:"Compass", color:"0 0 255 255")
Prefab data class for compass component.
override bool OverrideIsSurfaceValid(notnull SCR_ItemPlacementComponent caller, out ENotification cantPlaceReason, IEntity surfaceEnt, vector worldPosition, vector surfaceNorm, int nodeIndex, int colliderIndex, SurfaceProperties surfaceProps, string surfaceMaterial, string colliderName)
override bool OverrideAutoEquipMechanism(out ScriptedInventoryOperationCallback callBackHolder, notnull SCR_ItemPlacementComponent caller, IEntity placedItem, bool autoEquipNext)
override bool OverrideSpaceValidation(notnull SCR_ItemPlacementComponent caller, inout vector transform[4], out ENotification cantPlaceReason)
void SetPlacingGadget(SCR_CampaignBuildingGadgetToolComponent gadget)
override bool OverrideStartPlaceAction(notnull SCR_ItemPlacementComponent caller, out bool skipItemUsage=false)
override bool OverrideOnPlacingEnded(notnull SCR_ItemPlacementComponent caller)
SCR_DeployablePlaceableItemComponentClass m_PlacingGadget
Gadget which is used to place this item, this will automatically reset when this item will be placed ...
override bool GetForwardAwayFromPlayer()
override void OverrideAfterItemPlaced(notnull SCR_ItemPlacementComponent caller, notnull IEntity item, bool success, bool equipNext)
void SCR_ItemPlacementComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
ScriptInvokerBase< AfterItemPlacementRequestedCallback > AfterItemPlacedInvoker