Beispiel #1
0
    SavePackage CreatePackageFromFile(string file)
    {
        string name                  = System.IO.Path.GetFileNameWithoutExtension(file);
        string image                 = Path.Combine(imagePath, name + imageExtension);
        string save                  = Path.Combine(savePath, name + jsonExtension);
        List <ExpressionSet> ess     = JsonHelper.FromJson <SerializableExpressionSet>(File.ReadAllText(save)).Select(x => x.ConvertToExpressionSet()).ToList();
        SavePackage          package = new SavePackage(name.Replace("-", "/").Replace("_", ":"), image, ess);

        return(package);
    }
Beispiel #2
0
    private GameObject createButton(SavePackage save)
    {
        GameObject button = Instantiate(Resources.Load("Screenshot", typeof(GameObject))) as GameObject;

        button.name = save.date;
        initializeButton(save, button);
        scroll.addObject(button.transform);
        joyStickAggregator.AddForwarder(button.GetComponentInChildren <JoyStickForwarder>());

        return(button);
    }
Beispiel #3
0
    private void initializeButton(SavePackage save, GameObject button)
    {
        Texture2D imageTexture = LoadIMG(save.imageFile);
        string    imgName      = save.date;

        if (imgName.Length > maxTextLength)
        {
            imgName = imgName.Replace(imgName.Substring(maxTextLength), "...");
        }
        button.transform.Find("Text").GetComponent <TMPro.TextMeshPro>().text       = imgName;
        button.transform.Find("Img").GetComponent <Renderer>().material.mainTexture = imageTexture;
    }
Beispiel #4
0
    //TODO: Create startNewGame and loadGame methods.

    public void save(int file)
    {
        if (file == 0)
        {
            return;
        }
        PlayerStatus playerData = player.GetComponentInChildren <Player> ().getPlayerStatus();

        List <QuestSave>        questData        = questListener.getQuestData();
        List <SpawnedObject>    spawnedObjects   = currentMap.getAllSpawnedObjects();
        List <ConversationSave> conversationData = LoadResources.Instance.getConversationSaveData();
        int seed = currentMap.getSeed();

        SavePackage.Builder packageBuilder = SavePackage.CreateBuilder();
        packageBuilder.SetPlayer(playerData);
        packageBuilder.AddRangeQuestData(questData);
        packageBuilder.AddRangeSpawnedObjects(spawnedObjects);
        packageBuilder.SetSeed(seed);
        packageBuilder.AddRangeConversationData(conversationData);

        SavePackage package = packageBuilder.Build();

        try {
            FileStream fs;
            if (file == 1)
            {
                PlayerPrefs.SetString("Load1", player.GetComponentInChildren <Player>().GetName());
                fs = new FileStream(saveGameFile1, FileMode.Create);
            }
            else if (file == 2)
            {
                PlayerPrefs.SetString("Load2", player.GetComponentInChildren <Player>().GetName());
                fs = new FileStream(saveGameFile2, FileMode.Create);
            }
            else if (file == 4)
            {
                PlayerPrefs.SetString("tmpSave", player.GetComponentInChildren <Player>().GetName());
                fs = new FileStream(tmpSaveGameFile, FileMode.Create);
            }
            else
            {
                PlayerPrefs.SetString("Load3", player.GetComponentInChildren <Player>().GetName());
                fs = new FileStream(saveGameFile3, FileMode.Create);
            }
            package.WriteTo(fs);
            fs.Flush();
            fs.Close();
        } catch (IOException excep) {
            log("IO ERROR: COULD NOT SAVE GAME DATA");
        }
        Debug.Log("FINISHED SAVING");
    }
Beispiel #5
0
    private void LoadNewFile(SavePackage save)
    {
        GameObject button = createButton(save);

        button.SetActive(false);

        FlexButtonComponent action = button.GetComponent <FlexButtonComponent>();

        action.selectedColor = (delete) ? colorSettings.deleteColor : colorSettings.selectColor;
        action.hoveringColor = (delete) ? colorSettings.deleteHoverColor : colorSettings.selectHoverColor;
        selectPanel.AddAction((FlexActionableComponent)action);

        saves.Add(save.date, save);
    }
