public static void RegisterObjectDock(ObjectDock dock) { if(Instance.ObjectDockMonoDict.Keys.Contains(dock.Name) == false) { Instance.ObjectDockMonoDict.Add(dock.Name, dock); } }
public static void RegisterObjectDock(ObjectDock dock) { if (Instance.ObjectDockMonoDict.Keys.Contains(dock.Name) == false) { Instance.ObjectDockMonoDict.Add(dock.Name, dock); } }
public override void OnInspectorGUI() { ObjectDock objectDock = target as ObjectDock; if (advancedEditor_EditGameEvent = EditorGUILayout.BeginToggleGroup(new GUIContent("Edit GameEvent", ""), advancedEditor_EditGameEvent)) { foreach (ObjectDockData dockData in objectDock.objectDockData) { if (dictFlag.ContainsKey(dockData.Name) == false) { dictFlag.Add(dockData.Name, false); } if (dictFlag[dockData.Name] = EditorGUILayout.BeginToggleGroup("Edit ObjectDockData:" + dockData.Name, dictFlag[dockData.Name])) { if (dockData.event_at_start.Length > 0) { dockData.event_at_start = EditorCommon.EditGameEventArray("Edit StartEvent:", dockData.event_at_start); } if (dockData.event_at_end.Length > 0) { dockData.event_at_end = EditorCommon.EditGameEventArray("Edit EndEvent:", dockData.event_at_end); } } EditorGUILayout.EndToggleGroup(); } } EditorGUILayout.EndToggleGroup(); if (autoFillDockWithChildren = EditorGUILayout.BeginToggleGroup(new GUIContent("Fill dockdata of children", ""), autoFillDockWithChildren)) { defaultDockRotationType = (DockRotationType)EditorGUILayout.EnumPopup("Default rotation type:", defaultDockRotationType); defaultDockFleeMode = (DockFleetMode)EditorGUILayout.EnumPopup("Default flee mode:", defaultDockFleeMode); if (GUILayout.Button("Fill dockData")) { ObjectDockData[] dockDatas = new ObjectDockData[objectDock.transform.childCount]; int counter = 0; foreach (Transform child in objectDock.transform) { dockDatas[counter] = new ObjectDockData(); dockDatas[counter].Name = child.name; dockDatas[counter].DockTransform = child; dockDatas[counter].fleeMode = defaultDockFleeMode; dockDatas[counter].rotationType = defaultDockRotationType; counter++; } objectDock.objectDockData = dockDatas; } } EditorGUILayout.EndToggleGroup(); EditorGUILayout.LabelField("-------------------- Base inspector ----------------------------"); base.OnInspectorGUI(); CheckDuplicatedName(objectDock.Name); }
private void CreateStandardControls() { m_objectDock = new ObjectDock(); m_propDock = new PropDock(); m_resourceDock = new ResourceDock(); m_imagePreViewDock = new ImagePreViewDock(); m_animateDock = new AnimateDock(); DynamicObj.objectDock = m_objectDock; DynamicObj.propDock = m_propDock; DynamicObj.resourceDock = m_resourceDock; DynamicObj.imagePreViewDock = m_imagePreViewDock; DynamicObj.animateDock = m_animateDock; }
void Search() { searchedOutput_ObjectDock = new ObjectDock[]{}; searchedOutput_SpawnNPC = new SpawnNPC[]{}; ObjectDock[] AllObjectDocks = Util.ConvertObjectArray<ObjectDock> (Object.FindObjectsOfType (typeof(ObjectDock))); SpawnNPC[] AllSpawnNPC = Util.ConvertObjectArray<SpawnNPC> (Object.FindObjectsOfType (typeof(SpawnNPC))); GameEventLifeCycle[] AllGameEventLifecycle = Util.ConvertObjectArray<GameEventLifeCycle> (Object.FindObjectsOfType(typeof(GameEventLifeCycle))); ObjectDock[] SearchedOutObjectDocksByEventType = new ObjectDock[]{}; SpawnNPC[] SearchedOutSpawnNPCByEventType = new SpawnNPC[]{}; GameEventLifeCycle[] SearchedOutGameEventLifeCycleByEventType = new GameEventLifeCycle[]{}; ObjectDock[] SearchedOutObjectDocksByObjectReference = new ObjectDock[]{}; SpawnNPC[] SearchedOutSpawnNPCByObjectReference = new SpawnNPC[]{}; GameEventLifeCycle[] SearchedOutGameEventLifeCycleByObjectReference = new GameEventLifeCycle[]{}; if (IsSearchByEventType) { //search every objectdocks, check gameevent type IEnumerable<ObjectDock> docks = AllObjectDocks.Where (x => x.objectDockData.Count (y => y.event_at_start.Concat (y.event_at_end.AsEnumerable ()).Count (z => z.type == searchEventType) > 0) > 0 ); if (docks != null && docks.Count () > 0) { SearchedOutObjectDocksByEventType = docks.ToArray (); } //search every spawnNPC, check gameevent type IEnumerable<SpawnNPC> spawns = AllSpawnNPC.Where (x => x.Event_At_All_Spawned_DieOut.Count ( y => y.type == searchEventType) > 0); if (spawns != null && spawns.Count () > 0) { SearchedOutSpawnNPCByObjectReference = spawns.ToArray (); } //search every gameevent lifecycle, check gameevent type IEnumerable<GameEventLifeCycle> gameEventLifeCycles = AllGameEventLifecycle.Where (x => x.eventOnBirth.Count (y => y.type == searchEventType) > 0) .Concat( AllGameEventLifecycle.Where (x => x.eventOnDestroy.Count (y => y.type == searchEventType) > 0)) .Concat( AllGameEventLifecycle.Where (x => x.eventOnUnitDie.Count (y => y.type == searchEventType) > 0)); if (gameEventLifeCycles != null && gameEventLifeCycles.Count () > 0) { SearchedOutGameEventLifeCycleByEventType = gameEventLifeCycles.ToArray (); } searchedOutput_ObjectDock = SearchedOutObjectDocksByEventType; searchedOutput_SpawnNPC = SearchedOutSpawnNPCByObjectReference; searchedOutput_GameEventLC = SearchedOutGameEventLifeCycleByEventType; } if (IsSearchByObjectInReceiverField) { //search every object dock, check gameevent 's receiver IEnumerable<ObjectDock> docks = AllObjectDocks.Where (x => x.objectDockData.Count (y => y.event_at_start.Concat (y.event_at_end.AsEnumerable ()).Count (z => z.receiver == SearchObjectReference) > 0) > 0 ); if (docks != null && docks.Count () > 0) { SearchedOutObjectDocksByObjectReference = docks.ToArray (); } //search every spawnNPC, check gameevent 's receiver IEnumerable<SpawnNPC> spawns = AllSpawnNPC.Where (x => x.Event_At_All_Spawned_DieOut.Count ( y => y.receiver == SearchObjectReference) > 0); if (spawns != null && spawns.Count () > 0) { SearchedOutSpawnNPCByObjectReference = spawns.ToArray (); } //search every gameevent lifecycle, check gameevent 's receiver IEnumerable<GameEventLifeCycle> gameEventLifeCycles = AllGameEventLifecycle.Where (x => x.eventOnBirth.Count (y => y.receiver == SearchObjectReference) > 0) .Concat( AllGameEventLifecycle.Where (x => x.eventOnDestroy.Count (y => y.receiver == SearchObjectReference) > 0)) .Concat( AllGameEventLifecycle.Where (x => x.eventOnUnitDie.Count (y => y.receiver == SearchObjectReference) > 0)); if (gameEventLifeCycles != null && gameEventLifeCycles.Count () > 0) { SearchedOutGameEventLifeCycleByObjectReference = gameEventLifeCycles.ToArray (); } if (searchedOutput_ObjectDock == null || searchedOutput_ObjectDock.Length == 0) { searchedOutput_ObjectDock = SearchedOutObjectDocksByObjectReference; } else { searchedOutput_ObjectDock = searchedOutput_ObjectDock.Intersect (SearchedOutObjectDocksByObjectReference.AsEnumerable ()).ToArray (); } if (searchedOutput_SpawnNPC == null || searchedOutput_SpawnNPC.Length == 0) { searchedOutput_SpawnNPC = SearchedOutSpawnNPCByObjectReference; } else { searchedOutput_SpawnNPC = searchedOutput_SpawnNPC.Intersect (SearchedOutSpawnNPCByObjectReference.AsEnumerable ()).ToArray (); } if (searchedOutput_GameEventLC == null || searchedOutput_GameEventLC.Length == 0) { searchedOutput_GameEventLC = SearchedOutGameEventLifeCycleByObjectReference; } else { searchedOutput_GameEventLC = searchedOutput_GameEventLC.Intersect (SearchedOutGameEventLifeCycleByObjectReference.AsEnumerable ()).ToArray (); } } }
void Search() { searchedOutput_ObjectDock = new ObjectDock[] {}; searchedOutput_SpawnNPC = new SpawnNPC[] {}; ObjectDock[] AllObjectDocks = Util.ConvertObjectArray <ObjectDock> (Object.FindObjectsOfType(typeof(ObjectDock))); SpawnNPC[] AllSpawnNPC = Util.ConvertObjectArray <SpawnNPC> (Object.FindObjectsOfType(typeof(SpawnNPC))); GameEventLifeCycle[] AllGameEventLifecycle = Util.ConvertObjectArray <GameEventLifeCycle> (Object.FindObjectsOfType(typeof(GameEventLifeCycle))); ObjectDock[] SearchedOutObjectDocksByEventType = new ObjectDock[] {}; SpawnNPC[] SearchedOutSpawnNPCByEventType = new SpawnNPC[] {}; GameEventLifeCycle[] SearchedOutGameEventLifeCycleByEventType = new GameEventLifeCycle[] {}; ObjectDock[] SearchedOutObjectDocksByObjectReference = new ObjectDock[] {}; SpawnNPC[] SearchedOutSpawnNPCByObjectReference = new SpawnNPC[] {}; GameEventLifeCycle[] SearchedOutGameEventLifeCycleByObjectReference = new GameEventLifeCycle[] {}; if (IsSearchByEventType) { //search every objectdocks, check gameevent type IEnumerable <ObjectDock> docks = AllObjectDocks.Where(x => x.objectDockData.Count(y => y.event_at_start.Concat(y.event_at_end.AsEnumerable()).Count(z => z.type == searchEventType) > 0) > 0 ); if (docks != null && docks.Count() > 0) { SearchedOutObjectDocksByEventType = docks.ToArray(); } //search every spawnNPC, check gameevent type IEnumerable <SpawnNPC> spawns = AllSpawnNPC.Where(x => x.Event_At_All_Spawned_DieOut.Count( y => y.type == searchEventType) > 0); if (spawns != null && spawns.Count() > 0) { SearchedOutSpawnNPCByObjectReference = spawns.ToArray(); } //search every gameevent lifecycle, check gameevent type IEnumerable <GameEventLifeCycle> gameEventLifeCycles = AllGameEventLifecycle.Where(x => x.eventOnBirth.Count(y => y.type == searchEventType) > 0) .Concat( AllGameEventLifecycle.Where(x => x.eventOnDestroy.Count(y => y.type == searchEventType) > 0)) .Concat( AllGameEventLifecycle.Where(x => x.eventOnUnitDie.Count(y => y.type == searchEventType) > 0)); if (gameEventLifeCycles != null && gameEventLifeCycles.Count() > 0) { SearchedOutGameEventLifeCycleByEventType = gameEventLifeCycles.ToArray(); } searchedOutput_ObjectDock = SearchedOutObjectDocksByEventType; searchedOutput_SpawnNPC = SearchedOutSpawnNPCByObjectReference; searchedOutput_GameEventLC = SearchedOutGameEventLifeCycleByEventType; } if (IsSearchByObjectInReceiverField) { //search every object dock, check gameevent 's receiver IEnumerable <ObjectDock> docks = AllObjectDocks.Where(x => x.objectDockData.Count(y => y.event_at_start.Concat(y.event_at_end.AsEnumerable()).Count(z => z.receiver == SearchObjectReference) > 0) > 0 ); if (docks != null && docks.Count() > 0) { SearchedOutObjectDocksByObjectReference = docks.ToArray(); } //search every spawnNPC, check gameevent 's receiver IEnumerable <SpawnNPC> spawns = AllSpawnNPC.Where(x => x.Event_At_All_Spawned_DieOut.Count( y => y.receiver == SearchObjectReference) > 0); if (spawns != null && spawns.Count() > 0) { SearchedOutSpawnNPCByObjectReference = spawns.ToArray(); } //search every gameevent lifecycle, check gameevent 's receiver IEnumerable <GameEventLifeCycle> gameEventLifeCycles = AllGameEventLifecycle.Where(x => x.eventOnBirth.Count(y => y.receiver == SearchObjectReference) > 0) .Concat( AllGameEventLifecycle.Where(x => x.eventOnDestroy.Count(y => y.receiver == SearchObjectReference) > 0)) .Concat( AllGameEventLifecycle.Where(x => x.eventOnUnitDie.Count(y => y.receiver == SearchObjectReference) > 0)); if (gameEventLifeCycles != null && gameEventLifeCycles.Count() > 0) { SearchedOutGameEventLifeCycleByObjectReference = gameEventLifeCycles.ToArray(); } if (searchedOutput_ObjectDock == null || searchedOutput_ObjectDock.Length == 0) { searchedOutput_ObjectDock = SearchedOutObjectDocksByObjectReference; } else { searchedOutput_ObjectDock = searchedOutput_ObjectDock.Intersect(SearchedOutObjectDocksByObjectReference.AsEnumerable()).ToArray(); } if (searchedOutput_SpawnNPC == null || searchedOutput_SpawnNPC.Length == 0) { searchedOutput_SpawnNPC = SearchedOutSpawnNPCByObjectReference; } else { searchedOutput_SpawnNPC = searchedOutput_SpawnNPC.Intersect(SearchedOutSpawnNPCByObjectReference.AsEnumerable()).ToArray(); } if (searchedOutput_GameEventLC == null || searchedOutput_GameEventLC.Length == 0) { searchedOutput_GameEventLC = SearchedOutGameEventLifeCycleByObjectReference; } else { searchedOutput_GameEventLC = searchedOutput_GameEventLC.Intersect(SearchedOutGameEventLifeCycleByObjectReference.AsEnumerable()).ToArray(); } } }