Exemplo n.º 1
0
    public int Load()
    {
        string directoryPath = Application.dataPath + "/../Save/";

        Directory.CreateDirectory(directoryPath);
        string saveFilePath = directoryPath + "grid.data";

        FileStream   saveFile   = new FileStream(saveFilePath, FileMode.Open, FileAccess.Read);
        BinaryReader dataStream = new BinaryReader(saveFile);

        int b = dataStream.ReadByte();

        while (b != -1)
        {
            byte[]      cGlobalByte = dataStream.ReadBytes(6);
            Coordinates cGlobal     = new Coordinates(cGlobalByte);
            if (b == 2)
            {
                byte[] reference = dataStream.ReadBytes(4);
                this.AddPanel(cGlobal, Object.ReferenceByteArrayToString(reference));
            }
            else if (b == 3)
            {
                int    rot       = dataStream.ReadByte();
                byte[] reference = dataStream.ReadBytes(4);
                this.AddItem(cGlobal, rot, Object.ReferenceByteArrayToString(reference));
            }
            else if (b == 4)
            {
                int       rot          = dataStream.ReadByte();
                byte[]    reference    = dataStream.ReadBytes(4);
                Container container    = this.AddItem(cGlobal, rot, Object.ReferenceByteArrayToString(reference)) as Container;
                int       contentCount = dataStream.ReadByte();
                for (int i = 0; i < contentCount; i++)
                {
                    Debug.Log("Loading content into Container");
                    reference = dataStream.ReadBytes(4);
                    container.Add(InventoryObject.CreateFromRef(Object.ReferenceByteArrayToString(reference)));
                }
            }
            try
            {
                b = dataStream.ReadByte();
            }
            catch (EndOfStreamException)
            {
                b = -1;
            }
        }

        dataStream.Close();
        saveFile.Close();

        return(1);
    }