Ejemplo n.º 1
0
    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;
        }
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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();
    }