public static void QueueItemToSave(GameObject saveObject, string serializedGuid) { SerializableData serializableData = new SerializableData(); #region Serilaize Object #region Serialize Unity classes and types serializableData.ID = DataSerialization.Serialize(serializedGuid); serializableData.activeInHierarchy = DataSerialization.Serialize(saveObject.activeInHierarchy); serializableData.unitySerializableData.sTransform = DataSerialization.Serialize(saveObject.transform.Serialize()); serializableData.unitySerializableData.sCamera = (saveObject.GetComponent <Camera>() is var cam && cam != null) ? DataSerialization.Serialize(cam.Serialize()) : null; #region Audio serializableData.unitySerializableData.sAudioChorusFilter = (saveObject.GetComponent <AudioChorusFilter>() is var audioChorusFilter && audioChorusFilter != null) ? DataSerialization.Serialize(audioChorusFilter.Serialize()) : null; serializableData.unitySerializableData.sAudioDistortionFilter = (saveObject.GetComponent <AudioDistortionFilter>() is var audioDistortionFilter && audioDistortionFilter != null) ? DataSerialization.Serialize(audioDistortionFilter.Serialize()) : null; serializableData.unitySerializableData.sAudioEchoFilter = (saveObject.GetComponent <AudioEchoFilter>() is var audioEchoFilter && audioEchoFilter != null) ? DataSerialization.Serialize(audioEchoFilter.Serialize()) : null; serializableData.unitySerializableData.sAudioHighPassFilter = (saveObject.GetComponent <AudioHighPassFilter>() is var audioHighPassFilter && audioHighPassFilter != null) ? DataSerialization.Serialize(audioHighPassFilter.Serialize()) : null; serializableData.unitySerializableData.sAudioListener = (saveObject.GetComponent <AudioListener>() is var audioListener && audioListener != null) ? DataSerialization.Serialize(audioListener.Serialize()) : null; serializableData.unitySerializableData.sAudioLowPassFilter = (saveObject.GetComponent <AudioLowPassFilter>() is var audioLowPassFilter && audioLowPassFilter != null) ? DataSerialization.Serialize(audioLowPassFilter.Serialize()) : null; serializableData.unitySerializableData.sAudioReverbFilter = (saveObject.GetComponent <AudioReverbFilter>() is var audioReverbFilter && audioReverbFilter != null) ? DataSerialization.Serialize(audioReverbFilter.Serialize()) : null; serializableData.unitySerializableData.sAudioReverbZone = (saveObject.GetComponent <AudioReverbZone>() is var audioReverbZone && audioReverbZone != null) ? DataSerialization.Serialize(audioReverbZone.Serialize()) : null; serializableData.unitySerializableData.sAudioSource = (saveObject.GetComponent <AudioSource>() is var audioSource && audioSource != null) ? DataSerialization.Serialize(audioSource.Serialize()) : null; #endregion #region Effects serializableData.unitySerializableData.sLensFlare = (saveObject.GetComponent <LensFlare>() is var lensFlare && lensFlare != null) ? DataSerialization.Serialize(lensFlare.Serialize()) : null; serializableData.unitySerializableData.sLineRenderer = (saveObject.GetComponent <LineRenderer>() is var lineRenderer && lineRenderer != null) ? DataSerialization.Serialize(lineRenderer.Serialize()) : null; serializableData.unitySerializableData.sParticleSystem = (saveObject.GetComponent <ParticleSystem>() is var particleSystem && particleSystem != null) ? DataSerialization.Serialize(particleSystem.Serialize()) : null; serializableData.unitySerializableData.sProjector = (saveObject.GetComponent <Projector>() is var projector && projector != null) ? DataSerialization.Serialize(projector.Serialize()) : null; serializableData.unitySerializableData.sTrailRenderer = (saveObject.GetComponent <TrailRenderer>() is var trailRenderer && trailRenderer != null) ? DataSerialization.Serialize(trailRenderer.Serialize()) : null; #endregion #endregion #region Serialize User Defined Classes MonoBehaviour[] saveableScripts = saveObject.GetComponents <MonoBehaviour>(); foreach (var monoItem in saveableScripts) { if (monoItem is IUniversalSerializedPersistenceSystem == false) { continue; } System.Type thisType = monoItem.GetType(); MethodInfo theMethod = thisType.GetMethod("Serialize"); object[] parameters = new object[1] { saveObject }; serializableData.serializedScripts = (List <UserDefinedData>)theMethod.Invoke(monoItem, parameters); break; } #endregion #endregion #region Serilaize Objects Children QueueAllChildren(serializedGuid, saveObject.transform, saveObject.transform, ref serializableData); #endregion UniversalSerializedPersistenceSystem.serializableDataSet.data.Add(serializableData); saveObject.BroadcastMessage("SaveMessage", SendMessageOptions.DontRequireReceiver); }
public static void BroadcastEmojiTexture(this Multiplayer multiplayer, Texture2D texture, int numberEmojis) { if (Game1.IsMultiplayer) { object[] objArray = new object[3] { Message.Action.BroadcastEmojiTexture.ToString(), numberEmojis, DataSerialization.Serialize(new TextureData(texture)) }; OutgoingMessage message = new OutgoingMessage(Message.TypeID, Game1.player, objArray); if (Game1.IsClient) { Game1.client.sendMessage(message); } else if (Game1.IsClient) { foreach (Farmer farmer in Game1.getAllFarmers()) { if (farmer != Game1.player) { Game1.server.sendMessage(farmer.UniqueMultiplayerID, message); } } } } }
public static void SaveWorldMap(WorldMapData worldMapData) { FileStream fs = File.Create(WorldMapSaveFile); BinaryFormatter bf = new BinaryFormatter(); SerializedWorldMapData gameData = new SerializedWorldMapData(); gameData.Player = DataSerialization.Serialize(worldMapData.Player); gameData.Seed = worldMapData.Seed; gameData.WorldMapInfos = worldMapData.WorldMapInfos; gameData.DiscoveredMap = worldMapData.DiscoveredMap; gameData.CurrentPosX = (int)worldMapData.CurrentPos.x; gameData.CurrentPosY = (int)worldMapData.CurrentPos.y; gameData.Size = worldMapData.Size; gameData.InventoryItemId = new List <string>(); gameData.InventoryItemQuantity = new List <int>(); foreach (Item item in worldMapData.Inventory) { gameData.InventoryItemId.Add(item.ItemId.ToString()); gameData.InventoryItemQuantity.Add(item.Quantity); } bf.Serialize(fs, gameData); fs.Close(); }
public string[] SerializeArticles() { var serializedArticles = new string[Articles.Count]; for (int i = 0; i < Articles.Count; i++) { serializedArticles[i] = DataSerialization.Serialize(Articles[i]); } return(serializedArticles); }
public static void SaveBattleground(BattlegroundData battlegroundData) { FileStream fs = File.Create(BattlegroundSaveFile); BinaryFormatter bf = new BinaryFormatter(); SerializedBattlegroundData gameData = new SerializedBattlegroundData(); gameData.Player = DataSerialization.Serialize(battlegroundData.Player); gameData.Enemies = DataSerialization.Serialize(battlegroundData.Enemies); gameData.MapInfos = DataSerialization.Serialize(battlegroundData.MapInfos); gameData.CurrentUnitId = battlegroundData.CurrentUnitId; bf.Serialize(fs, gameData); fs.Close(); }
public static void SendEmojiTexture(this Multiplayer multiplayer, long peerId, Texture2D texture, int numberEmojis) { if (Game1.IsMultiplayer) { object[] objArray = new object[3] { Message.Action.SendEmojiTexture.ToString(), numberEmojis, DataSerialization.Serialize(new TextureData(texture)) }; OutgoingMessage message = new OutgoingMessage(Message.TypeID, Game1.player, objArray); if (Game1.IsClient) { Game1.client.sendMessage(message); } else if (Game1.IsServer) { Game1.server.sendMessage(peerId, message); } } }
public static void SendEmojisTextureDataList(this Multiplayer multiplayer, long peerId, List <TextureData> textureDataList) { if (Game1.IsMultiplayer) { object[] objArray = new object[3] { Message.Action.SendEmojisTextureDataList.ToString(), peerId, DataSerialization.Serialize(textureDataList) }; OutgoingMessage message = new OutgoingMessage(Message.TypeID, Game1.player, objArray); if (Game1.IsClient) { Game1.client.sendMessage(message); } else if (Game1.IsServer) { Game1.server.sendMessage(peerId, message); } } }