Beispiel #6
0
    // Use this for initialization
    void Start()
    {
        dotBG               = GameObject.Find("DOTBGPREFAB").GetComponent <Image>();
        splashContainer     = GameObject.Find("SplashContainer");
        mainContainer       = GameObject.Find("MainContainer");
        chromAbbAmount      = Camera.main.GetComponent <VignetteAndChromaticAberration>().chromaticAberration;
        volumeSlider.value  = PlayerPrefs.GetFloat("MasterVolume");
        qualitySlider.value = QualitySettings.GetQualityLevel();

        FileStream fs;

        try {
            fs = new FileStream(MasterDriver.saveGameFile1, FileMode.Open);
//			load1.text = PlayerPrefs.GetString("Load1","EMPTY");
            SavePackage package = SavePackage.ParseFrom(fs);
            load1.text = package.Player.Name + "_" + package.Player.Version;
            fs.Flush();
            fs.Close();
//			Debug.LogError("Loaded save 1");
        } catch (IOException excep) {
            load1.text = "EMPTY";
//			Debug.LogError("nopee");
        }
        try {
            fs = new FileStream(MasterDriver.saveGameFile2, FileMode.Open);
//			load2.text = PlayerPrefs.GetString("Load2","EMPTY");
            SavePackage package = SavePackage.ParseFrom(fs);
            load2.text = package.Player.Name + "_" + package.Player.Version;
            fs.Flush();
            fs.Close();
        } catch (IOException excep) {
            load2.text = "EMPTY";
        }
        try {
            fs = new FileStream(MasterDriver.saveGameFile3, FileMode.Open);
//			load3.text = PlayerPrefs.GetString("Load3","EMPTY");
            SavePackage package = SavePackage.ParseFrom(fs);
            load3.text = package.Player.Name + "_" + package.Player.Version;
            fs.Flush();
            fs.Close();
        } catch (IOException excep) {
            load3.text = "EMPTY";
        }
    }
Beispiel #7
0
    void ReadExpressionsFromFile()
    {
        if (!initialized)
        {
            Initialize();
        }

        string[] files = Directory.GetFiles(savePath);

        foreach (string file in files)
        {
            SavePackage package = CreatePackageFromFile(file);
            saves.Add(package.date, package);
            if (fileLoadedEvent != null)
            {
                fileLoadedEvent.Invoke(package);
            }
        }
    }
    public void EmptySave()
    {
        saveFileData = new SavePackage();

        // Setup save data
        saveFileData.p1Index = p1Index.value = 0;
        saveFileData.p1Index = p2Index.value = 1;

        //Write to file
        XmlWriterSettings xmlWriterSettings = new XmlWriterSettings()
        {
            Indent = true
        };
        XmlSerializer serializer = new XmlSerializer(typeof(SavePackage));

        using (XmlWriter xmlWriter = XmlWriter.Create(_savePath, xmlWriterSettings)) {
            serializer.Serialize(xmlWriter, saveFileData);
        }
        Debug.Log("Successfully saved new save data!\n" + _savePath);
    }
Beispiel #9
0
    public void EmptySave()
    {
        // Setup save data
        saveFileData = new SavePackage();
        for (int i = 0; i < SAVE_FILES_COUNT; i++)
        {
            saveFileData.saveFiles[i] = new SaveData();
        }

        //Write to file
        XmlWriterSettings xmlWriterSettings = new XmlWriterSettings()
        {
            Indent = true
        };
        XmlSerializer serializer = new XmlSerializer(typeof(SavePackage));

        using (XmlWriter xmlWriter = XmlWriter.Create(_savePath, xmlWriterSettings)) {
            serializer.Serialize(xmlWriter, saveFileData);
        }
        Debug.Log("Successfully created a new save file!\n" + _savePath);
    }
    void SaveExpression(List <ExpressionSet> expressions, string fileName)
    {
        //converts the list of expressions into a serializable form.
        List <SerializableExpressionSet> sesList = expressions.Select(x => new SerializableExpressionSet(x)).ToList();
        string json = JsonHelper.ToJson(sesList);

        System.IO.File.WriteAllText(Path.Combine(savePath, fileName) + jsonExtension, json);

        if (saveIconGenerator != null)
        {
            saveIconGenerator.TakeScreenshot(Path.Combine(imagePath, fileName));
        }
        else
        {
            print("icon generator is null. No Icon will be generated");
        }
        SavePackage package = CreatePackageFromFile(fileName);

        saves.Add(package.date, package);
        if (fileLoadedEvent != null)
        {
            fileLoadedEvent.Invoke(package);
        }
    }
