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); } }
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); }
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); }
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)); } }
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 = ""; }
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()); } } }
public void Save(SaveData data) { string path = ResourcesPathHelper.GetWeaponPath(this.WeaponType, this.name); data.Add("path", path); }