From 0b019af042c4fa1a40311b9e3b7de13676b2563b Mon Sep 17 00:00:00 2001 From: frto027 <602706150@qq.com> Date: Wed, 19 Jan 2022 23:49:32 +0800 Subject: [PATCH] add hotkey for scale --- eid_config.lua | 4 +++ main.lua | 65 +++++++++++++++++++++++++++++++++++++++++++++ mod_config_menu.lua | 5 ++++ 3 files changed, 74 insertions(+) diff --git a/eid_config.lua b/eid_config.lua index 72ab3b4f..ace11b45 100644 --- a/eid_config.lua +++ b/eid_config.lua @@ -30,6 +30,9 @@ EID.UserConfig = { -- Change the size of the info boxes. Range: [0,...,1] -- Default = 1 ["Scale"] = 1, + -- Press or hold the key to change scale. + -- Default = Keyboard.KEY_F5 + ["ScaleKey"] = Keyboard.KEY_F5, -- Set the background transparency. Range: [0,...,1] -- Default = 0.75 ["Transparency"] = 0.75, @@ -344,6 +347,7 @@ EID.DefaultConfig = { ["FontType"] = "default", ["TextboxWidth"] = 115, ["Scale"] = 1, + ["ScaleKey"] = Keyboard.KEY_F5, ["Transparency"] = 0.75, ["HUDOffset"] = 10, ["XPosition"] = 60, diff --git a/main.lua b/main.lua index 2cf00409..8ae78893 100644 --- a/main.lua +++ b/main.lua @@ -371,6 +371,69 @@ if REPENTANCE then EID:AddCallback(ModCallbacks.MC_PRE_USE_ITEM, EID.CheckVoidAbsorbs, CollectibleType.COLLECTIBLE_VOID) end +--------------------------------------------------------------------------- +--------------------------Handle Scale Shortcut---------------------------- + +local scaleMin = 0.1 +local scaleMax = 2 +local scaleSpeed = 0.01 -- scale size per frame +local scaleToBigger = true +local scaleHoldFrame = 0 +local function handleScaleKey() + local ScaleKey = EID.Config["ScaleKey"] + + -- press and hold ScaleKey + if Input.IsButtonPressed(ScaleKey, 0) then + if scaleHoldFrame > 60 then + local scaleConfigName = (EID.Config["DisplayMode"] == "local" and "LocalScale" or "Scale") + if scaleToBigger then + local newScale = EID.Scale + scaleSpeed + + EID.Scale = newScale + EID.Config[scaleConfigName] = newScale + + if newScale > scaleMax then + scaleToBigger = false + end + else + local newScale = EID.Scale - scaleSpeed + + EID.Scale = newScale + EID.Config[scaleConfigName] = newScale + + if newScale < scaleMin then + scaleToBigger = true + end + end + else + scaleHoldFrame = scaleHoldFrame + 1 + end + end + -- press ScaleKey + if Input.IsButtonTriggered(ScaleKey, 0) then + scaleHoldFrame = 0 + local scale + local scaleConfigName = (EID.Config["DisplayMode"] == "local" and "LocalScale" or "Scale") + + scale = EID.Scale + + -- switch between 1, 1.5 and 0.5 + + if math.abs(scale - 1) < 0.01 then + scale = 1.5 + elseif math.abs(scale - 1.5) < 0.01 then + scale = 0.5 + elseif math.abs(scale - 0.5) < 0.01 then + scale = 1 + else + scale = 1 + end + + EID.Config[scaleConfigName] = scale + EID.Scale = scale + end +end + --------------------------------------------------------------------------- ---------------------------Printing Functions------------------------------ @@ -860,6 +923,8 @@ local function onRender(t) if Input.IsButtonTriggered(EID.Config["HideKey"], 0) or Input.IsButtonTriggered(EID.Config["HideButton"], EID.player.ControllerIndex) then EID.isHidden = not EID.isHidden end + + handleScaleKey() if ModConfigMenu and ModConfigMenu.IsVisible and ModConfigMenu.Config["Mod Config Menu"].HideHudInMenu and EID.MCMCompat_isDisplayingEIDTab ~= "Visuals" and EID.MCMCompat_isDisplayingEIDTab ~= "Crafting" then --if the mod config menu exists, is opened and Hide Hud is enabled, and ModConfigMenu isn't currently in the "Visuals" or "Crafting" tab of EID return diff --git a/mod_config_menu.lua b/mod_config_menu.lua index 695fdd56..5ff5330d 100644 --- a/mod_config_menu.lua +++ b/mod_config_menu.lua @@ -1081,6 +1081,11 @@ if MCMLoaded then Info = {"Change text size. CAN BE HARD TO READ IN SOME SETTINGS!"} } ) + -- SCALE Hotkey + EID:AddHotkeySetting("Visuals", + "ScaleKey", "Toggle Scale (Keyboard)", + "Press or hold this key to toggle the scale.", false) + -- Transparency MCM.AddSetting( "EID",