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);
                        }
                    }
                }
            }
        }
Exemple #3
0
    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();
    }
Exemple #4
0
        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);
        }
Exemple #5
0
    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);
                }
            }
        }