Example #1
0
    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");
        }
    }
Example #2
0
    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]
                    )
                );
        }
    }
Example #3
0
    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);
            }
        }
    }
Example #4
0
    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();
 }
Example #6
0
 /// <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);
     }
 }
Example #7
0
    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");
    }
Example #8
0
        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));
        }
Example #9
0
    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();
    }
Example #10
0
        /// <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));
        }
Example #11
0
        /// <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();
        }