protected void CreateCheckbox(StationTrackType type) { string typeName = GetNameFromStationType(type); var checkBox = AddUIComponent <UICheckBox>(); CheckboxStationDict[type] = checkBox; checkBox.text = typeName; checkBox.size = new Vector2(width - 16, 16); checkBox.relativePosition = new Vector2(8, 200 + (m_CheckboxCount * 20)); checkBox.isInteractive = true; UISprite cbClicker = checkBox.AddUIComponent <UISprite>(); cbClicker.atlas = atlas; cbClicker.spriteName = "check-unchecked"; cbClicker.relativePosition = new Vector2(0, 0); cbClicker.size = new Vector2(16, 16); cbClicker.isInteractive = true; checkBox.eventCheckChanged += (c, v) => { TunnelStationTrackToggleStyles(type); }; UILabel cbLabel = checkBox.AddUIComponent <UILabel>(); cbLabel.relativePosition = new Vector2(20, 0); cbLabel.text = typeName; cbLabel.height = 16; cbLabel.isInteractive = true; m_height += 20; m_CheckboxCount++; }
protected UIButton CreateButton(StationTrackType type, int columnCount, MouseEventHandler eventClick, bool sameLine = false) { return(CreateButton(new UIButtonParamProps() { Text = GetNameFromStationType(type), ColumnCount = columnCount, EventClick = eventClick, SameLine = sameLine })); }
protected void ToggleButtonPairs(StationTrackType activeStationtype) { foreach (var kvp in buttonStationDict) { kvp.Value.color = new Color32(150, 150, 150, 255); kvp.Value.normalBgSprite = "ButtonMenu"; kvp.Value.useDropShadow = false; kvp.Value.opacity = 95; } buttonStationDict[activeStationtype].color = new Color32(163, 255, 16, 255); buttonStationDict[activeStationtype].normalBgSprite = "ButtonMenuFocused"; buttonStationDict[activeStationtype].useDropShadow = true; buttonStationDict[activeStationtype].opacity = 95; }
protected string GetNameFromStationType(StationTrackType type) { return(Regex.Replace(type.ToString(), "[a-z][A-Z]", m => m.Value[0] + " " + char.ToLower(m.Value[1]))); }
protected virtual void TunnelStationTrackToggleStyles(StationTrackType type) { }
private void CreateUI() { #if DEBUG Next.Debug.Log("MOM UNDERGROUND STATION TRACK GUI Created"); #endif Action stationMechanicsTask = DoStationMechanics; Task t = Task.Create(stationMechanicsTask); m_T = t; backgroundSprite = "GenericPanel"; color = new Color32(68, 84, 68, 170); width = 280; height = 270; opacity = 60; position = Vector2.zero; isVisible = false; isInteractive = true; padding = new RectOffset() { bottom = 8, left = 8, right = 8, top = 8 }; UIPanel dragHandlePanel = AddUIComponent <UIPanel>(); dragHandlePanel.atlas = atlas; dragHandlePanel.backgroundSprite = "GenericPanel"; dragHandlePanel.width = width; dragHandlePanel.height = 30; dragHandlePanel.opacity = 100; dragHandlePanel.color = new Color32(21, 140, 34, 255); dragHandlePanel.relativePosition = Vector3.zero; UIDragHandle dragHandle = dragHandlePanel.AddUIComponent <UIDragHandle>(); dragHandle.width = width; dragHandle.height = dragHandle.parent.height; dragHandle.relativePosition = Vector3.zero; dragHandle.target = this; UILabel titleLabel = dragHandlePanel.AddUIComponent <UILabel>(); titleLabel.relativePosition = new Vector3() { x = 5, y = 5, z = 0 }; titleLabel.textAlignment = UIHorizontalAlignment.Center; titleLabel.text = "Subway Station Options"; titleLabel.isInteractive = false; SliderDataDict = new Dictionary <ToggleType, SliderData>(); SliderDataDict.Add(ToggleType.Depth, new SliderData() { Def = SetStationCustomizations.DEF_DEPTH, Max = SetStationCustomizations.MAX_DEPTH, Min = SetStationCustomizations.MIN_DEPTH, SetVal = SetStationCustomizations.DEF_DEPTH, Step = DEPTH_STEP }); SliderDataDict.Add(ToggleType.Length, new SliderData() { Def = SetStationCustomizations.DEF_LENGTH, Max = SetStationCustomizations.MAX_LENGTH, Min = SetStationCustomizations.MIN_LENGTH, SetVal = SetStationCustomizations.DEF_LENGTH, Step = LENGTH_STEP }); SliderDataDict.Add(ToggleType.Angle, new SliderData() { Def = SetStationCustomizations.DEF_ANGLE, Max = SetStationCustomizations.MAX_ANGLE, Min = SetStationCustomizations.MIN_ANGLE, SetVal = SetStationCustomizations.DEF_ANGLE, Step = ANGLE_STEP }); SliderDataDict.Add(ToggleType.Bend, new SliderData() { Def = SetStationCustomizations.DEF_BEND_STRENGTH, Max = SetStationCustomizations.MAX_BEND_STRENGTH, Min = SetStationCustomizations.MIN_BEND_STRENGTH, SetVal = SetStationCustomizations.DEF_BEND_STRENGTH, Step = BEND_STRENGTH_STEP }); SliderDict = new Dictionary <ToggleType, UISlider>(); PanelDict = new Dictionary <ToggleType, UIPanel>(); CreateSlider(ToggleType.Length); CreateSlider(ToggleType.Depth); CreateSlider(ToggleType.Angle); CreateSlider(ToggleType.Bend); UICheckBox useIslandPlatformCheckBox = AddUIComponent <UICheckBox>(); UICheckBox UseSidePlatformCheckBox = AddUIComponent <UICheckBox>(); UICheckBox UseSingleTrackCheckBox = AddUIComponent <UICheckBox>(); UseSidePlatformCheckBox.text = "Side Platform"; UseSidePlatformCheckBox.size = new Vector2(width - 16, 16); UseSidePlatformCheckBox.relativePosition = new Vector2(8, 200); UseSidePlatformCheckBox.isInteractive = true; UseSidePlatformCheckBox.eventCheckChanged += (c, v) => { if (UseSidePlatformCheckBox.isChecked) { m_PrevTrackType = m_TrackType; m_TrackType = StationTrackType.SidePlatform; useIslandPlatformCheckBox.isChecked = false; UseSingleTrackCheckBox.isChecked = false; TunnelStationTrackToggleStyles(m_currentBuilding); t.Run(); } else { if (useIslandPlatformCheckBox.isChecked == false && UseSingleTrackCheckBox.isChecked == false) { UseSidePlatformCheckBox.isChecked = true; } } }; m_UseSidePlatformCheckBoxClicker = UseSidePlatformCheckBox.AddUIComponent <UISprite>(); m_UseSidePlatformCheckBoxClicker.atlas = atlas; m_UseSidePlatformCheckBoxClicker.spriteName = "check-unchecked"; m_UseSidePlatformCheckBoxClicker.relativePosition = new Vector2(0, 0); m_UseSidePlatformCheckBoxClicker.size = new Vector2(16, 16); m_UseSidePlatformCheckBoxClicker.isInteractive = true; UILabel UseSidePlatformLabel = UseSidePlatformCheckBox.AddUIComponent <UILabel>(); UseSidePlatformLabel.relativePosition = new Vector2(20, 0); UseSidePlatformLabel.text = "Side Platform"; UseSidePlatformLabel.height = 16; UseSidePlatformLabel.isInteractive = true; useIslandPlatformCheckBox.text = "Island Platform"; useIslandPlatformCheckBox.size = new Vector2(width - 16, 16); useIslandPlatformCheckBox.relativePosition = new Vector2(8, 220); useIslandPlatformCheckBox.isInteractive = true; useIslandPlatformCheckBox.eventCheckChanged += (c, v) => { if (useIslandPlatformCheckBox.isChecked) { m_PrevTrackType = m_TrackType; m_TrackType = StationTrackType.IslandPlatform; UseSingleTrackCheckBox.isChecked = false; UseSidePlatformCheckBox.isChecked = false; TunnelStationTrackToggleStyles(m_currentBuilding); t.Run(); } else { if (UseSidePlatformCheckBox.isChecked == false && UseSingleTrackCheckBox.isChecked == false) { useIslandPlatformCheckBox.isChecked = true; } } }; m_UseIslandPlatformCheckBoxClicker = useIslandPlatformCheckBox.AddUIComponent <UISprite>(); m_UseIslandPlatformCheckBoxClicker.atlas = atlas; m_UseIslandPlatformCheckBoxClicker.spriteName = "check-unchecked"; m_UseIslandPlatformCheckBoxClicker.relativePosition = new Vector2(0, 0); m_UseIslandPlatformCheckBoxClicker.size = new Vector2(16, 16); m_UseIslandPlatformCheckBoxClicker.isInteractive = true; UILabel useIslandPlatformLabel = useIslandPlatformCheckBox.AddUIComponent <UILabel>(); useIslandPlatformLabel.relativePosition = new Vector2(20, 0); useIslandPlatformLabel.text = "Island Platform"; useIslandPlatformLabel.height = 16; useIslandPlatformLabel.isInteractive = true; UseSingleTrackCheckBox.text = "Single Track"; UseSingleTrackCheckBox.size = new Vector2(width - 16, 16); UseSingleTrackCheckBox.relativePosition = new Vector2(8, 240); UseSingleTrackCheckBox.isInteractive = true; UseSingleTrackCheckBox.eventCheckChanged += (c, v) => { if (UseSingleTrackCheckBox.isChecked) { m_PrevTrackType = m_TrackType; m_TrackType = StationTrackType.SingleTrack; useIslandPlatformCheckBox.isChecked = false; UseSidePlatformCheckBox.isChecked = false; TunnelStationTrackToggleStyles(m_currentBuilding); t.Run(); } else { if (UseSidePlatformCheckBox.isChecked == false && useIslandPlatformCheckBox.isChecked == false) { UseSingleTrackCheckBox.isChecked = true; } } }; m_UseSingleTrackCheckBoxClicker = UseSingleTrackCheckBox.AddUIComponent <UISprite>(); m_UseSingleTrackCheckBoxClicker.atlas = atlas; m_UseSingleTrackCheckBoxClicker.spriteName = "check-unchecked"; m_UseSingleTrackCheckBoxClicker.relativePosition = new Vector2(0, 0); m_UseSingleTrackCheckBoxClicker.size = new Vector2(16, 16); m_UseSingleTrackCheckBoxClicker.isInteractive = true; UILabel UseSingleTrackLabel = UseSingleTrackCheckBox.AddUIComponent <UILabel>(); UseSingleTrackLabel.relativePosition = new Vector2(20, 0); UseSingleTrackLabel.text = "Single Track"; UseSingleTrackLabel.height = 16; UseSingleTrackLabel.isInteractive = true; }