Esempio n. 1
0
        public override void Apply(NetworkSkin skin)
        {
            if (skin.m_lanes == null)
            {
                return;
            }

            for (var l = 0; l < skin.m_lanes.Length; l++)
            {
                if (!Position.IsCorrectSide(skin.m_lanes[l].m_position))
                {
                    continue;
                }

                var laneProps = skin.m_lanes[l]?.m_laneProps?.m_props;
                if (laneProps == null)
                {
                    continue;
                }

                for (var p = 0; p < laneProps.Length; p++)
                {
                    if (laneProps[p]?.m_tree != null || laneProps[p]?.m_tree != null)
                    {
                        skin.UpdateLaneProp(l, p, laneProp =>
                        {
                            laneProp.m_tree           = Tree;
                            laneProp.m_finalTree      = Tree;
                            laneProp.m_repeatDistance = RepeatDistance;
                        });
                    }
                }
            }
        }
Esempio n. 2
0
        public bool HasTrees(NetInfo prefab, LanePosition position)
        {
            if (prefab.m_lanes == null)
            {
                return(false);
            }

            foreach (var lane in prefab.m_lanes)
            {
                if (lane?.m_laneProps?.m_props != null && position.IsCorrectSide(lane.m_position))
                {
                    foreach (var laneProp in lane.m_laneProps.m_props)
                    {
                        if (laneProp?.m_finalTree != null && _availableStreetLights.Contains(laneProp.m_finalProp))
                        {
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
Esempio n. 3
0
        public float GetDefaultTreeDistance(NetInfo prefab, LanePosition position)
        {
            if (prefab.m_lanes == null)
            {
                return(-1f);
            }

            foreach (var lane in prefab.m_lanes)
            {
                if (lane?.m_laneProps?.m_props != null && position.IsCorrectSide(lane.m_position))
                {
                    foreach (var laneProp in lane.m_laneProps.m_props)
                    {
                        if (laneProp?.m_finalTree != null)
                        {
                            return(laneProp.m_repeatDistance);
                        }
                    }
                }
            }

            return(-1f);
        }
Esempio n. 4
0
        public TreeInfo GetDefaultTree(NetInfo prefab, LanePosition position)
        {
            if (prefab.m_lanes == null)
            {
                return(null);
            }

            foreach (var lane in prefab.m_lanes)
            {
                if (lane?.m_laneProps?.m_props != null && position.IsCorrectSide(lane.m_position))
                {
                    foreach (var laneProp in lane.m_laneProps.m_props)
                    {
                        if (laneProp?.m_finalTree != null)
                        {
                            return(laneProp.m_finalTree);
                        }
                    }
                }
            }

            return(null);
        }
Esempio n. 5
0
        public bool HasTrees(NetInfo prefab, LanePosition position)
        {
            if (prefab.m_lanes == null) return false;

            foreach (var lane in prefab.m_lanes)
                if (lane?.m_laneProps?.m_props != null && position.IsCorrectSide(lane.m_position))
                    foreach (var laneProp in lane.m_laneProps.m_props)
                    {
                        if (laneProp?.m_finalTree != null && _availableStreetLights.Contains(laneProp.m_finalProp)) return true;
                    }
            return false;
        }
Esempio n. 6
0
        public float GetDefaultTreeDistance(NetInfo prefab, LanePosition position)
        {
            if (prefab.m_lanes == null) return -1f;

            foreach (var lane in prefab.m_lanes)
                if (lane?.m_laneProps?.m_props != null && position.IsCorrectSide(lane.m_position))
                    foreach (var laneProp in lane.m_laneProps.m_props)
                    {
                        if (laneProp?.m_finalTree != null) return laneProp.m_repeatDistance;
                    }

            return -1f;
        }
Esempio n. 7
0
        public TreeInfo GetDefaultTree(NetInfo prefab, LanePosition position)
        {
            if (prefab.m_lanes == null) return null;

            foreach (var lane in prefab.m_lanes)
                if (lane?.m_laneProps?.m_props != null && position.IsCorrectSide(lane.m_position))
                    foreach (var laneProp in lane.m_laneProps.m_props)
                    {
                        if (laneProp?.m_finalTree != null) return laneProp.m_finalTree;
                    }

            return null;
        }