Пример #1
0
    public void Save(SaveData data)
    {
        containers.RemoveAll(x => x == null);

        int count = containers.Count;

        data.Add("count", count);

        for (int i = 0; i < count; i++)
        {
            Container cont = containers[i];

            data.Prefix = "cont_" + i + "_";

            cont.transform.position.ToSaveData(data, "pos");
            cont.transform.rotation.eulerAngles.ToSaveData(data, "rot");

            string path = ResourcesPathHelper.GetContainerPath(cont);

            if (path != null)
            {
                data.Add("path", path);
            }

            cont.Save(data);
        }
    }
Пример #2
0
    public void Save(SaveData data)
    {
        int count = 0;

        data.Add("enemyCount", enemies.Count);

        foreach (GameObject enemy in enemies)
        {
            if (enemy == null)
            {
                continue;
            }

            ISavable[] savables = enemy.GetComponents <ISavable>();

            if (savables.Length == 0)
            {
                continue;
            }

            string prefix = "enemy_" + count++ + "_";
            data.Prefix = prefix;

            data.Add("prefab_path", ResourcesPathHelper.GetEnemyPath(enemy.name));

            foreach (ISavable sav in savables)
            {
                sav.Save(data);
                data.Prefix = prefix; //reset prefix after each save
            }
        }

        data.Prefix = "";
        exitDoor.Save(data);
    }
Пример #3
0
    public void Save(SaveData data)
    {
        string origPrefix = data.Prefix;

        IItem[] items = Items;

        int count = items.Length;

        data.Add("itemCount", count);

        for (int i = 0; i < count; i++)
        {
            IItem item = items[i];

            data.Prefix = origPrefix + "Item_" + i + "_";

            data.Add("path", ResourcesPathHelper.GetItemPath(item));

            item.Save(data);
        }

        data.Prefix = origPrefix;

        data.Add("enabled", this.enabled);
    }
Пример #4
0
    public void Save(SaveData data)
    {
        data.Add("type", GetType().ToString());
        data.Add("left", ammoLeft);

        //save projectile prefab
        if (projectilePrefab != null)
        {
            data.Add("projectilePath", ResourcesPathHelper.GetProjectilePath(projectilePrefab.name));
        }
    }
Пример #5
0
    public void Save(SaveData data)
    {
        IItem[] items = Items;

        int count = items.Length;

        data.Add("count", count);

        for (int i = 0; i < count; i++)
        {
            IItem item = items[i];

            data.Prefix = "Item_" + i + "_";

            data.Add("path" + i, ResourcesPathHelper.GetItemPath(item));

            item.Save(data);
        }

        data.Prefix = "";
    }
Пример #6
0
    public void Save(SaveData data)
    {
        pickables.RemoveAll(x => x == null);

        int count = pickables.Count;

        data.Add("count", count);

        for (int i = 0; i < count; i++)
        {
            Pickable pick = pickables[i];

            data.Prefix = "pick_" + i + "_";

            pick.transform.position.ToSaveData(data, "pos");
            pick.transform.rotation.eulerAngles.ToSaveData(data, "rot");

            string path = ResourcesPathHelper.GetPickablePath(pick);

            if (path != null)
            {
                data.Add("path", path);
            }

            //UserData can be anything, serializing it to string to save it
            if (pick.UserData != null && pick.UserData.GetType().IsSerializable)
            {
                StringWriter  writer        = new StringWriter();
                XmlSerializer xmlSerializer = new XmlSerializer(pick.UserData.GetType()); // We Use XML Serializer to be able to write in a StringWriter

                xmlSerializer.Serialize(writer, pick.UserData);

                data.Add("userDataType", pick.UserData.GetType().ToString());
                data.Add("userData", writer.ToString());
            }
        }
    }
Пример #7
0
    public void Save(SaveData data)
    {
        string path = ResourcesPathHelper.GetWeaponPath(this.WeaponType, this.name);

        data.Add("path", path);
    }