Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_ToggleSafetyUserAction.c
Go to the documentation of this file.
2{
3 [Attribute("0", UIWidgets.ComboBox, "", "", ParamEnumArray.FromEnum(EMuzzleType))]
5
6 protected WeaponAttachmentsStorageComponent m_AttachmentStorage;
7
8 override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity)
9 {
10 CharacterControllerComponent charComp = CharacterControllerComponent.Cast(pUserEntity.FindComponent(CharacterControllerComponent));
11 charComp.SetSafety(!IsSafetyOn(), false);
12 }
13
14 override bool CanBeShownScript(IEntity user)
15 {
17 {
19 {
20 InventoryStorageSlot slot = m_AttachmentStorage.GetParentSlot();
21 if (!slot)
22 return false;
23
24 IEntity weapon = m_AttachmentStorage.GetParentSlot().GetOwner();
25 if (weapon)
27 }
28
29 return false;
30 }
31
32 if (m_WeaponComponent.GetCurrentMuzzle() == NULL)
33 return false;
34 if (m_WeaponComponent.GetCurrentMuzzle().GetMuzzleType() != m_eMuzzleType)
35 return false;
36
37 CharacterControllerComponent charComp = CharacterControllerComponent.Cast(user.FindComponent(CharacterControllerComponent));
38 return (charComp && charComp.GetInspect());
39 }
40
42 {
43 BaseMuzzleComponent muzzle = m_WeaponComponent.GetCurrentMuzzle();
44 return (muzzle.GetCurrentFireMode().GetFiremodeType() == EWeaponFiremodeType.Safety);
45 }
46
47 override bool GetActionNameScript(out string outName)
48 {
49 if (IsSafetyOn())
50 {
51 outName = WidgetManager.Translate("#AR-Keybind_WeaponSafety (%1)", "#AR-UserAction_State_On-UC");
52 }
53 else
54 {
55 outName = WidgetManager.Translate("#AR-Keybind_WeaponSafety (%1)", "#AR-UserAction_State_Off-UC");
56 }
57 return true;
58 }
59
60 override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
61 {
62 if (m_eMuzzleType == EMuzzleType.MT_BaseMuzzle)
63 {
65 }
66 else if (m_eMuzzleType == EMuzzleType.MT_UGLMuzzle)
67 {
68 // not ideal, but we cannot get parent slot in init and have to retrieve it later
69 m_AttachmentStorage = WeaponAttachmentsStorageComponent.Cast(pOwnerEntity.FindComponent(WeaponAttachmentsStorageComponent));
70 }
71 }
72};
proto external Managed FindComponent(typename typeName)
BaseWeaponComponent m_WeaponComponent
WeaponAttachmentsStorageComponent m_AttachmentStorage
override bool GetActionNameScript(out string outName)
override bool CanBeShownScript(IEntity user)
override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity)
override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
@ NULL
Unknown type.
Definition DataVarType.c:21
SCR_FieldOfViewSettings Attribute
EWeaponFiremodeType
EMuzzleType
Definition EMuzzleType.c:13