From a783265bc8f5d9ffe803e19d4b53b9a59420c4b8 Mon Sep 17 00:00:00 2001 From: Valentin Lampriere Date: Fri, 14 Jan 2022 01:33:36 +0100 Subject: [PATCH] Display mod name for modded items (+MCM support) --- eid_api.lua | 12 ++++++++---- eid_config.lua | 4 ++++ main.lua | 16 +++++++++++++++- mod_config_menu.lua | 21 +++++++++++++++++++++ 4 files changed, 48 insertions(+), 5 deletions(-) diff --git a/eid_api.lua b/eid_api.lua index 606b2c65..758f37cf 100644 --- a/eid_api.lua +++ b/eid_api.lua @@ -49,6 +49,8 @@ EID.ItemTypeAnm2Names = { "familiar", -- 4 "trinket" -- 5 } +EID.MODS = { } + --------------------------------------------------------------------------- -------------------------Handle API Functions ----------------------------- local nullVector = Vector(0,0) @@ -61,28 +63,28 @@ local dynamicSpriteCache = {} -- used to store sprite objects of collectible ico function EID:addCollectible(id, description, itemName, language) itemName = itemName or nil language = language or "en_us" - EID.descriptions[language].custom["5.100." .. id] = {id, itemName, description} + EID.descriptions[language].custom["5.100." .. id] = {id, itemName, description, EID._currentMod} end -- Adds a description for a trinket. Optional parameters: itemName, language function EID:addTrinket(id, description, itemName, language) itemName = itemName or nil language = language or "en_us" - EID.descriptions[language].custom["5.350." .. id] = {id, itemName, description} + EID.descriptions[language].custom["5.350." .. id] = {id, itemName, description, EID._currentMod} end -- Adds a description for a card/rune. Optional parameters: itemName, language function EID:addCard(id, description, itemName, language) itemName = itemName or nil language = language or "en_us" - EID.descriptions[language].custom["5.300." .. id] = {id, itemName, description} + EID.descriptions[language].custom["5.300." .. id] = {id, itemName, description, EID._currentMod} end -- Adds a description for a pilleffect id. Optional parameters: itemName, language function EID:addPill(id, description, itemName, language) itemName = itemName or nil language = language or "en_us" - EID.descriptions[language].custom["5.70." .. id+1] = {id+1, itemName, description} + EID.descriptions[language].custom["5.70." .. id+1] = {id+1, itemName, description, EID._currentMod} end -- Adds a character specific description for the item "Birthright". Optional parameters: playerName, language @@ -320,6 +322,8 @@ function EID:getDescriptionObj(Type, Variant, SubType, entity) description.Transformation = EID:getTransformation(Type, Variant, SubType) + description.ModName = tableEntry and tableEntry[4] + for k,modifier in pairs(EID.DescModifiers) do if modifier.condition(description) then description = modifier.callback(description) diff --git a/eid_config.lua b/eid_config.lua index 5d6c3cd4..26e2b4d2 100644 --- a/eid_config.lua +++ b/eid_config.lua @@ -131,6 +131,9 @@ EID.UserConfig = { -- REPENTANCE ONLY!!! -- Default = true ["ShowQuality"] = true, + -- Display mod name for modded items + -- Default = true + ["ShowModName"] = true, -------TRANSFORMATIONS--------- @@ -359,6 +362,7 @@ EID.DefaultConfig = { ["DisplayTrinketInfo"] = true, ["ItemNameColor"] = "ColorEIDObjName", ["ShowQuality"] = true, + ["ShowModName"] = true, ["ShowObjectID"] = false, ["TransformationText"] = true, ["TransformationIcons"] = true, diff --git a/main.lua b/main.lua index 0a543715..0c477cf2 100644 --- a/main.lua +++ b/main.lua @@ -57,6 +57,14 @@ local hudBBSprite = Sprite() hudBBSprite:Load("gfx/eid_transform_icons.anm2", true) hudBBSprite:Play("boundingBox") +EID._currentMod = "" + +local OldRegisterMod = RegisterMod +RegisterMod = function (modName, apiVersion) + EID._currentMod = modName + return OldRegisterMod(modName, apiVersion) +end + ------- Load all modules and other stuff ------ --transformation infos @@ -367,6 +375,11 @@ function EID:printDescription(desc) local quality = tonumber(EID.itemConfig:GetCollectible(tonumber(desc.ObjSubType)).Quality) curName = curName.." - {{Quality"..quality.."}}" end + + if EID.Config["ShowModName"] and desc.ModName then + curName = curName .. " {{ColorWhite}}" .. desc.ModName + end + EID:renderString( curName, renderPos + (Vector(offsetX, -3) * EID.Scale), @@ -404,6 +417,7 @@ function EID:printDescription(desc) end end EID:printBulletPoints(desc.Description, renderPos) + end function EID:printBulletPoints(description, renderPos) @@ -1099,4 +1113,4 @@ end if enableDebug then require("eid_debugging") -end +end \ No newline at end of file diff --git a/mod_config_menu.lua b/mod_config_menu.lua index b58d436a..95a54a0b 100644 --- a/mod_config_menu.lua +++ b/mod_config_menu.lua @@ -1206,6 +1206,27 @@ if MCMLoaded then } ) end + -------Mod name for modded items--------- + MCM.AddSetting( + "EID", + "Visuals", + { + Type = ModConfigMenu.OptionType.BOOLEAN, + CurrentSetting = function() + return EID.Config["ShowModName"] + end, + Display = function() + local onOff = "False" + if EID.Config["ShowModName"] then + onOff = "True" + end + return "Display mod name: " .. onOff + end, + OnChange = function(currentBool) + EID.Config["ShowModName"] = currentBool + end + } + ) -------Object ID--------- MCM.AddSetting( "EID",