public void AddGUIToggle() { UIMultiStateButton zoomButton = GameObject.Find("ZoomButton").GetComponent <UIMultiStateButton>(); UIComponent bottomBar = zoomButton.parent; UIButton toggle = UIFactory.CreateButton(bottomBar); toggle.area = new Vector4(108, 24, 38, 38); toggle.playAudioEvents = true; toggle.normalBgSprite = "OptionBase"; toggle.focusedBgSprite = "OptionBaseFocus"; toggle.hoveredBgSprite = "OptionBaseHover"; toggle.pressedBgSprite = "OptionBasePressed"; toggle.tooltip = i18n.current["toggle_tooltip"]; toggle.normalFgSprite = "InfoIconEntertainmentDisabled"; toggle.scaleFactor = 0.75f; toggle.eventClicked += (UIComponent component, UIMouseEventParameter eventParam) => { bool active = !sunControlPanel.gameObject.active; toggle.normalBgSprite = active ? "OptionBasePressed" : "OptionBase"; sunControlPanel.gameObject.SetActive(active); timeSlider.gameObject.SetActive(active); }; }
public void CreateUI() { // Delete the old button, panel, and object if they're there. UIMultiStateButton oldButton = UIUtils.Find <UIMultiStateButton>(BUTTON_NAME); if (oldButton != null) { GameObject.Destroy(oldButton); } UIPanel oldPanel = UIUtils.Find <UIPanel>(PANEL_NAME); if (oldPanel != null) { GameObject.Destroy(oldPanel); } UIComponent roadsOptionPanel = UIUtils.Find <UIComponent>("DistrictOptionPanel"); if (roadsOptionPanel == null) { // Listen for districts tab if it hasn't been added yet UITabstrip mainToolStrip = UIUtils.Find <UITabstrip>("MainToolstrip"); if (mainToolStrip == null) { CitiesConsole.Warning("Could not find MainToolstrip"); return; } mainToolStrip.eventSelectedIndexChanged += mainToolStrip_eventSelectedIndexChanged; } else { CreateButton(roadsOptionPanel); } }
public StatesButton(UIComponent component, int spriteWidth, int spriteHeight, int spriteCountHorizontal, string icons_atlas, string name, string[] tooltips) { msb = component.AddUIComponent <UIMultiStateButton> (); UITextureAtlas atlas = CreateTextureAtlas(icons_atlas, name, msb.atlas.material, spriteWidth, spriteHeight, spriteCountHorizontal); msb.name = name; msb.atlas = atlas; for (int i = 0; i < spriteCountHorizontal; i++) { msb.backgroundSprites[i].normal = name + "_" + i; if (i < spriteCountHorizontal - 1) { msb.backgroundSprites.AddState(); msb.foregroundSprites.AddState(); } } msb.tooltip = tooltips[0]; if (tooltips.Length == spriteCountHorizontal) { msb.eventActiveStateIndexChanged += (component2, value) => { msb.tooltip = tooltips[value]; }; } msb.width = spriteWidth; msb.height = spriteHeight; }
private void Awake() { try { if (_tsBar == null) { _tsBar = GameObject.Find("TSBar").GetComponent <UISlicedSprite>(); } if (_bulldozerUndergroundToggle == null) { _bulldozerUndergroundToggle = GameObject.Find("BulldozerUndergroundToggle").GetComponent <UIMultiStateButton>(); } if (_happiness == null) { _happiness = GameObject.Find("Happiness").GetComponent <UISprite>(); } _textureAtlas = LoadResources(); CreateUI(); } catch (Exception e) { Debug.Log("[Bulldoze It!] Bulldozer:Awake -> Exception: " + e.Message); } }
public static void SetVanillaToggleSprites(this UIMultiStateButton multiButton, string bgPrefix, string fgPrefix) { if (!bgPrefix.IsNullOrWhiteSpace()) { UIMultiStateButton.SpriteSetState _backgroundSprites = multiButton.backgroundSprites; if (_backgroundSprites.Count >= 2) { _backgroundSprites[0].normal = bgPrefix + ""; _backgroundSprites[0].hovered = bgPrefix + "Hovered"; _backgroundSprites[0].pressed = bgPrefix + "Pressed"; _backgroundSprites[0].disabled = bgPrefix + "Disabled"; _backgroundSprites[1].normal = bgPrefix + "Focused"; _backgroundSprites[1].disabled = bgPrefix + "Disabled"; } } if (!fgPrefix.IsNullOrWhiteSpace()) { UIMultiStateButton.SpriteSetState _foregroundSprites = multiButton.foregroundSprites; if (_foregroundSprites.Count >= 2) { _foregroundSprites[0].normal = fgPrefix + ""; _foregroundSprites[0].hovered = fgPrefix + "Hovered"; _foregroundSprites[0].pressed = fgPrefix + "Pressed"; _foregroundSprites[0].disabled = fgPrefix + "Disabled"; _foregroundSprites[1].normal = fgPrefix + "Focused"; _foregroundSprites[1].disabled = fgPrefix + "Disabled"; } } }
public void Start() { try { _camera = Camera.main; _zoomButton = GameObject.Find("ZoomButton").GetComponent <UIMultiStateButton>(); _mainPanel = GameObject.Find("RenderItMainPanel").GetComponent <MainPanel>(); _postProcessingBehaviour = _camera.gameObject.GetComponent <PostProcessingBehaviour>(); if (_postProcessingBehaviour == null) { _postProcessingBehaviour = _camera.gameObject.AddComponent <PostProcessingBehaviour>(); _postProcessingBehaviour.profile = ScriptableObject.CreateInstance <PostProcessingProfile>(); } _postProcessingBehaviour.enabled = true; _antialiasingModel = new AntialiasingModel(); _ambientOcclusionModel = new AmbientOcclusionModel(); _bloomModel = new BloomModel(); _colorGradingModel = new ColorGradingModel(); _renderItAtlas = LoadResources(); CreateUI(); } catch (Exception e) { Debug.Log("[Render It!] ModManager:Start -> Exception: " + e.Message); } }
private void CreateUpdateButtons() { this.updateZoneButton = UIUtils.AddToggle((UIComponent)this.roadsOptionPanel, "ZoningUpdateToggle", "upgrade_zoning_icon.png", 58, 38, 31, 31, new string[5] { "Base", "BaseFocussed", "BaseHovered", "Icon", "IconFocussed" }); ((UIComponent)this.updateZoneButton).set_tooltip("Toggle zoning update"); this.updateZoneButton.get_backgroundSprites().AddState(); this.updateZoneButton.get_foregroundSprites().AddState(); UIUtils.setSpriteSet(this.updateZoneButton.get_backgroundSprites().get_Item(0), "Base"); UIUtils.setSpriteSet(this.updateZoneButton.get_foregroundSprites().get_Item(0), "Icon"); UIUtils.setSpriteSet(this.updateZoneButton.get_backgroundSprites().get_Item(1), "BaseFocussed"); UIUtils.setSpriteSet(this.updateZoneButton.get_foregroundSprites().get_Item(1), "IconFocussed"); this.updateZoneButton.get_backgroundSprites().get_Item(0).set_hovered("BaseHovered"); this.updateZoneButton.get_backgroundSprites().get_Item(1).set_hovered("BaseHovered"); // ISSUE: method pointer this.updateZoneButton.add_eventActiveStateIndexChanged(new PropertyChangedEventHandler <int>((object)this, __methodptr(changeToolEnabled))); // ISSUE: method pointer this.builtinModeChangedHandler = new PropertyChangedEventHandler <int>((object)this, __methodptr(\u003CCreateUpdateButtons\u003Eb__25_0)); this.builtinTabstrip.add_eventSelectedIndexChanged(this.builtinModeChangedHandler); }
/// <summary> /// Creates a toggle button (multi-state button) with two states: State 0 and State 1. /// </summary> /// <param name="bgPrefix0">State 0: background sprite prefix</param> /// <param name="bgPrefix1">State 1: background sprite prefix</param> /// <param name="fgPrefix0">State 0: foreground sprite prefix</param> /// <param name="fgPrefix1">State 1: foreground sprite prefix</param> /// <returns></returns> public static UIMultiStateButton AddAToggleButton(UIComponent parent, string name, UITextureAtlas atlas, string bgPrefix0, string bgPrefix1, string fgPrefix0, string fgPrefix1, Vector2 size) { UIMultiStateButton _button = AddAToggleButton(parent, name, atlas, bgPrefix0, bgPrefix1, fgPrefix0, fgPrefix1); _button.size = size; _button.playAudioEvents = true; return(_button); }
public bool CreateButtons(UIPanel uiPanel) { if (Object.op_Equality((Object)uiPanel, (Object)null)) { uiPanel = UIUtils.Find <UIPanel>("RoadsOptionPanel(RoadsPanel)"); } if (Object.op_Equality((Object)uiPanel, (Object)null)) { Logger.Warning("Could not find RoadsOptionPanel"); return(false); } this.roadsOptionPanel = uiPanel; this.builtinTabstrip = (UITabstrip)((UIComponent)this.roadsOptionPanel).Find <UITabstrip>("ToolMode"); this.RemoveButtons(new string[2] { "ZoningToggle", "ZoningUpdateToggle" }); this.roadsOptionPanel.get_atlas().get_material(); UIMultiStateButton button = UIUtils.AddToggle((UIComponent)this.roadsOptionPanel, "ZoningToggle", "togglezoning_icon.png", -38, 38, 36, 36, DeactivatableButtonWrapper.iconNames); this.TZWrapper = new DeactivatableButtonWrapper(button, "Toggle zoning\nRight click reset default", "Default zoning set\nRight click enable toggle"); // ISSUE: method pointer this.TZWrapper.AddEventActiveStateIndexChanged(new PropertyChangedEventHandler <int>((object)this, __methodptr(handleActiveStateIndexChanged))); UIPanel uiPanel1 = UIUtils.Find <UIPanel>("NoPillarsPanel"); if (Object.op_Inequality((Object)uiPanel1, (Object)null)) { Logger.Info("NoPillarsPanel found"); using (IEnumerator <UIComponent> enumerator = ((IEnumerable <UIComponent>)((UIComponent)uiPanel1).get_components()).GetEnumerator()) { while (((IEnumerator)enumerator).MoveNext()) { UIDropDown current = enumerator.Current as UIDropDown; Logger.Info("dropDown != null" + Object.op_Inequality((Object)current, (Object)null).ToString()); if (Object.op_Inequality((Object)current, (Object)null)) { Logger.Info("dropDown.tooltip: '" + ((UIComponent)current).get_tooltip() + "'"); } if (Object.op_Inequality((Object)current, (Object)null) && ((UIComponent)current).get_tooltip().Equals("Change zoning/collision mode")) { this.noPillarsDropDown = current; // ISSUE: method pointer current.add_eventSelectedIndexChanged(new PropertyChangedEventHandler <int>((object)this, __methodptr(\u003CCreateButtons\u003Eb__19_0))); } } } } Logger.Debug(string.Concat((object)OptionsWrapper.ToggleState)); button.set_activeStateIndex((int)OptionsWrapper.ToggleState % 2); this.TZWrapper.active = OptionsWrapper.ToggleState != ToggleStates.deactivated; this.UpdateVisible(OptionsWrapper.Options.ToggleVisible); this.CreateUpdateButtons(); return(true); }
public void HookZoomControls() { UIMultiStateButton zoomButton = GameObject.Find("ZoomButton").GetComponent <UIMultiStateButton>(); zoomButton.tooltip = i18n.current["zoombutton_tooltip"]; zoomButton.eventMouseMove += MouseMoved; zoomButton.eventMouseUp += MouseMoved; zoomButton.backgroundSprites[0].hovered = ""; zoomButton.backgroundSprites[1].hovered = ""; }
private static void toggleToolbarWidthButton_eventActiveStateIndexChanged(UIComponent component, int value) { Mod.Instance.Log.Debug("ToggleToolbarWidthButton activeStateIndexChanged to {0}", value); UITabContainer tsContainer = GameObject.Find(GameObjectDefs.ID_TSCONTAINER).GetComponent <UITabContainer>(); UIButton tsCloseButton = GameObject.Find(GameObjectDefs.ID_TSCLOSEBUTTON).GetComponent <UIButton>(); float newX = tsContainer.absolutePosition.x; float newWidth = tsContainer.width; switch (value) { case 0: // Reset to normal width newX = originalTSContainerX; newWidth = originalTSContainerWidth; break; case 1: // Patch to full width // Extend to the right originalTSContainerWidth = tsContainer.width; int extendAmount = (int)((tsCloseButton.absolutePosition.x - tsContainer.absolutePosition.x - tsContainer.width) / 109f); newWidth += extendAmount * 109f; // Extend to the left originalTSContainerX = tsContainer.absolutePosition.x; GameObject advisorButtonGameObject = GameObject.Find("AdvisorButton"); UIPanel optionsBar = GameObject.Find("OptionsBar").GetComponent <UIPanel>(); float maxX = optionsBar.absolutePosition.x + optionsBar.width; if (advisorButtonGameObject != null) { UIMultiStateButton advisorButton = advisorButtonGameObject.GetComponent <UIMultiStateButton>(); maxX = Mathf.Max(maxX, advisorButton.absolutePosition.x + advisorButton.width); } extendAmount = (int)((tsContainer.absolutePosition.x - maxX) / 109f); newX = tsContainer.absolutePosition.x - extendAmount * 109f; newWidth += extendAmount * 109f; break; } lastTSContainerX = newX; lastTSContainerWidth = newWidth; tsContainer.absolutePosition = new Vector2(newX, tsContainer.absolutePosition.y); tsContainer.width = newWidth; // Save state Mod.Instance.Settings.State.ToolbarHasExtendedWidth = value == 1; }
private void RemoveButtons(string[] oldButtons) { foreach (string oldButton in oldButtons) { UIMultiStateButton multiStateButton = (UIMultiStateButton)((UIComponent)this.roadsOptionPanel).Find <UIMultiStateButton>(oldButton); if (Object.op_Inequality((Object)multiStateButton, (Object)null)) { ((UIComponent)multiStateButton).Hide(); ((UIComponent)multiStateButton).get_parent().RemoveUIComponent((UIComponent)multiStateButton); Object.Destroy((Object)((Component)multiStateButton).get_gameObject()); } } }
/// <summary> /// Removes our button to switch between the different toolbar modes. /// </summary> public static void RemoveToolbarControlBox() { ToolbarEvents.ToolbarOpened -= ToolbarEvents_ToolbarOpened; ToolbarEvents.ToolbarClosed -= ToolbarEvents_ToolbarClosed; UITabContainer tsContainer = GameObject.Find(GameObjectDefs.ID_TSCONTAINER).GetComponent <UITabContainer>(); tsContainer.eventSizeChanged -= TSContainer_OnSizeChanged; UISlicedSprite tsBar = GameObject.Find(GameObjectDefs.ID_TSBAR).GetComponent <UISlicedSprite>(); tsBar.RemoveUIComponent(toolbarControlBox); toolbarControlBox = null; toggleToolbarWidthButton = null; }
public static void SetButtonPositionAndSize( UIMultiStateButton button, int x, int y, int width, int height) { Vector3 vector3_1; ((Vector3) ref vector3_1).\u002Ector((float)x, (float)y); Vector3 vector3_2; ((Vector3) ref vector3_2).\u002Ector((float)width, (float)height); ((UIComponent)button).set_relativePosition(vector3_1); ((UIComponent)button).set_size(Vector2.op_Implicit(vector3_2)); }
public DeactivatableButtonWrapper( UIMultiStateButton button, string tooltipActive = "", string tooltipInactive = "") { this.Button = button; this.tooltipActive = tooltipActive; this.tooltipInactive = tooltipInactive; // ISSUE: method pointer ((UIComponent)button).add_eventMouseUp(new MouseEventHandler((object)this, __methodptr(onMouseUp))); this.Button.get_backgroundSprites().Clear(); this.Button.get_foregroundSprites().Clear(); this.Button.get_backgroundSprites().AddState(); this.Button.get_foregroundSprites().AddState(); this.updateButton(); }
void DoneControls() { LocaleManager.eventLocaleChanged -= OnLocaleChanged; Destroy(btnPlay); btnPlay = null; Destroy(btnSpeed); btnSpeed = null; Destroy(lblGameTime); lblGameTime = null; Destroy(lblDayTime); lblDayTime = null; Destroy(barTime); barTime = null; Destroy(lblLocalTime); lblLocalTime = null; Destroy(lblLocalTimeA); lblLocalTimeA = null; Destroy(lblThermometer); lblThermometer = null; Destroy(lblThermometerA); lblThermometerA = null; Destroy(btnDayNightSwitch); btnDayNightSwitch = null; Destroy(btnWeatherSwitch); btnWeatherSwitch = null; Destroy(btnChirperContainer); btnChirperContainer = null; Destroy(btnRadioIconContainer); btnRadioIconContainer = null; }
private void InitializeOpenStationDirectoryButton() { UIMultiStateButton mutebutton = ReflectionHelper.GetPrivateField <UIMultiStateButton>(CurrentRadioPanel, "m_muteButton"); UIPanel radiopanel = ReflectionHelper.GetPrivateField <UIPanel>(CurrentRadioPanel, "m_radioPanel"); m_TopOpenStationDirectory = radiopanel.AddUIComponent <UIButton>(); m_TopOpenStationDirectory.position = mutebutton.position + new Vector3((mutebutton.size.x + 5) + (m_AdditionalButtonCount++ *(mutebutton.size.y + 5)), 0); m_TopOpenStationDirectory.size = new Vector2(mutebutton.size.y, mutebutton.size.y); m_TopOpenStationDirectory.atlas = m_IconAtlas; m_TopOpenStationDirectory.normalBgSprite = "Open"; m_TopOpenStationDirectory.hoveredBgSprite = "Open"; m_TopOpenStationDirectory.color = new Color32(225, 225, 225, 255); m_TopOpenStationDirectory.hoveredColor = new Color32(255, 255, 255, 255); m_TopOpenStationDirectory.tooltip = "Open folder containing the radio station."; m_TopOpenStationDirectory.Show(); m_TopOpenStationDirectory.eventClick += TopOpenStationDirectoryOnEventClick; }
private void InitializeTopNextTrackButton() { UIMultiStateButton mutebutton = ReflectionHelper.GetPrivateField <UIMultiStateButton>(CurrentRadioPanel, "m_muteButton"); UIPanel radiopanel = ReflectionHelper.GetPrivateField <UIPanel>(CurrentRadioPanel, "m_radioPanel"); m_TopNextTrack = radiopanel.AddUIComponent <UIButton>(); m_TopNextTrack.position = mutebutton.position + new Vector3((mutebutton.size.x + 5) + (m_AdditionalButtonCount++ *(mutebutton.size.y + 5)), 0); m_TopNextTrack.size = new Vector2(mutebutton.size.y, mutebutton.size.y); m_TopNextTrack.atlas = m_IconAtlas; m_TopNextTrack.normalBgSprite = "Next"; m_TopNextTrack.hoveredBgSprite = "Next"; m_TopNextTrack.color = new Color32(225, 225, 225, 255); m_TopNextTrack.hoveredColor = new Color32(255, 255, 255, 255); m_TopNextTrack.tooltip = "Switches to the next track."; m_TopNextTrack.Show(); m_TopNextTrack.eventClick += buttonNextTrackClicked; }
private void InitializeShowMusicPanelButton() { UIMultiStateButton mutebutton = ReflectionHelper.GetPrivateField <UIMultiStateButton>(CurrentRadioPanel, "m_muteButton"); UIPanel radiopanel = ReflectionHelper.GetPrivateField <UIPanel>(CurrentRadioPanel, "m_radioPanel"); m_TopShowMusicList = radiopanel.AddUIComponent <UIButton>(); m_TopShowMusicList.position = mutebutton.position + new Vector3((mutebutton.size.x + 5) + (m_AdditionalButtonCount++ *(mutebutton.size.y + 5)), 0); m_TopShowMusicList.size = new Vector2(mutebutton.size.y, mutebutton.size.y); m_TopShowMusicList.atlas = m_IconAtlas; m_TopShowMusicList.normalBgSprite = "Menu"; m_TopShowMusicList.hoveredBgSprite = "Menu"; m_TopShowMusicList.color = new Color32(225, 225, 225, 255); m_TopShowMusicList.hoveredColor = new Color32(255, 255, 255, 255); m_TopShowMusicList.tooltip = "Shows/hides the playlist."; m_TopShowMusicList.Show(); m_TopShowMusicList.eventClick += TopShowMusicListOnEventClick; }
public void UnHookZoomButtonControls() { if (ZoomButtonHooked) { var obj = GameObject.Find("ZoomButton"); if (obj != null) { UIMultiStateButton zoomButton = obj.GetComponent <UIMultiStateButton>(); if (zoomButton != null) { zoomButton.eventMouseMove -= OnZoomButtonMouseMoved; zoomButton.eventMouseUp -= OnZoomButtonMouseMoved; zoomButton.backgroundSprites[0].hovered = zoomButtonbackgroundSprite1; zoomButton.backgroundSprites[1].hovered = zoomButtonbackgroundSprite2; } } ZoomButtonHooked = false; } }
public void HookZoomButtonControls() { if (!ZoomButtonHooked) { var obj = GameObject.Find("ZoomButton"); if (obj != null) { UIMultiStateButton zoomButton = obj.GetComponent <UIMultiStateButton>(); zoomButton.eventMouseMove += OnZoomButtonMouseMoved; zoomButton.eventMouseUp += OnZoomButtonMouseMoved; zoomButtonbackgroundSprite1 = zoomButton.backgroundSprites[0].hovered; zoomButtonbackgroundSprite2 = zoomButton.backgroundSprites[1].hovered; zoomButton.backgroundSprites[0].hovered = ""; zoomButton.backgroundSprites[1].hovered = ""; ZoomButtonHooked = true; } } }
private void InitUI() { if (toolbarTabContainer == null) { MainToolbar toolbar = ToolsModifierControl.mainToolbar; UITabstrip tabstrip = (UITabstrip)toolbar.component; toolbarTabContainer = tabstrip.tabContainer; } Options.eventScrollDirectionChanged += (bool value) => { if (expanded) { Expand(value); } }; if (m_expandButton == null) { UIView view = UIView.GetAView(); UIMultiStateButton advisorButton = view.FindUIComponent <UIMultiStateButton>("AdvisorButton"); m_expandButton = (UIButton)view.AddUIComponent(typeof(UIButton)); m_expandButton.absolutePosition = advisorButton.absolutePosition + new Vector3(advisorButton.width, 0); var atlas = TextureLoader.CreateTextureAtlas("ExapandCollapseIcons", "ExpandCollapseIcons", TextureLoader.FileDirectory.Images, new string[] { "Expand", "Collapse", "OptionBase", "OptionBaseDisabled", "OptionBaseHovered", "OptionBaseFocused" }, 2, 3); //m_expandButton.text = "+"; m_expandButton.atlas = atlas; m_expandButton.name = "ExpandToolbarButton"; m_expandButton.isInteractive = true; m_expandButton.scaleFactor = 0.76f; m_expandButton.size = new Vector2(36, 36); m_expandButton.normalBgSprite = "OptionBase"; m_expandButton.normalFgSprite = "Expand"; m_expandButton.disabledBgSprite = "OptionBaseDisabled"; m_expandButton.hoveredBgSprite = "OptionBaseHovered"; m_expandButton.eventClicked += (component, eventParam) => { ToggleExpand(); }; } }
public void SetAdvisorButtonVisibility() { try { UIMultiStateButton advisorButton = UIView.Find("AdvisorButton") as UIMultiStateButton; if (advisorButton == null) { return; } if (Settings.hideAdvisorButton) { advisorButton.Hide(); } else { advisorButton.Show(); } } catch (Exception ex) { Debugging.Message("SetAdvisorButtonVisibility() - " + ex.Message); } }
public override void Awake() { base.Awake(); Debug.Log("[PLT] begin UIOptionPanel.Awake()"); //old as of 161129 //Util.LoadSprites(); //new as of 161129 SpriteManager.CreateAtlasPLT(); //setup panel //base.width = 256; //base.height = 36; base.size = SIZE_DEFAULT_INGAME; this._panel = base.AddUIComponent <UIPanel>(); this._panel.name = "HolderPanel"; this._panel.width = base.width; this._panel.height = base.height; this._panel.relativePosition = new Vector3(0f, 0f); //setup snapping toggle this._snappingToggle = UISimpleElems.AddAThreeStateButton(this._panel, "PLT_ToggleSnapping", SpriteManager.atlasPLT, "PLT_MultiStateZero", "PLT_MultiStateOne", "PLT_MultiStateTwo", "PLT_SnappingModeZero", "PLT_SnappingModeOne", "PLT_SnappingModeTwo"); this._snappingToggle.height = 36f; this._snappingToggle.width = 36f; this._snappingToggle.relativePosition = new Vector3(0f, 0f, 0f); this._snappingToggle.playAudioEvents = true; this._snappingToggle.tooltip = "[PLT]: Toggle Snapping"; if (this._snappingToggle != null) { this._snappingToggle.eventActiveStateIndexChanged += delegate(UIComponent sender, int index) { PropLineTool.m_snapMode = this.m_snapModes[index]; }; } //setup fenceMode toggle this._fenceModeToggle = UISimpleElems.AddAToggleButton(this._panel, "PLTToggleFenceMode", SpriteManager.atlasPLT, "PLT_MultiStateZero", "PLT_MultiStateOne", "PLT_FenceModeZero", "PLT_FenceModeOne"); this._fenceModeToggle.height = 36f; this._fenceModeToggle.width = 36f; //this._fenceModeToggle.relativePosition = new Vector3(36f, 0f, 0f); //new for circle draw mode this._fenceModeToggle.relativePosition = new Vector3(0f, 0f, 0f); this._fenceModeToggle.playAudioEvents = true; this._fenceModeToggle.tooltip = "[PLT]: Toggle Fence Mode"; if (this._fenceModeToggle != null) { this._fenceModeToggle.eventActiveStateIndexChanged += delegate(UIComponent sender, int index) { bool _fenceModeActive = false; if (index >= 1) { _fenceModeActive = true; } else if (index <= 0) { _fenceModeActive = false; } PropLineTool.fenceMode = _fenceModeActive; }; } //setup tabstrip this._tabstrip = this._panel.AddUIComponent <UITabstrip>(); //this._tabstrip.relativePosition = new Vector3(72f, 0f, 0f); //this._tabstrip.width = 144f; //new for circle draw mode this._tabstrip.relativePosition = new Vector3(36f, 0f, 0f); this._tabstrip.width = 180f; this._tabstrip.height = 36f; this._tabstrip.padding.right = 0; UIButton componentInChildren = GameObject.Find("ToolMode").GetComponent <UITabstrip>().GetComponentInChildren <UIButton>(); UITextureAtlas atlas = UIView.GetAView().defaultAtlas; for (int i = 0; i < TOOL_MODE_NAMES.Length; i++) { UIButton _button = this._tabstrip.AddTab(TOOL_MODE_NAMES[i], componentInChildren, false); _button.autoSize = false; _button.tooltip = "[PLT]: " + TOOL_MODE_NAMES[i]; _button.height = 36f; _button.width = 36f; if (i == 0 || i == 4) { _button.name = i == 4 ? "PLTCircle" : "PLTSingle"; _button.normalFgSprite = ""; _button.focusedFgSprite = ""; _button.hoveredFgSprite = ""; _button.pressedFgSprite = ""; _button.disabledFgSprite = ""; _button.text = i == 4 ? "○" : "•"; _button.textScale = i == 4? 3.0f : 1.5f; _button.textPadding.left = i == 4 ? -2 : 0; _button.textPadding.right = 1; _button.textPadding.top = i == 4 ? -13 : 4; //_button.textPadding.bottom = i == 4? 2 : 0; _button.textPadding.bottom = 0; _button.textColor = new Color32(119, 124, 126, 255); _button.hoveredTextColor = new Color32(110, 113, 114, 255); _button.pressedTextColor = new Color32(172, 175, 176, 255); _button.focusedTextColor = new Color32(187, 224, 235, 255); _button.disabledTextColor = new Color32(66, 69, 70, 255); } if (i > 0 && i < 4) { _button.name = "PLT" + TOOL_MODE_NAMES[i]; string str = "RoadOption" + TOOL_MODE_NAMES[i]; _button.normalFgSprite = str; _button.focusedFgSprite = str + "Focused"; _button.hoveredFgSprite = str + "Hovered"; _button.pressedFgSprite = str + "Pressed"; _button.disabledFgSprite = str + "Disabled"; } _button.playAudioEvents = componentInChildren.playAudioEvents; } //setup selected index in case of re-Load from in-game this._tabstrip.selectedIndex = (int)PropLineTool.drawMode; if (this._tabstrip != null) { this._tabstrip.eventSelectedIndexChanged += delegate(UIComponent sender, int index) { PropLineTool.drawMode = this.m_drawModes[index]; }; } //setup controlPanel toggle this._controlPanelToggle = UISimpleElems.AddAToggleButton(this._panel, "PLTToggleControlPanel", SpriteManager.atlasPLT, "PLT_ToggleCPZero", "PLT_ToggleCPOne", "", ""); this._controlPanelToggle.height = 36f; this._controlPanelToggle.width = 36f; this._controlPanelToggle.relativePosition = new Vector3(216f, 0f, 0f); this._controlPanelToggle.playAudioEvents = true; this._controlPanelToggle.tooltip = "[PLT]: Toggle Control Panel"; if (this._controlPanelToggle != null) { this._controlPanelToggle.eventActiveStateIndexChanged += delegate(UIComponent sender, int index) { if (index >= 1) { PropLineToolMod.basicControlPanel.Show(); } else if (index <= 0) { PropLineToolMod.basicControlPanel.Hide(); } }; } base.FitChildren(); //this is only important to set to zero if we call it after the _tabstrip.eventSelectedIndexChanged event subscription //***VERY IMPORTANT THAT THIS EQUALS ZERO*** //so that TreeTool or PropTool can initialize before PropLineTool this._tabstrip.startSelectedIndex = 0; //fix sprites if PLTAtlas could not be created if (SpriteManager.atlasPLT == null) { RevertToBackupToggleButtons(); } //event subscriptions PropLineTool.eventActiveStateChanged += PropLineTool_ActiveStateChanged; Debug.Log("[PLT] end UIOptionPanel.Awake()"); }
private bool CreateButton(UIComponent districtOptionPanel) { String[] iconNames = { "RoadArrowIcon", "Base", "BaseFocused", "BaseHovered", "BasePressed", "BaseDisabled", }; // Create Hierarchy view = UIView.GetAView(); panel = (UIPanel)view.AddUIComponent(typeof(UIPanel)); newGO = new GameObject(BUTTON_NAME); button = newGO.AddComponent <UIMultiStateButton>(); panel.AttachUIComponent(newGO); // Panel attributes panel.relativePosition = panelPos; panel.width = panelWidth; panel.name = PANEL_NAME; panel.isVisible = false; // Button attributes button.relativePosition = buttonPos; button.size = buttonSize; button.playAudioEvents = true; button.name = BUTTON_NAME; button.tooltip = "Display Zones"; button.isTooltipLocalized = false; button.spritePadding = new RectOffset(); button.activeStateIndex = 1; button.atlas = CreateTextureAtlas("icons.png", BUTTON_NAME + "Atlas", panel.atlas.material, 36, 36, iconNames); UIMultiStateButton.SpriteSet backgroundSpriteSet0 = button.backgroundSprites[0]; backgroundSpriteSet0.normal = "Base"; backgroundSpriteSet0.disabled = "Base"; backgroundSpriteSet0.hovered = "BaseHovered"; backgroundSpriteSet0.pressed = "Base"; backgroundSpriteSet0.focused = "Base"; button.backgroundSprites.AddState(); UIMultiStateButton.SpriteSet backgroundSpriteSet1 = button.backgroundSprites[1]; backgroundSpriteSet1.normal = "BaseFocused"; backgroundSpriteSet1.disabled = "BaseFocused"; backgroundSpriteSet1.hovered = "BaseFocused"; backgroundSpriteSet1.pressed = "BaseFocused"; backgroundSpriteSet1.focused = "BaseFocused"; UIMultiStateButton.SpriteSet foregroundSpriteSet0 = button.foregroundSprites[0]; foregroundSpriteSet0.normal = "RoadArrowIcon"; foregroundSpriteSet0.disabled = "RoadArrowIcon"; foregroundSpriteSet0.hovered = "RoadArrowIcon"; foregroundSpriteSet0.pressed = "RoadArrowIcon"; foregroundSpriteSet0.focused = "RoadArrowIcon"; button.foregroundSprites.AddState(); UIMultiStateButton.SpriteSet foregroundSpriteSet1 = button.foregroundSprites[1]; foregroundSpriteSet1.normal = "RoadArrowIcon"; foregroundSpriteSet1.disabled = "RoadArrowIcon"; foregroundSpriteSet1.hovered = "RoadArrowIcon"; foregroundSpriteSet1.pressed = "RoadArrowIcon"; foregroundSpriteSet1.focused = "RoadArrowIcon"; // Districts Panel Listener districtOptionPanel.eventVisibilityChanged += districtOptionPanel_eventVisibilityChanged; // Button Listener button.eventActiveStateIndexChanged += button_eventActiveStateIndexChanged; return(true); }
/// <summary> /// Creates our button to switch between the different toolbar modes. /// </summary> /// <param name="mode">The game mode.</param> public static void CreateToggleToolbarWidthButton(LoadMode mode) { if (toggleToolbarWidthButton != null) { // We already created it return; } // Initialize variables lastTSContainerWidth = 859f; switch (mode) { case LoadMode.NewGame: case LoadMode.LoadGame: case LoadMode.NewAsset: case LoadMode.LoadAsset: default: lastTSContainerX = 590f; break; case LoadMode.NewMap: case LoadMode.LoadMap: lastTSContainerX = 676f; break; } // Create button and attach it toggleToolbarWidthButton = toolbarControlBox.AddUIComponent <UIMultiStateButton>(); // Set layout toggleToolbarWidthButton.isVisible = false; toggleToolbarWidthButton.size = new Vector2(18, 18); // Set additional settings toggleToolbarWidthButton.name = "ToggleToolbarWidthButton"; toggleToolbarWidthButton.playAudioEvents = true; toggleToolbarWidthButton.tooltip = "Toggle between normal and extended width"; toggleToolbarWidthButton.isTooltipLocalized = false; // Add atlas toggleToolbarWidthButton.atlas = Utils.AtlasUtils.GetUIButtonsAtlas(); // Add background sprites toggleToolbarWidthButton.backgroundSprites.AddState(); toggleToolbarWidthButton.backgroundSprites[0].normal = "Base"; toggleToolbarWidthButton.backgroundSprites[0].hovered = "BaseHovered"; toggleToolbarWidthButton.backgroundSprites[0].pressed = "BasePressed"; toggleToolbarWidthButton.backgroundSprites[1].normal = "Base"; toggleToolbarWidthButton.backgroundSprites[1].hovered = "BaseHovered"; toggleToolbarWidthButton.backgroundSprites[1].pressed = "BasePressed"; // Add foreground sprites toggleToolbarWidthButton.foregroundSprites.AddState(); toggleToolbarWidthButton.foregroundSprites[0].normal = "ArrowRight"; toggleToolbarWidthButton.foregroundSprites[1].normal = "ArrowLeft"; // Fix some NullReferenceException for m_spritePadding toggleToolbarWidthButton.spritePadding = new RectOffset(); // Hook onto various events toggleToolbarWidthButton.eventActiveStateIndexChanged += toggleToolbarWidthButton_eventActiveStateIndexChanged; // Depending on the previous state, set correct mode toggleToolbarWidthButton.activeStateIndex = Mod.Instance.Settings.State.ToolbarHasExtendedWidth ? 1 : 0; Mod.Instance.Log.Debug("Created ToggleToolbarWidthButton"); }
public override void Start() { instance = this; atlas = UIUtils.GetAtlas("Ingame"); size = new Vector2(41, 41); relativePosition = new Vector2(GetUIView().GetScreenResolution().x - 340, -41); name = "MoveIt_ToolOptionPanel"; DebugUtils.Log("ToolOptionPanel position: " + absolutePosition); m_followTerrain = AddUIComponent <UIMultiStateButton>(); m_followTerrain.atlas = GetFollowTerrainAtlas(); m_followTerrain.name = "MoveIt_Snapping"; m_followTerrain.tooltip = "Follow Terrain"; m_followTerrain.playAudioEvents = true; m_followTerrain.size = new Vector2(36, 36); m_followTerrain.spritePadding = new RectOffset(); m_followTerrain.backgroundSprites[0].disabled = "ToggleBaseDisabled"; m_followTerrain.backgroundSprites[0].hovered = "ToggleBaseHovered"; m_followTerrain.backgroundSprites[0].normal = "ToggleBase"; m_followTerrain.backgroundSprites[0].pressed = "ToggleBasePressed"; m_followTerrain.backgroundSprites.AddState(); m_followTerrain.backgroundSprites[1].disabled = "ToggleBaseDisabled"; m_followTerrain.backgroundSprites[1].hovered = ""; m_followTerrain.backgroundSprites[1].normal = "ToggleBaseFocused"; m_followTerrain.backgroundSprites[1].pressed = "ToggleBasePressed"; m_followTerrain.foregroundSprites[0].normal = "FollowTerrain_disabled"; m_followTerrain.foregroundSprites.AddState(); m_followTerrain.foregroundSprites[1].normal = "FollowTerrain"; m_followTerrain.relativePosition = Vector2.zero; m_followTerrain.activeStateIndex = MoveItTool.followTerrain ? 1 : 0; m_followTerrain.eventClicked += (c, p) => { MoveItTool.followTerrain = (m_followTerrain.activeStateIndex == 1); }; m_snapping = AddUIComponent <UIMultiStateButton>(); m_snapping.atlas = UIUtils.GetAtlas("Ingame"); m_snapping.name = "MoveIt_Snapping"; m_snapping.tooltip = "Toggle Snapping"; m_snapping.playAudioEvents = true; m_snapping.size = new Vector2(36, 36); m_snapping.spritePadding = new RectOffset(); m_snapping.backgroundSprites[0].disabled = "ToggleBaseDisabled"; m_snapping.backgroundSprites[0].hovered = "ToggleBaseHovered"; m_snapping.backgroundSprites[0].normal = "ToggleBase"; m_snapping.backgroundSprites[0].pressed = "ToggleBasePressed"; m_snapping.backgroundSprites.AddState(); m_snapping.backgroundSprites[1].disabled = "ToggleBaseDisabled"; m_snapping.backgroundSprites[1].hovered = ""; m_snapping.backgroundSprites[1].normal = "ToggleBaseFocused"; m_snapping.backgroundSprites[1].pressed = "ToggleBasePressed"; m_snapping.foregroundSprites[0].disabled = "SnappingDisabled"; m_snapping.foregroundSprites[0].hovered = "SnappingHovered"; m_snapping.foregroundSprites[0].normal = "Snapping"; m_snapping.foregroundSprites[0].pressed = "SnappingPressed"; m_snapping.foregroundSprites.AddState(); m_snapping.foregroundSprites[1].disabled = "SnappingDisabled"; m_snapping.foregroundSprites[1].hovered = ""; m_snapping.foregroundSprites[1].normal = "SnappingFocused"; m_snapping.foregroundSprites[1].pressed = "SnappingPressed"; m_snapping.relativePosition = m_followTerrain.relativePosition + new Vector3(m_followTerrain.width, 0); m_snapping.activeStateIndex = (MoveItTool.instance != null && MoveItTool.instance.snapping) ? 1 : 0; m_snapping.eventClicked += (c, p) => { if (MoveItTool.instance != null) { MoveItTool.instance.snapping = (m_snapping.activeStateIndex == 1); } }; m_tabStrip = AddUIComponent <UITabstrip>(); m_tabStrip.size = new Vector2(36, 72); m_tabStrip.relativePosition = m_snapping.relativePosition + new Vector3(m_snapping.width, 0); m_single = m_tabStrip.AddTab("MoveIt_Single", null, false); m_single.group = m_tabStrip; m_single.atlas = UIUtils.GetAtlas("Ingame"); m_single.tooltip = "Single Selection"; m_single.playAudioEvents = true; m_single.size = new Vector2(36, 36); m_single.normalBgSprite = "OptionBase"; m_single.focusedBgSprite = "OptionBaseFocused"; m_single.hoveredBgSprite = "OptionBaseHovered"; m_single.pressedBgSprite = "OptionBasePressed"; m_single.disabledBgSprite = "OptionBaseDisabled"; m_single.text = "•"; m_single.textScale = 1.5f; m_single.textPadding = new RectOffset(0, 1, 4, 0); m_single.textColor = new Color32(119, 124, 126, 255); m_single.hoveredTextColor = new Color32(110, 113, 114, 255); m_single.pressedTextColor = new Color32(172, 175, 176, 255); m_single.focusedTextColor = new Color32(187, 224, 235, 255); m_single.disabledTextColor = new Color32(66, 69, 70, 255); m_marquee = m_tabStrip.AddTab("MoveIt_Marquee", null, false); m_marquee.group = m_tabStrip; m_marquee.atlas = UIUtils.GetAtlas("Ingame"); m_marquee.tooltip = "Marquee Selection"; m_marquee.playAudioEvents = true; m_marquee.size = new Vector2(36, 36); m_marquee.normalBgSprite = "OptionBase"; m_marquee.focusedBgSprite = "OptionBaseFocused"; m_marquee.hoveredBgSprite = "OptionBaseHovered"; m_marquee.pressedBgSprite = "OptionBasePressed"; m_marquee.disabledBgSprite = "OptionBaseDisabled"; m_marquee.normalFgSprite = "ZoningOptionMarquee"; m_marquee.relativePosition = m_single.relativePosition + new Vector3(m_single.width, 0); filtersPanel = AddUIComponent(typeof(UIPanel)) as UIPanel; filtersPanel.atlas = UIUtils.GetAtlas("Ingame"); filtersPanel.backgroundSprite = "SubcategoriesPanel"; filtersPanel.clipChildren = true; filtersPanel.size = new Vector2(150, 140); filtersPanel.isVisible = false; MouseEventHandler OnDoubleClick = (c, p) => { foreach (UIComponent comp in filtersPanel.components) { UICheckBox box = comp as UICheckBox; if (box != null && box != c) { box.isChecked = false; } } ((UICheckBox)c).isChecked = true; }; UICheckBox checkBox = UIUtils.CreateCheckBox(filtersPanel); checkBox.label.text = "Buildings"; checkBox.isChecked = true; checkBox.eventCheckChanged += (c, p) => { MoveItTool.filterBuildings = p; }; checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIUtils.CreateCheckBox(filtersPanel); checkBox.label.text = "Props"; checkBox.isChecked = true; checkBox.eventCheckChanged += (c, p) => { MoveItTool.filterProps = p; }; checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIUtils.CreateCheckBox(filtersPanel); checkBox.label.text = "Decals"; checkBox.isChecked = true; checkBox.eventCheckChanged += (c, p) => { MoveItTool.filterDecals = p; }; checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIUtils.CreateCheckBox(filtersPanel); checkBox.label.text = "Trees"; checkBox.isChecked = true; checkBox.eventCheckChanged += (c, p) => { MoveItTool.filterTrees = p; }; checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIUtils.CreateCheckBox(filtersPanel); checkBox.label.text = "Nodes"; checkBox.isChecked = true; checkBox.eventCheckChanged += (c, p) => { MoveItTool.filterNodes = p; }; checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIUtils.CreateCheckBox(filtersPanel); checkBox.label.text = "Segments"; checkBox.isChecked = true; checkBox.eventCheckChanged += (c, p) => { MoveItTool.filterSegments = p; }; checkBox.eventDoubleClick += OnDoubleClick; filtersPanel.padding = new RectOffset(10, 10, 10, 10); filtersPanel.autoLayoutDirection = LayoutDirection.Vertical; filtersPanel.autoLayoutPadding = new RectOffset(0, 0, 0, 5); filtersPanel.autoLayout = true; filtersPanel.height = 160; filtersPanel.absolutePosition = m_marquee.absolutePosition - new Vector3(57, filtersPanel.height + 5); m_marquee.eventButtonStateChanged += (c, p) => { MoveItTool.marqueeSelection = p == UIButton.ButtonState.Focused; filtersPanel.isVisible = MoveItTool.marqueeSelection; if (UITipsWindow.instance != null) { UITipsWindow.instance.RefreshPosition(); } }; m_alignHeight = AddUIComponent <UIButton>(); m_alignHeight.name = "MoveIt_AlignHeight"; m_alignHeight.group = m_tabStrip; m_alignHeight.atlas = GetIconsAtlas(); m_alignHeight.tooltip = "Align Heights"; m_alignHeight.playAudioEvents = true; m_alignHeight.size = new Vector2(36, 36); m_alignHeight.normalBgSprite = "OptionBase"; m_alignHeight.hoveredBgSprite = "OptionBaseHovered"; m_alignHeight.pressedBgSprite = "OptionBasePressed"; m_alignHeight.disabledBgSprite = "OptionBaseDisabled"; m_alignHeight.normalFgSprite = "AlignHeight"; m_alignHeight.relativePosition = m_tabStrip.relativePosition + new Vector3(m_single.width + m_marquee.width, 0); m_alignHeight.eventClicked += (c, p) => { if (MoveItTool.instance != null) { MoveItTool.instance.StartAligningHeight(); RefreshAlignHeightButton(); } }; m_copy = AddUIComponent <UIButton>(); m_copy.name = "MoveIt_Copy"; m_copy.group = m_tabStrip; m_copy.atlas = GetIconsAtlas(); m_copy.tooltip = "Copy"; m_copy.playAudioEvents = true; m_copy.size = new Vector2(36, 36); m_copy.normalBgSprite = "OptionBase"; m_copy.hoveredBgSprite = "OptionBaseHovered"; m_copy.pressedBgSprite = "OptionBasePressed"; m_copy.disabledBgSprite = "OptionBaseDisabled"; m_copy.normalFgSprite = "Copy"; m_copy.relativePosition = m_alignHeight.relativePosition + new Vector3(m_alignHeight.width, 0); m_copy.eventClicked += (c, p) => { if (MoveItTool.instance != null) { MoveItTool.instance.StartCloning(); } }; m_bulldoze = AddUIComponent <UIButton>(); m_bulldoze.name = "MoveIt_Bulldoze"; m_bulldoze.group = m_tabStrip; m_bulldoze.atlas = GetIconsAtlas(); m_bulldoze.tooltip = "Bulldoze\nWARNING: NO UNDO!"; m_bulldoze.playAudioEvents = true; m_bulldoze.size = new Vector2(36, 36); m_bulldoze.normalBgSprite = "OptionBase"; m_bulldoze.hoveredBgSprite = "OptionBaseHovered"; m_bulldoze.pressedBgSprite = "OptionBasePressed"; m_bulldoze.disabledBgSprite = "OptionBaseDisabled"; m_bulldoze.normalFgSprite = "Bulldoze"; m_bulldoze.relativePosition = m_copy.relativePosition + new Vector3(m_copy.width, 0); m_bulldoze.eventClicked += (c, p) => { if (MoveItTool.instance != null) { MoveItTool.instance.StartBulldoze(); } }; }
public override void ClearButton() { ToggleButton = null; }
void InitControls() { LocaleManager.eventLocaleChanged += OnLocaleChanged; // 昼夜转换 btnDayNightSwitch = this.AddUIComponent <UIButton>(); btnDayNightSwitch.size = new Vector2(18, 9); btnDayNightSwitch.relativePosition = new Vector3(4, 6); btnDayNightSwitch.normalBgSprite = "IconSunMoon"; btnDayNightSwitch.playAudioEvents = true; //btnDayNightSwitch.tooltipLocaleID = "TIMECONTROL"; btnDayNightSwitch.eventClick += OnDayNightSwitchClicked; btnDayNightSwitch.eventMouseUp += OnDayNightSwitchMouseUp; btnDayNightSwitch.opacity = 0.5f; btnDayNightSwitch.isTooltipLocalized = true; btnDayNightSwitch.spritePadding = new RectOffset(); // 天气转换 btnWeatherSwitch = this.AddUIComponent <UIButton>(); btnWeatherSwitch.size = new Vector2(13, 13); btnWeatherSwitch.relativePosition = new Vector3(25, 4); btnWeatherSwitch.normalBgSprite = "IconPolicyOnlyElectricity"; btnWeatherSwitch.playAudioEvents = true; //btnWeatherSwitch.tooltipLocaleID = "THEME_WORLD_WEATHER"; btnWeatherSwitch.eventClick += OnWeatherSwitchClicked; btnWeatherSwitch.eventMouseUp += OnWeatherSwitchMouseUp; btnWeatherSwitch.opacity = 0.5f; btnWeatherSwitch.isTooltipLocalized = true; btnWeatherSwitch.spritePadding = new RectOffset(); // 啾啾显示 btnChirperContainer = this.AddUIComponent <UIButton>(); btnChirperContainer.size = new Vector2(13, 13); btnChirperContainer.relativePosition = new Vector3(42, 2); btnChirperContainer.normalBgSprite = "ChirperIcon"; btnChirperContainer.playAudioEvents = true; btnChirperContainer.isTooltipLocalized = true; btnChirperContainer.spritePadding = new RectOffset(); btnChirperContainer.eventClick += OnChirperTogglerClicked; btnChirperContainer.tooltipLocaleID = "CHIRPER_NAME"; if (ChirpPanel.instance != null) { btnChirperContainer.isVisible = true; btnChirperContainer.opacity = ChirpPanel.instance.gameObject.activeSelf ? 0.5f : 0.1f; } else { btnChirperContainer.isVisible = false; } // 电台显示 btnRadioIconContainer = this.AddUIComponent <UIButton>(); btnRadioIconContainer.size = new Vector2(13, 13); btnRadioIconContainer.relativePosition = new Vector3(58, 2); btnRadioIconContainer.normalFgSprite = "ADIcon"; btnRadioIconContainer.playAudioEvents = true; btnRadioIconContainer.isTooltipLocalized = true; btnRadioIconContainer.spritePadding = new RectOffset(); btnRadioIconContainer.eventClick += OnRadioTogglerClicked; // 静音 btnMuteAudioContainer = this.AddUIComponent <UIButton>(); btnMuteAudioContainer.size = new Vector2(13, 13); btnMuteAudioContainer.relativePosition = new Vector3(74, 2); btnMuteAudioContainer.normalFgSprite = "IconPolicyNoLoudNoisesHovered"; btnMuteAudioContainer.playAudioEvents = true; btnMuteAudioContainer.isTooltipLocalized = true; btnMuteAudioContainer.spritePadding = new RectOffset(); btnMuteAudioContainer.eventClick += (UIComponent comp, UIMouseEventParameter p) => { ExtendedInfoManager.AudioMuteAll = !ExtendedInfoManager.AudioMuteAll; Singleton <AudioManager> .instance.MuteAll = ExtendedInfoManager.AudioMuteAll; btnMuteAudioContainer.opacity = Singleton <AudioManager> .instance.MuteAll ? 0.1f : 0.5f; }; btnMuteAudioContainer.opacity = Singleton <AudioManager> .instance.MuteAll ? 0.1f : 0.5f; // 暂停按钮 btnPlay = this.AddUIComponent <UIMultiStateButton>(); btnPlay.size = new Vector2(11, 12); btnPlay.relativePosition = new Vector3(206, LINE2 + 2); btnPlay.isTooltipLocalized = true; btnPlay.tooltipLocaleID = "MAIN_PLAYPAUSE"; btnPlay.eventClick += OnPlayClicked; btnPlay.playAudioEvents = true; btnPlay.spritePadding = new RectOffset(); UIMultiStateButton.SpriteSet btnPlaySpriteSet0 = btnPlay.foregroundSprites[0]; btnPlaySpriteSet0.normal = "ButtonPause"; btnPlaySpriteSet0.hovered = "ButtonPauseHovered"; btnPlaySpriteSet0.pressed = "ButtonPausePressed"; btnPlaySpriteSet0.focused = "ButtonPauseFocused"; btnPlay.backgroundSprites.AddState(); btnPlay.foregroundSprites.AddState(); UIMultiStateButton.SpriteSet btnPlaySpriteSet1 = btnPlay.foregroundSprites[1]; btnPlaySpriteSet1.normal = "ButtonPlay"; btnPlaySpriteSet1.hovered = "ButtonPlayHovered"; btnPlaySpriteSet1.pressed = "ButtonPlayPressed"; btnPlaySpriteSet1.focused = "ButtonPlayFocused"; // 速度按钮 btnSpeed = this.AddUIComponent <UIMultiStateButton>(); btnSpeed.size = new Vector2(28, 22); btnSpeed.relativePosition = new Vector3(280, LINE2 - 4); btnSpeed.isTooltipLocalized = true; btnSpeed.tooltipLocaleID = "MAIN_SPEED"; btnSpeed.eventClick += OnSpeedClicked; btnSpeed.playAudioEvents = true; btnSpeed.spritePadding = new RectOffset(); UIMultiStateButton.SpriteSet btnSpeedSpriteSet0 = btnSpeed.foregroundSprites[0]; btnSpeedSpriteSet0.normal = "IconSpeed1Normal"; btnSpeedSpriteSet0.hovered = "IconSpeed1Hover"; btnSpeedSpriteSet0.pressed = "IconSpeed2Normal"; btnSpeed.backgroundSprites.AddState(); btnSpeed.foregroundSprites.AddState(); UIMultiStateButton.SpriteSet btnSpeedSpriteSet1 = btnSpeed.foregroundSprites[1]; btnSpeedSpriteSet1.normal = "IconSpeed2Normal"; btnSpeedSpriteSet1.hovered = "IconSpeed2Hover"; btnSpeedSpriteSet1.pressed = "IconSpeed3Normal"; btnSpeed.backgroundSprites.AddState(); btnSpeed.foregroundSprites.AddState(); UIMultiStateButton.SpriteSet btnSpeedSpriteSet2 = btnSpeed.foregroundSprites[2]; btnSpeedSpriteSet2.normal = "IconSpeed3Normal"; btnSpeedSpriteSet2.hovered = "IconSpeed3Hover"; btnSpeedSpriteSet2.pressed = "IconSpeed1Normal"; // 时间条 if (gameTimeSprite != null) { barTime = this.AddUIComponent <UISprite>(); barTime.name = "NewSprite"; barTime.size = new Vector2(140, 12); barTime.relativePosition = new Vector3(166, 4); barTime.atlas = gameTimeSprite.atlas; barTime.spriteName = gameTimeSprite.spriteName; barTime.fillAmount = 0.5f; barTime.fillDirection = UIFillDirection.Horizontal; barTime.color = gameTimeSprite.color; barTime.fillAmount = gameTimeSprite.fillAmount; } // 游戏日期标签 lblGameTime = this.AddUIComponent <MUILabel>(); lblGameTime.size = new Vector2(120, LINEW); lblGameTime.relativePosition = new Vector3(170, LINE2 - 3); lblGameTime.textColor = ExtendedPanel.COLOR_DARK_TEXT; lblGameTime.textAlignment = UIHorizontalAlignment.Center; //lblGameTime.fontStyle = FontStyle.Bold; lblGameTime.fontSize = (int)MUISkin.UIToScreen(11f); // 游戏时间标签 lblDayTimeA = this.AddUIComponent <UISprite>(); lblDayTimeA.size = new Vector2(14, 14); lblDayTimeA.relativePosition = new Vector3(107, 5); lblDayTimeA.spriteName = "InfoIconEntertainmentFocused"; lblDayTimeA.opacity = 0.3f; lblDayTimeA.playAudioEvents = (CityInfoDatas.TimeWarpMod_sunManager == null); lblDayTimeA.eventClick += OnDayTimeClicked; lblDayTime = this.AddUIComponent <MUILabel>(); lblDayTime.size = new Vector2(40, LINEW); lblDayTime.relativePosition = new Vector3(115, LINE1); lblDayTime.textColor = ExtendedPanel.COLOR_TEXT; lblDayTime.textAlignment = UIHorizontalAlignment.Right; lblDayTime.fontStyle = FontStyle.Bold; lblDayTime.fontSize = (int)MUISkin.UIToScreen(11f); lblDayTime.playAudioEvents = (CityInfoDatas.TimeWarpMod_sunManager == null); lblDayTime.eventClick += OnDayTimeClicked; // 本地时间 lblLocalTimeA = this.AddUIComponent <UISprite>(); lblLocalTimeA.size = new Vector2(7, 7); lblLocalTimeA.relativePosition = new Vector3(4, LINE2 + 5); lblLocalTimeA.spriteName = "OptionBaseFocused"; lblLocalTimeA.opacity = 0.3f; lblLocalTime = this.AddUIComponent <MUILabel>(); lblLocalTime.size = new Vector2(45, LINEW); lblLocalTime.relativePosition = new Vector3(14, LINE2 - 2); lblLocalTime.textColor = ExtendedPanel.COLOR_DARK_YELLOW; lblLocalTime.textAlignment = UIHorizontalAlignment.Left; lblLocalTime.fontStyle = FontStyle.Bold; lblLocalTime.fontSize = (int)MUISkin.UIToScreen(11f); lblLocalTime.eventClick += OnLocalTimeClick; lblLocalTime.playAudioEvents = true; // 温度 lblThermometerA = this.AddUIComponent <UISprite>(); lblThermometerA.size = new Vector2(16, 16); lblThermometerA.relativePosition = new Vector3(105, LINE2); lblThermometerA.spriteName = "ThermometerIcon"; lblThermometerA.opacity = 0.3f; lblThermometer = this.AddUIComponent <MUILabel>(); lblThermometer.size = new Vector2(40, LINEW); lblThermometer.relativePosition = new Vector3(115, LINE2); lblThermometer.textColor = ExtendedPanel.COLOR_DARK_TEXT; lblThermometer.textAlignment = UIHorizontalAlignment.Right; //lblThermometer.fontStyle = FontStyle.Bold; lblThermometer.fontSize = (int)MUISkin.UIToScreen(11f); lblThermometer.tooltipLocaleID = "MAIN_TEMPERATURE"; setGameState(); }
public override void Start() { UIMoreTools.Initialise(); instance = this; UICheckBox checkBox = null; atlas = UIUtils.GetAtlas("Ingame"); size = new Vector2(41, 41); relativePosition = new Vector2(GetUIView().GetScreenResolution().x - 340, -41); name = "MoveIt_ToolOptionPanel"; DebugUtils.Log("ToolOptionPanel position: " + absolutePosition); #region Follow Terrain m_followTerrain = AddUIComponent <UIMultiStateButton>(); m_followTerrain.atlas = GetFollowTerrainAtlas(); m_followTerrain.name = "MoveIt_FollowTerrain"; m_followTerrain.tooltip = Str.baseUI_FollowTerrain_Tooltip; m_followTerrain.playAudioEvents = true; m_followTerrain.size = new Vector2(36, 36); m_followTerrain.spritePadding = new RectOffset(); m_followTerrain.backgroundSprites[0].disabled = "ToggleBaseDisabled"; m_followTerrain.backgroundSprites[0].hovered = "ToggleBaseHovered"; m_followTerrain.backgroundSprites[0].normal = "ToggleBase"; m_followTerrain.backgroundSprites[0].pressed = "ToggleBasePressed"; m_followTerrain.backgroundSprites.AddState(); m_followTerrain.backgroundSprites[1].disabled = "ToggleBaseDisabled"; m_followTerrain.backgroundSprites[1].hovered = ""; m_followTerrain.backgroundSprites[1].normal = "ToggleBaseFocused"; m_followTerrain.backgroundSprites[1].pressed = "ToggleBasePressed"; m_followTerrain.foregroundSprites[0].normal = "FollowTerrain_disabled"; m_followTerrain.foregroundSprites.AddState(); m_followTerrain.foregroundSprites[1].normal = "FollowTerrain"; m_followTerrain.relativePosition = Vector2.zero; m_followTerrain.activeStateIndex = MoveItTool.followTerrain ? 1 : 0; m_followTerrain.eventClicked += (c, p) => { MoveItTool.followTerrain = (m_followTerrain.activeStateIndex == 1); MoveItTool.followTerrainModeEnabled.value = (m_followTerrain.activeStateIndex == 1); }; #endregion #region Snapping m_snapping = AddUIComponent <UIMultiStateButton>(); m_snapping.atlas = UIUtils.GetAtlas("Ingame"); m_snapping.name = "MoveIt_Snapping"; m_snapping.tooltip = Str.baseUI_ToggleSnapping_Tooltip; m_snapping.playAudioEvents = true; m_snapping.size = new Vector2(36, 36); m_snapping.spritePadding = new RectOffset(); m_snapping.backgroundSprites[0].disabled = "ToggleBaseDisabled"; m_snapping.backgroundSprites[0].hovered = "ToggleBaseHovered"; m_snapping.backgroundSprites[0].normal = "ToggleBase"; m_snapping.backgroundSprites[0].pressed = "ToggleBasePressed"; m_snapping.backgroundSprites.AddState(); m_snapping.backgroundSprites[1].disabled = "ToggleBaseDisabled"; m_snapping.backgroundSprites[1].hovered = ""; m_snapping.backgroundSprites[1].normal = "ToggleBaseFocused"; m_snapping.backgroundSprites[1].pressed = "ToggleBasePressed"; m_snapping.foregroundSprites[0].disabled = "SnappingDisabled"; m_snapping.foregroundSprites[0].hovered = "SnappingHovered"; m_snapping.foregroundSprites[0].normal = "Snapping"; m_snapping.foregroundSprites[0].pressed = "SnappingPressed"; m_snapping.foregroundSprites.AddState(); m_snapping.foregroundSprites[1].disabled = "SnappingDisabled"; m_snapping.foregroundSprites[1].hovered = ""; m_snapping.foregroundSprites[1].normal = "SnappingFocused"; m_snapping.foregroundSprites[1].pressed = "SnappingPressed"; m_snapping.relativePosition = m_followTerrain.relativePosition + new Vector3(m_followTerrain.width, 0); m_snapping.activeStateIndex = (MoveItTool.instance != null && MoveItTool.instance.snapping) ? 1 : 0; m_snapping.eventClicked += (c, p) => { if (MoveItTool.instance != null) { MoveItTool.instance.snapping = (m_snapping.activeStateIndex == 1); } }; #endregion m_tabStrip = AddUIComponent <UITabstrip>(); m_tabStrip.size = new Vector2(36, 72); m_tabStrip.relativePosition = m_snapping.relativePosition + new Vector3(m_snapping.width, 0); #region Single Select m_single = m_tabStrip.AddTab("MoveIt_Single", null, false); m_single.group = m_tabStrip; m_single.atlas = UIUtils.GetAtlas("Ingame"); m_single.tooltip = Str.baseUI_Single_Tooltip; m_single.playAudioEvents = true; m_single.size = new Vector2(36, 36); m_single.normalBgSprite = "OptionBase"; m_single.focusedBgSprite = "OptionBaseFocused"; m_single.hoveredBgSprite = "OptionBaseHovered"; m_single.pressedBgSprite = "OptionBasePressed"; m_single.disabledBgSprite = "OptionBaseDisabled"; m_single.text = "•"; m_single.textScale = 1.5f; m_single.textPadding = new RectOffset(0, 1, 4, 0); m_single.textColor = new Color32(119, 124, 126, 255); m_single.hoveredTextColor = new Color32(110, 113, 114, 255); m_single.pressedTextColor = new Color32(172, 175, 176, 255); m_single.focusedTextColor = new Color32(187, 224, 235, 255); m_single.disabledTextColor = new Color32(66, 69, 70, 255); #endregion #region Marquee Select m_marquee = m_tabStrip.AddTab("MoveIt_Marquee", null, false); m_marquee.group = m_tabStrip; m_marquee.atlas = UIUtils.GetAtlas("Ingame"); m_marquee.tooltip = Str.baseUI_Marquee_Tooltip; m_marquee.playAudioEvents = true; m_marquee.size = new Vector2(36, 36); m_marquee.normalBgSprite = "OptionBase"; m_marquee.focusedBgSprite = "OptionBaseFocused"; m_marquee.hoveredBgSprite = "OptionBaseHovered"; m_marquee.pressedBgSprite = "OptionBasePressed"; m_marquee.disabledBgSprite = "OptionBaseDisabled"; m_marquee.normalFgSprite = "ZoningOptionMarquee"; m_marquee.relativePosition = m_single.relativePosition + new Vector3(m_single.width, 0); #region filtersPanel m_filtersPanel = AddUIComponent(typeof(UIPanel)) as UIPanel; m_filtersPanel.atlas = UIUtils.GetAtlas("Ingame"); m_filtersPanel.backgroundSprite = "SubcategoriesPanel"; m_filtersPanel.clipChildren = true; m_filtersPanel.size = new Vector2(150, 235); m_filtersPanel.isVisible = false; UIFilters.FilterPanel = m_filtersPanel; void OnDoubleClick(UIComponent c, UIMouseEventParameter p) { foreach (UICheckBox cb in UIFilters.FilterCBs) { cb.isChecked = false; Filters.SetFilter(cb.name, false); } ((UICheckBox)c).isChecked = true; Filters.SetFilter(c.name, true); UIFilters.RefreshFilters(); } void OnPickerClick(UIComponent c, UIMouseEventParameter p) { MoveItTool.SetToolState(MoveItTool.ToolStates.Picking); UIFilters.UpdatePickerButton(2); } void OnPickerDoubleClick(UIComponent c, UIMouseEventParameter p) { Filters.Picker = new PickerFilter(); Filters.SetFilter("Picker", false); MoveItTool.SetToolState(); UIFilters.UpdatePickerButton(1); } #region Standard Filters m_filtersPanelList = m_filtersPanel.AddUIComponent(typeof(UIPanel)) as UIPanel; m_filtersPanelList.name = "m_filtersPanelList"; m_picker = UIUtils.CreateButton(m_filtersPanel); m_picker.relativePosition = new Vector3(122, 9); m_picker.size = new Vector2(20, 20); m_picker.atlas = GetIconsAtlas(); m_picker.normalFgSprite = "EyeDropper"; m_picker.normalBgSprite = "OptionsDropboxListbox"; m_picker.hoveredBgSprite = "OptionsDropboxListboxFocused"; m_picker.pressedBgSprite = "OptionsDropboxListboxHovered"; m_picker.eventClick += OnPickerClick; m_picker.eventDoubleClick += OnPickerDoubleClick; m_picker.name = "mit_pickerButton"; checkBox = UIFilters.CreateFilterCB(m_filtersPanelList, "Picker", Str.filter_Picker, false); checkBox.width -= 21; UIFilters.UpdatePickerLabel(Str.filter_Picker, Str.filter_Picker_Tooltip, UIFilters.InactiveLabelColor, false); checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIFilters.CreateFilterCB(m_filtersPanelList, "Buildings", Str.filter_Buildings); checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIFilters.CreateFilterCB(m_filtersPanelList, "Props", Str.filter_Props); checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIFilters.CreateFilterCB(m_filtersPanelList, "Decals", Str.filter_Decals); checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIFilters.CreateFilterCB(m_filtersPanelList, "Surfaces", Str.filter_Surfaces); checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIFilters.CreateFilterCB(m_filtersPanelList, "Trees", Str.filter_Trees); checkBox.eventDoubleClick += OnDoubleClick; if (MoveItTool.PO.Enabled) { if (MoveItTool.PO.Active) { m_filtersPanel.height += 20f; } checkBox = UIFilters.CreateFilterCB(m_filtersPanelList, "PO", Str.filter_PO); checkBox.eventDoubleClick += OnDoubleClick; checkBox.isVisible = MoveItTool.PO.Active; } checkBox = UIFilters.CreateFilterCB(m_filtersPanelList, "Nodes", Str.filter_Nodes); checkBox.eventDoubleClick += OnDoubleClick; checkBox = UIFilters.CreateFilterCB(m_filtersPanelList, "Segments", Str.filter_Segments); checkBox.eventDoubleClick += OnDoubleClick; #endregion #region Network Filters UIButton btnNetworks = UIFilters.CreateToggleNFBtn(); void OnDoubleClickNetworkFilter(UIComponent c, UIMouseEventParameter p) { foreach (UICheckBox cb in UIFilters.NetworkCBs) { cb.isChecked = false; Filters.SetNetworkFilter(cb.name, false); } ((UICheckBox)c).isChecked = true; Filters.SetNetworkFilter(c.name, true); UIFilters.RefreshFilters(); } checkBox = UIFilters.CreateNetworkFilterCB(m_filtersPanelList, "Roads", Str.filter_Roads); checkBox.eventDoubleClick += OnDoubleClickNetworkFilter; checkBox = UIFilters.CreateNetworkFilterCB(m_filtersPanelList, "Tracks", Str.filter_Tracks); checkBox.eventDoubleClick += OnDoubleClickNetworkFilter; checkBox = UIFilters.CreateNetworkFilterCB(m_filtersPanelList, "Paths", Str.filter_Paths); checkBox.eventDoubleClick += OnDoubleClickNetworkFilter; checkBox = UIFilters.CreateNetworkFilterCB(m_filtersPanelList, "Fences", Str.filter_Fences); checkBox.eventDoubleClick += OnDoubleClickNetworkFilter; checkBox = UIFilters.CreateNetworkFilterCB(m_filtersPanelList, "Powerlines", Str.filter_Powerlines); checkBox.eventDoubleClick += OnDoubleClickNetworkFilter; checkBox = UIFilters.CreateNetworkFilterCB(m_filtersPanelList, "Others", Str.filter_Others); checkBox.eventDoubleClick += OnDoubleClickNetworkFilter; UIFilters.RefreshFilters(); #endregion m_filtersPanelList.padding = new RectOffset(10, 10, 10, 10); m_filtersPanelList.autoLayoutDirection = LayoutDirection.Vertical; m_filtersPanelList.autoLayoutPadding = new RectOffset(0, 0, 0, 5); m_filtersPanelList.autoLayout = true; m_filtersPanelList.relativePosition = new Vector3(0, 0, 0); m_filtersPanel.autoLayout = false; m_filtersPanel.absolutePosition = m_marquee.absolutePosition + new Vector3(-47, -5 - m_filtersPanel.height); #endregion m_marquee.eventButtonStateChanged += (c, p) => { MoveItTool.marqueeSelection = p == UIButton.ButtonState.Focused; m_filtersPanel.isVisible = MoveItTool.marqueeSelection; if (UIChangesWindow.instance != null) { UIChangesWindow.instance.RefreshPosition(); } }; m_marquee.eventDoubleClick += (UIComponent c, UIMouseEventParameter p) => { bool newChecked = false; foreach (UICheckBox cb in m_filtersPanel.GetComponentsInChildren <UICheckBox>()) { if (cb.name == "Picker") { continue; } if (!cb.isChecked) { newChecked = true; break; } } foreach (UICheckBox cb in m_filtersPanel.GetComponentsInChildren <UICheckBox>()) { if (cb.name == "Picker") { cb.isChecked = false; Filters.SetAnyFilter(cb.name, false); } else { cb.isChecked = newChecked; Filters.SetAnyFilter(cb.name, newChecked); } } UIFilters.RefreshFilters(); }; #endregion #region Copy m_copy = AddUIComponent <UIButton>(); m_copy.name = "MoveIt_Copy"; m_copy.group = m_tabStrip; m_copy.atlas = GetIconsAtlas(); m_copy.tooltip = Str.baseUI_Clone_Tooltip;; m_copy.playAudioEvents = true; m_copy.size = new Vector2(36, 36); m_copy.normalBgSprite = "OptionBase"; m_copy.hoveredBgSprite = "OptionBaseHovered"; m_copy.pressedBgSprite = "OptionBasePressed"; m_copy.disabledBgSprite = "OptionBaseDisabled"; m_copy.normalFgSprite = "Copy"; m_copy.relativePosition = m_tabStrip.relativePosition + new Vector3(m_single.width + m_marquee.width, 0); m_copy.eventClicked += (c, p) => { if (MoveItTool.instance != null) { if (MoveItTool.ToolState == MoveItTool.ToolStates.Cloning) { MoveItTool.instance.StopCloning(); } else { if (Input.GetKey(KeyCode.LeftAlt) || Input.GetKey(KeyCode.RightAlt)) { if (Action.HasSelection()) { DuplicateAction action = new DuplicateAction(); if (action.Count > 0) { ActionQueue.instance.Push(action); ActionQueue.instance.Do(); } } } else { MoveItTool.instance.StartCloning(); } } } }; #endregion #region Bulldoze m_bulldoze = AddUIComponent <UIButton>(); m_bulldoze.name = "MoveIt_Bulldoze"; m_bulldoze.group = m_tabStrip; m_bulldoze.atlas = GetIconsAtlas(); m_bulldoze.tooltip = Str.baseUI_Bulldoze_Tooltip; m_bulldoze.playAudioEvents = true; m_bulldoze.size = new Vector2(36, 36); m_bulldoze.normalBgSprite = "OptionBase"; m_bulldoze.hoveredBgSprite = "OptionBaseHovered"; m_bulldoze.pressedBgSprite = "OptionBasePressed"; m_bulldoze.disabledBgSprite = "OptionBaseDisabled"; m_bulldoze.normalFgSprite = "Bulldoze"; m_bulldoze.relativePosition = m_copy.relativePosition + new Vector3(m_copy.width, 0); m_bulldoze.eventClicked += (c, p) => { if (MoveItTool.instance != null) { MoveItTool.instance.StartBulldoze(); } }; #endregion #region More Tools #region More Tools Container m_moreTools = AddUIComponent <UIButton>(); UIMoreTools.MoreToolsBtn = m_moreTools; m_moreTools.name = "MoveIt_MoreToolsBtn"; m_moreTools.group = m_tabStrip; m_moreTools.atlas = GetIconsAtlas(); m_moreTools.tooltip = Str.baseUI_Toolbox_Tooltip; m_moreTools.playAudioEvents = true; m_moreTools.size = new Vector2(36, 36); m_moreTools.normalBgSprite = "OptionBase"; m_moreTools.hoveredBgSprite = "OptionBaseHovered"; m_moreTools.pressedBgSprite = "OptionBasePressed"; m_moreTools.disabledBgSprite = "OptionBaseDisabled"; m_moreTools.normalFgSprite = "MoreTools"; m_moreTools.relativePosition = m_bulldoze.relativePosition + new Vector3(m_bulldoze.width, 0); m_moreTools.eventClicked += (UIComponent c, UIMouseEventParameter p) => { UIMoreTools.MoreToolsClicked(m_moreTools.name); }; m_moreToolsPanel = AddUIComponent <UIPanel>(); UIMoreTools.MoreToolsPanel = m_moreToolsPanel; m_moreToolsPanel.name = "mtPanel"; m_moreToolsPanel.autoLayout = false; m_moreToolsPanel.clipChildren = true; m_moreToolsPanel.size = new Vector2(36, 132); m_moreToolsPanel.isVisible = false; m_moreToolsPanel.absolutePosition = m_moreTools.absolutePosition + new Vector3(0, 10 - m_moreToolsPanel.height); m_moreTools.zOrder = m_moreToolsPanel.zOrder + 10; // The vertical shade UIPanel mtpBackground = m_moreToolsPanel.AddUIComponent <UIPanel>(); mtpBackground.name = "mtpBackground"; mtpBackground.clipChildren = true; mtpBackground.relativePosition = new Vector3(5, 10); mtpBackground.atlas = UIUtils.GetAtlas("Ingame"); mtpBackground.backgroundSprite = "InfoPanelBack"; mtpBackground.size = m_moreToolsPanel.size - new Vector2(10, 10); UIPanel mtpContainer = m_moreToolsPanel.AddUIComponent <UIPanel>(); mtpContainer.name = "mtpContainer"; mtpContainer.autoLayoutDirection = LayoutDirection.Vertical; mtpContainer.autoLayoutPadding = new RectOffset(0, 0, 0, 4); mtpContainer.autoLayout = true; mtpContainer.relativePosition = Vector3.zero; mtpContainer.size = m_moreToolsPanel.size; mtpContainer.eventMouseEnter += (UIComponent c, UIMouseEventParameter p) => { if (MoveItTool.marqueeSelection) { m_filtersPanel.isVisible = false; } }; mtpContainer.eventMouseLeave += (UIComponent c, UIMouseEventParameter p) => { if (MoveItTool.marqueeSelection) { m_filtersPanel.isVisible = true; } }; UIMoreTools.MoreButtons.Clear(); UIMoreTools.MoreSubButtons.Clear(); #endregion try { AddMoreButtonCallback?.Invoke(this, m_moreTools, mtpBackground, mtpContainer); } catch (Exception e) { Log.Error(e); } #region More Tools / Toolbox buttons UIMoreToolsBtn othersBtn = new UIMoreToolsBtn(this, "MoveIt_OthersBtn", Str.toolbox_OtherTools_Tooltip, "MenuOthers", mtpContainer, "m_mtOthersList", (MoveItTool.PO.Enabled ? 7.25f : 6.25f)); if (MoveItTool.PO.Enabled) { othersBtn.CreateSubButton("MoveIt_ConvertToPOBtn", Str.toolbox_ConvertToPO, "ConvertToPO"); } othersBtn.CreateSubButton("MoveIt_AlignLineBtn", Str.toolbox_LineUpObjects, "AlignLine"); othersBtn.CreateSubButton("MoveIt_AlignMirrorBtn", Str.toolbox_MirrorObjects, "AlignMirror"); othersBtn.CreateSubButton("MoveIt_ResetObjectBtn", Str.toolbox_ResetObjects, "ResetObject"); othersBtn.CreateSubButton("MoveIt_MoveToBtn", Str.toolbox_SetPosition, "MoveTo"); othersBtn.CreateSubSeparator("MoveIt_FileSeparator"); othersBtn.CreateSubButton("MoveIt_LoadBtn", Str.toolbox_ImportSelection, "Load"); othersBtn.CreateSubButton("MoveIt_SaveBtn", Str.toolbox_ExportSelection, "Save"); othersBtn.UpdateWidth(); UIMoreToolsBtn rotateBtn = new UIMoreToolsBtn(this, "MoveIt_RotateBtn", Str.toolbox_RotationTools_Tooltip, "MenuRotate", mtpContainer, "m_mtRotateList", 3f); rotateBtn.CreateSubButton("MoveIt_AlignRandomBtn", Str.toolbox_RotateRandomly, "AlignRandom"); rotateBtn.CreateSubButton("MoveIt_AlignGroupBtn", Str.toolbox_RotateAtCentre, "AlignGroup"); rotateBtn.CreateSubButton("MoveIt_AlignIndividualBtn", Str.toolbox_RotateInPlace, "AlignIndividual"); rotateBtn.UpdateWidth(); UIMoreToolsBtn heightBtn = new UIMoreToolsBtn(this, "MoveIt_HeightBtn", Str.toolbox_HeightTools_Tooltip, "MenuHeight", mtpContainer, "m_mtHeightList", 3f); heightBtn.CreateSubButton("MoveIt_AlignSlopeBtn", Str.toolbox_SlopeObjects, "AlignSlope"); heightBtn.CreateSubButton("MoveIt_AlignTerrainHeightBtn", Str.toolbox_ToTerrainHeight, "AlignTerrainHeight"); heightBtn.CreateSubButton("MoveIt_AlignHeightBtn", Str.toolbox_ToObjectHeight, "AlignHeight"); heightBtn.UpdateWidth(); #endregion #endregion #region View Options m_viewOptions = AddUIComponent <UIPanel>(); m_viewOptions.atlas = UIUtils.GetAtlas("Ingame"); m_viewOptions.backgroundSprite = "InfoPanelBack"; m_viewOptions.size = new Vector2(44f, 80f); m_viewOptions.absolutePosition = new Vector3(GetUIView().GetScreenResolution().x - m_viewOptions.width, absolutePosition.y - m_viewOptions.height - 8f); grid = m_viewOptions.AddUIComponent <UIMultiStateButton>(); grid.atlas = GetIconsAtlas(); grid.name = "MoveIt_GridView"; grid.tooltip = Str.baseUI_ToggleGrid_Tooltip; grid.playAudioEvents = true; grid.size = new Vector2(36, 36); grid.spritePadding = new RectOffset(); grid.backgroundSprites[0].disabled = "OptionBaseDisabled"; grid.backgroundSprites[0].hovered = "OptionBaseHovered"; grid.backgroundSprites[0].normal = "OptionBase"; grid.backgroundSprites[0].pressed = "OptionBasePressed"; grid.backgroundSprites.AddState(); grid.backgroundSprites[1].disabled = "OptionBaseDisabled"; grid.backgroundSprites[1].hovered = ""; grid.backgroundSprites[1].normal = "OptionBaseFocused"; grid.backgroundSprites[1].pressed = "OptionBasePressed"; grid.foregroundSprites[0].normal = "Grid"; grid.foregroundSprites.AddState(); grid.foregroundSprites[1].normal = "GridFocused"; grid.relativePosition = new Vector3(4f, 4f); grid.activeStateIndex = 0; grid.eventClicked += (c, p) => { MoveItTool.gridVisible = (grid.activeStateIndex == 1); }; underground = m_viewOptions.AddUIComponent <UIMultiStateButton>(); underground.atlas = UIUtils.GetAtlas("Ingame"); underground.name = "MoveIt_UndergroundView"; underground.tooltip = Str.baseUI_ToggleUnderground_Tooltip; underground.playAudioEvents = true; underground.size = new Vector2(36, 36); underground.spritePadding = new RectOffset(); underground.backgroundSprites[0].disabled = "OptionBaseDisabled"; underground.backgroundSprites[0].hovered = "OptionBaseHovered"; underground.backgroundSprites[0].normal = "OptionBase"; underground.backgroundSprites[0].pressed = "OptionBasePressed"; underground.backgroundSprites.AddState(); underground.backgroundSprites[1].disabled = "OptionBaseDisabled"; underground.backgroundSprites[1].hovered = ""; underground.backgroundSprites[1].normal = "OptionBaseFocused"; underground.backgroundSprites[1].pressed = "OptionBasePressed"; underground.foregroundSprites[0].normal = "BulldozerOptionPipes"; underground.foregroundSprites.AddState(); underground.foregroundSprites[1].normal = "BulldozerOptionPipesFocused"; underground.relativePosition = new Vector3(4f, 40f); underground.activeStateIndex = 0; underground.eventClicked += (c, p) => { MoveItTool.tunnelVisible = (underground.activeStateIndex == 1); }; if (MoveItTool.PO.Enabled) { PO_button = m_viewOptions.AddUIComponent <UIMultiStateButton>(); PO_button.atlas = GetIconsAtlas(); PO_button.name = "MoveIt_PO_button"; PO_button.tooltip = Str.baseUI_TogglePO_Tooltip; PO_button.playAudioEvents = true; PO_button.size = new Vector2(36, 36); PO_button.spritePadding = new RectOffset(); PO_button.backgroundSprites[0].disabled = "OptionBaseDisabled"; PO_button.backgroundSprites[0].hovered = "OptionBaseHovered"; PO_button.backgroundSprites[0].normal = "OptionBase"; PO_button.backgroundSprites[0].pressed = "OptionBasePressed"; PO_button.backgroundSprites.AddState(); PO_button.backgroundSprites[1].disabled = "OptionBaseDisabled"; PO_button.backgroundSprites[1].hovered = ""; PO_button.backgroundSprites[1].normal = "OptionBaseFocused"; PO_button.backgroundSprites[1].pressed = "OptionBasePressed"; PO_button.foregroundSprites[0].normal = "PO"; PO_button.foregroundSprites.AddState(); PO_button.foregroundSprites[1].normal = "POFocused"; PO_button.relativePosition = new Vector3(4f, 76f); PO_button.activeStateIndex = 0; PO_button.eventClicked += (c, p) => { MoveItTool.PO.InitialiseTool(); }; m_viewOptions.height += 36; m_viewOptions.absolutePosition += new Vector3(0, -36); } #endregion }