Beispiel #11
0
    public void load(int file)
    {
        CityHelp.helpMode = -3;
        Debug.Log("LOADING : " + file);
        SavePackage package;

        try {
            FileStream fs;
            if (file == 1)
            {
                fs = new FileStream(saveGameFile1, FileMode.Open);
            }
            else if (file == 2)
            {
                fs = new FileStream(saveGameFile2, FileMode.Open);
            }
            else if (file == 4)
            {
                fs = new FileStream(tmpSaveGameFile, FileMode.Open);
            }
            else
            {
                fs = new FileStream(saveGameFile3, FileMode.Open);
            }
            package = SavePackage.ParseFrom(fs);
            fs.Flush();
            fs.Close();
        } catch (IOException excep) {
            IOException dummy = excep;
            log("IO ERROR: COULD NOT LOAD GAME DATA");
            return;
        }

        //WORLD GENERATION
        currentMap = new Map(package.Seed);

        //QUESTS
        List <QuestSave> questSaves = new List <QuestSave> ();

        questSaves.AddRange(package.QuestDataList);
        questListener = new QuestListener(questSaves);

        //CONVERSATIONS
        List <ConversationSave> conversationSaves = new List <ConversationSave> ();

        conversationSaves.AddRange(package.ConversationDataList);
        LoadResources.Instance.setConversationData(conversationSaves);

        //PLAYER STATUS
        player.transform.position = new Vector3(0.0f, player.transform.position.y, 0.0f);         //global shift
        currentArea = currentMap.getArea(package.Player.PlayerPosition.AreaX, package.Player.PlayerPosition.AreaY);
        player.GetComponentInChildren <Player> ().setPlayerStatus(package.Player);
        currentArea.getGroup().generateAreas();

        Transform camera = getCamera();

        camera.position = new Vector3(package.Player.PlayerPosition.LocalX, camera.position.y, package.Player.PlayerPosition.LocalY);
        Quaternion rotation = camera.rotation;

        rotation.eulerAngles = new Vector3(0.0f, package.Player.Rotation, 0.0f);
        camera.rotation      = rotation;

        //SPAWNED OBJECTS
        List <SpawnedObject> spawnedObjects = new List <SpawnedObject> ();

        spawnedObjects.AddRange(package.SpawnedObjectsList);
        foreach (SpawnedObject o in spawnedObjects)
        {
            GlobalPosition pos  = o.ObjectPosition;
            Area           area = currentMap.getArea(pos.AreaX, pos.AreaY);
            GameObject     obj;

            WorldMap.AddStarAt(pos.AreaX, pos.AreaY, o.Description);

            if (o.HasEnemyAttributes)
            {
                obj = (GameObject)getEnemyFromProtobuf(o.ObjectData);
                obj = (GameObject)GameObject.Instantiate(obj);
                obj.GetComponent <Enemy>().name = o.ObjectData.Name;
                //TODO set enemy health
            }
            else
            {
                obj = (GameObject)getItemFromProtobuf(o.ObjectData);
                ItemDropObject drop      = LoadResources.Instance.CommonItemDrop.GetComponent <ItemDropObject>();
                GameObject     newDrop   = (GameObject)GameObject.Instantiate(drop.gameObject);
                GameObject     newObject = (GameObject)GameObject.Instantiate(obj);
                newObject.SetActive(false);
                newObject.GetComponent <Item>().name = o.ObjectData.Type;

                if (o.ObjectData.HasItemInformation && o.ObjectData.ItemInformation.HasSaveVersion && newObject.GetComponent <Weapon>() != null)
                {
                    newObject.GetComponent <Weapon>().version = o.ObjectData.ItemInformation.SaveVersion;
                }

                newDrop.GetComponent <ItemDropObject>().item = newObject;
                obj = newDrop;
            }

            obj.transform.position = new Vector3(pos.LocalX, obj.transform.position.y, pos.LocalY);

            if (area.basicRoom != null)
            {
                area.basicRoom.addSpawnedObject(obj);
            }

            if (area != currentArea)
            {
                obj.SetActive(false);
            }
        }
    }