diff --git a/BTKUILib.cs b/BTKUILib.cs index 7341d2b..ac1be5d 100644 --- a/BTKUILib.cs +++ b/BTKUILib.cs @@ -13,7 +13,7 @@ internal static class BuildInfo public const string Name = "BTKUILib"; public const string Author = "BTK Development Team"; public const string Company = "BTK Development"; - public const string Version = "2.1.1"; + public const string Version = "2.1.2"; } internal class BTKUILib : MelonMod @@ -32,7 +32,7 @@ internal class BTKUILib : MelonMod private Thread _mainThread; private Page _mlPrefsPage; private MultiSelection _playerListButtonStyle; - private string[] _playerListOptions = { "Tab Bar", "Replace TTS", "Replace Events" }; + private string[] _playerListOptions = { "Tab Bar", "Right Bar", "Replace Events" }; public override void OnInitializeMelon() { diff --git a/CohtmlUI/BTKUI.css b/CohtmlUI/BTKUI.css index 1a6edcd..32d7169 100644 --- a/CohtmlUI/BTKUI.css +++ b/CohtmlUI/BTKUI.css @@ -1,4 +1,29 @@ @import "bootstrap-grid.min.css"; +#quickmenu-wrapper .btkUI-btn { + background-color: rgba(41, 41, 41, 0); + width: 150px; + height: 150px; + border-radius: 10px; + font-size: 36px; + text-align: center; + position: absolute; + left: 1280px; + top: 485px; +} +#quickmenu-wrapper .btkUI-btn:hover { + filter: brightness(75%); +} +#quickmenu-wrapper .btkUI-btn .icon { + background: url("mods/BTKUI/images/Multiuser.png"); + background-size: cover; + background-repeat: no-repeat; + height: 150px; + width: 150px; + position: absolute; + margin-bottom: 100px; + padding: 10px; + z-index: 0; +} #quickmenu-wrapper .quick-buttons-container { left: 13px; } diff --git a/CohtmlUI/BTKUI.less b/CohtmlUI/BTKUI.less index 337fa4e..5780c64 100644 --- a/CohtmlUI/BTKUI.less +++ b/CohtmlUI/BTKUI.less @@ -31,6 +31,35 @@ } #quickmenu-wrapper { + .btkUI-btn { + background-color: rgba(41, 41, 41, 0); + width: 150px; + height: 150px; + border-radius: 10px; + font-size: 36px; + text-align: center; + position: absolute; + left: 1280px; + top: 485px; + + &:hover { + filter: brightness(75%); + } + + .icon { + background: url("images/Multiuser.png"); + background-size: cover; + background-repeat: no-repeat; + + height: 150px; + width: 150px; + position: absolute; + margin-bottom: 100px; + padding: 10px; + z-index: 0; + } + } + .quick-buttons-container{ left: 13px; } diff --git a/CohtmlUI/mod.js b/CohtmlUI/mod.js index ca01c6b..08e50fa 100644 --- a/CohtmlUI/mod.js +++ b/CohtmlUI/mod.js @@ -81,6 +81,7 @@ cvr.menu.prototype.BTKUI = { btkBackFunc = this.btkBackFunction; btkRootPageTarget = ""; + menu.templates["btkUI-btn"] = {c: "btkUI-btn hide", s: [{c: "icon"}], x: "btkUI-pushPage", a:{"id" : "btkUI-UserMenuRightBar", "data-page": "btkUI-PlayerList"}}; menu.templates["btkUI-shared"] = {c: "btkUI-shared hide", s:[ {c: "container btk-popup-container hide", a: {"id": "btkUI-PopupConfirm"}, s:[ {c: "row", s: [ @@ -231,6 +232,7 @@ cvr.menu.prototype.BTKUI = { menu.templates["btkUITab"] = {c: "col-md-2 tab", s:[{c: "tab-content", a:{"id":"btkUI-Tab-[TabName]-Image"}}], a:{"id":"btkUI-Tab-[TabName]", "tabTarget": "btkUI-[TabName]-[PageName]"}, x: "btkUI-TabChange"}; menu.templates["btkPlayerListEntry"] = {c:"col-3", s:[{c:"button-fullImage", x:"btkUI-SelectPlayer", s:[{c:"text", h:"[player-name]"}], a:{"id": "btkUI-PlayerButton-[player-id]-Icon","data-id": "[player-id]", "data-name": "[player-name]", "data-tooltip": "Open up the player options for [player-name]"}}], a:{"id": "btkUI-PlayerButton-[player-id]"}}; + menu.templates["core-quickmenu"].l.push("btkUI-btn") menu.templates["core-quickmenu"].l.push("btkUI-shared"); menu.templates["core-quickmenu"].l.push("btkUI-menu"); @@ -362,7 +364,9 @@ cvr.menu.prototype.BTKUI = { switch(plButtonStyle){ case "Replace TTS": - let ttsElement = document.getElementsByClassName("button-tts"); + case "Right Bar": + cvr("#btkUI-UserMenuRightBar").show(); + /*let ttsElement = document.getElementsByClassName("button-tts"); if(ttsElement.length === 0){ console.error("Couldn't find TTS element! Unable to replace!"); @@ -381,7 +385,7 @@ cvr.menu.prototype.BTKUI = { ttsElement.addEventListener("click", uiRefBTK.actions["btkUI-pushPage"]); ttsElement.setAttribute("data-x", "btkUI-pushPage"); ttsElement.setAttribute("data-page", "btkUI-PlayerList"); - ttsElement.setAttribute("data-tooltip", "Opens the UILib PlayerList"); + ttsElement.setAttribute("data-tooltip", "Opens the UILib PlayerList");*/ break; case "Replace Events": let eventButton = document.getElementsByClassName("events"); diff --git a/QuickMenuAPI.cs b/QuickMenuAPI.cs index 4e27c08..2b6750b 100644 --- a/QuickMenuAPI.cs +++ b/QuickMenuAPI.cs @@ -160,6 +160,12 @@ public static Page GetMLPrefsPageByIdentifier(string prefsIdentifier) /// Stream containing your image data public static void PrepareIcon(string modName, string iconName, Stream resourceStream) { + if (resourceStream == null) + { + BTKUILib.Log.Error($"Mod {modName} attempted to prepare {iconName} but the resource stream was null! Yell at the mod author to fix this!"); + return; + } + var directory = $"ChilloutVR_Data\\StreamingAssets\\Cohtml\\UIResources\\GameUI\\mods\\BTKUI\\images\\{modName}"; if (!Directory.Exists(directory))