public void Recalculate() { m_bridgePillarInfo = PillarUtils.GetDefaultBridgePillar(Prefab); m_bridgePillarInfo2 = PillarUtils.GetDefaultBridgePillar2(Prefab); m_bridgePillarInfo3 = PillarUtils.GetDefaultBridgePillar3(Prefab); m_bridgePillarInfos = PillarUtils.GetDefaultBridgePillars(Prefab); m_middlePillarInfo = PillarUtils.GetDefaultMiddlePillar(Prefab); DestroySkinnedNetLaneProps(); if (Prefab.m_lanes != null) { m_lanes = new NetInfo.Lane[Prefab.m_lanes.Length]; Array.Copy(Prefab.m_lanes, m_lanes, m_lanes.Length); } m_hasWires = true; if (Prefab.m_segments != null) { m_segments = new NetInfo.Segment[Prefab.m_segments.Length]; Array.Copy(Prefab.m_segments, m_segments, m_segments.Length); } m_createPavement = Prefab.m_createPavement; m_createGravel = Prefab.m_createGravel; m_createRuining = Prefab.m_createRuining; m_clipTerrain = Prefab.m_clipTerrain; m_color = Prefab.m_color; UpdateHasWires(); foreach (var modifier in _modifiers) { modifier.Apply(this); } }
public void Restore(NetInfo prefab) { PillarUtils.SetBridgePillar(prefab, BridgePillarInfo); PillarUtils.SetBridgePillar2(prefab, BridgePillarInfo2); PillarUtils.SetBridgePillar3(prefab, BridgePillarInfo3); PillarUtils.SetBridgePillars(prefab, BridgePillarInfos); PillarUtils.SetMiddlePillar(prefab, MiddlePillarInfo); }
public PillarPatcherState(NetInfo prefab) { BridgePillarInfo = PillarUtils.GetDefaultBridgePillar(prefab); BridgePillarInfo2 = PillarUtils.GetDefaultBridgePillar2(prefab); BridgePillarInfo3 = PillarUtils.GetDefaultBridgePillar3(prefab); BridgePillarInfos = PillarUtils.GetDefaultBridgePillars(prefab); MiddlePillarInfo = PillarUtils.GetDefaultMiddlePillar(prefab); }
public void Awake() { Instance = this; NetworkSkinManager.instance.EventSegmentPlaced += OnSegmentPlaced; TerrainSurface = new TerrainSurfacePanelController(); TerrainSurface.EventModifiersChanged += OnModifiersChanged; Color = new ColorPanelController(); Color.EventModifiersChanged += OnModifiersChanged; StreetLight = new StreetLightPanelController(); StreetLight.EventModifiersChanged += OnModifiersChanged; LeftTree = new TreePanelController(LanePosition.Left); LeftTree.EventModifiersChanged += OnModifiersChanged; MiddleTree = new TreePanelController(LanePosition.Middle); MiddleTree.EventModifiersChanged += OnModifiersChanged; RighTree = new TreePanelController(LanePosition.Right); RighTree.EventModifiersChanged += OnModifiersChanged; var availablePillars = PillarUtils.GetAvailablePillars(); ElevatedBridgePillar = new PillarPanelController(PillarType.Bridge, availablePillars); ElevatedBridgePillar.EventModifiersChanged += OnModifiersChanged; ElevatedMiddlePillar = new PillarPanelController(PillarType.Middle, availablePillars); ElevatedMiddlePillar.EventModifiersChanged += OnModifiersChanged; BridgeBridgePillar = new PillarPanelController(PillarType.Bridge, availablePillars); BridgeBridgePillar.EventModifiersChanged += OnModifiersChanged; BridgeMiddlePillar = new PillarPanelController(PillarType.Middle, availablePillars); BridgeMiddlePillar.EventModifiersChanged += OnModifiersChanged; Catenary = new CatenaryPanelController(); Catenary.EventModifiersChanged += OnModifiersChanged; RoadDecoration = new RoadDecorationPanelController(); RoadDecoration.EventModifiersChanged += OnModifiersChanged; Tool = ToolsModifierControl.toolController.gameObject.AddComponent <PipetteTool>(); Tool.EventNetInfoPipetted += OnNetInfoPipetted; }
public static PillarPatcherState?Apply(NetInfo info, NetworkSkin skin) { if (info == null || skin == null) { return(null); } var state = new PillarPatcherState(info); PillarUtils.SetBridgePillar(info, skin.m_bridgePillarInfo); PillarUtils.SetBridgePillar2(info, skin.m_bridgePillarInfo2); PillarUtils.SetBridgePillar3(info, skin.m_bridgePillarInfo3); PillarUtils.SetBridgePillars(info, skin.m_bridgePillarInfos); PillarUtils.SetMiddlePillar(info, skin.m_middlePillarInfo); return(state); }
protected override List <Item> BuildItems(ref Item defaultItem) { if (!PillarUtils.SupportsPillars(Prefab, Type)) { return(new List <Item>()); } var defaultPillar = PillarUtils.GetDefaultPillar(Prefab, Type); foreach (var item in _items) { if (item is SimpleItem simpleItem && simpleItem.Value == defaultPillar) { defaultItem = item; break; } } //Debug.Log($"Built {_items.Count} pillar items with default {defaultPillar} for {Prefab}"); return(_items); }