Exemple #1
0
    private void LoadScenarioResources(string scenarioUrl, ScenarioSave scenarioSave)
    {
        Debug.Log("Project Resources loading...");

        for (int i = 0; i < scenarioSave.resources.Length; i++)
        {
            Debug.Log("Loading Resource " + scenarioSave.resources[i].id);
            LoadAudioFile(scenarioUrl, scenarioSave.resources[i].id.ToString());
            Debug.Log("Loaded Resource " + scenarioSave.resources[i].id + " / " + resourcesManager.GetResource(scenarioSave.soundblocks[i].clipId).Name);
        }

        Debug.Log("Project Resources loaded");
    }
Exemple #2
0
    public void Load(ScenarioSave s)
    {
        openedVictory = s.openedVictory;
        timeDelta     = s.timeDelta;

        HousingLevels = s.HousingLevels;

        Prosperity = s.Prosperity;

        goals = s.goals;

        if (CampaignManager.currentLevel == -1)
        {
            CampaignManager.currentLevel    = s.level;
            CampaignManager.currentCampaign = s.campaign;
        }
    }
Exemple #3
0
    public BasicWorldSave(GameObject go)
    {
        WorldController wc = go.GetComponent <WorldController>();

        world          = wc.Map;
        money          = new MoneySave(wc.money);
        actionSelecter = new ActionSelecterControllerSave(wc.actionSelecter);
        diplomacy      = new DiplomacySave(wc.diplomacy);
        scenario       = new ScenarioSave(wc.scenario);
        Whitelist      = ResourcesDatabase.Whitelist;

        foreach (Transform t in wc.structures.transform)
        {
            GameObject str = t.gameObject;
            structures.Add(new StructureSave(str.gameObject));
        }
    }
Exemple #4
0
    private void LoadScenarioFile(string url)
    {
        ZipFile zip = ZipFile.Read(url);

        foreach (var entry in zip.Entries)
        {
            if (entry.FileName == "structure")
            {
                entry.Extract();
                break;
            }
        }
        zip.Dispose();

        string structure = File.ReadAllText("structure");

        File.Delete("structure");

        if (structure == "")
        {
            Debug.LogError("Chargement d'un fichier structure vide ?");
            return;
        }

        ScenarioSave  scenarioSave = new ScenarioSave();
        XmlSerializer serializer   = new XmlSerializer(scenarioSave.GetType());

        using (TextReader reader = new StringReader(structure))
        {
            scenarioSave = (ScenarioSave)serializer.Deserialize(reader);

            reader.Dispose();
        }

        ResetScenario();

        LoadScenarioResources(scenarioSave);
        LoadScenarioStructure(scenarioSave);
    }
Exemple #5
0
    private void LoadScenarioStructure(string scenarioUrl, ScenarioSave scenarioSave)
    {
        Debug.Log("Scenario Loading...");

        for (int i = 0; i < scenarioSave.soundblocks.Length; i++)
        {
            Debug.Log("Loading Soundblock " + scenarioSave.soundblocks[i].blockId);
            scenarioManager.CreateSoundBlock(scenarioSave.soundblocks[i].blockId, scenarioSave.soundblocks[i].clipId, scenarioSave.soundblocks[i].isLooping);
            Debug.Log("Loaded Soundblock " + scenarioSave.soundblocks[i].blockId);
        }

        for (int i = 0; i < scenarioSave.links.Length; i++)
        {
            Debug.Log("Drawing link ( " + scenarioSave.links[i].fromSoundblock + " -> " + scenarioSave.links[i].toSoundblock + " ) ");
            scenarioManager.DoLink(scenarioManager.GetSoundBlock(scenarioSave.links[i].fromSoundblock), scenarioManager.GetSoundBlock(scenarioSave.links[i].toSoundblock), scenarioSave.links[i].linkType);
            Debug.Log("Drawn link");
        }

        Debug.Log("Scenario Loaded");

        scenarioManager.nextID          = scenarioSave.soundBlockNextId;
        resourcesManager.nextResourceID = scenarioSave.resourceNextId;
    }
Exemple #6
0
    public void LoadScenarioStructure(ScenarioSave scenarioSave)
    {
        Debug.Log("Scenario Loading...");

        for (int i = 0; i < scenarioSave.soundblocks.Length; i++)
        {
            Debug.Log("Loading Soundblock " + scenarioSave.soundblocks[i].blockId);
            SpawnSoundBlock(scenarioSave.soundblocks[i].position, scenarioSave.soundblocks[i].blockId, scenarioSave.soundblocks[i].clipId, scenarioSave.soundblocks[i].isLooping);
            Debug.Log("Loaded Soundblock " + scenarioSave.soundblocks[i].blockId);
        }

        for (int i = 0; i < scenarioSave.links.Length; i++)
        {
            Debug.Log("Drawing link ( " + scenarioSave.links[i].fromSoundblock + " -> " + scenarioSave.links[i].toSoundblock + " ) ");
            DrawLink(GetSoundBlock(scenarioSave.links[i].fromSoundblock), GetSoundBlock(scenarioSave.links[i].toSoundblock), scenarioSave.links[i].linkType);
            Debug.Log("Drawn link");
        }

        Debug.Log("Scenario Loaded");

        nextID = scenarioSave.soundBlockNextId;
        AppManager.Instance.ResourcesManager.nextResourceID = scenarioSave.resourceNextId;
    }
