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; }); } } } }
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); }
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); }
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); }
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; }
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; }
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; }