1[
ComponentEditorProps(
category:
"GameScripted/Editor", description:
"Manager of current layer. Works only with SCR_EditorBaseEntity!", icon:
"WBData/ComponentEditorProps/componentEditor.png")]
55 return Event_OnCurrentLayerChange;
61 if (prevModeEntity && prevModeEntity.GetModeType() ==
EEditorMode.EDIT)
80 m_CurrentLayer = entity;
81 Event_OnCurrentLayerChange.Invoke(m_CurrentLayer, prevCurrentLayer);
90 if (!currentLayer)
return;
110 if (!parent) parent = entity;
121 return m_CurrentLayer;
129 array<RplId> entityIDs =
new array<RplId>();
133 entities[0].GetTransform(transform);
134 transform[3] = worldPosition;
138 if (entity.IsReplicated(entityID))
139 entityIDs.Insert(entityID);
149 spawnParams.Transform = transform;
202 if (!onlyDirect && (entity == m_CurrentLayer || !m_CurrentLayer))
217 if (entity == m_CurrentLayer)
229 if (entity == m_CurrentLayer)
255 array<RplId> entityIDs =
new array<RplId>();
259 if (entity.IsReplicated(entityID))
260 entityIDs.Insert(entityID);
279 selectParentAfterMove = (selectParentAfterMove &&
layer != null);
312 set<SCR_EditableEntityComponent> leaderSet =
new set<SCR_EditableEntityComponent>;
361 if (entitiesSelected && !entitiesSelected.IsEmpty())
375 if (entitiesDeselected && !entitiesDeselected.IsEmpty())
422 set<SCR_EditableEntityComponent> entities =
new set<SCR_EditableEntityComponent>();
424 foreach (
RplId entityID: entityIDs)
428 entities.Insert(entityCandidate);
434 bool parentInEntities =
false;
438 if (entities.Find(parent) != -1)
440 parentInEntities =
true;
445 if (!parentInEntities)
447 entity.SetParentEntity(
layer,
true);
458 editorSettings.Get(
"m_bLayerEditing", state);
465 if (entity == m_CurrentLayer)
480 if (m_CurrentLayer && !m_CurrentLayer.HasAccessInHierarchy())
487 string currentLayerName =
"/";
493 currentLayerName =
"/" + currentLayer.
GetDisplayName() + currentLayerName;
497 debugTexts.Insert(
"Current Layer: Root:" + currentLayerName);
508 SCR_AccessKeysEditorComponent accessKeysManager = SCR_AccessKeysEditorComponent.Cast(
GetInstance(SCR_AccessKeysEditorComponent));
509 if (accessKeysManager)
527 SCR_AccessKeysEditorComponent accessKeysManager = SCR_AccessKeysEditorComponent.Cast(
GetInstance(SCR_AccessKeysEditorComponent));
528 if (accessKeysManager)
539 super.EOnEditorOpen();
552 super.EOnEditorClose();
ArmaReforgerScripted GetGame()
enum EAIGroupCombatMode ComponentEditorProps(category:"GameScripted/AI", description:"Component for utility AI system for groups")
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
void SCR_EditorManagerEntity(IEntitySource src, IEntity parent)
proto external bool IsActive()
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)
Object holding reference to resource. In destructor release the resource.
Replication item identifier.
static SCR_BaseEditableEntityFilter GetInstance(EEditableEntityState state, bool showError=false)
void SCR_BaseEditorComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
static Managed GetInstance(typename type, bool showError=false, bool modeFirst=false)
bool HasEntityFlag(EEditableEntityFlag flag)
bool HasAccessInHierarchy(EEditableEntityAccessKey accessKey)
static SCR_EditableEntityComponent GetEditableEntity(IEntity owner)
SCR_EditableEntityComponent SetParentEntity(SCR_EditableEntityComponent parentEntity, bool changedByUser=false)
bool GetVisibleInHierarchy()
SCR_EditableEntityComponent GetParentEntity()
override void OnDelete(IEntity owner)
void OnEditableParentChanged(SCR_EditableEntityComponent entity, SCR_EditableEntityComponent newParent, SCR_EditableEntityComponent prevParent)
SCR_EditableEntityComponent GetCurrentLayer()
void CreateNewLayerWithSelectedRpl(notnull array< RplId > entityIDs, vector transform[4], RplId currentLayerID)
bool m_bSelectParentAfterMove
SCR_EditableEntityCore m_Core
bool m_bSelectAfterMoveCanceled
void MoveToLayerServer(notnull array< RplId > entityIDs, RplId layerID)
void MoveToCurrentLayer(notnull set< SCR_EditableEntityComponent > entities)
SCR_EditableEntityComponent GetParentBelowCurrentLayer(SCR_EditableEntityComponent entity)
override void EOnEditorClose()
void ToggleCurrentLayer(SCR_EditableEntityComponent entity)
ref set< SCR_EditableEntityComponent > m_EntitiesToSelectAfterMove
void SplitGroupAndAddCharacters(SCR_EditableCharacterComponent leader, notnull set< SCR_EditableEntityComponent > entities)
bool IsEditingLayersEnabled()
void CreateNewLayerWithSelected(notnull set< SCR_EditableEntityComponent > entities, vector worldPosition)
bool m_bEditingLayersEnabled
void MoveToLayer(notnull set< SCR_EditableEntityComponent > entities, SCR_EditableEntityComponent layer)
void OnUserSettingsChanged()
void MoveToLayerAndSelect(notnull set< SCR_EditableEntityComponent > entities, SCR_EditableEntityComponent layer, bool selectParentAfterMove=false)
void AddCharactersToGroup(notnull set< SCR_EditableEntityComponent > entities, SCR_EditableEntityComponent group)
void ClearEntitiesSelectAfterMove()
void OnSelectionChanged(EEditableEntityState state, set< SCR_EditableEntityComponent > entitiesSelected, set< SCR_EditableEntityComponent > entitiesDeselected)
SCR_BaseEditableEntityFilter m_SelectionFilter
ResourceName m_sNewLayerPrefab
ScriptInvoker GetOnCurrentLayerChange()
void SetEditingLayersEnabled(bool enableLayerEditing)
override void EOnEditorInit()
override void EOnEditorDelete()
override void EOnEditorOpen()
void DelayedSelectMovedEntity(SCR_EditableEntityComponent entity)
void OnAccessKeysChanged()
override void EOnEditorDebug(array< string > debugTexts)
void OnEditorModeChanged(SCR_EditorModeEntity currentModeEntity, SCR_EditorModeEntity prevModeEntity)
void OnEntityVisibilityChanged(SCR_EditableEntityComponent entity)
void SetCurrentLayer(SCR_EditableEntityComponent entity)
bool IsUnderCurrentLayer(SCR_EditableEntityComponent entity, bool onlyDirect=false, bool applyExceptions=false)
SCR_EditableEntityComponent m_NewGroupLeader
void OnEntityUnregistered(SCR_EditableEntityComponent entity)
void SetCurrentLayerToParent()
void OnEntityAccessKeyChanged(SCR_EditableEntityComponent entity)
void EntitiesSelectAfterMoveDone(SCR_EditableEntityComponent lastEntity)
EEditableEntityFlag
Unique flags of the entity.
SCR_FieldOfViewSettings Attribute
EEditorMode
Editor mode that defines overall functionality.
void RplRpc(RplChannel channel, RplRcver rcver, RplCondition condition=RplCondition.None, string customConditionName="")
RplChannel
Communication channel. Reliable is guaranteed to be delivered. Unreliable not.