Ejemplo n.º 1
0
    public static GameObject loadPredator(SavedPredator predatorSave)
    {
        // We are essentially building the Predator object from scratch here.
        // GameObject loadedPredator = GameObject.CreatePrimitive(PrimitiveType.Cube);
        GameObject loadedPredator = Resources.Load("Prefabs/Predator") as GameObject;

        // Predator predScriptRef = loadedPredator.AddComponent<Predator>();
        Predator predScriptRef = loadedPredator.GetComponent <Predator>();

        // loadedPredator.GetComponent<MeshRenderer>().material = (Resources.Load("Materials/Red", typeof(Material)) as Material);

        // loadedPredator.transform.localScale = new Vector3(1f, 1f, 1f);
        Vector3 pos = new Vector3(predatorSave.xCoord, predatorSave.yCoord, predatorSave.zCoord);

        loadedPredator.transform.position = pos;
        loadedPredator.tag = "predator";

        predScriptRef.waterLevel         = predatorSave.waterLevel;
        predScriptRef.nutrientValue      = predatorSave.nutrientValue;
        predScriptRef.reproductiveChance = predatorSave.reproductiveChance;
        predScriptRef.reproductiveRate   = predatorSave.reproductiveRate;
        predScriptRef.awareness          = predatorSave.awareness;
        predScriptRef.lethality          = predatorSave.lethality;


        predScriptRef.movementSpeed           = predatorSave.movementSpeed;
        predScriptRef.controlSpeed            = predatorSave.controlSpeed;
        predScriptRef.consumptionRate         = predatorSave.consumptionRate;
        predScriptRef.movementConsumptionRate = predatorSave.movementConsumptionRate;
        predScriptRef.nutrientLevel           = predatorSave.nutrientLevel;

        return(loadedPredator);
    }
Ejemplo n.º 2
0
    public static SavedPredator savePredator(GameObject predatorObject)
    {
        Predator      PredScriptRef = predatorObject.GetComponent <Predator>();
        SavedPredator predatorSave  = new SavedPredator();

        predatorSave.xCoord = predatorObject.transform.position.x;
        predatorSave.yCoord = predatorObject.transform.position.y;
        predatorSave.zCoord = predatorObject.transform.position.z;

        predatorSave.waterLevel         = PredScriptRef.waterLevel;
        predatorSave.nutrientValue      = PredScriptRef.nutrientValue;
        predatorSave.reproductiveChance = PredScriptRef.reproductiveChance;
        predatorSave.reproductiveRate   = PredScriptRef.reproductiveRate;
        predatorSave.awareness          = PredScriptRef.awareness;
        predatorSave.lethality          = PredScriptRef.lethality;


        predatorSave.movementSpeed           = PredScriptRef.movementSpeed;
        predatorSave.controlSpeed            = PredScriptRef.controlSpeed;
        predatorSave.consumptionRate         = PredScriptRef.consumptionRate;
        predatorSave.movementConsumptionRate = PredScriptRef.movementConsumptionRate;
        predatorSave.nutrientLevel           = PredScriptRef.nutrientLevel;

        return(predatorSave);
    }
Ejemplo n.º 3
0
    public static SavedEcosystem getCurrentEcosystem()
    {
        Debug.Log("Preparing to profile...");
        SavedEcosystem save   = new SavedEcosystem();
        GameObject     ecoRef = GameObject.FindGameObjectWithTag("ecosystem");

        // Gather arrays of references to all ecosystem components
        GameObject[] predators      = GameObject.FindGameObjectsWithTag("predator");
        GameObject[] prey           = GameObject.FindGameObjectsWithTag("prey");
        GameObject[] flora          = GameObject.FindGameObjectsWithTag("flora");
        GameObject[] faunaNutrients = GameObject.FindGameObjectsWithTag("faunaNutrient");
        GameObject[] floraNutrients = GameObject.FindGameObjectsWithTag("floraNutrient");
        GameObject[] waterSources   = GameObject.FindGameObjectsWithTag("waterSource");

        // Loop through each and add them to our save.

        // Nutrients
        for (int i = 0; i < faunaNutrients.Length; i++)
        {
            save.addFaunaNutrient(SavedFaunaNutrient.SaveNutrient(faunaNutrients[i]));
        }
        for (int i = 0; i < floraNutrients.Length; i++)
        {
            save.addFloraNutrient(SavedFloraNutrient.SaveNutrient(floraNutrients[i]));
        }

        // Water
        for (int i = 0; i < waterSources.Length; i++)
        {
            save.addWaterSource(SavedWater.saveWater(waterSources[i]));
        }

        // Organisms
        // Here we have "gathered" all of the organism GameObjects. We use
        // the save[organism]() functions for each respective organism to convert it to
        // a saveable (serializable) class and add it to our list of SavedOrganisms.
        for (int i = 0; i < prey.Length; i++)
        {
            save.addPrey(SavedPrey.savePrey(prey[i]));
        }
        for (int i = 0; i < predators.Length; i++)
        {
            save.addPredator(SavedPredator.savePredator(predators[i]));
        }
        for (int i = 0; i < flora.Length; i++)
        {
            save.addFlora(SavedFlora.saveFlora(flora[i]));
        }

        Debug.Log("Finished profile save! Returning to Save()");
        return(save);
    }
Ejemplo n.º 4
0
    // This function nukes the entire ecosystem and reinstantiates everything based
    // on the SavedEcosystem passed in
    public static void loadEntireEcosystem(SavedEcosystem saveToLoad)
    {
        // Clear the old, to make way for the new
        destroyEcosystem();

        Debug.Log("Loading " + saveToLoad.waterSources.Count + " water sources!");

        // Now we loop through the lists in the SavedEcosystem to instantiate them into the simulation
        for (int i = 0; i < saveToLoad.prey.Count; i++)
        {
            GameObject tempPrey = Instantiate(SavedPrey.loadPrey(saveToLoad.prey[i]));
            tempPrey.transform.parent = ecosystem.transform;
        }

        for (int i = 0; i < saveToLoad.predators.Count; i++)
        {
            GameObject tempPred = Instantiate(SavedPredator.loadPredator(saveToLoad.predators[i]));
            tempPred.transform.parent = ecosystem.transform;
        }

        for (int i = 0; i < saveToLoad.flora.Count; i++)
        {
            GameObject tempFlora = Instantiate(SavedFlora.loadFlora(saveToLoad.flora[i]));
            tempFlora.transform.parent = ecosystem.transform;
        }
        for (int i = 0; i < saveToLoad.floraNutrients.Count; i++)
        {
            GameObject tempNutrients = Instantiate(SavedFloraNutrient.loadNutrient(saveToLoad.floraNutrients[i]));
            tempNutrients.transform.parent = ecosystem.transform;
        }
        for (int i = 0; i < saveToLoad.faunaNutrients.Count; i++)
        {
            GameObject tempNutrients = Instantiate(SavedFaunaNutrient.loadNutrient(saveToLoad.faunaNutrients[i]));
            tempNutrients.transform.parent = ecosystem.transform;
        }

        for (int i = 0; i < saveToLoad.waterSources.Count; i++)
        {
            GameObject tempWater = Instantiate(Resources.Load("Prefabs/WaterSource") as GameObject, SavedWater.loadWaterPos(saveToLoad.waterSources[i]), Quaternion.identity);
            tempWater.transform.parent = ecosystem.transform;
            tempWater.tag = "waterSource";
        }
    }
Ejemplo n.º 5
0
 public void addPredator(SavedPredator predatorToAdd)
 {
     predators.Add(predatorToAdd);
 }