private Dictionary <NetInfo, PropInfo> GetDefaultStreetLights()
        {
            var defaultStreetLights = new Dictionary <NetInfo, PropInfo>();

            var groundStreetLight = StreetLightUtils.GetDefaultStreetLight(Prefab);

            if (groundStreetLight != null)
            {
                if (!StreetLightUtils.HasSingularStreetLight(Prefab))
                {
                    return(new Dictionary <NetInfo, PropInfo>());
                }
                defaultStreetLights[Prefab] = groundStreetLight;
            }


            var elevatedPrefab = NetUtils.GetElevatedPrefab(Prefab);

            if (elevatedPrefab != null)
            {
                var elevatedStreetLight = StreetLightUtils.GetDefaultStreetLight(elevatedPrefab);
                if (elevatedStreetLight != null)
                {
                    if (!StreetLightUtils.HasSingularStreetLight(elevatedPrefab))
                    {
                        return(new Dictionary <NetInfo, PropInfo>());
                    }
                    defaultStreetLights[elevatedPrefab] = elevatedStreetLight;
                }
            }

            var bridgePrefab = NetUtils.GetBridgePrefab(Prefab);

            if (bridgePrefab != null)
            {
                var bridgeStreetLight = StreetLightUtils.GetDefaultStreetLight(bridgePrefab);
                if (bridgeStreetLight != null)
                {
                    if (!StreetLightUtils.HasSingularStreetLight(bridgePrefab))
                    {
                        return(new Dictionary <NetInfo, PropInfo>());
                    }
                    defaultStreetLights[bridgePrefab] = bridgeStreetLight;
                }
            }

            return(defaultStreetLights);
        }
Пример #2
0
        protected override Dictionary <NetInfo, List <NetworkSkinModifier> > BuildModifiers()
        {
            var modifiers = new Dictionary <NetInfo, List <NetworkSkinModifier> >();

            if (SelectedItem != null && SelectedItem is SimpleItem item)
            {
                // fix for nature trail with repeat distance 0f!
                var repeatDistance = DefaultRepeatDistance >= 2.0f ? SelectedRepeatDistance : DefaultRepeatDistance;
                if (item != DefaultItem || repeatDistance != DefaultRepeatDistance)
                {
                    var prefabModifiers = new List <NetworkSkinModifier>
                    {
                        new StreetLightModifier(item.Value, repeatDistance)
                    };

                    if (StreetLightUtils.HasSingularStreetLight(Prefab))
                    {
                        modifiers[Prefab] = prefabModifiers;
                    }

                    var elevatedPrefab = NetUtils.GetElevatedPrefab(Prefab);
                    if (StreetLightUtils.HasSingularStreetLight(elevatedPrefab))
                    {
                        modifiers[elevatedPrefab] = prefabModifiers;
                    }

                    var bridgePrefab = NetUtils.GetBridgePrefab(Prefab);
                    if (StreetLightUtils.HasSingularStreetLight(bridgePrefab))
                    {
                        modifiers[bridgePrefab] = prefabModifiers;
                    }
                }
            }

            return(modifiers);
        }