Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
 private void Remove(Ecosystem ecosystem, Ability ability)
 {
     using (new UndoScope(ecosystem))
     {
         ecosystem.Abilities.Remove(ability);
         Undo.DestroyObjectImmediate(ability);
         AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(ecosystem));
     }
 }
Ejemplo n.º 3
0
        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.
            }
        }
Ejemplo n.º 4
0
        private void Remove(Ecosystem ecosystem, Species species)
        {
            using (new UndoScope(ecosystem))
            {
                ecosystem.Species.Remove(species);

                Undo.DestroyObjectImmediate(species);
                AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(ecosystem));
            }
        }
Ejemplo n.º 5
0
        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));
            }
        }
Ejemplo n.º 6
0
        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));
            }
        }