private void SetupAddMenu(Ecosystem ecosystem) { _addMenu = new GenericMenu(); foreach (var species in ecosystem.Species) { _addMenu.AddItem(new GUIContent(species.name, "The species to add."), false, AddEncounter, species); } }
private void Remove(Ecosystem ecosystem, Ability ability) { using (new UndoScope(ecosystem)) { ecosystem.Abilities.Remove(ability); Undo.DestroyObjectImmediate(ability); AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(ecosystem)); } }
private void UpdateInstructionKeys(Ecosystem ecosystem) { _updateInstructionKeys.Clear(); foreach (var key in ecosystem.CreatureUpdateInstructions.Keys) { _updateInstructionKeys.Add(key); // DON'T USE LINQ AS IT WILL REINSTANTIATE THE LIST AND THE ORIGINAL REFERENCE WILL BE BROKEN. } }
private void Remove(Ecosystem ecosystem, Species species) { using (new UndoScope(ecosystem)) { ecosystem.Species.Remove(species); Undo.DestroyObjectImmediate(species); AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(ecosystem)); } }
private void AddSpecies(Ecosystem ecosystem, string name) { var species = CreateInstance <Species>(); var existingNames = ecosystem.Species.Select(i => i.name).ToArray(); species.hideFlags = HideFlags.HideInHierarchy; species.name = ObjectNames.GetUniqueName(existingNames, name); species.Ecosystem = ecosystem; Definitions.Instance.SpeciesTraits.Apply(species.Traits, false); using (new UndoScope(ecosystem)) { ecosystem.Species.Add(species); Undo.RegisterCreatedObjectUndo(species, "Undo create species"); AssetDatabase.AddObjectToAsset(species, ecosystem); AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(ecosystem)); } }
private void AddAbility(Ecosystem ecosystem, string name, VariableSchema schema) { var ability = CreateInstance <Ability>(); var existingNames = ecosystem.Abilities.Select(i => i.name).ToArray(); ability.hideFlags = HideFlags.HideInHierarchy; ability.name = ObjectNames.GetUniqueName(existingNames, name); ability.Ecosystem = ecosystem; if (schema != null) { schema.Apply(ability.Traits, false); } using (new UndoScope(ecosystem)) { ecosystem.Abilities.Add(ability); Undo.RegisterCreatedObjectUndo(ability, "Undo create ability"); AssetDatabase.AddObjectToAsset(ability, ecosystem); AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(ecosystem)); } }