示例#1
0
    public void Save()
    {
        //Save s = new Save();
        List <SaveStruct> saveElements = new List <SaveStruct>();

        //Load elements
        Element[] elems = FindObjectsOfType <Element>();

        foreach (Element elem in elems)
        {
            SaveStruct s = new SaveStruct();

            s.type     = elem.GetType().ToString();
            s.position = elem.transform.position;

            if (s.type == "Gate")
            {
                s.gateType = elem.GetComponent <Gate>().gateType.ToString();
            }
            else if (s.type == "ToggleObj")
            {
                s.state = elem.GetComponent <ToggleObj>().state;
            }

            Debug.Log(s.ToString());
        }

        //JsonUtility.ToJson(s, true);
    }
示例#2
0
    void SaveStats()
    {
        SaveStruct newSave = new SaveStruct();

        newSave.str           = baseStr;
        newSave.intel         = baseInt;
        newSave.agi           = baseAgi;
        newSave.sta           = baseSta;
        newSave.res           = baseRes;
        newSave.vit           = baseVit;
        newSave.strIncrement  = strIncrement;
        newSave.agiIncrement  = agiIncrement;
        newSave.intIncrement  = intIncrement;
        newSave.staIncrement  = staIncrement;
        newSave.resIncrement  = resIncrement;
        newSave.vitIncrement  = vitIncrement;
        newSave.level         = level;
        newSave.resets        = resets;
        newSave.characterName = characterName;
        newSave.currentXP     = currentExp;
        FileStream      save   = File.Create(Application.persistentDataPath + "/" + characterName + "Stats.dat");
        BinaryFormatter format = new BinaryFormatter();

        format.Serialize(save, newSave);
        save.Close();
    }
示例#3
0
    public void LoadStats()
    {
        if (File.Exists(Application.persistentDataPath + "/" + characterName + "Stats.dat"))
        {
            SaveStruct      newSave = new SaveStruct();
            FileStream      load    = File.Open(Application.persistentDataPath + "/" + characterName + "Stats.dat", FileMode.Open);
            BinaryFormatter format  = new BinaryFormatter();
            newSave = (SaveStruct)format.Deserialize(load);
            load.Close();

            characterName = newSave.characterName;
            level         = newSave.level;
            resets        = newSave.resets;
            strIncrement  = newSave.strIncrement;
            agiIncrement  = newSave.agiIncrement;
            intIncrement  = newSave.intIncrement;
            resIncrement  = newSave.resIncrement;
            staIncrement  = newSave.staIncrement;
            vitIncrement  = newSave.vitIncrement;
            baseStr       = newSave.str;
            baseInt       = newSave.intel;
            baseAgi       = newSave.agi;
            baseRes       = newSave.res;
            baseSta       = newSave.sta;
            baseVit       = newSave.vit;
            currentExp    = newSave.currentXP;
        }
        UpdateStats();
    }
示例#4
0
    public SaveStruct GetSaveStruct()
    {
        SaveStruct s = new SaveStruct();

        s.buildingSave = GetBuildingSaveStruct();
        return(s);
    }
示例#5
0
    public void load()
    {
        m_savedDatas = BlazeSave.LoadData <SaveStruct>(m_saveFilename);

        // Load position and rotations of all objects
        for (int sceneObjId = 0; sceneObjId < m_sceneObjectsTransform.Count; sceneObjId++)
        {
            m_sceneObjectsTransform[sceneObjId].localPosition    = ArrayToVec3(m_savedDatas.Scene_ObjectsPosition[sceneObjId]);
            m_sceneObjectsTransform[sceneObjId].localEulerAngles = ArrayToVec3(m_savedDatas.Scene_ObjectsRotation[sceneObjId]);
        }

        // Load state of all ActivableObjects
        ActivableObject[] Scene_ActivableObjects = GameObject.Find("Room").GetComponentsInChildren <ActivableObject>();

        for (int sceneObjId = 0; sceneObjId < Scene_ActivableObjects.Length; sceneObjId++)
        {
            Scene_ActivableObjects[sceneObjId].isActivated = m_savedDatas.Scene_ActivableObjectsState[sceneObjId];
        }

        // Load SMB attributes

        for (int i = 0; i < m_SMB.Length; i++)
        {
            m_SMB[i].savedAttributes = m_savedDatas.SavedAttributes[i];
        }
    }
