Arma Reforger Explorer  1.1.0.42
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
SCR_CampaignBuildingCompositionComponent.c
Go to the documentation of this file.
1 [EntityEditorProps(category: "Game/Building", description: "Component attached to compositions.")]
3 {
4 }
5 
6 class SCR_CampaignBuildingCompositionComponent : ScriptComponent
7 {
8  [Attribute()]
9  protected ref SCR_AudioSourceConfiguration m_AudioSourceConfigurationSpawn;
10 
11  [Attribute()]
12  protected ref SCR_AudioSourceConfiguration m_AudioSourceConfigurationDespawn;
13 
14  // Could be for example a base to which this composition belongs to.
15  protected IEntity m_ProviderEntity;
16  protected RplId m_RplCompId;
19  protected int m_iCost;
20  protected int m_iPrefabId;
21  protected bool m_bInteractionLock;
22 
23  [RplProp(onRplName: "OnCompositionSpawned")]
24  protected bool m_bCompositionIsSpawned;
25 
28 
29  protected static const int INVALID_PLAYER_ID = 0;
30 
31  //------------------------------------------------------------------------------------------------
32  override void OnPostInit(IEntity owner)
33  {
34  SetEventMask(owner, EntityEvent.INIT);
35 
36  SCR_EditorLinkComponent linkComponent = SCR_EditorLinkComponent.Cast(owner.FindComponent(SCR_EditorLinkComponent));
37  if (!linkComponent || !linkComponent.IsSpawningIgnored())
38  {
39  m_bInteractionLock = true;
40  return;
41  }
42 
43  if (IsProxy())
44  return;
45 
46  BaseGameMode gameMode = GetGame().GetGameMode();
47  if (!gameMode)
48  return;
49 
50  SCR_CampaignBuildingManagerComponent buildingManagerComponent = SCR_CampaignBuildingManagerComponent.Cast(gameMode.FindComponent(SCR_CampaignBuildingManagerComponent));
51  if (!buildingManagerComponent)
52  return;
53 
55  if (!editableEntity)
56  return;
57 
58  ResourceName resName = editableEntity.GetPrefab();
59  if (resName.IsEmpty())
60  return;
61 
62  int prefabId = buildingManagerComponent.GetCompositionId(resName);
63  if (prefabId == -1)
64  return;
65 
66  SpawnCompositionLayout(prefabId, editableEntity);
67  }
68 
69  //------------------------------------------------------------------------------------------------
74  {
75  if (!entity)
76  return;
77 
78  Resource compositionOutlineResource = Resource.Load(GetOutlineToSpawn(entity));
79  if (!compositionOutlineResource.IsValid())
80  return;
81 
82  EntitySpawnParams spawnParams = new EntitySpawnParams();
83  spawnParams.TransformMode = ETransformMode.WORLD;
84  spawnParams.Parent = entity.GetOwner();
85 
86  IEntity compositionLayout = GetGame().SpawnEntityPrefab(compositionOutlineResource, GetGame().GetWorld(), spawnParams);
87  if (!compositionLayout)
88  return;
89 
90  SCR_CampaignBuildingLayoutComponent layoutComponent = SCR_CampaignBuildingLayoutComponent.Cast(compositionLayout.FindComponent(SCR_CampaignBuildingLayoutComponent));
91  if (!layoutComponent)
92  return;
93 
94  SCR_CampaignBuildingCompositionComponent compositionComponent = SCR_CampaignBuildingCompositionComponent.Cast(entity.GetOwner().FindComponent(SCR_CampaignBuildingCompositionComponent));
95  if (!compositionComponent)
96  return;
97 
98  // If the spawned composition has a service component, mark service as "under construction"
99  SCR_ServicePointComponent serviceComponent = SCR_ServicePointComponent.Cast(entity.GetOwner().FindComponent(SCR_ServicePointComponent));
100  if (serviceComponent)
101  serviceComponent.SetServiceState(SCR_EServicePointStatus.UNDER_CONSTRUCTION);
102 
103  layoutComponent.SetPrefabId(prefabId);
104  compositionComponent.SetPrefabId(prefabId);
105  }
106 
107  //------------------------------------------------------------------------------------------------
109  ResourceName GetOutlineToSpawn(notnull SCR_EditableEntityComponent entity)
110  {
111  BaseGameMode gameMode = GetGame().GetGameMode();
112  if (!gameMode)
113  return string.Empty;
114 
115  SCR_CampaignBuildingManagerComponent buildingManagerComponent = SCR_CampaignBuildingManagerComponent.Cast(gameMode.FindComponent(SCR_CampaignBuildingManagerComponent));
116  if (!buildingManagerComponent)
117  return string.Empty;
118 
119  SCR_CampaignBuildingCompositionOutlineManager outlineManager = buildingManagerComponent.GetOutlineManager();
120  if (!outlineManager)
121  return string.Empty;
122 
123  return outlineManager.GetCompositionOutline(entity);
124  }
125 
126  //------------------------------------------------------------------------------------------------
127  override void EOnInit(IEntity owner)
128  {
129  SCR_EditorLinkComponent linkComponent = SCR_EditorLinkComponent.Cast(owner.FindComponent(SCR_EditorLinkComponent));
130  if (!linkComponent)
131  return;
132 
134  if (!editableEnt)
135  return;
136 
137  SetCompositionCost(editableEnt);
138 
139  linkComponent.GetOnLinkedEntitiesSpawned().Insert(SetIsCompositionSpawned);
140  }
141 
142  //------------------------------------------------------------------------------------------------
145  {
146  if (SCR_EntityHelper.GetMainParent(GetOwner(), true) != GetOwner())
147  return;
148 
149  IEntity child = GetOwner().GetChildren();
150  while (child)
151  {
152  // The preview exist at this moment but will be deleted, skip it.
153  SCR_BasePreviewEntity previewEnt = SCR_BasePreviewEntity.Cast(child);
154  if (previewEnt)
155  {
156  child = child.GetSibling();
157  continue;
158  }
159 
160  // The layout of the composition wasn't deleted yet in this frame. Skip it.
161  SCR_CampaignBuildingLayoutComponent layoutComponent = SCR_CampaignBuildingLayoutComponent.Cast(child.FindComponent(SCR_CampaignBuildingLayoutComponent));
162  if (layoutComponent)
163  {
164  child = child.GetSibling();
165  continue;
166  }
167 
168  // Look for all childs with destruction component among childs of root entity. If there is at least one entity without this component, we don't have to continue, as the root entity will never stay alone - so there isn't need to delete it.
169  SCR_DestructionMultiPhaseComponent destructionComponent = SCR_DestructionMultiPhaseComponent.Cast(child.FindComponent(SCR_DestructionMultiPhaseComponent));
170  if (!destructionComponent)
171  return;
172 
173  child = child.GetSibling();
174  }
175 
176  SCR_DestructionDamageManagerComponent.GetOnDestructibleDestroyedInvoker().Insert(DestructibleEntityDestroyed);
177  }
178 
179  //------------------------------------------------------------------------------------------------
182  void DestructibleEntityDestroyed(SCR_DestructionMultiPhaseComponent component)
183  {
184  // Calling one frame later as by the end of this one, the entity that triggered this can still exist.
185  GetGame().GetCallqueue().CallLater(CheckExistingChild, 1, false);
186  }
187 
188  //------------------------------------------------------------------------------------------------
191  {
192  if (SCR_EntityHelper.GetChildrenCount(GetOwner()) == 0)
193  SCR_EntityHelper.DeleteEntityAndChildren(GetOwner());
194  }
195 
196  //------------------------------------------------------------------------------------------------
197  // Called when the composition is spawned (gradual building)
198  protected void SetIsCompositionSpawned()
199  {
201  Replication.BumpMe();
202 
205 
206  if (!IsProxy())
207  {
209  if (editable)
210  editable.SetEntityFlag(EEditableEntityFlag.SPAWN_UNFINISHED, false);
211 
213  }
214 
216  m_OnCompositionSpawned.Invoke(true);
217  }
218 
219  //------------------------------------------------------------------------------------------------
221  protected void OnCompositionSpawned()
222  {
224 
226  m_OnCompositionSpawned.Invoke(true);
227  }
228 
229  //------------------------------------------------------------------------------------------------
232  {
235 
236  return m_OnCompositionSpawned;
237  }
238 
239  //------------------------------------------------------------------------------------------------
242  protected void SetCompositionCost(notnull SCR_EditableEntityComponent editableEnt)
243  {
244  array<ref SCR_EntityBudgetValue> outBudgets = {};
245  editableEnt.GetEntityBudgetCost(outBudgets, GetOwner());
246  foreach (SCR_EntityBudgetValue budgetEnt : outBudgets)
247  {
248  if (budgetEnt.GetBudgetType() == EEditableEntityBudget.CAMPAIGN)
249  {
250  m_iCost = budgetEnt.GetBudgetValue();
251  return;
252  }
253  }
254  }
255 
256  //------------------------------------------------------------------------------------------------
258  // Set composition ID which is used to identify composition by building mode.
259  void SetPrefabId(int prefabId)
260  {
261  m_iPrefabId = prefabId;
262  }
263 
264  //------------------------------------------------------------------------------------------------
267  {
268  return m_iCost;
269  }
270 
271  //------------------------------------------------------------------------------------------------
274  {
275  return m_iPrefabId;
276  }
277 
278  //------------------------------------------------------------------------------------------------
282  {
284  }
285 
286  //------------------------------------------------------------------------------------------------
289  {
290  if (!m_OnBuilderSet)
292 
293  return m_OnBuilderSet;
294  }
295 
296  //------------------------------------------------------------------------------------------------
298  void SetProviderEntity(IEntity newOwner)
299  {
300  m_ProviderEntity = newOwner;
301  if (m_OnBuilderSet)
302  m_OnBuilderSet.Invoke();
303  }
304 
305  //------------------------------------------------------------------------------------------------
308  {
309  return m_ProviderEntity;
310  }
311 
312  //------------------------------------------------------------------------------------------------
315  {
316  m_ProviderEntity = null;
317  }
318 
319  //------------------------------------------------------------------------------------------------
321  void SetBuilderId(int id)
322  {
323  m_iBuilderId = id;
324  }
325 
326  //------------------------------------------------------------------------------------------------
329  {
330  return m_iBuilderId;
331  }
332 
333  //------------------------------------------------------------------------------------------------
336  void SetInteractionLock(bool lockState)
337  {
338  m_bInteractionLock = lockState;
339  AfterLockChanged(lockState);
340  }
341 
342  //------------------------------------------------------------------------------------------------
344  void SetInteractionLockServer(bool lockState)
345  {
346  SetInteractionLock(lockState);
347  Rpc(RpcDo_SetCompositionLock, lockState);
348  }
349 
350  //------------------------------------------------------------------------------------------------
353  {
354  return m_bInteractionLock;
355  }
356 
357  //------------------------------------------------------------------------------------------------
360  // Run evaluation if the entity still pass the given filter.
361  void AfterLockChanged(bool lockState)
362  {
364  if (!entity)
365  return;
366 
368  if (filter)
369  filter.Validate(entity);
370 
371  // ignore the following code if the compositino was locked
372  if (lockState)
373  return;
374 
376  if (!core)
377  return;
378 
379  SCR_EditorManagerEntity editorManager = core.GetEditorManager();
380  if (!editorManager)
381  return;
382 
383  SCR_EditorModeEntity modeEntity = editorManager.FindModeEntity(EEditorMode.BUILDING);
384  if (!modeEntity)
385  return;
386 
387  SCR_CampaignBuildingTransformingEditorComponent transformComponent = SCR_CampaignBuildingTransformingEditorComponent.Cast(modeEntity.FindComponent(SCR_CampaignBuildingTransformingEditorComponent));
388  if (!transformComponent)
389  return;
390 
391  transformComponent.ReleaseLastRejectedPivot();
392  }
393 
394  //------------------------------------------------------------------------------------------------
396  void SetProviderEntityServer(IEntity newOwner)
397  {
398  SetProviderEntity(newOwner);
399 
400  RplId id = RplId.Invalid();
401 
402  if (newOwner)
403  {
404  RplComponent comp = RplComponent.Cast(newOwner.FindComponent(RplComponent));
405  if (comp)
406  id = comp.Id();
407  }
408 
409  Rpc(RpcDo_SetProviderEntity, id);
410  }
411 
412  //------------------------------------------------------------------------------------------------
415  {
417  if (m_EditorModeEntity)
418  m_EditorModeEntity.GetOnClosedServer().Remove(RemoveProviderEntityServer);
420  }
421 
422  //------------------------------------------------------------------------------------------------
426  {
427  m_EditorModeEntity = ent;
428  ent.GetOnClosedServer().Insert(RemoveProviderEntityServer);
429  }
430 
431  //------------------------------------------------------------------------------------------------
434  {
435  RplComponent rplComp = RplComponent.Cast(Replication.FindItem(m_RplCompId));
436  if (!rplComp)
437  return;
438 
439  SCR_CampaignBuildingProviderComponent.GetOnProviderCreated().Remove(SetProviderFromRplID);
440  SetProviderEntity(rplComp.GetEntity());
441  }
442 
443  //------------------------------------------------------------------------------------------------
446  {
447  if (!m_AudioSourceConfigurationSpawn || !m_AudioSourceConfigurationSpawn.IsValid())
448  return;
449 
450  SCR_SoundManagerEntity soundManagerEntity = GetGame().GetSoundManagerEntity();
451  if (soundManagerEntity)
452  soundManagerEntity.CreateAndPlayAudioSource(GetOwner(), m_AudioSourceConfigurationSpawn);
453  }
454 
455  //------------------------------------------------------------------------------------------------
456  protected bool IsProxy()
457  {
458  RplComponent rplComponent = RplComponent.Cast(GetOwner().FindComponent(RplComponent));
459  return (rplComponent && rplComponent.IsProxy());
460  }
461 
462  //------------------------------------------------------------------------------------------------
463  [RplRpc(RplChannel.Reliable, RplRcver.Broadcast)]
464  protected void RpcDo_RemoveProviderEntity()
465  {
467  }
468 
469  //------------------------------------------------------------------------------------------------
470  [RplRpc(RplChannel.Reliable, RplRcver.Broadcast)]
471  protected void RpcDo_SetProviderEntity(RplId rplCompId)
472  {
473  IEntity newOwner = null;
474 
475  RplComponent rplComp = RplComponent.Cast(Replication.FindItem(rplCompId));
476  if (rplComp)
477  newOwner = IEntity.Cast(rplComp.GetEntity());
478 
479  SetProviderEntity(newOwner);
480  }
481 
482  //------------------------------------------------------------------------------------------------
483  [RplRpc(RplChannel.Reliable, RplRcver.Broadcast)]
484  protected void RpcDo_SetCompositionLock(bool lockState)
485  {
486  SetInteractionLock(lockState);
487  }
488 
489  //------------------------------------------------------------------------------------------------
490  override bool RplSave(ScriptBitWriter writer)
491  {
492  writer.WriteBool(m_bInteractionLock);
493 
494  if (!m_ProviderEntity)
495  {
496  writer.WriteBool(0);
497  return true;
498  }
499 
500  RplComponent rplComp = RplComponent.Cast(m_ProviderEntity.FindComponent(RplComponent));
501  if (!rplComp)
502  {
503  writer.WriteBool(0);
504  return true;
505  }
506 
507  writer.WriteBool(1);
508  writer.WriteRplId(rplComp.Id());
509  writer.WriteInt(m_iBuilderId);
510  return true;
511  }
512 
513  //------------------------------------------------------------------------------------------------
514  override bool RplLoad(ScriptBitReader reader)
515  {
516  reader.ReadBool(m_bInteractionLock);
517 
518  bool providerExist;
519  reader.ReadBool(providerExist);
520  if (!providerExist)
521  return true;
522 
523  reader.ReadRplId(m_RplCompId);
524  RplComponent rplComp = RplComponent.Cast(Replication.FindItem(m_RplCompId));
525  if (!rplComp)
526  {
527  SCR_CampaignBuildingProviderComponent.GetOnProviderCreated().Insert(SetProviderFromRplID);
528  return true;
529  }
530 
531  reader.ReadInt(m_iBuilderId);
532  SetProviderEntity(rplComp.GetEntity());
533 
534  return true;
535  }
536 
537  //------------------------------------------------------------------------------------------------
538  override void OnDelete(IEntity owner)
539  {
541  return;
542 
543  SCR_SoundManagerEntity soundManagerEntity = GetGame().GetSoundManagerEntity();
544  if (soundManagerEntity)
545  soundManagerEntity.CreateAndPlayAudioSource(owner, m_AudioSourceConfigurationDespawn);
546  }
547 }
m_OnCompositionSpawned
protected ref ScriptInvokerBool m_OnCompositionSpawned
Definition: SCR_CampaignBuildingCompositionComponent.c:27
GetCompositionCost
int GetCompositionCost()
Definition: SCR_CampaignBuildingCompositionComponent.c:266
m_OnBuilderSet
protected ref ScriptInvokerVoid m_OnBuilderSet
Definition: SCR_CampaignBuildingCompositionComponent.c:26
EEditableEntityState
EEditableEntityState
Definition: EEditableEntityState.c:37
IsInteractionLocked
bool IsInteractionLocked()
Definition: SCR_CampaignBuildingCompositionComponent.c:352
SetPrefabId
void SetPrefabId(int prefabId)
Definition: SCR_CampaignBuildingCompositionComponent.c:259
EEditableEntityFlag
EEditableEntityFlag
Unique flags of the entity.
Definition: EEditableEntityFlag.c:5
SetCompositionCost
protected void SetCompositionCost(notnull SCR_EditableEntityComponent editableEnt)
Definition: SCR_CampaignBuildingCompositionComponent.c:242
SpawnCompositionLayout
void SpawnCompositionLayout(int prefabId, SCR_EditableEntityComponent entity)
Definition: SCR_CampaignBuildingCompositionComponent.c:73
SCR_EntityHelper
Definition: SCR_EntityHelper.c:1
GetOutlineToSpawn
ResourceName GetOutlineToSpawn(notnull SCR_EditableEntityComponent entity)
Search for the outline that is assigned to this composition to be spawned.
Definition: SCR_CampaignBuildingCompositionComponent.c:109
m_iPrefabId
protected int m_iPrefabId
Definition: SCR_CampaignBuildingCompositionComponent.c:20
EntityEditorProps
enum EQueryType EntityEditorProps(category:"GameScripted/Sound", description:"THIS IS THE SCRIPT DESCRIPTION.", color:"0 0 255 255")
Definition: SCR_AmbientSoundsComponent.c:12
ScriptComponent
SCR_SiteSlotEntityClass ScriptComponent
GetPrefabId
int GetPrefabId()
Definition: SCR_CampaignBuildingCompositionComponent.c:273
SetDestroyEvents
void SetDestroyEvents()
Set the destroy event to root entity, when all direct child are destructible.
Definition: SCR_CampaignBuildingCompositionComponent.c:144
m_ProviderEntity
protected IEntity m_ProviderEntity
Definition: SCR_CampaignBuildingCompositionComponent.c:15
m_bCompositionIsSpawned
protected bool m_bCompositionIsSpawned
Definition: SCR_CampaignBuildingCompositionComponent.c:24
SetInteractionLock
void SetInteractionLock(bool lockState)
Definition: SCR_CampaignBuildingCompositionComponent.c:336
RplProp
SCR_RplTestEntityClass RplProp
Used for handling entity spawning requests for SCR_CatalogEntitySpawnerComponent and inherited classe...
GetGame
ArmaReforgerScripted GetGame()
Definition: game.c:1424
RplLoad
override bool RplLoad(ScriptBitReader reader)
Definition: SCR_CampaignBuildingCompositionComponent.c:514
OnDelete
override void OnDelete(IEntity owner)
Definition: SCR_CampaignBuildingCompositionComponent.c:538
m_RplCompId
protected RplId m_RplCompId
Definition: SCR_CampaignBuildingCompositionComponent.c:16
SetProviderFromRplID
void SetProviderFromRplID()
Set a provider, loaded from RPL ID.
Definition: SCR_CampaignBuildingCompositionComponent.c:433
SCR_BasePreviewEntity
Definition: SCR_BasePreviewEntity.c:9
SCR_CampaignBuildingCompositionComponentClass
Definition: SCR_CampaignBuildingCompositionComponent.c:2
SCR_EditorModeEntity
Definition: SCR_EditorModeEntity.c:22
RplRpc
SCR_AchievementsHandlerClass ScriptComponentClass RplRpc(RplChannel.Reliable, RplRcver.Owner)] void UnlockOnClient(AchievementId achievement)
Definition: SCR_AchievementsHandler.c:11
SCR_SoundManagerEntity
Definition: SCR_SoundManagerEntity.c:17
EEditableEntityBudget
EEditableEntityBudget
Definition: EEditableEntityBudget.c:1
CheckExistingChild
void CheckExistingChild()
Check if this entity doesn't have any child. If so, delete it.
Definition: SCR_CampaignBuildingCompositionComponent.c:190
IsCompositionSpawned
bool IsCompositionSpawned()
Definition: SCR_CampaignBuildingCompositionComponent.c:281
RplSave
override bool RplSave(ScriptBitWriter writer)
Definition: SCR_CampaignBuildingCompositionComponent.c:490
SetClearProviderEvent
void SetClearProviderEvent(notnull SCR_EditorModeEntity ent)
Definition: SCR_CampaignBuildingCompositionComponent.c:425
RpcDo_SetCompositionLock
protected void RpcDo_SetCompositionLock(bool lockState)
Definition: SCR_CampaignBuildingCompositionComponent.c:484
RpcDo_RemoveProviderEntity
protected void RpcDo_RemoveProviderEntity()
Definition: SCR_CampaignBuildingCompositionComponent.c:464
GetOnBuilderSet
ScriptInvokerVoid GetOnBuilderSet()
Definition: SCR_CampaignBuildingCompositionComponent.c:288
IsProxy
protected bool IsProxy()
Definition: SCR_CampaignBuildingCompositionComponent.c:456
RemoveProviderEntity
void RemoveProviderEntity()
Remove provider entity when the provider is not a base and the building mode was terminated.
Definition: SCR_CampaignBuildingCompositionComponent.c:314
SCR_CampaignBuildingCompositionOutlineManager
Definition: SCR_CampaignBuildingCompositionOutlineRegistry.c:6
m_AudioSourceConfigurationDespawn
protected ref SCR_AudioSourceConfiguration m_AudioSourceConfigurationDespawn
Definition: SCR_CampaignBuildingCompositionComponent.c:12
GetOnCompositionSpawned
ScriptInvokerBool GetOnCompositionSpawned()
Definition: SCR_CampaignBuildingCompositionComponent.c:231
SCR_EditorManagerCore
Core component to manage SCR_EditorManagerEntity.
Definition: SCR_EditorManagerCore.c:5
ScriptInvokerBool
ScriptInvokerBase< ScriptInvokerBoolMethod > ScriptInvokerBool
Definition: SCR_ScriptInvokerHelper.c:41
OnPostInit
override void OnPostInit(IEntity owner)
Called on PostInit when all components are added.
Definition: SCR_CampaignBuildingCompositionComponent.c:32
SCR_EntityBudgetValue
Definition: SCR_EntityBudgetValue.c:2
SetProviderEntityServer
void SetProviderEntityServer(IEntity newOwner)
Definition: SCR_CampaignBuildingCompositionComponent.c:396
GetOwner
IEntity GetOwner()
Owner entity of the fuel tank.
Definition: SCR_FuelNode.c:128
SetProviderEntity
void SetProviderEntity(IEntity newOwner)
Definition: SCR_CampaignBuildingCompositionComponent.c:298
OnCompositionSpawned
protected void OnCompositionSpawned()
An event called on proxi when composition is spawned.
Definition: SCR_CampaignBuildingCompositionComponent.c:221
SCR_BaseEditableEntityFilter
Definition: SCR_BaseEditableEntityFilter.c:13
SCR_EditableEntityComponent
Definition: SCR_EditableEntityComponent.c:13
EOnInit
override void EOnInit(IEntity owner)
Definition: SCR_CampaignBuildingCompositionComponent.c:127
EEditorMode
EEditorMode
Editor mode that defines overall functionality.
Definition: EEditorMode.c:5
ScriptInvokerVoid
ScriptInvokerBase< ScriptInvokerVoidMethod > ScriptInvokerVoid
Definition: SCR_ScriptInvokerHelper.c:9
RemoveProviderEntityServer
void RemoveProviderEntityServer()
Remove provider entity when the provider is not a base and the building mode was terminated....
Definition: SCR_CampaignBuildingCompositionComponent.c:414
INVALID_PLAYER_ID
SCR_TaskNetworkComponentClass INVALID_PLAYER_ID
Takes care of tasks-specific server <> client communication and requests.
AfterLockChanged
void AfterLockChanged(bool lockState)
Definition: SCR_CampaignBuildingCompositionComponent.c:361
m_iBuilderId
protected int m_iBuilderId
Definition: SCR_CampaignBuildingCompositionComponent.c:18
m_iCost
protected int m_iCost
Definition: SCR_CampaignBuildingCompositionComponent.c:19
DestructibleEntityDestroyed
void DestructibleEntityDestroyed(SCR_DestructionMultiPhaseComponent component)
Definition: SCR_CampaignBuildingCompositionComponent.c:182
SetInteractionLockServer
void SetInteractionLockServer(bool lockState)
Definition: SCR_CampaignBuildingCompositionComponent.c:344
GetProviderEntity
IEntity GetProviderEntity()
Definition: SCR_CampaignBuildingCompositionComponent.c:307
RpcDo_SetProviderEntity
protected void RpcDo_SetProviderEntity(RplId rplCompId)
Definition: SCR_CampaignBuildingCompositionComponent.c:471
SetIsCompositionSpawned
protected void SetIsCompositionSpawned()
Definition: SCR_CampaignBuildingCompositionComponent.c:198
Attribute
SCR_CampaignBuildingCompositionComponentClass ScriptComponentClass Attribute()] protected ref SCR_AudioSourceConfiguration m_AudioSourceConfigurationSpawn
GetBuilderId
int GetBuilderId()
Definition: SCR_CampaignBuildingCompositionComponent.c:328
m_EditorModeEntity
private SCR_EditorModeEntity m_EditorModeEntity
Definition: SCR_CampaignBuildingCompositionComponent.c:17
m_bInteractionLock
protected bool m_bInteractionLock
Definition: SCR_CampaignBuildingCompositionComponent.c:21
CompositionBuildSound
void CompositionBuildSound()
Play the sound when the composition is fully spawned.
Definition: SCR_CampaignBuildingCompositionComponent.c:445
category
params category
Definition: SCR_VehicleDamageManagerComponent.c:180
SetBuilderId
void SetBuilderId(int id)
Definition: SCR_CampaignBuildingCompositionComponent.c:321
SCR_EditorManagerEntity
Definition: SCR_EditorManagerEntity.c:26