private void InitSpeciesWidgetMap() { GameController game = GameController.GetInstance(); WinCondition winCondition = null; m_widgets.Clear(); m_species.Clear(); if (game != null) { winCondition = game.GetComponent <WinCondition>(); } if (winCondition == null) { return; } int speciesNum = 0; foreach (WinCondition.SpeciesComparisonExpr speciesExpr in winCondition.allOfThese) { AnimalPreset species = speciesExpr.species; if (species == null || m_widgets.ContainsKey(speciesExpr.DnaId)) { continue; } GameObject widget = Instantiate(widgetPrefab, new Vector3(0.0f, 0.0f, 1.0f), Quaternion.identity, gameObject.transform); widget.transform.localPosition = new Vector3(-29.0f + WIDGET_SIZE * speciesNum, 13.0f, 1.0f); m_widgets.Add(speciesExpr.DnaId, widget); m_species.Add(speciesExpr.DnaId, speciesExpr.species); ++speciesNum; } }
public void SpawnAnimal(string presetName, AnimalBehaviourComponent.AnimalSex sex, Vector3 position) { // Choose preset AnimalPreset preset = null; foreach (AnimalPreset p in presets) { if (p.presetName.Equals(presetName) && p.sex == sex) { preset = p; break; } } // Use preset to generate animal PackedScene chosenScene = preset.scene; KinematicBody kb = (KinematicBody)chosenScene.Instance(); Entity entity = new Entity(); kb.AddChild(entity); entity.SetName("Entity"); AnimalBehaviourComponent behaviourComponent = new AnimalBehaviourComponent(entity, preset.sex, preset.diet, preset.foodChainLevel, preset.breedability, preset.presetName, preset.oxygenConsumption, preset.co2Production, preset.foodDrop, preset.birthDrop); PhysicsComponent physicsComponent = new PhysicsComponent(entity); entity.AddComponent(behaviourComponent); entity.AddComponent(physicsComponent); kb.SetTranslation(position); AddChild(kb); }
public override void _Ready() { animalResourceLoader = GetNode(Game.ANIMAL_RESOURCE_LOADER) as ResourcePreloader; presets = new List <AnimalPreset>(); // For now, hardcode presets AnimalPreset male0 = new AnimalPreset( AnimalBehaviourComponent.AnimalSex.Male, animalResourceLoader.GetResource("MaleAnimal0") as PackedScene, AnimalBehaviourComponent.AnimalDiet.Carnivore, 10, 90, "animal0", 2, 10 ); AnimalPreset female0 = new AnimalPreset( AnimalBehaviourComponent.AnimalSex.Female, animalResourceLoader.GetResource("FemaleAnimal0") as PackedScene, AnimalBehaviourComponent.AnimalDiet.Carnivore, 10, 90, "animal0", 2, 10 ); AnimalPreset maleFrog = new AnimalPreset( AnimalBehaviourComponent.AnimalSex.Male, animalResourceLoader.GetResource("MaleFrog") as PackedScene, AnimalBehaviourComponent.AnimalDiet.Herbivore, 1, 90, "frog", 1, 5 ); AnimalPreset femaleFrog = new AnimalPreset( AnimalBehaviourComponent.AnimalSex.Female, animalResourceLoader.GetResource("FemaleFrog") as PackedScene, AnimalBehaviourComponent.AnimalDiet.Herbivore, 1, 90, "frog", 1, 5 ); AnimalPreset maleBig = new AnimalPreset( AnimalBehaviourComponent.AnimalSex.Male, animalResourceLoader.GetResource("MaleBig") as PackedScene, AnimalBehaviourComponent.AnimalDiet.Omnivore, 100, 70, "big", 3, 20 ); AnimalPreset femaleBig = new AnimalPreset( AnimalBehaviourComponent.AnimalSex.Female, animalResourceLoader.GetResource("FemaleBig") as PackedScene, AnimalBehaviourComponent.AnimalDiet.Omnivore, 100, 70, "big", 3, 20 ); AnimalPreset maleFrogBD = new AnimalPreset( AnimalBehaviourComponent.AnimalSex.Male, animalResourceLoader.GetResource("MaleFrog") as PackedScene, AnimalBehaviourComponent.AnimalDiet.Herbivore, 1, 80, "frogBD" ); AnimalPreset femaleFrogBD = new AnimalPreset( AnimalBehaviourComponent.AnimalSex.Female, animalResourceLoader.GetResource("FemaleFrog") as PackedScene, AnimalBehaviourComponent.AnimalDiet.Herbivore, 1, 80, "frogBD" ); AnimalPreset male0BD = new AnimalPreset( AnimalBehaviourComponent.AnimalSex.Male, animalResourceLoader.GetResource("MaleAnimal0") as PackedScene, AnimalBehaviourComponent.AnimalDiet.Carnivore, 1, 80, "animal0BD" ); AnimalPreset female0BD = new AnimalPreset( AnimalBehaviourComponent.AnimalSex.Female, animalResourceLoader.GetResource("FemaleAnimal0") as PackedScene, AnimalBehaviourComponent.AnimalDiet.Carnivore, 1, 80, "animal0BD" ); presets.Add(male0); presets.Add(female0); presets.Add(maleFrog); presets.Add(femaleFrog); presets.Add(maleBig); presets.Add(femaleBig); presets.Add(male0BD); presets.Add(female0BD); presets.Add(maleFrogBD); presets.Add(femaleFrogBD); //Code for demos. /* * BreedingDemo(); * EatingDemo(); */ //HollisticDemo(); }