private void RefreshDisplayData() { if (refreshOnce) { if (isVisible) { m_fromLabel.text = Localization.Get("From"); m_toLabel.text = Localization.Get("To"); //DebugLog.LogToFileOnly("fromSelected = " + fromSelected.ToString() + " toSelected = " + toSelected.ToString() + " symmetry = " + symmetry.ToString() + " uturnLane: " + uturnLane.ToString() + " hasSidewalk: " + hasSidewalk.ToString()); //DebugLog.LogToFileOnly(m_currentModule); var m_prefab = Parser.NetInfoFromUI(fromSelected, toSelected, symmetry, hasSidewalk, hasBike); m_prefab = UpdateRoadVariant(m_prefab); if (m_prefab != null) { m_netTool = ToolsModifierControl.SetTool <NetTool>(); UIView.Find("RoadsPanel").Show(); m_netTool.m_prefab = m_prefab; m_result.atlas = m_netTool.m_prefab.m_Atlas; m_result.spriteName = m_netTool.m_prefab.m_Thumbnail; } else { //ToolsModifierControl.SetTool<DefaultTool>(); if (m_netTool != null) { m_netTool.m_prefab = null; } m_result.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasNameNoAsset); m_result.spriteName = "NOASSET"; } refreshOnce = false; } } }
private static void LoadSprites() { if (SpriteUtilities.GetAtlas(m_atlasName) != null) { return; } var modPath = PluginManager.instance.FindPluginInfo(Assembly.GetExecutingAssembly()).modPath; m_atlasLoaded = SpriteUtilities.InitialiseAtlas(Path.Combine(modPath, "Icon/RealCity.png"), m_atlasName); if (m_atlasLoaded) { var spriteSuccess = true; spriteSuccess = SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(382, 0), new Vector2(191, 191)), "EcButton", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(0, 0), new Vector2(191, 191)), "Blank", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(191, 0), new Vector2(191, 191)), "BuildingButton", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(573, 0), new Vector2(191, 191)), "Politics", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(764, 0), new Vector2(191, 191)), "RcButton", m_atlasName) && spriteSuccess; if (!spriteSuccess) { DebugLog.LogToFileOnly("Some sprites haven't been loaded. This is abnormal; you should probably report this to the mod creator."); } } else { DebugLog.LogToFileOnly("The texture atlas (provides custom icons) has not loaded. All icons have reverted to text prompts."); } }
private void LoadSprites() { if (SpriteUtilities.GetAtlas(m_atlasName) != null) { return; } m_atlasLoaded = SpriteUtilities.InitialiseAtlas(Path.Combine(NetPickerMod.AsmPath, "SpriteAtlas.png"), m_atlasName); if (m_atlasLoaded) { var spriteSuccess = true; spriteSuccess = SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(0, 0), new Vector2(128, 128)), "Elektrix", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(128, 0), new Vector2(128, 128)), "NetTool", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(0, 0), new Vector2(20, 20)), "Blank", m_atlasName) && spriteSuccess; if (!spriteSuccess) { NetPickerTool.instance.ThrowError("Some sprites haven't been loaded. This is abnormal; you should probably report this to the mod creator."); } } else { NetPickerTool.instance.ThrowError("The texture atlas (provides custom icons) has not loaded. All icons have reverted to text prompts."); } }
public override void Start() { base.normalBgSprite = "ToolbarIconGroup1Nomarl"; base.hoveredBgSprite = "ToolbarIconGroup1Hovered"; base.focusedBgSprite = "ToolbarIconGroup1Focused"; base.pressedBgSprite = "ToolbarIconGroup1Pressed"; base.playAudioEvents = true; base.name = "PBButton"; base.relativePosition = new Vector3(90f, 0f); UISprite internalSprite = base.AddUIComponent <UISprite>(); internalSprite.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName); internalSprite.spriteName = "Pic"; internalSprite.relativePosition = new Vector3(0, 0); internalSprite.width = internalSprite.height = 40f; base.size = new Vector2(40f, 40f); //Setup UniqueFactoryUI var buildingWindowGameObject = new GameObject("buildingWindowObject"); uniqueFactoryUI = (UniqueFactoryUI)buildingWindowGameObject.AddComponent(typeof(UniqueFactoryUI)); playerBuildingInfo = UIView.Find <UIPanel>("(Library) UniqueFactoryWorldInfoPanel"); if (playerBuildingInfo == null) { DebugLog.LogToFileOnly("UIPanel not found (update broke the mod!): (Library) UniqueFactoryWorldInfoPanel\nAvailable panels are:\n"); } uniqueFactoryUI.transform.parent = playerBuildingInfo.transform; uniqueFactoryUI.baseBuildingWindow = playerBuildingInfo.gameObject.transform.GetComponentInChildren <UniqueFactoryWorldInfoPanel>(); base.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { PlayerBuildingUIToggle(); }; }
private static void LoadSprites() { if (SpriteUtilities.GetAtlas(m_atlasName) != null) { return; } var modPath = PluginManager.instance.FindPluginInfo(Assembly.GetExecutingAssembly()).modPath; m_atlasLoaded = SpriteUtilities.InitialiseAtlas(Path.Combine(modPath, "Resources/Icon.png"), m_atlasName); if (m_atlasLoaded) { var spriteSuccess = true; spriteSuccess = SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(2, 2), new Vector2(30, 30)), "3Round", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(34, 2), new Vector2(30, 30)), "3Round_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(66, 2), new Vector2(30, 30)), "1Round", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(98, 2), new Vector2(30, 30)), "1Round_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(130, 2), new Vector2(30, 30)), "Smooth", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(162, 2), new Vector2(30, 30)), "Smooth_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(194, 2), new Vector2(30, 30)), "Fix", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(226, 2), new Vector2(30, 30)), "Fix_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(258, 2), new Vector2(30, 30)), "YRoad", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(290, 2), new Vector2(30, 30)), "YRoad_S", m_atlasName); if (!spriteSuccess) { DebugLog.LogToFileOnly("Error: Some sprites haven't been loaded. This is abnormal; you should probably report this to the mod creator."); } } else { DebugLog.LogToFileOnly("Error: The texture atlas (provides custom icons) has not loaded. All icons have reverted to text prompts."); } }
/// <summary> /// Loads GUI sprites /// </summary> private void LoadSprites() { try { if (SpriteUtilities.GetAtlas(Atlas) != null) { return; } var atlasSuccess = SpriteUtilities.InitialiseAtlas(Path.Combine(NetworkSkinsMod.AssemblyPath, "sprites.png"), Atlas); if (atlasSuccess) { var spriteSuccess = true; spriteSuccess = SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(0, 0), new Vector2(24, 24)), "DragCursor", Atlas) && spriteSuccess; // TODO add sprites for tunnel, ground, elevated, bridge? if (!spriteSuccess) { Debug.LogError("Network Skins: Failed to load some sprites!"); } } else { Debug.LogError("Network Skins: Failed to load the atlas!"); } } catch (Exception e) { Debug.LogException(e); } }
public override void Start() { base.Start(); //init data fromSelected = 0; toSelected = 0; symmetry = 255; uturnLane = false; hasSidewalk = true; hasBike = true; //UI size = new Vector2(WIDTH, HEIGHT); backgroundSprite = "MenuPanel"; canFocus = true; isInteractive = true; BringToFront(); relativePosition = new Vector3((Loader.parentGuiView.fixedWidth / 2 + 20f), 170f); opacity = 1f; cachedName = cacheName; //UITOP m_DragHandler = AddUIComponent <UIDragHandle>(); m_DragHandler.target = this; m_DragHandler.zOrder = 11; m_UITOP = m_DragHandler.AddUIComponent <UISprite>(); m_UITOP.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasNameHeader); m_UITOP.spriteName = "UITOP"; m_UITOP.relativePosition = new Vector3(0f, 0f); m_UITOP.width = WIDTH; m_UITOP.height = 35f; m_UITOP.zOrder = 12; //UIBG m_UIBG = AddUIComponent <UISprite>(); m_UIBG.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasNameBg); m_UIBG.spriteName = "UIBG"; m_UIBG.relativePosition = new Vector3(0f, 35f); m_UIBG.width = WIDTH; m_UIBG.height = HEIGHT - 30f; m_UIBG.zOrder = 12; //result m_result = AddUIComponent <UISprite>(); m_result.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasNameNoAsset); m_result.spriteName = "NOASSET"; m_result.relativePosition = new Vector3(20f, 45f); m_result.width = 150f; m_result.height = 150f; m_result.zOrder = 11; //close m_closeButton = AddUIComponent <UIButton>(); m_closeButton.normalBgSprite = "buttonclose"; m_closeButton.hoveredBgSprite = "buttonclosehover"; m_closeButton.pressedBgSprite = "buttonclosepressed"; m_closeButton.relativePosition = new Vector3(WIDTH - 35f, 0f, 10f); m_closeButton.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { Hide(); }; Hide(); //dont show in the beginning DoOnStartup(); }
public override void Start() { name = "ThreeRoundButton"; //text = "T"; Vector2 resolution = UIView.GetAView().GetScreenResolution(); var pos = new Vector2((145f), (resolution.y * 4f / 5f)); Rect rect = new Rect(pos.x, pos.y, 30, 30); SpriteUtilities.ClampRectToScreen(ref rect, resolution); DebugLog.LogToFileOnly($"Setting ThreeRoundButton position to [{pos.x},{pos.y}]"); absolutePosition = rect.position; Invalidate(); //relativePosition = new Vector3((Loader.parentGuiView.fixedWidth / 2f - 450f), (Loader.parentGuiView.fixedHeight / 2f + 370f)); //relativePosition = new Vector3((Loader.parentGuiView.fixedWidth - 70f), (Loader.parentGuiView.fixedHeight / 2 + 100f)); atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName); normalBgSprite = "3Round"; hoveredBgSprite = "3Round_S"; size = new Vector2(30f, 30f); zOrder = 11; eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { if (AdvancedTools.instance.enabled == false) { //base.Hide(); ToolBase currentTool = ToolsModifierControl.GetCurrentTool <ToolBase>(); if (currentTool != null) { NetTool netTool = currentTool as NetTool; if (netTool.m_prefab != null) { AdvancedTools.m_netInfo = netTool.m_prefab; } } ToolsModifierControl.SetTool <DefaultTool>(); AdvancedTools.instance.enabled = true; AdvancedTools.m_step = 0; AdvancedTools.rampMode = 0; AdvancedTools.height = 0; } else { ToolsModifierControl.SetTool <DefaultTool>(); AdvancedTools.instance.enabled = false; AdvancedTools.m_step = 0; AdvancedTools.height = 0; } }; }
public override void Start() { name = "SmoothButton"; //text = "O"; Vector2 resolution = UIView.GetAView().GetScreenResolution(); var pos = new Vector2((40f), (resolution.y * 4f / 5f)); Rect rect = new Rect(pos.x, pos.y, 30, 30); SpriteUtilities.ClampRectToScreen(ref rect, resolution); DebugLog.LogToFileOnly($"Setting SmoothButton position to [{pos.x},{pos.y}]"); absolutePosition = rect.position; Invalidate(); //relativePosition = new Vector3((Loader.parentGuiView.fixedWidth / 2f - 570f), (Loader.parentGuiView.fixedHeight / 2f + 370f)); atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName); if (OptionUI.isSmoothMode) { normalBgSprite = "Smooth_S"; } else { normalBgSprite = "Smooth"; } size = new Vector2(30f, 30f); zOrder = 11; eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { if (OptionUI.isSmoothMode) { OptionUI.isSmoothMode = false; normalBgSprite = "Smooth"; } else { OptionUI.isSmoothMode = true; normalBgSprite = "Smooth_S"; } }; }
public override void Start() { name = "EcButton"; relativePosition = new Vector3((Loader.parentGuiView.fixedWidth / 2 - 350f), 35f); normalBgSprite = "ToolbarIconGroup1Nomarl"; hoveredBgSprite = "ToolbarIconGroup1Hovered"; focusedBgSprite = "ToolbarIconGroup1Focused"; pressedBgSprite = "ToolbarIconGroup1Pressed"; playAudioEvents = true; UISprite internalSprite = AddUIComponent <UISprite>(); internalSprite.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName); internalSprite.spriteName = "EcButton"; internalSprite.relativePosition = new Vector3(0, 0); internalSprite.width = 50f; internalSprite.height = 50f; size = new Vector2(50f, 50f); zOrder = 11; m_DragHandler = AddUIComponent <UIDragHandle>(); m_DragHandler.target = this; m_DragHandler.relativePosition = Vector2.zero; m_DragHandler.width = 50; m_DragHandler.height = 50; m_DragHandler.zOrder = 10; m_DragHandler.Start(); m_DragHandler.enabled = true; tmpX = relativePosition.x; tmpY = relativePosition.y; eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { if (tmpX == relativePosition.x && tmpY == relativePosition.y) { MoreeconomicUIToggle(); } tmpX = relativePosition.x; tmpY = relativePosition.y; }; MoreeconomicUITrigger_chirper = UIView.Find <UIPanel>("ChirperPanel"); MoreeconomicUITrigger_esc = UIView.Find <UIButton>("Esc"); MoreeconomicUITrigger_infopanel = UIView.Find <UIPanel>("InfoPanel"); MoreeconomicUITrigger_bottombars = UIView.Find <UISlicedSprite>("TSBar"); MoreeconomicUITrigger_paneltime = UIView.Find <UIPanel>("PanelTime"); if (MoreeconomicUITrigger_chirper != null && MoreeconomicUITrigger_paneltime != null) { MoreeconomicUITrigger_chirper.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { MoreeconomicUIOff(); }; } if (MoreeconomicUITrigger_esc != null && MoreeconomicUITrigger_paneltime != null) { MoreeconomicUITrigger_esc.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { MoreeconomicUIOff(); }; } if (MoreeconomicUITrigger_infopanel != null && MoreeconomicUITrigger_paneltime != null) { MoreeconomicUITrigger_infopanel.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { MoreeconomicUIOff(); }; } if (MoreeconomicUITrigger_bottombars != null && MoreeconomicUITrigger_paneltime != null) { MoreeconomicUITrigger_bottombars.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { MoreeconomicUIOff(); }; } }
private static void LoadSprites() { if (SpriteUtilities.GetAtlas(m_atlasName) != null) { return; } var modPath = PluginManager.instance.FindPluginInfo(Assembly.GetExecutingAssembly()).modPath; m_atlasLoaded = SpriteUtilities.InitialiseAtlas(Path.Combine(modPath, "Resources/CSUR.png"), m_atlasName); m_atlasLoaded &= SpriteUtilities.InitialiseAtlas(Path.Combine(modPath, "Resources/CSUR1.png"), m_atlasName1); m_atlasLoaded &= SpriteUtilities.InitialiseAtlas(Path.Combine(modPath, "Resources/CSUR2.png"), m_atlasName2); m_atlasLoaded &= SpriteUtilities.InitialiseAtlas(Path.Combine(modPath, "Resources/UIBG.png"), m_atlasNameBg); m_atlasLoaded &= SpriteUtilities.InitialiseAtlas(Path.Combine(modPath, "Resources/UITOP.png"), m_atlasNameHeader); m_atlasLoaded &= SpriteUtilities.InitialiseAtlas(Path.Combine(modPath, "Resources/Notfound.png"), m_atlasNameNoAsset); if (m_atlasLoaded) { var spriteSuccess = true; spriteSuccess = SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(2, 2), new Vector2(30, 30)), "0P_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(34, 2), new Vector2(30, 30)), "0P_L", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(66, 2), new Vector2(30, 30)), "0P_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(98, 2), new Vector2(30, 30)), "1_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(130, 2), new Vector2(30, 30)), "1_L", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(162, 2), new Vector2(30, 30)), "1_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(194, 2), new Vector2(30, 30)), "1P_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(226, 2), new Vector2(30, 30)), "1P_L", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(258, 2), new Vector2(30, 30)), "1P_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(290, 2), new Vector2(30, 30)), "2_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(322, 2), new Vector2(30, 30)), "2_L", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(354, 2), new Vector2(30, 30)), "2_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(386, 2), new Vector2(30, 30)), "2P_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(418, 2), new Vector2(30, 30)), "2P_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(452, 2), new Vector2(30, 30)), "3_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(482, 2), new Vector2(30, 30)), "3_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(514, 2), new Vector2(30, 30)), "3P_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(546, 2), new Vector2(30, 30)), "3P_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(578, 2), new Vector2(30, 30)), "4_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(610, 2), new Vector2(30, 30)), "4_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(642, 2), new Vector2(30, 30)), "4P_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(674, 2), new Vector2(30, 30)), "4P_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(706, 2), new Vector2(30, 30)), "5_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(738, 2), new Vector2(30, 30)), "5_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(770, 2), new Vector2(30, 30)), "5P_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(802, 2), new Vector2(30, 30)), "5P_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(834, 2), new Vector2(30, 30)), "6_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(866, 2), new Vector2(30, 30)), "6_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(898, 2), new Vector2(30, 30)), "6P_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(930, 2), new Vector2(30, 30)), "6P_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(962, 2), new Vector2(30, 30)), "7_R", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(994, 2), new Vector2(30, 30)), "7_S", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(1026, 2), new Vector2(30, 30)), "C_C", m_atlasName) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(1058, 2), new Vector2(30, 30)), "C_S", m_atlasName) && spriteSuccess; spriteSuccess = SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(2, 2), new Vector2(30, 30)), "+0", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(34, 2), new Vector2(30, 30)), "+1", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(66, 2), new Vector2(30, 30)), "+2", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(98, 2), new Vector2(30, 30)), "SWAP", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(130, 2), new Vector2(30, 30)), "SWAP_S", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(162, 2), new Vector2(30, 30)), "SIDEWALK", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(194, 2), new Vector2(30, 30)), "0_S", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(226, 2), new Vector2(30, 30)), "0", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(258, 2), new Vector2(30, 30)), "COPY", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(290, 2), new Vector2(30, 30)), "COPY_S", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(322, 2), new Vector2(30, 30)), "UTURN", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(354, 2), new Vector2(30, 30)), "UTURN_S", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(386, 2), new Vector2(30, 30)), "NOSIDEWALK", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(418, 2), new Vector2(30, 30)), "CLEAR", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(450, 2), new Vector2(30, 30)), "CLEAR_S", m_atlasName1) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(482, 2), new Vector2(30, 30)), "BIKE", m_atlasName1) && spriteSuccess; spriteSuccess = SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(2, 2), new Vector2(60, 50)), "CSUR_BUTTON_S", m_atlasName2) && SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(64, 2), new Vector2(60, 50)), "CSUR_BUTTON", m_atlasName2) && spriteSuccess; spriteSuccess &= SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(0, 0), new Vector2(566, 210)), "UIBG", m_atlasNameBg); spriteSuccess &= SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(0, 0), new Vector2(565, 35)), "UITOP", m_atlasNameHeader); spriteSuccess &= SpriteUtilities.AddSpriteToAtlas(new Rect(new Vector2(0, 0), new Vector2(150, 150)), "NOASSET", m_atlasNameNoAsset); if (!spriteSuccess) { DebugLog.LogToFileOnly("Error: Some sprites haven't been loaded. This is abnormal; you should probably report this to the mod creator."); } } else { DebugLog.LogToFileOnly("Error: The texture atlas (provides custom icons) has not loaded. All icons have reverted to text prompts."); } }
private void ShowOnGui() { float currentX = 195f, currentY = 45f; // Top (to) section, half positions for (int i = 0; i < N_POS_INT - 1; i++) { m_toHalfButtons[i] = AddUIComponent <UIButton>(); m_toHalfButtons[i].playAudioEvents = true; m_toHalfButtons[i].relativePosition = new Vector3(currentX + SPACING2, currentY); m_toHalfButtons[i].atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName); m_toHalfButtons[i].normalBgSprite = labelsHalf[i] + ((i < CENTER) ? "_L" : "_R"); m_toHalfButtons[i].size = new Vector2(BTN_SIZE, BTN_SIZE); m_toHalfButtons[i].zOrder = 11; m_toHalfButtons[i].stringUserData = $"ToLanePos_{2 * i + 1}"; m_toHalfButtons[i].eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { ClickToLaneButton(System.Convert.ToByte(component.stringUserData.Substring(10))); }; currentX = m_toHalfButtons[i].relativePosition.x; } // Top (to) section, integer positions currentY = SPACING2 + m_toHalfButtons[0].relativePosition.y; currentX = 175f; for (int i = 0; i < N_POS_INT; i++) { m_toIntButtons[i] = AddUIComponent <UIButton>(); m_toIntButtons[i].playAudioEvents = true; m_toIntButtons[i].relativePosition = new Vector3(currentX + SPACING2, currentY); m_toIntButtons[i].atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName); m_toIntButtons[i].normalBgSprite = labelsInt[i] + ((i < CENTER) ? "_L" : (i > CENTER) ? "_R" : "_C"); m_toIntButtons[i].size = new Vector2(BTN_SIZE, BTN_SIZE); m_toIntButtons[i].zOrder = 11; m_toIntButtons[i].stringUserData = $"ToLanePos_{2 * i}"; m_toIntButtons[i].eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { ClickToLaneButton(System.Convert.ToByte(component.stringUserData.Substring(10))); }; currentX = m_toIntButtons[i].relativePosition.x; } // Bottom (from) section, integer positions currentX = m_toIntButtons[0].relativePosition.x - SPACING2; currentY = m_toIntButtons[0].relativePosition.y + 90f; for (int i = 0; i < N_POS_INT; i++) { m_fromIntButtons[i] = AddUIComponent <UIButton>(); m_fromIntButtons[i].playAudioEvents = true; m_fromIntButtons[i].relativePosition = new Vector3(currentX + SPACING2, currentY); m_fromIntButtons[i].atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName); m_fromIntButtons[i].normalBgSprite = labelsInt[i] + ((i < CENTER) ? "_L" : (i > CENTER) ? "_R" : "_C"); m_fromIntButtons[i].size = new Vector2(BTN_SIZE, BTN_SIZE); m_fromIntButtons[i].zOrder = 11; m_fromIntButtons[i].stringUserData = $"FromLanePos_{2 * i}"; m_fromIntButtons[i].eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { ClickFromLaneButton(System.Convert.ToByte(component.stringUserData.Substring(12))); }; currentX = m_fromIntButtons[i].relativePosition.x; } // Bottom (from) section, half positions currentX = m_toHalfButtons[0].relativePosition.x - SPACING2; currentY = m_toHalfButtons[0].relativePosition.y + 160f; for (int i = 0; i < N_POS_INT - 1; i++) { m_fromHalfButtons[i] = AddUIComponent <UIButton>(); m_fromHalfButtons[i].playAudioEvents = true; m_fromHalfButtons[i].relativePosition = new Vector3(currentX + SPACING2, currentY); m_fromHalfButtons[i].atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName); m_fromHalfButtons[i].normalBgSprite = labelsHalf[i] + ((i < CENTER) ? "_L" : "_R"); m_fromHalfButtons[i].size = new Vector2(BTN_SIZE, BTN_SIZE); m_fromHalfButtons[i].zOrder = 11; m_fromHalfButtons[i].stringUserData = $"FromLanePos_{2 * i + 1}"; m_fromHalfButtons[i].eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { ClickFromLaneButton(System.Convert.ToByte(component.stringUserData.Substring(12))); }; currentX = m_fromHalfButtons[i].relativePosition.x; } m_copyButton = AddUIComponent <UIButton>(); m_copyButton.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName1); m_copyButton.normalBgSprite = "COPY"; m_copyButton.hoveredBgSprite = "COPY_S"; m_copyButton.playAudioEvents = true; m_copyButton.size = new Vector2(BTN_SIZE, BTN_SIZE); m_copyButton.relativePosition = new Vector3(m_toIntButtons[3].relativePosition.x + 10f, m_toIntButtons[3].relativePosition.y + 47f); m_copyButton.autoSize = true; m_copyButton.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { copyButton_OnCheckChanged(); }; m_swapButton = AddUIComponent <UIButton>(); m_swapButton.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName1); m_swapButton.normalBgSprite = "SWAP"; m_swapButton.hoveredBgSprite = "SWAP_S"; m_swapButton.playAudioEvents = true; m_swapButton.size = new Vector2(BTN_SIZE, BTN_SIZE); m_swapButton.relativePosition = new Vector3(m_copyButton.relativePosition.x + 50f, m_copyButton.relativePosition.y); m_swapButton.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { swapButton_OnCheckChanged(); }; m_symButton = AddUIComponent <UIButton>(); m_symButton.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName1); m_symButton.normalBgSprite = "0_S"; m_symButton.playAudioEvents = true; m_symButton.size = new Vector2(BTN_SIZE, BTN_SIZE); m_symButton.relativePosition = new Vector3(35f, m_fromHalfButtons[0].relativePosition.y); m_symButton.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { symButton_OnCheckChanged(); refreshOnce = true; }; m_hasSideWalkButton = AddUIComponent <UIButton>(); m_hasSideWalkButton.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName1); m_hasSideWalkButton.normalBgSprite = "BIKE"; m_hasSideWalkButton.playAudioEvents = true; m_hasSideWalkButton.size = new Vector2(BTN_SIZE, BTN_SIZE); m_hasSideWalkButton.relativePosition = new Vector3(m_symButton.relativePosition.x + SPACING2 + 45f, m_fromHalfButtons[0].relativePosition.y); m_hasSideWalkButton.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { hasSideWalkButton_OnCheckChanged(); refreshOnce = true; }; m_fromLabel = AddUIComponent <UILabel>(); m_fromLabel.text = Localization.Get("From"); m_fromLabel.textScale = 1f; m_fromLabel.textColor = new Color32(54, 54, 54, 54); m_fromLabel.relativePosition = new Vector3(m_toIntButtons[0].relativePosition.x, m_toIntButtons[0].relativePosition.y + 60f); m_fromLabel.autoSize = true; m_toLabel = AddUIComponent <UILabel>(); m_toLabel.text = Localization.Get("To"); m_toLabel.textScale = 1f; m_toLabel.textColor = new Color32(54, 54, 54, 54); m_toLabel.relativePosition = new Vector3(m_toIntButtons[9].relativePosition.x, m_toIntButtons[9].relativePosition.y + 40f); m_clearButton = AddUIComponent <UIButton>(); m_clearButton.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName1); m_clearButton.normalBgSprite = "CLEAR"; m_clearButton.hoveredBgSprite = "CLEAR_S"; m_clearButton.playAudioEvents = true; m_clearButton.size = new Vector2(BTN_SIZE, BTN_SIZE); m_clearButton.relativePosition = new Vector3(m_swapButton.relativePosition.x + 45f, m_swapButton.relativePosition.y); m_clearButton.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { clearButton_OnCheckChanged(); }; }
public override void OnLevelLoaded(LoadMode mode) { if (NetPickerTool.instance == null) { ToolController toolController = GameObject.FindObjectOfType <ToolController>(); NetPickerTool.instance = toolController.gameObject.AddComponent <NetPickerTool>(); NetPickerTool.instance.enabled = false; } if (!config.HasSeenHowToDragTheStupidIcon) { NetPickerTool.instance.ThrowError("Double-click the Elektrix's Mods icon to move it."); config.HasSeenHowToDragTheStupidIcon = true; Configuration <ElektrixModsConfiguration> .Save(); } // Load Sprites LoadSprites(); // Initiate UI // 1.1 - modular? UIPanel modsPanel = (UIPanel)UIView.Find("ElektrixModsPanel"); if (modsPanel == null) { UIComponent TSBar = UIView.Find("TSBar"); UIPanel elektrixModsBackground = TSBar.AddUIComponent <UIPanel>(); elektrixModsBackground.name = "ElektrixMB"; elektrixModsBackground.absolutePosition = new Vector2(config.PanelX, config.PanelY); elektrixModsBackground.width = 60f; elektrixModsBackground.height = 60f; elektrixModsBackground.zOrder = 1; UIButton doneButton = elektrixModsBackground.AddUIComponent <UIButton>(); doneButton.normalBgSprite = "GenericPanel"; doneButton.width = 100f; doneButton.height = 50f; doneButton.relativePosition = new Vector2(70f, 5f); doneButton.text = "Done"; doneButton.hoveredTextColor = new Color32(0, 255, 255, 1); doneButton.Hide(); doneButton.zOrder = 99; UIDragHandle handle = elektrixModsBackground.AddUIComponent <UIDragHandle>(); handle.name = "ElektrixDragHandle"; handle.relativePosition = Vector2.zero; handle.width = elektrixModsBackground.width - 5; handle.height = elektrixModsBackground.height - 5; handle.zOrder = 0; handle.target = elektrixModsBackground; handle.Start(); handle.enabled = false; elektrixModsBackground.zOrder = 9; handle.zOrder = 10; elektrixModsBackground.eventDoubleClick += (component, ms) => { handle.zOrder = 13; doneButton.Show(); handle.enabled = true; }; /* * elektrixModsBackground.eventMouseMove += (component, ms) => * { * if (ms.buttons.IsFlagSet(UIMouseButton.Right)) * { * Vector3 mousePos = Input.mousePosition; * mousePos.y = UIView.GetAView().fixedHeight - mousePos.y; * elektrixModsBackground.absolutePosition = mousePos + m_deltaPos; * * Debug.Log(mousePos + ", " + Input.mousePosition); * config.PanelX = (int)elektrixModsBackground.absolutePosition.x; * config.PanelY = (int)elektrixModsBackground.absolutePosition.y; * Configuration<ElektrixModsConfiguration>.Save(); * } * };*/ /* * elektrixModsBackground.eventMouseDown += (component, ms) => * { * if (ms.buttons.IsFlagSet(UIMouseButton.Right)) * { * Vector3 mousePos = Input.mousePosition; * mousePos.y = UIView.GetAView().fixedHeight - mousePos.y; * m_deltaPos = elektrixModsBackground.absolutePosition - mousePos; * elektrixModsBackground.absolutePosition = mousePos + m_deltaPos; * * * config.PanelX = (int)elektrixModsBackground.absolutePosition.x; * config.PanelY = (int)elektrixModsBackground.absolutePosition.y; * Configuration<ElektrixModsConfiguration>.Save(); * } * };*/ doneButton.eventClick += (component, ms) => { doneButton.Hide(); handle.zOrder = 10; handle.enabled = false; config.PanelX = (int)elektrixModsBackground.absolutePosition.x; config.PanelY = (int)elektrixModsBackground.absolutePosition.y; Configuration <ElektrixModsConfiguration> .Save(); }; if (m_atlasLoaded) { elektrixModsBackground.atlas = SpriteUtilities.GetAtlas(m_atlasName); elektrixModsBackground.backgroundSprite = "Blank"; } else { elektrixModsBackground.backgroundSprite = "GenericPanelLight"; } elektrixModsBackground.color = new Color32(96, 96, 96, 255); UIButton elektrixModsToggle = elektrixModsBackground.AddUIComponent <UIButton>(); elektrixModsToggle.disabledTextColor = new Color32(128, 128, 128, 255); ElektrixUI.SetupButtonStateSprites(ref elektrixModsToggle, "ToolbarIconGroup1"); elektrixModsToggle.relativePosition = new Vector3(5f, 0f); elektrixModsToggle.size = new Vector2(45f, 50f); elektrixModsToggle.name = "ElektrixModsButton"; elektrixModsToggle.zOrder = 11; if (m_atlasLoaded) { UISprite internalSprite = elektrixModsToggle.AddUIComponent <UISprite>(); internalSprite.atlas = SpriteUtilities.GetAtlas(m_atlasName); internalSprite.spriteName = "Elektrix"; internalSprite.relativePosition = new Vector3(-3, 0); internalSprite.width = internalSprite.height = 50f; } else { elektrixModsToggle.text = "E"; } elektrixModsToggle.textScale = 1.3f; elektrixModsToggle.textVerticalAlignment = UIVerticalAlignment.Middle; elektrixModsToggle.textHorizontalAlignment = UIHorizontalAlignment.Center; modsPanel = elektrixModsBackground.AddUIComponent <UIPanel>(); modsPanel.backgroundSprite = "MenuPanel2"; modsPanel.name = "ElektrixModsPanel"; modsPanel.width = 0; modsPanel.relativePosition = new Vector3(0, -modsPanel.height - 7); modsPanel.Hide(); UILabel panelLabel = modsPanel.AddUIComponent <UILabel>(); panelLabel.text = "Elektrix's Mods"; panelLabel.name = "EL"; panelLabel.relativePosition = new Vector3(12f, 15f); elektrixModsToggle.eventClicked += (component, click) => { if (!modsPanel.isVisible) { elektrixModsToggle.Focus(); modsPanel.Show(); } else { elektrixModsToggle.Unfocus(); modsPanel.Hide(); } }; } modsPanel = (UIPanel)UIView.Find("ElektrixModsPanel"); UIPanel backgroundPanel = modsPanel.AddUIComponent <UIPanel>(); backgroundPanel.backgroundSprite = "GenericPanelWhite"; backgroundPanel.name = "E2"; backgroundPanel.height = 70f; backgroundPanel.width = 135f; backgroundPanel.relativePosition = new Vector3(10f, 0f); backgroundPanel.color = new Color32(91, 97, 106, 255); UILabel title = backgroundPanel.AddUIComponent <UILabel>(); title.text = "Net Picker"; title.name = "E2L"; title.textScale = 0.9f; title.relativePosition = new Vector3(7f, 7f); UIButton netPickerTool = backgroundPanel.AddUIComponent <UIButton>(); int netClicks = 0; ElektrixUI.SetupButtonStateSprites(ref netPickerTool, "OptionBase", true); netPickerTool.size = new Vector2(45f, 45f); netPickerTool.relativePosition = new Vector3(5f, 22f); netPickerTool.name = "E2A"; netPickerTool.tooltip = "Click a road to select it in the roads panel."; if (m_atlasLoaded) { UISprite internalSprite = netPickerTool.AddUIComponent <UISprite>(); internalSprite.atlas = SpriteUtilities.GetAtlas(m_atlasName); internalSprite.spriteName = "NetTool"; internalSprite.relativePosition = Vector3.zero; internalSprite.width = internalSprite.height = 50f; } else { netPickerTool.text = "P"; } netPickerTool.textScale = 1.3f; UIButton openDescription = backgroundPanel.AddUIComponent <UIButton>(); openDescription.relativePosition = new Vector3(backgroundPanel.width - 20, 5); openDescription.size = new Vector3(15, 15); openDescription.normalFgSprite = "ToolbarIconHelp"; openDescription.name = "E2H"; openDescription.tooltip = "Open in Steam Workshop"; ElektrixUI.SetupButtonStateSprites(ref openDescription, "OptionBase", true); if (!PlatformService.IsOverlayEnabled()) { openDescription.isVisible = false; openDescription.isEnabled = false; } openDescription.eventClicked += (component, click) => { if (PlatformService.IsOverlayEnabled() && toolID != PublishedFileId.invalid) { PlatformService.ActivateGameOverlayToWorkshopItem(toolID); } openDescription.Unfocus(); }; // Final overrides //UIPanel modsPanel = (UIPanel) UIView.Find("ElektrixModsPanel"); IList <UIComponent> panels = modsPanel.components; float longestPanelWidth = 0; for (int i = 0; i < panels.Count; i++) { if (!(panels[i] is UIPanel)) { continue; } panels[i].relativePosition = new Vector3(panels[i].relativePosition.x, 50 + (80 * (i - 1))); if (panels[i].width > longestPanelWidth) { longestPanelWidth = panels[i].width; } } modsPanel.height = 50f + (modsPanel.childCount - 1) * 80f; modsPanel.width = 20f + longestPanelWidth; modsPanel.relativePosition = new Vector3(0, -modsPanel.height - 7); // Events netPickerTool.eventClicked += (component, click) => { if (!NetPickerTool.instance.enabled) { netClicks = 0; } netClicks++; if (netClicks == 1) { netPickerTool.Focus(); NetPickerTool.instance.enabled = true; } else { netPickerTool.Unfocus(); netClicks = 0; NetPickerTool.instance.enabled = false; ToolsModifierControl.SetTool <DefaultTool>(); } }; }
public override void Start() { name = "MainButton"; Vector2 resolution = UIView.GetAView().GetScreenResolution(); var pos = new Vector2((resolution.x - 70f), (resolution.y * 3f / 4f)); Rect rect = new Rect(pos.x, pos.y, 60, 50); ClampRectToScreen(ref rect, resolution); DebugLog.LogToFileOnly($"Setting main menu button position to [{pos.x},{pos.y}]"); absolutePosition = rect.position; Invalidate(); //relativePosition = new Vector3((Loader.parentGuiView.fixedWidth - 70f), (Loader.parentGuiView.fixedHeight / 2 + 100f)); playAudioEvents = true; tmpX = base.relativePosition.x; tmpY = base.relativePosition.y; atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName2); normalBgSprite = "CSUR_BUTTON"; hoveredBgSprite = "CSUR_BUTTON_S"; focusedBgSprite = "CSUR_BUTTON_S"; pressedBgSprite = "CSUR_BUTTON_S"; //UISprite internalSprite = AddUIComponent<UISprite>(); //internalSprite.atlas = SpriteUtilities.GetAtlas(Loader.m_atlasName); //internalSprite.spriteName = "RcButton"; //internalSprite.relativePosition = new Vector3(0, 0); //internalSprite.width = 50f; //internalSprite.height = 50f; size = new Vector2(60f, 50f); zOrder = 11; m_DragHandler = AddUIComponent <UIDragHandle>(); m_DragHandler.target = this; m_DragHandler.relativePosition = Vector2.zero; m_DragHandler.width = 60; m_DragHandler.height = 50; m_DragHandler.zOrder = 10; m_DragHandler.Start(); m_DragHandler.enabled = true; eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { if (tmpX == base.relativePosition.x && tmpY == base.relativePosition.y) { MainUIToggle(); } tmpX = base.relativePosition.x; tmpY = base.relativePosition.y; }; //MainUITrigger_chirper = UIView.Find<UIPanel>("ChirperPanel"); MainUITrigger_esc = UIView.Find <UIButton>("Esc"); //MainUITrigger_infopanel = UIView.Find<UIPanel>("InfoPanel"); //MainUITrigger_bottombars = UIView.Find<UISlicedSprite>("TSBar"); MainUITrigger_paneltime = UIView.Find <UIPanel>("PanelTime"); /*if (MainUITrigger_chirper != null && MainUITrigger_paneltime != null) * { * MainUITrigger_chirper.eventClick += delegate (UIComponent component, UIMouseEventParameter eventParam) * { * MainUIOff(); * }; * }*/ if (MainUITrigger_esc != null && MainUITrigger_paneltime != null) { MainUITrigger_esc.eventClick += delegate(UIComponent component, UIMouseEventParameter eventParam) { MainUIOff(); }; } /*if (MainUITrigger_infopanel != null && MainUITrigger_paneltime != null) * { * MainUITrigger_infopanel.eventClick += delegate (UIComponent component, UIMouseEventParameter eventParam) * { * MainUIOff(); * }; * } * if (MainUITrigger_bottombars != null && MainUITrigger_paneltime != null) * { * MainUITrigger_bottombars.eventClick += delegate (UIComponent component, UIMouseEventParameter eventParam) * { * MainUIOff(); * }; * }*/ }
public override void Awake() { base.Awake(); Debug.Log("Begin UINetworkSkinsPanel.Awake"); LoadSprites(); this.backgroundSprite = "MenuPanel2"; this.width = Width + 2 * Padding; //this.padding = new RectOffset(PADDING, 0, PADDING, 0); _titleBar = this.AddUIComponent <UIDragHandle>(); _titleBar.name = "TitlePanel"; _titleBar.width = this.width; _titleBar.height = TabHeight + PaddingTop; _titleBar.target = this; _titleBar.relativePosition = new Vector3(0, 0); // display a drag cursor sprite in the top right corner of the panel var dragSprite = _titleBar.AddUIComponent <UISprite>(); dragSprite.atlas = SpriteUtilities.GetAtlas(Atlas); dragSprite.spriteName = "DragCursor"; dragSprite.relativePosition = new Vector3(Width - 20, PaddingTop + 1); dragSprite.MakePixelPerfect(); _tabstrip = _titleBar.AddUIComponent <UITabstrip>(); _tabstrip.relativePosition = new Vector3(Padding, PaddingTop, 0); _tabstrip.width = Width; _tabstrip.height = TabHeight; _tabstrip.tabPages = this.AddUIComponent <UITabContainer>(); _tabstrip.tabPages.width = this.width; _tabstrip.tabPages.height = PageHeight; _tabstrip.tabPages.relativePosition = new Vector3(0, _titleBar.height); _tabstrip.tabPages.padding = new RectOffset(PagesPadding, PagesPadding, PagesPadding, PagesPadding); _tabstrip.padding.right = 0; // Add 4 tabs and 4 pages var keyMappingTabstrip = GameObject.Find("EconomyTabstrip").GetComponent <UITabstrip>(); var buttonTemplate = keyMappingTabstrip.GetComponentInChildren <UIButton>(); _netTypePages = new UIPanel[NetUtil.NET_TYPE_NAMES.Length]; for (var i = 0; i < NetUtil.NET_TYPE_NAMES.Length; i++) { var tab = _tabstrip.AddTab(NetUtil.NET_TYPE_NAMES[i], buttonTemplate, true); tab.textPadding.top = 8; tab.textPadding.bottom = 8; tab.textPadding.left = 10; tab.textPadding.right = 10; tab.autoSize = true; tab.textScale = .9f; tab.playAudioEvents = buttonTemplate.playAudioEvents; tab.pressedTextColor = new Color32(255, 255, 255, 255); tab.focusedTextColor = new Color32(255, 255, 255, 255); tab.focusedColor = new Color32(205, 205, 205, 255); tab.disabledTextColor = buttonTemplate.disabledTextColor; var page = _tabstrip.tabPages.components.Last() as UIPanel; page.autoLayoutDirection = LayoutDirection.Vertical; page.autoLayoutPadding = new RectOffset(0, 0, 0, Padding); page.autoLayout = true; page.isVisible = false; // TODO add scrolling + autofitting _netTypePages[i] = page; } this.FitChildren(); _netToolWrapper = NetUtil.GenerateNetToolWrapper(); if (_netToolWrapper == null) { throw new Exception("NetworkSkins Error: NetToolWrapper is null!"); } // Add some example options GetPage(NetType.Ground).AddUIComponent <UILightOption>(); //GetPage(NetType.Ground).AddUIComponent<UILightDistanceOption>(); GetPage(NetType.Ground).AddUIComponent <UITreeOption>().LanePosition = LanePosition.Left; //GetPage(NetType.Ground).AddUIComponent<UITreeDistanceOption>().LanePosition = LanePosition.Left; GetPage(NetType.Ground).AddUIComponent <UITreeOption>().LanePosition = LanePosition.Middle; //GetPage(NetType.Ground).AddUIComponent<UITreeDistanceOption>().LanePosition = LanePosition.Middle; GetPage(NetType.Ground).AddUIComponent <UITreeOption>().LanePosition = LanePosition.Right; //GetPage(NetType.Ground).AddUIComponent<UITreeDistanceOption>().LanePosition = LanePosition.Right; GetPage(NetType.Elevated).AddUIComponent <UILightOption>(); //GetPage(NetType.Elevated).AddUIComponent<UILightDistanceOption>(); GetPage(NetType.Elevated).AddUIComponent <UIPillarOption>().PillarType = PillarType.BridgePillar; //GetPage(NetType.ELEVATED).AddUIComponent<UIPillarOption>().PillarType = PillarType.MIDDLE_PILLAR; GetPage(NetType.Bridge).AddUIComponent <UILightOption>(); //GetPage(NetType.Bridge).AddUIComponent<UILightDistanceOption>(); GetPage(NetType.Bridge).AddUIComponent <UIPillarOption>().PillarType = PillarType.BridgePillar; //GetPage(NetType.BRIDGE).AddUIComponent<UIPillarOption>().PillarType = PillarType.MIDDLE_PILLAR; //GetPage(NetType.BRIDGE).AddUIComponent<UIBridgeTypeOption>(); _tabstrip.startSelectedIndex = (int)NetType.Ground; Debug.Log("End UINetworkSkinsPanel.Awake"); }
public override void OnLevelLoaded(LoadMode mode) { if (ResolveOverlapsTool.instance == null) { ToolController toolController = GameObject.FindObjectOfType <ToolController>(); ResolveOverlapsTool.instance = toolController.gameObject.AddComponent <ResolveOverlapsTool>(); ResolveOverlapsTool.instance.enabled = false; } // Load Sprites LoadSprites(); // Initiate UI // 1.1 - modular? UIPanel modsPanel = (UIPanel)UIView.Find("ElektrixModsPanel"); int toggleClicks = 0; if (modsPanel == null) { UIComponent TSBar = UIView.Find("TSBar"); UIPanel elektrixModsBackground = TSBar.AddUIComponent <UIPanel>(); elektrixModsBackground.name = "ElektrixMB"; elektrixModsBackground.absolutePosition = new Vector2(config.PanelX, config.PanelY); elektrixModsBackground.width = 60f; elektrixModsBackground.height = 60f; elektrixModsBackground.zOrder = 1; UIButton doneButton = elektrixModsBackground.AddUIComponent <UIButton>(); doneButton.normalBgSprite = "GenericPanel"; doneButton.width = 100f; doneButton.height = 50f; doneButton.relativePosition = new Vector2(70f, 5f); doneButton.text = "Done"; doneButton.hoveredTextColor = new Color32(0, 255, 255, 1); doneButton.Hide(); doneButton.zOrder = 99; UIDragHandle handle = elektrixModsBackground.AddUIComponent <UIDragHandle>(); handle.name = "ElektrixDragHandle"; handle.relativePosition = Vector2.zero; handle.width = elektrixModsBackground.width - 5; handle.height = elektrixModsBackground.height - 5; handle.zOrder = 0; handle.target = elektrixModsBackground; handle.Start(); handle.enabled = false; elektrixModsBackground.zOrder = 9; handle.zOrder = 10; elektrixModsBackground.eventDoubleClick += (component, ms) => { handle.zOrder = 13; doneButton.Show(); handle.enabled = true; }; doneButton.eventClick += (component, ms) => { doneButton.Hide(); handle.zOrder = 10; handle.enabled = false; config.PanelX = (int)elektrixModsBackground.absolutePosition.x; config.PanelY = (int)elektrixModsBackground.absolutePosition.y; Configuration <ElektrixModsConfiguration> .Save(); }; if (m_atlasLoaded) { elektrixModsBackground.atlas = SpriteUtilities.GetAtlas(m_atlasName); elektrixModsBackground.backgroundSprite = "Blank"; } else { elektrixModsBackground.backgroundSprite = "GenericPanelLight"; } elektrixModsBackground.color = new Color32(96, 96, 96, 255); UIButton elektrixModsToggle = elektrixModsBackground.AddUIComponent <UIButton>(); elektrixModsToggle.disabledTextColor = new Color32(128, 128, 128, 255); ElektrixUI.SetupButtonStateSprites(ref elektrixModsToggle, "ToolbarIconGroup1"); elektrixModsToggle.relativePosition = new Vector3(5f, 0f); elektrixModsToggle.size = new Vector2(45f, 50f); elektrixModsToggle.name = "ElektrixModsButton"; elektrixModsToggle.zOrder = 11; if (m_atlasLoaded) { UISprite internalSprite = elektrixModsToggle.AddUIComponent <UISprite>(); internalSprite.atlas = SpriteUtilities.GetAtlas(m_atlasName); internalSprite.spriteName = "Elektrix"; internalSprite.relativePosition = new Vector3(-3, 0); internalSprite.width = internalSprite.height = 50f; } else { elektrixModsToggle.text = "E"; } elektrixModsToggle.textScale = 1.3f; elektrixModsToggle.textVerticalAlignment = UIVerticalAlignment.Middle; elektrixModsToggle.textHorizontalAlignment = UIHorizontalAlignment.Center; modsPanel = elektrixModsBackground.AddUIComponent <UIPanel>(); modsPanel.backgroundSprite = "GenericPanelLight"; modsPanel.color = new Color32(96, 96, 96, 255); modsPanel.name = "ElektrixModsPanel"; modsPanel.width = 0; modsPanel.relativePosition = new Vector3(0, -modsPanel.height - 7); modsPanel.Hide(); UILabel panelLabel = modsPanel.AddUIComponent <UILabel>(); panelLabel.text = "Elektrix's Mods"; panelLabel.relativePosition = new Vector3(12f, 12f); elektrixModsToggle.eventClicked += (component, click) => { toggleClicks++; if (toggleClicks == 1) { elektrixModsToggle.Focus(); modsPanel.Show(); } else { elektrixModsToggle.Unfocus(); toggleClicks = 0; modsPanel.Hide(); } }; } modsPanel = (UIPanel)UIView.Find("ElektrixModsPanel"); UIPanel backgroundPanel = modsPanel.AddUIComponent <UIPanel>(); backgroundPanel.backgroundSprite = "GenericPanelLight"; backgroundPanel.name = "E3"; backgroundPanel.height = 50f; backgroundPanel.width = 135f; backgroundPanel.relativePosition = new Vector3(10f, 40f + 70f); UIButton resolveOverlapsTool = backgroundPanel.AddUIComponent <UIButton>(); int buttonClicks = 0; ElektrixUI.SetupButtonStateSprites(ref resolveOverlapsTool, "OptionBase", true); resolveOverlapsTool.size = new Vector2(45f, 45f); resolveOverlapsTool.relativePosition = new Vector3(5f, 2.5f); resolveOverlapsTool.name = "E3A"; if (m_atlasLoaded) { UISprite internalSprite = resolveOverlapsTool.AddUIComponent <UISprite>(); internalSprite.atlas = SpriteUtilities.GetAtlas(m_atlasName); internalSprite.spriteName = "ResolveOverlaps"; internalSprite.relativePosition = Vector3.zero; internalSprite.width = internalSprite.height = 50f; } else { resolveOverlapsTool.text = "R"; } resolveOverlapsTool.textScale = 1.3f; UIButton addNodeTool = backgroundPanel.AddUIComponent <UIButton>(); int button2Clicks = 0; ElektrixUI.SetupButtonStateSprites(ref addNodeTool, "OptionBase", true); addNodeTool.size = new Vector2(45f, 45f); addNodeTool.relativePosition = new Vector3(55f, 2.5f); addNodeTool.name = "E3B"; if (m_atlasLoaded) { UISprite internalSprite2 = addNodeTool.AddUIComponent <UISprite>(); internalSprite2.atlas = SpriteUtilities.GetAtlas(m_atlasName); internalSprite2.spriteName = "AddNode"; internalSprite2.relativePosition = Vector3.zero; internalSprite2.width = internalSprite2.height = 50f; } else { resolveOverlapsTool.text = "A"; } resolveOverlapsTool.textScale = 1.3f; // Final overrides //UIPanel modsPanel = (UIPanel) UIView.Find("ElektrixModsPanel"); IList <UIComponent> panels = modsPanel.components; float longestPanelWidth = 0; for (int i = 0; i < panels.Count; i++) { if (!(panels[i] is UIPanel)) { continue; } panels[i].relativePosition = new Vector3(panels[i].relativePosition.x, 35 + (60 * (i - 1))); if (panels[i].width > longestPanelWidth) { longestPanelWidth = panels[i].width; } } modsPanel.height = 40f + (modsPanel.childCount - 1) * 60f; modsPanel.width = 20f + longestPanelWidth; modsPanel.relativePosition = new Vector3(0, -modsPanel.height - 7); // Events resolveOverlapsTool.eventClicked += (component, click) => { if (!ResolveOverlapsTool.instance.enabled) { buttonClicks = 0; } buttonClicks++; if (buttonClicks == 1) { resolveOverlapsTool.Focus(); ResolveOverlapsTool.instance.enabled = true; ResolveOverlapsTool.instance.mode = 0; } else { resolveOverlapsTool.Unfocus(); buttonClicks = 0; ResolveOverlapsTool.instance.enabled = false; ResolveOverlapsTool.instance.mode = 0; ToolsModifierControl.SetTool <DefaultTool>(); } }; addNodeTool.eventClicked += (component, click) => { if (!ResolveOverlapsTool.instance.enabled) { button2Clicks = 0; } button2Clicks++; if (button2Clicks == 1) { addNodeTool.Focus(); ResolveOverlapsTool.instance.enabled = true; ResolveOverlapsTool.instance.mode = 1; } else { addNodeTool.Unfocus(); button2Clicks = 0; ResolveOverlapsTool.instance.enabled = false; ResolveOverlapsTool.instance.mode = 0; ToolsModifierControl.SetTool <DefaultTool>(); } }; }