public void LoadGame() { if (File.Exists(Application.persistentDataPath + "/" + saveFileName)) { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(Application.persistentDataPath + "/" + saveFileName, FileMode.Open); InventorySave save = (InventorySave)bf.Deserialize(file); file.Close(); try { save.collectedObjectIds.ForEach(id => collectedObjects.Add(new InventoryObject(ObjectDatabase.Instance.GetItemById(id)))); } catch (System.NullReferenceException) { Debug.Log("Failed to load save - skipping"); } Debug.Log("Game loaded from save"); } else { Debug.Log("Found no save file"); } }
void LoadInventory(TextureManager manager) { dirty = false; InventorySave inventory = SaveGameSystem.LoadGame("slot" + Slot + "_inventory") as InventorySave; if (inventory == null) { return; } if (items == null) { items = new List <InventoryItem>(); } items.Clear(); for (int i = 0; i < inventory.displayName.Count; i++) { Sprite sp = manager.GetSpritePista(inventory.items[i]); items.Add( new InventoryItem( inventory.items[i], inventory.displayName[i], sp, inventory.descriptions[i] ) ); } }
public void Load() { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(Application.persistentDataPath + "/inventory.dat", FileMode.Open); InventorySave pss = (InventorySave)bf.Deserialize(file); file.Close(); for (int i = 0; i < 10; i++) { playerStat.equippedItems.Add(new Item()); } for (int i = 0; i < pss.items.Count; i++) { items.Add(new Item()); Item item = database.GetItemByID(pss.items[i]); if (item != null) { LoadItem(item.Id, i); } else { LoadItem(-1, i); } } }
private InventorySave BuildInventorySave() { InventorySave save = new InventorySave(); collectedObjects.ForEach(inventoryObject => save.collectedObjectIds.Add(inventoryObject.GetId())); return(save); }
public void Load() { m_Save = new InventorySave(); m_Save.Load(); if (m_Save == null || m_Save.m_Keys == null || m_Save.m_Keys.Count <= 0) m_Save = new InventorySave(); if (m_Save == null || m_Save.m_Collectables == null || m_Save.m_Collectables.Count <= 0) m_Save = new InventorySave(); }
/// <summary> /// Initializes from save object. /// </summary> /// <param name="saveObject">The save object.</param> public void InitFromSaveObject(InventorySave saveObject) { this.capacity = saveObject.InventoryCapacity; foreach (InventorySave.ItemCount save in saveObject.Items) { Item item = save.Item.CreateObjectFromID(); item.InitFromSaveObject(save.Item); dict.Add(item, save.Count); } }
public void SaveGame() { InventorySave save = BuildInventorySave(); BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Create(Application.persistentDataPath + "/" + saveFileName); bf.Serialize(file, save); file.Close(); Debug.Log("Game saved"); }
void saveInventory() { InventorySave save = new InventorySave(); foreach (var item in Inventory.Items) { if (item is ToolItem) { save.toolItems.Add(new InventorySave.ToolItemSave { Id = item.Id, StackSize = (item as ToolItem).StackSize, Type = (item as ToolItem).ToolType }); } else if (item is MaterialItem) { save.materialItems.Add(new InventorySave.MaterialItemSave { Id = item.Id, StackSize = (item as MaterialItem).StackSize, SizeX = (item as MaterialItem).Size.x, SizeY = (item as MaterialItem).Size.y, SizeZ = (item as MaterialItem).Size.z, Shape = (item as MaterialItem).Shape, Resource = (item as MaterialItem).Material.Name }); } else if (item is ResourceItem) { save.resourceItems.Add(new InventorySave.ResourceItemSave { Id = item.Id, Volume = (item as ResourceItem).Volume, Resource = (item as ResourceItem).Material.Name, }); } else { throw new InvalidDataException("Unknown item type: " + item.GetType()); } } save.quickAccess = new long[Inventory.QuickaccessSlots]; for (int i = 0; i < Inventory.QuickaccessSlots; ++i) { save.quickAccess[i] = Inventory.QuickAccessItems[i] == null ? -1 : Inventory.QuickAccessItems[i].Id; } save.currentQuickAccess = Inventory.SelectionIndex; Directory.CreateDirectory(new FileInfo(UpvoidMiner.SavePathInventory).Directory.FullName); File.WriteAllText(UpvoidMiner.SavePathInventory, JsonConvert.SerializeObject(save, Formatting.Indented)); }
public void Save() { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Create(Application.persistentDataPath + "/inventory.dat"); InventorySave pss = new InventorySave(); for (int i = 0; i < items.Count; i++) { pss.items.Add(items[i].Id); } bf.Serialize(file, pss); file.Close(); }
/// <summary> /// Converts the party into a serializable object. /// </summary> /// <returns>A serializable object representing the state of the party.</returns> public PartySave GetSaveObject() { InventorySave inventory = Shared.GetSaveObject(); List <CharacterSave> mems = members.Select(c => c.GetSaveObject()).ToList(); // Go through all characters for (int i = 0; i < mems.Count; i++) { CharacterSave c = mems[i]; //Go through particular character's buffs foreach (BuffSave pb in c.Buffs) { bool isPartyMemberFound = false; // Search party list to see if any party member is the caster for (int j = 0; j < mems.Count && !isPartyMemberFound; j++) { // Id match -- Ref party member mode: we want to reference the member again on Load. if (mems[j].Id.Equals(pb.CasterCharacterId)) { pb.SetupAsCasterInParty(j); isPartyMemberFound = true; } } // Caster is not a party member -- Spoof stats mode: we want to reference the caster's stats only to avoid infinite loops. if (!isPartyMemberFound) { pb.SetupAsCasterNotInParty(); } } } return(new PartySave(mems, inventory)); }
/// <summary> /// Populates the inventory with a list of items that we start with. /// </summary> void generateInitialItems() { if (!File.Exists(UpvoidMiner.SavePathInventory)) { // Tools Inventory.AddItem(new ToolItem(ToolType.Shovel)); Inventory.AddItem(new ToolItem(ToolType.Pickaxe)); Inventory.AddItem(new ToolItem(ToolType.Axe)); //Inventory.AddItem(new ToolItem(ToolType.Hammer)); Inventory.AddItem(new ToolItem(ToolType.DroneChain, 5)); // Testing resource/material items. /*TerrainResource dirt = ContainingWorld.Terrain.QueryMaterialFromName("Dirt"); * TerrainResource stone06 = ContainingWorld.Terrain.QueryMaterialFromName("Stone.06"); * Inventory.AddResource(dirt, 10); * Inventory.AddItem(new ResourceItem(dirt, 3f)); * Inventory.AddItem(new MaterialItem(stone06, MaterialShape.Sphere, new vec3(1))); * Inventory.AddItem(new MaterialItem(stone06, MaterialShape.Sphere, new vec3(1), 2)); * Inventory.AddItem(new MaterialItem(stone06, MaterialShape.Cylinder, new vec3(1,2,2))); * Inventory.AddItem(new MaterialItem(stone06, MaterialShape.Sphere, new vec3(2))); * Inventory.AddItem(new MaterialItem(stone06, MaterialShape.Cube, new vec3(2))); * Inventory.AddItem(new MaterialItem(stone06, MaterialShape.Cylinder, new vec3(1,2,2))); * Inventory.AddItem(new MaterialItem(dirt, MaterialShape.Sphere, new vec3(1)));*/ Inventory.AddItem(new MaterialItem(TerrainResource.FromName("AoiCrystal"), MaterialShape.Sphere, new vec3(1))); Inventory.AddItem(new MaterialItem(TerrainResource.FromName("FireRock"), MaterialShape.Cube, new vec3(1))); Inventory.AddItem(new MaterialItem(TerrainResource.FromName("AlienRock"), MaterialShape.Cylinder, new vec3(1))); } else // Load inventory { InventorySave save = JsonConvert.DeserializeObject <InventorySave>(File.ReadAllText(UpvoidMiner.SavePathInventory)); Dictionary <long, Item> id2item = new Dictionary <long, Item>(); foreach (var item in save.toolItems) { id2item.Add(item.Id, new ToolItem(item.Type, item.StackSize)); Inventory.AddItem(id2item[item.Id]); } foreach (var item in save.materialItems) { id2item.Add(item.Id, new MaterialItem(TerrainResource.FromName(item.Resource), item.Shape, new vec3(item.SizeX, item.SizeY, item.SizeZ), item.StackSize)); Inventory.AddItem(id2item[item.Id]); } foreach (var item in save.resourceItems) { id2item.Add(item.Id, new ResourceItem(TerrainResource.FromName(item.Resource), item.Volume)); Inventory.AddItem(id2item[item.Id]); } Inventory.ClearQuickAccess(); for (int i = 0; i < Inventory.QuickaccessSlots; ++i) { if (id2item.ContainsKey(save.quickAccess[i])) { Inventory.SetQuickAccess(id2item[save.quickAccess[i]], i); } } Inventory.Select(save.currentQuickAccess); } Gui.OnUpdate(); }