示例#1
0
        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);
        }
示例#6
0
        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);
        }