示例#6
0
        void EditAndSave(object args)                                                                      //Метод наложения на картинку водяного знака и сохранения
        {
            SaveStruct saver = (SaveStruct)args;                                                           //Наш класс сохранения, который мы передали в аргументы

            using (Graphics g = Graphics.FromImage(saver.Image))                                           //Изпользуем графическую оболочку, чтобы нарисовать водяной знак. Загружаем в неё нашу картинку, поверх которой будем рисовать.
            {
                SizeF      textSize       = g.MeasureString(waterMarkTextBox.Text, saver.Font);            //Считаем, какая высота и ширина будет у нашего водяного знака
                SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(128, 0, 0, 0));                  //Инициализируем кисть, которой будет рисоваться водяной знак. Кисть делаем полупрозрачной.
                for (float w = 0; w < saver.Image.Width; w += textSize.Width)                              //Проходимся по ширине картинки с шагом в ширину водяного знака
                {
                    for (float h = 0; h < saver.Image.Height; h += textSize.Height)                        //Проходимся по высоте картинки с шагом в высоту водяного знака
                    {
                        g.DrawString(waterMarkTextBox.Text, saver.Font, semiTransBrush, new PointF(w, h)); //Рисуем поверх картинки водяной знак
                    }
                }

                try //Пробуем сохранить картинку
                {
                    saver.Image.Save(saver.Path);
                }
                catch (Exception ex) //Если сохранить не вышло, выводим сообщение об ошибке
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
示例#7
0
        private void button4_Click(object sender, EventArgs e)                                               //Событие нажатия кнопки "Сохранить картинку"
        {
            if (Images != null)                                                                              //Если картинки вообще есть, то
            {
                FolderBrowserDialog ofd = new FolderBrowserDialog();                                         //Инициализируем диалог выбора папки для сохранения

                FontDialog fd = new FontDialog();                                                            //Инициализируем диалог выбора шрифта водяного знака

                if (fd.ShowDialog() == DialogResult.OK)                                                      //Если в диалоге выбора шрифта мы нажали ОК
                {
                    if (ofd.ShowDialog() == DialogResult.OK)                                                 //И в диалоге выбора папки мы нажали ОК, то
                    {
                        saveThreads = new List <Thread>();                                                   //Инициализируем список нитей для сохранения
                        for (int i = 0; i < Images.Length; i++)                                              //Проходим по всем загруженным картинкам
                        {
                            if (Images[i].Container.Checked)                                                 //Если картинка отмечена галочкой (т.е. её надо сохранить)
                            {
                                string     savePath = ofd.SelectedPath + '\\' + getFileName(Images[i].Path); //Вычисляем путь, по которому будем сохранять эту картинку
                                SaveStruct saver    = new SaveStruct(Images[i].Image, savePath, fd.Font);    //Создаем экземпляр класса для сохранения
                                saveThreads.Add(new Thread(EditAndSave));                                    //Создаем новую нить для сохранения картинки и добавляем её в список нитей
                                saveThreads[saveThreads.Count - 1].Start(saver);                             //Запускаем нашу нить. Она будет последним элементом в списке (потому что мы её только что туда добавили).
                            }
                        }

                        foreach (var t in saveThreads) //Ждём, пока все нити завершат работу
                        {
                            t.Join();
                        }

                        MessageBox.Show("Completed!"); //Выводим сообщение о том, что работа завершена
                    }
                }
            }
        }
示例#8
0
    public SaveStruct GetSaveStruct()
    {
        SaveStruct s = new SaveStruct();

        s.buildingSave = GetBuildingSaveStruct();
        s.wood         = wood;
        s.oil          = oil;
        s.time         = time;
        return(s);
    }
示例#9
0
    public SaveStruct GetSaveStruct()
    {
        SaveStruct s = new SaveStruct();

        s.buildingSave = GetBuildingSaveStruct();
        s.togive       = togive;
        s.o2           = o2;
        s.@on          = @on;
        return(s);
    }
示例#10
0
    public SaveStruct GetSaveStruct()
    {
        SaveStruct s = new SaveStruct();

        s.buildingSave = GetBuildingSaveStruct();
        s.togive       = togive;
        s.stock        = stock;
        s.@on          = @on;
        s.deploy       = deploy;
        return(s);
    }
示例#11
0
 public void ReadSavedFile()
 {
     try {
         ChoosePlayer.playerName = loadGameSlots[ChoosePlayer.saveSlot - 1].GetComponentInChildren <TextMeshProUGUI>().text;
         string file = File.ReadAllText(Application.persistentDataPath + "/UserSave/" + ChoosePlayer.saveSlot + "." + ChoosePlayer.playerName + ".json");
         save = JsonUtility.FromJson <SaveStruct>(file);
     }
     catch (System.Exception e) {
         Debug.Log(e.ToString());
     }
 }
示例#12
0
    public SaveStruct GetSaveStruct()
    {
        SaveStruct s = new SaveStruct();

        s.buildingSave  = GetBuildingSaveStruct();
        s.isPrinting    = isPrinting;
        s.isInPause     = isInPause;
        s.isFinish      = isFinish;
        s.printingLevel = printingLevel;
        s.printingType  = printingType;
        return(s);
    }
示例#13
0
    public SaveStruct GetSaveStruct()
    {
        SaveStruct s = new SaveStruct();

        s.buildingSave = GetBuildingSaveStruct();
        s.togive       = togive;
        s.oil          = oil;
        s.fuel         = fuel;
        s.toadd        = toadd;
        s.@on          = @on;
        return(s);
    }
示例#14
0
    public void Load(string data)
    {
        //clean
        Clear();

        while (prefabZone.transform.childCount > 0)
        {
            Transform t = prefabZone.transform.GetChild(0);
            t.SetParent(null);
            Destroy(t.gameObject);
        }

        if (!readOnly)
        {
            //creer les prefab
            foreach (NodePrefabInfos i in prefabs.Values)
            {
                CreateNodePrefab(i);
            }
        }

        //creer les Nodes
        SaveStruct loadStruct = JsonConvert.DeserializeObject <SaveStruct>(data);

        foreach (NodeInfos n in loadStruct.nodes.Values)
        {
            Node node = Instantiate(nodePrefab);
            node.transform.SetParent(modelZone.transform);
            node.Editor               = this;
            node.NodeInfos            = n;
            node.transform.localScale = Vector2.one;
            node.NodePrefabInfos      = prefabs[n.type];
            node.name = n.type;
            node.transform.localPosition = new Vector3(n.posX, n.posY);
            _nodes.Add(n.id, node);
        }

        //creer les liens entre les nodes
        foreach (LinkInfo l in loadStruct.links)
        {
            Node targetNode = _nodes[l.ToID];
            Node fromNode   = _nodes[l.FromID];

            NodeLink link = Instantiate(nodeLinkPrefab, modelZone.transform);
            link.Editor = this;
            link.SetColor(ColorFromType(l.LinkType));
            link.transform.SetAsFirstSibling();
            link.infos = l;

            fromNode.SetLinkToParam(link);
            targetNode.SetLinkToParam(link);
        }
    }
示例#15
0
 public void SetBuildingSaveStruct(SaveStruct st)
 {
     type            = st.type;
     healthMax       = st.healthMax;
     health          = st.health;
     id              = st.id;
     energy          = st.energy;
     energyMax       = st.energyMax;
     isLinked        = st.isLinked;
     energyhistory   = st.energyhistory;
     powerInhistory  = st.powerInhistory;
     powerOuthistory = st.powerOuthistory;
 }
示例#16
0
    public SaveStruct GetBuildingSaveStruct()
    {
        SaveStruct s = new SaveStruct();

        s.type            = type;
        s.healthMax       = healthMax;
        s.health          = health;
        s.id              = id;
        s.energy          = energy;
        s.energyMax       = energyMax;
        s.location        = location;
        s.isLinked        = isLinked;
        s.energyhistory   = energyhistory;
        s.powerInhistory  = powerInhistory;
        s.powerOuthistory = powerOuthistory;
        return(s);
    }
示例#17
0
    public string Save()
    {
        SaveStruct saveStruct = new SaveStruct();

        foreach (Node n in modelZone.GetComponentsInChildren <Node>())
        {
            saveStruct.nodes.Add(n.NodeInfos.id, n.NodeInfos);
        }
        foreach (NodeLink l in modelZone.GetComponentsInChildren <NodeLink>())
        {
            saveStruct.links.Add(l.infos);
        }

        string result = JsonConvert.SerializeObject(saveStruct);

        return(result);
    }
示例#18
0
        private void button4_Click(object sender, EventArgs e) //Событие нажатия кнопки "Сохранить картинку"
        {
            if (Images != null) //Если картинки вообще есть, то
            {
                FolderBrowserDialog ofd = new FolderBrowserDialog(); //Инициализируем диалог выбора папки для сохранения

                FontDialog fd = new FontDialog(); //Инициализируем диалог выбора шрифта водяного знака

                if (fd.ShowDialog() == DialogResult.OK) //Если в диалоге выбора шрифта мы нажали ОК
                {
                    if (ofd.ShowDialog() == DialogResult.OK) //И в диалоге выбора папки мы нажали ОК, то
                    {

                        saveThreads = new List<Thread>(); //Инициализируем список нитей для сохранения
                        for (int i = 0; i < Images.Length; i++) //Проходим по всем загруженным картинкам
                        {
                            if (Images[i].Container.Checked) //Если картинка отмечена галочкой (т.е. её надо сохранить)
                            {

                                string savePath = ofd.SelectedPath + '\\' + getFileName(Images[i].Path); //Вычисляем путь, по которому будем сохранять эту картинку
                                SaveStruct saver = new SaveStruct(Images[i].Image, savePath, fd.Font); //Создаем экземпляр класса для сохранения
                                saveThreads.Add(new Thread(EditAndSave)); //Создаем новую нить для сохранения картинки и добавляем её в список нитей
                                saveThreads[saveThreads.Count - 1].Start(saver);//Запускаем нашу нить. Она будет последним элементом в списке (потому что мы её только что туда добавили). 
                            }
                        }

                        foreach (var t in saveThreads) //Ждём, пока все нити завершат работу
                        {
                            t.Join();
                        }

                        MessageBox.Show("Completed!"); //Выводим сообщение о том, что работа завершена
                    }

                }

            }

        }
示例#19
0
    // $ANTLR end "T__214"

    // $ANTLR start "INCLUDE_FILE"
    public void mINCLUDE_FILE() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = INCLUDE_FILE;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            IToken f = null;

            // C:\\Users\\jeremy\\svn\\algenta\\Algenta.Data.Parsing.Blaise\\Blaise.g:159:13: ( INCLUDE ( WS )* f= QSTRING )
            // C:\\Users\\jeremy\\svn\\algenta\\Algenta.Data.Parsing.Blaise\\Blaise.g:159:15: INCLUDE ( WS )* f= QSTRING
            {
            	mINCLUDE(); 
            	// C:\\Users\\jeremy\\svn\\algenta\\Algenta.Data.Parsing.Blaise\\Blaise.g:159:23: ( WS )*
            	do 
            	{
            	    int alt1 = 2;
            	    int LA1_0 = input.LA(1);

            	    if ( ((LA1_0 >= '\t' && LA1_0 <= '\n') || (LA1_0 >= '\f' && LA1_0 <= '\r') || LA1_0 == ' ') )
            	    {
            	        alt1 = 1;
            	    }


            	    switch (alt1) 
            		{
            			case 1 :
            			    // C:\\Users\\jeremy\\svn\\algenta\\Algenta.Data.Parsing.Blaise\\Blaise.g:159:24: WS
            			    {
            			    	mWS(); 

            			    }
            			    break;

            			default:
            			    goto loop1;
            	    }
            	} while (true);

            	loop1:
            		;	// Stops C# compiler whining that label 'loop1' has no statements

            	int fStart58 = CharIndex;
            	mQSTRING(); 
            	f = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, fStart58, CharIndex-1);

            		#region Include input stream switching
            		String name = f.Text;
            		name = name.Trim('"');
            		try
            		{
            			// save current lexer's state
            			SaveStruct ss = new SaveStruct(input);
            		
            		CaseInsensitiveFileStream currentStream = input as CaseInsensitiveFileStream;
            			if (currentStream != null)
            			{
            				if (string.IsNullOrEmpty(topLevelDirectory))
            				{
            					topLevelDirectory = Path.GetDirectoryName(currentStream.SourceName);
            				}
            		
            			if(topLevelDirectory != null) 
            				{
            					// Blaise apparently treats all INCLUDES as if they are relative to the top level.
            					// string dir = Path.GetDirectoryName(currentStream.SourceName);
            					string bigPath = topLevelDirectory +
            					System.IO.Path.DirectorySeparatorChar +
            					name;
            					name = System.IO.Path.GetFullPath(bigPath);
            				}
            			}
            			
            			// switch on new input stream
            			if(!File.Exists(name)) 
            			{ 
            				System.Console.WriteLine("Cannot find include file " + name);
            				this.MissingFiles.Add(name);
            			}
            			else {
            			CaseInsensitiveFileStream newStream = new CaseInsensitiveFileStream(name);
            			newStream.UpperCaseGrammar = true;                    
            			this.CharStream = newStream;
            			includes.Push(ss);
            			Reset();
            			}
            		}
            		catch (Exception fnf)
            		{
            			//throw new Exception("Cannot open include file " + name, fnf);
            			System.Console.WriteLine("Cannot open include file " + name);
            		}
            		#endregion


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }