Beispiel #1
0
        // nullable
        public static NetworkSkin Deserialize(DataSerializer s, IPrefabCollection prefabCollection, NetworkSkinLoadErrors errors)
        {
            var prefab = prefabCollection.FindPrefab <NetInfo>(s.ReadUniqueString(), errors);

            var modifiersCount = s.ReadInt32();
            var modifiers      = new List <NetworkSkinModifier>();

            for (var m = 0; m < modifiersCount; m++)
            {
                var modifier = NetworkSkinModifier.Deserialize(s, prefabCollection, errors);
                if (modifier != null)
                {
                    modifiers.Add(modifier);
                }
            }

            // We are checking if the prefab is null after all the modifiers are deserialized!
            // This is important for the deserialization of the next items!
            if (prefab == null)
            {
                return(null);
            }

            return(new NetworkSkin(prefab, modifiers));
        }
Beispiel #2
0
        public static StreetLightModifier DeserializeImpl(DataSerializer s, IPrefabCollection prefabCollection, NetworkSkinLoadErrors errors)
        {
            var streetLight    = prefabCollection.FindPrefab <PropInfo>(s.ReadUniqueString(), errors);
            var repeatDistance = s.ReadFloat();

            return(new StreetLightModifier(streetLight, repeatDistance));
        }
Beispiel #3
0
        public static TreeModifier DeserializeImpl(DataSerializer s, IPrefabCollection prefabCollection, NetworkSkinLoadErrors errors)
        {
            var position       = (LanePosition)s.ReadInt32();
            var tree           = prefabCollection.FindPrefab <TreeInfo>(s.ReadUniqueString(), errors);
            var repeatDistance = s.ReadFloat();

            return(new TreeModifier(position, tree, repeatDistance));
        }
Beispiel #4
0
        public static PillarModifier DeserializeImpl(DataSerializer s, IPrefabCollection prefabCollection, NetworkSkinLoadErrors errors)
        {
            var type = (PillarType)s.ReadInt32();

            var pillar = prefabCollection.FindPrefab <BuildingInfo>(s.ReadUniqueString(), errors);

            return(new PillarModifier(type, pillar));
        }
Beispiel #5
0
        public static CatenaryModifier DeserializeImpl(DataSerializer s, IPrefabCollection prefabCollection, NetworkSkinLoadErrors errors)
        {
            var catenary = prefabCollection.FindPrefab <PropInfo>(s.ReadUniqueString(), errors);

            return(new CatenaryModifier(catenary));
        }