Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_ArsenalComponent.c
Go to the documentation of this file.
4
5void ScriptInvokerArsenalUpdatedMethod(array<ResourceName> arsenalItems);
7typedef ScriptInvokerBase<ScriptInvokerArsenalUpdatedMethod> ScriptInvokerArsenalUpdated;
8
10{
11 [Attribute(SCR_EArsenalSupplyCostType.DEFAULT.ToString(), desc: "Cost type of items. If it is not DEFAULT than it will try to get the diffrent supply cost if the item has it assigned" , uiwidget: UIWidgets.SearchComboBox, enums: ParamEnumArray.FromEnum(SCR_EArsenalSupplyCostType), category: "Settings")]
12 protected SCR_EArsenalSupplyCostType m_eSupplyCostType;
13
14 [Attribute("", desc: "Toggle supported SCR_EArsenalItemType by this arsenal, items are gathered from SCR_Faction or from the overwrite config", uiwidget: UIWidgets.Flags, enums: ParamEnumArray.FromEnum(SCR_EArsenalItemType), category: "Settings")]
16
17 [Attribute("", desc: "Toggle supported SCR_EArsenalItemMode by this arsenal, items are gathered from SCR_Faction or from the overwrite config", uiwidget: UIWidgets.Flags, enums: ParamEnumArray.FromEnum(SCR_EArsenalItemMode), category: "Settings")]
19
20 [Attribute("", desc: "Toggle which SCR_EArsenalItemType groups are exposed for gamemaster attribute editing", uiwidget: UIWidgets.Flags, enums: ParamEnumArray.FromEnum(SCR_EArsenalAttributeGroup), category: "Settings")]
22
23 [Attribute(category: "Overwrite", desc: "If empty this will be ignored. For ease of use do not edit this directly in the prefab, use a config instead. The items added the config will allow the arsenal to spawn these items within it. Note that it will still filter on type, meaning that if weapons are added to the list but disabled in the Supported types then they will not show in the arsenal. Changing faction will not have any effect if this is not null")]
25
26 [Attribute("0", desc: "Whether or not the overwrite arsenal config still checks if the items are in the correct faction. Hides any items not belonging to the arsenal's faction.", category: "Overwrite")]
28
29 [Attribute("1", desc: "Get default faction if current faction could not be found", category: "Settings")]
31
32 [Attribute("0", desc: "If true will try and find the SCR_FactionAffiliationComponent from parent if it was not found on self", category: "Settings")]
34
35 [Attribute("0", desc: "Save type of Arsenal. Only applicable if there is a save arsenal action attached to the arsenal.\nSAVING_DISABLED: Saving action is disabled.\nIN_ARSENAL_ITEMS_ONLY: Only allow saving if all the items the player has are in the arsenal as well.\nFACTION_ITEMS_ONLY: Only allow saving if all the items the player has in their inventory are of the faction of the arsenal.\nNO_RESTRICTIONS: No restriction as what the arsenal is allowed to save.", uiwidget: UIWidgets.SearchComboBox, enums: ParamEnumArray.FromEnum(SCR_EArsenalSaveType), category: "Settings")]
36 protected SCR_EArsenalSaveType m_eArsenalSaveType;
37
38 [Attribute(SCR_EArsenalTypes.STATIC_ENTITIES.ToString(), desc: "What arsenal type is this arsenal. As the arsenal manager can disable an arsenal", uiwidget: UIWidgets.SearchComboBox, enums: ParamEnumArray.FromEnum(SCR_EArsenalTypes), category: "Settings")]
39 protected SCR_EArsenalTypes m_eArsenalTypes;
40
41 [Attribute("0", desc: "If false it will get the arsenals current faction and change when the faction is updated. If true it will never check the on faction and use the default faction assigned. Use this if you want the content to never change or if there is never a current faction", category: "Settings")]
43
44 [Attribute("1", desc: "If false the arsenal is disabled but GM can set it enabled. Setting this to false counts as being overwritten meaning the arsenal is not enabled when the arsenal type flag is set in the manager", category: "Settings")]
45 protected bool m_bArsenalEnabled;
46
47 //~ Has arsenal enabled been overwritten before?
49
50 protected SCR_EArsenalItemMode m_eOnDisableArsenalModes; //~ Saves the arsenal item mode when the arsenal is disabled and the mode is set to 0
51
53 protected bool m_bHasSaveArsenalAction = false;
54
55 protected SCR_ArsenalInventoryStorageManagerComponent m_InventoryComponent;
57
58 protected FactionManager m_FactionManager;
60
62
63 protected bool m_bIsClearingInventory;
64
65 //------------------------------------------------------------------------------------------------
67 SCR_EArsenalTypes GetArsenalType()
68 {
69 return m_eArsenalTypes;
70 }
71
72 //------------------------------------------------------------------------------------------------
75 {
76 return SCR_ArsenalManagerComponent.IsArsenalTypeEnabled_Static(GetArsenalType());
77 }
78
79 //------------------------------------------------------------------------------------------------
80 //~ Server only
81 protected void OnArsenalTypeEnabledChanged(SCR_EArsenalTypes typesEnabled)
82 {
83 //~ Arsenal enabled state has been overwritten so do not change it when arsenal enabled change was overwritten
85 return;
86
87 if (SCR_Enum.HasFlag(typesEnabled, GetArsenalType()) && !IsArsenalEnabled())
88 SetArsenalEnabled(true, false);
89 else if (!SCR_Enum.HasFlag(typesEnabled, GetArsenalType()) && IsArsenalEnabled())
90 SetArsenalEnabled(false, false);
91 }
92
93 //------------------------------------------------------------------------------------------------
96 {
97 return m_bArsenalEnabled;
98 }
99
100 //------------------------------------------------------------------------------------------------
102 void SetArsenalEnabled(bool enable, bool isOverwrite = true)
103 {
104 if (m_bArsenalEnabled == enable)
105 return;
106
108 if ((gameMode && !gameMode.IsMaster()) || (!gameMode && Replication.IsClient()))
109 return;
110
113
114 if (isOverwrite)
116
118 }
119
120 //------------------------------------------------------------------------------------------------
134
135 //------------------------------------------------------------------------------------------------
136 [RplRpc(RplChannel.Reliable, RplRcver.Broadcast)]
137 protected void SetArsenalEnabledBroadcast(bool enable)
138 {
139 m_bArsenalEnabled = enable;
140 }
141
142 //------------------------------------------------------------------------------------------------
144 SCR_EArsenalSupplyCostType GetSupplyCostType()
145 {
146 return m_eSupplyCostType;
147 }
148
149 //------------------------------------------------------------------------------------------------
152 {
153 IEntity owner = GetOwner();
154 if (!owner)
155 return null;
156
157 SCR_ResourceComponent resourceComponent = SCR_ResourceComponent.FindResourceComponent(owner);
158
159 return resourceComponent && resourceComponent.IsResourceTypeEnabled();
160 }
161
162 //------------------------------------------------------------------------------------------------
164 SCR_EArsenalSaveType GetArsenalSaveType()
165 {
166 return m_eArsenalSaveType;
167 }
168
169 //------------------------------------------------------------------------------------------------
175
176 //------------------------------------------------------------------------------------------------
180 void SetHasSaveArsenalAction(bool hasSaveArsenalAction)
181 {
182 m_bHasSaveArsenalAction = hasSaveArsenalAction;
183 }
184
185 //------------------------------------------------------------------------------------------------
189 {
191 }
192
193 //------------------------------------------------------------------------------------------------
196 void SetArsenalSaveType(SCR_EArsenalSaveType saveType)
197 {
198 if (m_eArsenalSaveType == saveType)
199 return;
200
201 RPL_SetArsenalSaveType(saveType);
202 Rpc(RPL_SetArsenalSaveType, saveType);
203 }
204
205 //------------------------------------------------------------------------------------------------
208 [RplRpc(RplChannel.Reliable, RplRcver.Broadcast)]
209 void RPL_SetArsenalSaveType(SCR_EArsenalSaveType saveType)
210 {
211 //~ Nothing changed so make sure the action displayed if disabled is not set
212 if (m_eArsenalSaveType == saveType)
213 return;
214
215 m_eArsenalSaveType = saveType;
216
217 if (saveType != SCR_EArsenalSaveType.SAVING_DISABLED)
219 }
220
221 //------------------------------------------------------------------------------------------------
227
228 //------------------------------------------------------------------------------------------------
232 static SCR_ArsenalComponent FindArsenalComponent(notnull IEntity entity, bool getFromSlotted = true)
233 {
234 SCR_ArsenalComponent arsenalComponent;
235
236 if (getFromSlotted)
237 arsenalComponent = SCR_ArsenalComponent.Cast(SCR_EntityHelper.FindComponent(entity, SCR_ArsenalComponent));
238 else
239 arsenalComponent = SCR_ArsenalComponent.Cast(entity.FindComponent(SCR_ArsenalComponent));
240
241 return arsenalComponent;
242 }
243
244 //------------------------------------------------------------------------------------------------
251
252 //------------------------------------------------------------------------------------------------
258
259 //------------------------------------------------------------------------------------------------
266
267 //------------------------------------------------------------------------------------------------
273
274 //------------------------------------------------------------------------------------------------
276 SCR_ArsenalInventoryStorageManagerComponent GetArsenalInventoryComponent()
277 {
279 }
280
281 //------------------------------------------------------------------------------------------------
288
289 //------------------------------------------------------------------------------------------------
292 bool GetAvailablePrefabs(out notnull array<ResourceName> availablePrefabs)
293 {
294 array<SCR_ArsenalItem> arsenalItems = {};
295 if (!GetFilteredArsenalItems(arsenalItems))
296 {
297 return false;
298 }
299
300 for (int i = 0; i < arsenalItems.Count(); i++)
301 {
302 SCR_ArsenalItem itemToSpawn = arsenalItems[i % arsenalItems.Count()];
303 if (!itemToSpawn)
304 continue;
305
306 availablePrefabs.Insert(itemToSpawn.GetItemResourceName());
307 }
308 return !availablePrefabs.IsEmpty();
309 }
310
311 //------------------------------------------------------------------------------------------------
314 {
315 //~ Safty if get assigned faction is called before the init
318
320 {
321 //~ Always use default faction
323 return SCR_Faction.Cast(m_FactionComponent.GetDefaultAffiliatedFaction());
324
325 SCR_Faction faction = SCR_Faction.Cast(m_FactionComponent.GetAffiliatedFaction());
326 if (!faction && m_bGetDefaultIfNoFaction)
327 {
328 faction = SCR_Faction.Cast(m_FactionComponent.GetDefaultAffiliatedFaction());
329 }
330
331 return faction;
332 }
333
334 return null;
335 }
336
337 //------------------------------------------------------------------------------------------------
341 bool GetFilteredArsenalItems(out notnull array<SCR_ArsenalItem> filteredArsenalItems, EArsenalItemDisplayType requiresDisplayType = -1)
342 {
343 //~ Is overwritting Arsenal
345 {
346 GetFilteredOverwriteArsenalItems(filteredArsenalItems, requiresDisplayType);
347 return !filteredArsenalItems.IsEmpty();
348 }
349
350 //~ Cannot get items if no entity catalog manager
351 SCR_EntityCatalogManagerComponent catalogManager = SCR_EntityCatalogManagerComponent.GetInstance();
352 if (!catalogManager)
353 return false;
354
355 //~ Get filtered list from faction (if any) or default
356 filteredArsenalItems = catalogManager.GetFilteredArsenalItems(m_eSupportedArsenalItemTypes, m_eSupportedArsenalItemModes, SCR_ArsenalManagerComponent.GetArsenalGameModeType_Static(), GetAssignedFaction(), requiresDisplayType);
357 return !filteredArsenalItems.IsEmpty();
358 }
359
360 //------------------------------------------------------------------------------------------------
364 bool GetFilteredOverwriteArsenalItems(out notnull array<SCR_ArsenalItem> filteredArsenalItems, EArsenalItemDisplayType requiresDisplayType = -1)
365 {
366 //~ If overwrite should check if item is valid for arsenal faction
368 filteredArsenalItems = m_OverwriteArsenalConfig.GetFilteredArsenalItems(m_eSupportedArsenalItemTypes, m_eSupportedArsenalItemModes, requiresDisplayType, GetAssignedFaction());
369 //~ Simply get the filtered items as no need to check the faction
370 else
371 filteredArsenalItems = m_OverwriteArsenalConfig.GetFilteredArsenalItems(m_eSupportedArsenalItemTypes, m_eSupportedArsenalItemModes, requiresDisplayType);
372
373 return !filteredArsenalItems.IsEmpty();
374 }
375
376 //------------------------------------------------------------------------------------------------
378 //~ Used by SCR_ArsenalDisplayComponent
380 {
381 }
382
383 //------------------------------------------------------------------------------------------------
386 void RefreshArsenal(bool init = false, SCR_Faction faction = null)
387 {
388 ClearArsenal();
389
390 array<SCR_ArsenalItem> arsenalItems = {};
391 if (!GetFilteredArsenalItems(arsenalItems))
392 return;
393
394 //SCR_Sorting<SCR_ArsenalItem, SCR_CompareArsenalItemPriority>.HeapSort(arsenalItems);
395
396 array<ResourceName> arsenalPrefabs = {};
397
398 int arsenalItemCount = arsenalItems.Count();
399 for (int i = 0; i < arsenalItemCount; i++)
400 {
401 SCR_ArsenalItem itemToSpawn = arsenalItems[i % arsenalItemCount];
402 if (!itemToSpawn)
403 continue;
404
405 arsenalPrefabs.Insert(itemToSpawn.GetItemResourceName());
406 }
407
409 m_OnArsenalUpdated.Invoke(arsenalPrefabs);
410
411 // If we know this is called form EOnInit we don't send any RPC.
412 // At that point RplComponent is not initialized yet and calling the RPC would only result in error spam.
413 if (!init && Replication.IsServer())
415 }
416
417 //------------------------------------------------------------------------------------------------
418 [RplRpc(RplChannel.Reliable, RplRcver.Broadcast)]
420 {
421 //~ Call later so faction is correctly updated
422 GetGame().GetCallqueue().CallLater(DelayedOnArsenalUpdatedClient, param1: itemTypes, param2: itemModes);
423 }
424
425 //------------------------------------------------------------------------------------------------
427 {
430
433
435 {
436 array<ResourceName> arsenalPrefabs = {};
437 GetAvailablePrefabs(arsenalPrefabs);
438
439 m_OnArsenalUpdated.Invoke(arsenalPrefabs);
440 }
441 }
442
443 //------------------------------------------------------------------------------------------------
444 protected bool GetItemValid(SCR_EArsenalItemType arsenalItemType, SCR_EArsenalItemMode arsenalItemMode)
445 {
446 return arsenalItemType & m_eSupportedArsenalItemTypes
447 && arsenalItemMode & m_eSupportedArsenalItemModes;
448 }
449
450 //------------------------------------------------------------------------------------------------
451 protected bool GetItemValid(SCR_Faction faction, int index, out bool isEmpty = true)
452 {
453 return true;
454 }
455
456 //------------------------------------------------------------------------------------------------
465
466 //------------------------------------------------------------------------------------------------
467 protected void OnFactionChanged(FactionAffiliationComponent owner, Faction previousFaction, Faction newFaction)
468 {
470 }
471
472 //------------------------------------------------------------------------------------------------
473 protected void OnArsenalGameModeTypeChanged(SCR_EArsenalGameModeType newArsenalGameModeType)
474 {
476 }
477
478 //------------------------------------------------------------------------------------------------
479 override protected void OnPostInit(IEntity owner)
480 {
482 return;
483
484 //~ Make sure it knows that it is disabled at the start
485 if (GetArsenalSaveType() == SCR_EArsenalSaveType.SAVING_DISABLED)
487
488 SetEventMask(owner, EntityEvent.INIT);
489
490 // Initialize inventory of arsenal, if applicable (Display racks without additional inventory will return here)
491 m_InventoryComponent = SCR_ArsenalInventoryStorageManagerComponent.Cast(owner.FindComponent(SCR_ArsenalInventoryStorageManagerComponent));
493 // Arsenal inventory is filled after OnPostInit by SCR_ArsenalInventoryStorageManagerComponent.FillInitialPrefabsToStore
494 }
495
496 //------------------------------------------------------------------------------------------------
497 override protected void EOnInit(IEntity owner)
498 {
499 m_FactionManager = GetGame().GetFactionManager();
501 if (!factionComponent && m_bAllowGetFactionFromParent)
502 GetGame().GetCallqueue().CallLater(FactionInit, param1: owner);
503 else
504 FactionInit(owner);
505
506 }
507
508 //------------------------------------------------------------------------------------------------
509 protected void FactionInit(IEntity owner)
510 {
511 //~ Faction is already init
513 return;
514
517 {
518 if (owner.GetParent())
520
522 return;
523 }
524 else if (!m_FactionComponent)
525 return;
526
527 RplComponent rplComponent = RplComponent.Cast(owner.FindComponent(RplComponent));
528
529 if (rplComponent && rplComponent.Role() == RplRole.Authority)
530 {
532 m_FactionComponent.GetOnFactionChanged().Insert(OnFactionChanged);
533
534 SCR_ArsenalManagerComponent arsenalManager;
535
536 if (SCR_ArsenalManagerComponent.GetArsenalManager(arsenalManager))
537 {
538 arsenalManager.GetOnArsenalGameModeTypeChanged().Insert(OnArsenalGameModeTypeChanged);
539 arsenalManager.GetOnArsenalTypeEnabledChanged().Insert(OnArsenalTypeEnabledChanged);
540 }
541
542 if (IsArsenalEnabled())
543 {
544 //~ If arsenal is enabled but the type is not on the manager, than disable it instead
546 SetArsenalEnabled(false, false);
547 }
548 else
549 {
550 //~ If arsenal is disabled on init than it is considered an overwrite
552 }
553
554 //~ Check if arsenal is enabled on init
556 }
557 }
558
559 //------------------------------------------------------------------------------------------------
560 override protected void OnDelete(IEntity owner)
561 {
563 return;
564
565 RplComponent rplComponent = RplComponent.Cast(owner.FindComponent(RplComponent));
566 if (rplComponent && rplComponent.Role() == RplRole.Authority)
567 {
569 m_FactionComponent.GetOnFactionChanged().Remove(OnFactionChanged);
570
571 SCR_ArsenalManagerComponent arsenalManager;
572
573 if (SCR_ArsenalManagerComponent.GetArsenalManager(arsenalManager))
574 {
575 arsenalManager.GetOnArsenalGameModeTypeChanged().Remove(OnArsenalGameModeTypeChanged);
576 arsenalManager.GetOnArsenalTypeEnabledChanged().Remove(OnArsenalTypeEnabledChanged);
577 }
578 }
579 }
580
581 //------------------------------------------------------------------------------------------------
582 override bool RplSave(ScriptBitWriter writer)
583 {
584 writer.WriteInt(m_eSupportedArsenalItemTypes);
585 writer.WriteInt(m_eSupportedArsenalItemModes);
586 writer.WriteInt(GetArsenalSaveType());
587 writer.WriteBool(m_bArsenalEnabled);
588 return true;
589 }
590
591 //------------------------------------------------------------------------------------------------
592 override bool RplLoad(ScriptBitReader reader)
593 {
594 int itemTypes, itemModes, saveType;
595 bool isArsenalEnabled;
596
597 reader.ReadInt(itemTypes);
598 reader.ReadInt(itemModes);
599 reader.ReadInt(saveType);
600 reader.ReadBool(isArsenalEnabled);
601
602 RPC_OnArsenalUpdated(itemTypes, itemModes);
603 RPL_SetArsenalSaveType(saveType);
604 SetArsenalEnabledBroadcast(isArsenalEnabled);
605
606 return true;
607 }
608}
609
610//------------------------------------------------------------------------------------------------
611enum SCR_EArsenalSaveType
612{
618}
619
620//------------------------------------------------------------------------------------------------
621enum SCR_EArsenalSupplyCostType
622{
626}
ArmaReforgerScripted GetGame()
Definition game.c:1398
SCR_ArsenalComponent FACTION_ITEMS_ONLY
Only allow saving if items the player has are items of the player faction.
SCR_ArsenalComponent FRIENDLY_AND_FACTION_ITEMS_ONLY
Only allow saving if items the player has are items of the player faction or from a faction friendly ...
SCR_ArsenalComponent SAVING_DISABLED
Saving is disabled.
func ScriptInvokerArsenalUpdatedMethod
SCR_ArsenalComponent GADGET_ARSENAL
If the arsenal is on a gadget it will try to take this cost if any is assigned in the catalog.
ScriptInvokerBase< ScriptInvokerArsenalUpdatedMethod > ScriptInvokerArsenalUpdated
SCR_ArsenalComponent RESPAWN_COST
Cost of item when the player spawns with the item.
SCR_ArsenalComponent NO_RESTRICTIONS
Always allow saving of arsenal.
SCR_ArsenalComponent IN_ARSENAL_ITEMS_ONLY
Only allows arsenal saving if all the items the player has are in the arsenal.
SCR_BaseGameMode GetGameMode()
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
SCR_EArsenalGameModeType
SCR_EArsenalItemMode
SCR_EArsenalItemType
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
proto external int SetEventMask(notnull IEntity owner, int mask)
void Rpc(func method, void p0=NULL, void p1=NULL, void p2=NULL, void p3=NULL, void p4=NULL, void p5=NULL, void p6=NULL, void p7=NULL)
proto external Managed FindComponent(typename typeName)
proto external IEntity GetParent()
Main replication API.
Definition Replication.c:14
bool GetItemValid(SCR_Faction faction, int index, out bool isEmpty=true)
SCR_EArsenalSaveType m_eArsenalSaveType
SCR_EArsenalAttributeGroup GetEditableAttributeGroups()
FactionManager m_FactionManager
SCR_EArsenalTypes GetArsenalType()
void OnArsenalTypeEnabledChanged(SCR_EArsenalTypes typesEnabled)
void RPL_SetArsenalSaveType(SCR_EArsenalSaveType saveType)
bool m_bHasSaveArsenalAction
Set by action in action manager for the editor to know if the Arsenal save action exists on this arse...
SCR_ArsenalInventoryStorageManagerComponent m_InventoryComponent
static SCR_ArsenalComponent FindArsenalComponent(notnull IEntity entity, bool getFromSlotted=true)
void OnDelete(IEntity owner)
void OnFactionChanged(FactionAffiliationComponent owner, Faction previousFaction, Faction newFaction)
ref ScriptInvokerArsenalUpdated m_OnArsenalUpdated
void SetArsenalEnabledBroadcast(bool enable)
SCR_EArsenalAttributeGroup m_eEditableAttributeGroups
void SetSupportedArsenalItemModes(SCR_EArsenalItemMode modes)
UniversalInventoryStorageComponent m_StorageComponent
SCR_FactionAffiliationComponent m_FactionComponent
SCR_EArsenalItemType m_eSupportedArsenalItemTypes
void SetHasSaveArsenalAction(bool hasSaveArsenalAction)
void SetArsenalEnabled(bool enable, bool isOverwrite=true)
bool GetAvailablePrefabs(out notnull array< ResourceName > availablePrefabs)
void DelayedOnArsenalUpdatedClient(SCR_EArsenalItemType itemTypes, SCR_EArsenalItemMode itemModes)
bool m_bArsenalSavingDisplayedIfDisabled
This is auto set on init and when arsenal save type is changed. If the prefab has saving disabled tha...
bool GetFilteredOverwriteArsenalItems(out notnull array< SCR_ArsenalItem > filteredArsenalItems, EArsenalItemDisplayType requiresDisplayType=-1)
void OnPostInit(IEntity owner)
bool GetItemValid(SCR_EArsenalItemType arsenalItemType, SCR_EArsenalItemMode arsenalItemMode)
SCR_EArsenalSupplyCostType m_eSupplyCostType
void OnArsenalGameModeTypeChanged(SCR_EArsenalGameModeType newArsenalGameModeType)
void SetArsenalSaveType(SCR_EArsenalSaveType saveType)
SCR_EArsenalItemMode m_eSupportedArsenalItemModes
ref SCR_ArsenalItemListConfig m_OverwriteArsenalConfig
SCR_ArsenalItemListConfig GetOverwriteArsenalConfig()
SCR_EArsenalSaveType GetArsenalSaveType()
void FactionInit(IEntity owner)
void RefreshArsenal(bool init=false, SCR_Faction faction=null)
override bool RplLoad(ScriptBitReader reader)
void RPC_OnArsenalUpdated(SCR_EArsenalItemType itemTypes, SCR_EArsenalItemMode itemModes)
bool GetFilteredArsenalItems(out notnull array< SCR_ArsenalItem > filteredArsenalItems, EArsenalItemDisplayType requiresDisplayType=-1)
SCR_EArsenalSupplyCostType GetSupplyCostType()
SCR_EArsenalTypes m_eArsenalTypes
SCR_EArsenalItemMode GetSupportedArsenalItemModes()
override bool RplSave(ScriptBitWriter writer)
ScriptInvokerArsenalUpdated GetOnArsenalUpdated()
SCR_ArsenalInventoryStorageManagerComponent GetArsenalInventoryComponent()
void EOnInit(IEntity owner)
SCR_EArsenalItemMode m_eOnDisableArsenalModes
SCR_EArsenalItemType GetSupportedArsenalItemTypes()
void SetSupportedArsenalItemTypes(SCR_EArsenalItemType types)
ResourceName GetItemResourceName()
sealed bool IsMaster()
static bool IsEditMode()
Definition Functions.c:1566
proto external GenericEntity GetOwner()
Get owner entity.
@ DEFAULT
Use currently set main RT format (based on game options).
SCR_FieldOfViewSettings Attribute
EntityEvent
Various entity events.
Definition EntityEvent.c:14
RplRole
Role of replicated node (and all items in it) within the replication system.
Definition RplRole.c:14
void RplRpc(RplChannel channel, RplRcver rcver, RplCondition condition=RplCondition.None, string customConditionName="")
Definition EnNetwork.c:95
RplRcver
Definition RplRcver.c:59
RplChannel
Communication channel. Reliable is guaranteed to be delivered. Unreliable not.
Definition RplChannel.c:14
T2 param2
Definition tuple.c:92
Tuple param1