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); }
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); }
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; }
//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"); }
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); }
// 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"; } }
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); }
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); } }
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); } } }