Exemple #7
0
    public WorldProgressSave(GameObject go)
    {
        WorldController w = go.GetComponent <WorldController>();

        world = w.Map;

        productivities = new DictContainer <string, float>(ProductivityController.productivities);
        automation     = new DictContainer <string, float>(ProductivityController.automationValue);

        saveDate = DateTime.Now;
        Debug.Log(saveDate.ToString("MM/dd/yyyy"));

        Events = w.notifications.Events;

        //SAVE IN-GAME STUFF
        time           = new TimeSave(w.timeController);
        population     = new PopulationSave(w.population);
        money          = new MoneySave(w.money);
        camera         = new CameraSave(w.cameraController);
        immigration    = new ImmigrationSave(w.immigration);
        actionSelecter = new ActionSelecterControllerSave(w.actionSelecter);
        trade          = new TradeSave(w.trade);
        diplomacy      = new DiplomacySave(w.diplomacy);
        scenario       = new ScenarioSave(w.scenario);
        research       = new ResearchSave(w.research);

        //SAVE OBJECTS FROM PARENT
        //structures
        foreach (Transform t in w.structures.transform)
        {
            GameObject str = t.gameObject;

            if (str.GetComponent <StorageBuilding>() != null)
            {
                storagebuildings.Add(new StorageBuildingSave(str));
            }

            else if (str.GetComponent <Stable>() != null)
            {
                stables.Add(new StableSave(str));
            }

            else if (str.GetComponent <Crop>() != null)
            {
                crops.Add(new CropSave(str));
            }

            else if (str.GetComponent <Generator>() != null)
            {
                generators.Add(new GeneratorSave(str));
            }

            else if (str.GetComponent <WTP>() != null)
            {
                wtps.Add(new WTPSave(str));
            }

            else if (str.GetComponent <Canal>() != null)
            {
                canals.Add(new CanalSave(str));
            }

            else if (str.GetComponent <House>() != null)
            {
                houses.Add(new HouseSave(str.gameObject));
            }

            else if (str.GetComponent <Farmhouse>() != null)
            {
                farmhouses.Add(new FarmhouseSave(str));
            }

            else if (str.GetComponent <Workplace>() != null)
            {
                workplaces.Add(new WorkplaceSave(str));
            }

            else if (str.GetComponent <Jobcentre>() != null)
            {
                jobcentres.Add(new JobcentreSave(str));
            }

            else if (str.GetComponent <Structure>() != null)
            {
                structures.Add(new StructureSave(str));
            }

            else
            {
                Debug.Log(str.name + " shouldn't be under structures");
            }
        }

        //walkers
        foreach (Transform t in w.walkers.transform)
        {
            GameObject wlkr = t.gameObject;

            if (wlkr.GetComponent <Animal>() != null)
            {
                animals.Add(new AnimalSave(wlkr));
            }

            else if (wlkr.GetComponent <Walker>() != null)
            {
                walkers.Add(new WalkerSave(wlkr));
            }

            else
            {
                Debug.Log(wlkr.name + " shouldn't be under walkers");
            }
        }
    }
Exemple #8
0
    public void SaveScenario()
    {
        ScenarioSave scenario = new ScenarioSave();

        scenario.resources = new ResourceData[AppManager.Instance.ResourcesManager.Count()];
        for (int i = 0; i < scenario.resources.Length; ++i)
        {
            ResourceData resourceData = new ResourceData();
            resourceData.id       = AppManager.Instance.ResourcesManager.Resources[i].Id;
            scenario.resources[i] = resourceData;
        }

        scenario.soundblocks = new SoundBlockData[blocks.Count];
        int linkCount = 0;

        for (int i = 0; i < blocks.Count; i++)
        {
            SoundBlockData blockData = new SoundBlockData();
            SoundBlock     block     = blocks[i];
            blockData.blockId = block.soundblockId;
            if (block.source.clip != null)
            {
                blockData.clipId = AppManager.Instance.ResourcesManager.GetResource(block.source.clip.name).Id;
            }
            else
            {
                blockData.clipId = -1;
            }

            if (firstBlock == block)
            {
                blockData.isFirstBlock = true;
            }

            blockData.isLooping = block.source.loop;
            blockData.position  = block.transform.localPosition;

            if (block.link != null)
            {
                linkCount++;
            }

            scenario.soundblocks[i] = blockData;
        }

        scenario.links = new LinkData[linkCount];
        int nextLinkIndex = 0;

        for (int i = 0; i < blocks.Count; i++)
        {
            if (blocks[i].link != null)
            {
                LinkData link = new LinkData();
                link.fromSoundblock = blocks[i].soundblockId;
                link.toSoundblock   = blocks[i].nextBlock.soundblockId;
                link.linkType       = blocks[i].link.linkType;
                link.isActive       = blocks[i].link.IsActive;

                scenario.links[nextLinkIndex] = link;
                nextLinkIndex++;
            }
        }

        scenario.soundBlockNextId = nextID;
        scenario.resourceNextId   = AppManager.Instance.ResourcesManager.nextResourceID;

        XmlSerializer writer = new XmlSerializer(scenario.GetType());

        using (FileStream stream = File.Create("structure"))
        {
            writer.Serialize(stream, scenario);
            stream.Close();
        }

        ZipFile zip = ZipFile.Read(scenarioUrl);

        zip.RemoveEntry("structure");
        zip.AddFile("structure");
        zip.Save(scenarioUrl);

        File.Delete("structure");

        Debug.Log("Saved Project " + scenarioUrl);
    }