diff --git a/eid_config.lua b/eid_config.lua index 7b1f7eed..70e1ee23 100644 --- a/eid_config.lua +++ b/eid_config.lua @@ -57,6 +57,12 @@ EIDConfig={ -- Toggle Display of the Item Type and Maximum Charges as an icon -- Default = true ["ShowItemType"] = true, + -- Toggle Display of Collectible / Item descriptions + -- Default = true + ["DisplayItemInfo"] = true, + -- Toggle Display of Trinket descriptions + -- Default = true + ["DisplayTrinketInfo"] = true, -- Set the RGB color of the Itemname text -- Default = {0.8, 0.3, 0.8} ["ItemNameColor"] = {0.8, 0.3, 0.8}, diff --git a/main.lua b/main.lua index 0e0333e9..1d77c73a 100644 --- a/main.lua +++ b/main.lua @@ -314,6 +314,16 @@ end ---------------------------On Render Function------------------------------ local hideDescToggle= false +-- check if an entity is part of the describable entities +local function isEntityAllowed(entity) + local isAllowed = false + isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_COLLECTIBLE and EIDConfig["DisplayItemInfo"]) + isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_TRINKET and EIDConfig["DisplayTrinketInfo"]) + isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_TAROTCARD and EIDConfig["DisplayCardInfo"]) + isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_PILL and EIDConfig["DisplayPillInfo"]) + return entity.Type == EntityType.ENTITY_PICKUP and isAllowed and entity.SubType>0 +end + local function onRender(t) isDisplayingText= false local player = Isaac.GetPlayer(0) @@ -332,7 +342,7 @@ local function onRender(t) end if Game():GetRoom():GetType()==RoomType.ROOM_DICE and entity.Type==1000 and entity.Variant== 76 then closestDice= entity end - if isModEntityDesc or (entity.Type == EntityType.ENTITY_PICKUP and (entity.Variant == PickupVariant.PICKUP_COLLECTIBLE or entity.Variant == PickupVariant.PICKUP_TRINKET or entity.Variant == PickupVariant.PICKUP_TAROTCARD or entity.Variant == PickupVariant.PICKUP_PILL) and entity.SubType>0) then + if isModEntityDesc or isEntityAllowed(entity) then local diff = entity.Position:__sub(player.Position); if diff:Length() < dist then closest = entity; @@ -402,50 +412,46 @@ local function onRender(t) end --Handle Cards & Runes elseif closest.Variant == PickupVariant.PICKUP_TAROTCARD then - if EIDConfig["DisplayCardInfo"] then - if closest:ToPickup():IsShopItem() and not EIDConfig["DisplayCardInfoShop"] then renderQuestionMark() return end - if getModDescription(__eidCardDescriptions,closest.SubType) then - printTrinketDescription({closest.SubType,getModDescription(__eidCardDescriptions,closest.SubType)},"card") - elseif closest.SubType <= 54 then - printTrinketDescription(cardDescriptions[closest.SubType],"card") - CardSprite:Play(tostring(closest.SubType)) - CardSprite.Scale = Vector(EIDConfig["Scale"],EIDConfig["Scale"]) - CardSprite:Update() - local offsetX = 0 - if EIDConfig["ShowItemName"] then offsetX = 10 end - CardSprite:Render(Vector(EIDConfig["XPosition"]-9*EIDConfig["Scale"],posY+(12+offsetX)*EIDConfig["Scale"]), Vector(0,0), Vector(0,0)) - else - printTrinketDescription({closest.SubType,itemConfig:GetCard(closest.SubType).Description}) - end + if closest:ToPickup():IsShopItem() and not EIDConfig["DisplayCardInfoShop"] then renderQuestionMark() return end + if getModDescription(__eidCardDescriptions,closest.SubType) then + printTrinketDescription({closest.SubType,getModDescription(__eidCardDescriptions,closest.SubType)},"card") + elseif closest.SubType <= 54 then + printTrinketDescription(cardDescriptions[closest.SubType],"card") + CardSprite:Play(tostring(closest.SubType)) + CardSprite.Scale = Vector(EIDConfig["Scale"],EIDConfig["Scale"]) + CardSprite:Update() + local offsetX = 0 + if EIDConfig["ShowItemName"] then offsetX = 10 end + CardSprite:Render(Vector(EIDConfig["XPosition"]-9*EIDConfig["Scale"],posY+(12+offsetX)*EIDConfig["Scale"]), Vector(0,0), Vector(0,0)) + else + printTrinketDescription({closest.SubType,itemConfig:GetCard(closest.SubType).Description}) end --Handle Pills elseif closest.Variant == PickupVariant.PICKUP_PILL then - if EIDConfig["DisplayPillInfo"] then - if closest:ToPickup():IsShopItem() and not EIDConfig["DisplayPillInfoShop"] then renderQuestionMark() return end - - local pillColor = closest.SubType - local pool = Game():GetItemPool() - local pillEffect = pool:GetPillEffect(pillColor) - local identified = pool:IsPillIdentified(pillColor) - if (identified or EIDConfig["ShowUnidentifiedPillDescriptions"]) then - if getModDescription(__eidPillDescriptions,pillEffect) then - printTrinketDescription({pillEffect,getModDescription(__eidPillDescriptions,pillEffect)},"pill") - elseif pillEffect < 47 then - printTrinketDescription(pillDescriptions[pillEffect+1],"pill") - else - Isaac.RenderScaledText(EIDConfig["ErrorMessage"], EIDConfig["XPosition"], posY,EIDConfig["Scale"],EIDConfig["Scale"], EIDConfig["ErrorColor"][1] , EIDConfig["ErrorColor"][2], EIDConfig["ErrorColor"][3], EIDConfig["Transparency"]) - end - else - Isaac.RenderScaledText(unidentifiedPillMessage, EIDConfig["XPosition"], posY,EIDConfig["Scale"],EIDConfig["Scale"], EIDConfig["ErrorColor"][1] , EIDConfig["ErrorColor"][2], EIDConfig["ErrorColor"][3], EIDConfig["Transparency"]) + if closest:ToPickup():IsShopItem() and not EIDConfig["DisplayPillInfoShop"] then renderQuestionMark() return end + + local pillColor = closest.SubType + local pool = Game():GetItemPool() + local pillEffect = pool:GetPillEffect(pillColor) + local identified = pool:IsPillIdentified(pillColor) + if (identified or EIDConfig["ShowUnidentifiedPillDescriptions"]) then + if getModDescription(__eidPillDescriptions,pillEffect) then + printTrinketDescription({pillEffect,getModDescription(__eidPillDescriptions,pillEffect)},"pill") + elseif pillEffect < 47 then + printTrinketDescription(pillDescriptions[pillEffect+1],"pill") + else + Isaac.RenderScaledText(EIDConfig["ErrorMessage"], EIDConfig["XPosition"], posY,EIDConfig["Scale"],EIDConfig["Scale"], EIDConfig["ErrorColor"][1] , EIDConfig["ErrorColor"][2], EIDConfig["ErrorColor"][3], EIDConfig["Transparency"]) end - local pillsprite = closest:GetSprite() - pillsprite.Scale = Vector(EIDConfig["Scale"]*0.75,EIDConfig["Scale"]*0.75) - pillsprite:Update() - local offsetX = 0 - if EIDConfig["ShowItemName"] and (identified or EIDConfig["ShowUnidentifiedPillDescriptions"]) then offsetX = 10 end - pillsprite:Render(Vector(EIDConfig["XPosition"]+2*EIDConfig["Scale"],posY+(11+offsetX)*EIDConfig["Scale"]), Vector(0,0), Vector(0,0)) - pillsprite.Scale = Vector(1,1) + else + Isaac.RenderScaledText(unidentifiedPillMessage, EIDConfig["XPosition"], posY,EIDConfig["Scale"],EIDConfig["Scale"], EIDConfig["ErrorColor"][1] , EIDConfig["ErrorColor"][2], EIDConfig["ErrorColor"][3], EIDConfig["Transparency"]) end + local pillsprite = closest:GetSprite() + pillsprite.Scale = Vector(EIDConfig["Scale"]*0.75,EIDConfig["Scale"]*0.75) + pillsprite:Update() + local offsetX = 0 + if EIDConfig["ShowItemName"] and (identified or EIDConfig["ShowUnidentifiedPillDescriptions"]) then offsetX = 10 end + pillsprite:Render(Vector(EIDConfig["XPosition"]+2*EIDConfig["Scale"],posY+(11+offsetX)*EIDConfig["Scale"]), Vector(0,0), Vector(0,0)) + pillsprite.Scale = Vector(1,1) end if player:HasCollectible(CollectibleType.COLLECTIBLE_SCHOOLBAG)then posY =EIDConfig["YPosition"] +30 end end diff --git a/metadata.xml b/metadata.xml new file mode 100644 index 00000000..e39ff62b --- /dev/null +++ b/metadata.xml @@ -0,0 +1,72 @@ + + + External item descriptions + external item descriptions + 836319872 + This mod displays detailed information about all items, trinkets, cards, runes and pills DIRECTLY onto your screen. Say goodbye to your browsertab with platinumgod open ;) + +[h1][b]------------------FEATURES------------------[/b][/h1] +- Displays information for ALL 552 Collectibles, 128 Trinkets, cards, Runes and Pills in the game, including afterbirth+ and all boosterpacks (#1 - #5) +- Displays if an item is needed for a transformation +- Displays the Name and Type (Active / Familiar) of any collectible +- Displays how many charges an item has +- Display one of 4 different Indicators around the inspected item +- [b]Press F2 to hide/show the descriptions![/b] +- Displays what the next payout of the Sacrifice room can be +- Displays a description of the effect of dice-rooms +- Fully customize-able including features like: +---- Custom language support +---- Disabling the descriptions, when Curse of the blind is active ([b]This is enabled on default[/b]) +---- Customizable position, width and scale of the Textbox +---- Modded item support! +---- Custom item descriptions support +---- Custom entity descriptions +---- and much more + +-- Including the following additional languages: [b]FRENCH[/b](by Nicolas Delvaux), [b]SPANISH[/b] (by Arroyo Purroy), [b]PORTUGUESE[/b] (by Marcelino Cruz) and [b]POLISH[/b] (WIP, by Rickyy) +Change the config.lua file to switch languages. + +-- Click here for the [b]CHINESE[/b] version : [url=https://steamcommunity.com/sharedfiles/filedetails/?id=1290363695]EID Chinese Edition[/url] -- + +-- Click here for an alternative [b]CHINESE[/b] version : [url=https://steamcommunity.com/sharedfiles/filedetails/?id=848295251]中文道具图鉴 Eid Chinese[/url] -- + +-- Click here for the [b]ITALIAN[/b] version : [url=https://steamcommunity.com/sharedfiles/filedetails/?id=931392691]External Item Descriptions Italian[/url] -- + +-- Click here for the [b]RUSSIAN[/b] version : [url=https://steamcommunity.com/sharedfiles/filedetails/?id=1552851879]External Item Description (Russian Language)[/url] -- + + +[h1][b]For Afterbirth / Rebirth Version click here: [/b][/h1] +https://moddingofisaac.com/mod/1079/external-item-descriptions + + +[h1]You can use [url=https://steamcommunity.com/sharedfiles/filedetails/?id=1603631350]&quot;Mod config Menu&quot;[/url] to customize this mod![/h1] + +[h1][b]For further Configuration:[/b][/h1] +[b]Windows[/b] +1. Go to ..\Documents\My Games\Binding of Isaac Afterbirth+ Mods\External item descriptions\ +2. Open "config.lua" with any texteditor +3. Edit the Config +4. Save the file +5. Play the game + +[b]Linux / Ubuntu [/b] +Same as aboth but the path is: /home/%YourUsernameHere%/.steam/steam/steamapps/workshop/content/250900/836319872 + +[h1][b]Special Thanks to[/b][/h1] +- PLATINUMGOD.CO.UK for providing useful item descriptions +- r0_0t for the functionality to read pill effects and for implementing the modded item-Support +- Nicolas Delvaux for creating an awesome french language pack +- Lidia Arroyo Purroy for creating the amazing spanish spanish language Pack +- Rickyy for creating the incredible polish language pack +- Marcelino Cruz for creating the portuguese language pack +- [url=https://steamcommunity.com/id/whytefang/]adc[/url] for creating a awesome new Languagepack and providing ideas for new functionalities + 1.63 + Public + + + + + + + + diff --git a/mod_config_menu.lua b/mod_config_menu.lua index abb3d4c0..1b148603 100644 --- a/mod_config_menu.lua +++ b/mod_config_menu.lua @@ -100,6 +100,42 @@ if ModConfigMenu then }) + ------------Collectibles-------------- + + ModConfigMenu.AddSetting("EID","General", { + Type = ModConfigMenuOptionType.BOOLEAN, + CurrentSetting = function() + return EIDConfig["DisplayItemInfo"] + end, + Display = function() + local onOff = "False" + if EIDConfig["DisplayItemInfo"] then + onOff = "True" + end + return "Collectible Infos: " .. onOff + end, + OnChange = function(currentBool) + EIDConfig["DisplayItemInfo"] = currentBool + end, + }) + ------------Trinkets-------------- + + ModConfigMenu.AddSetting("EID","General", { + Type = ModConfigMenuOptionType.BOOLEAN, + CurrentSetting = function() + return EIDConfig["DisplayTrinketInfo"] + end, + Display = function() + local onOff = "False" + if EIDConfig["DisplayTrinketInfo"] then + onOff = "True" + end + return "Trinket Infos: " .. onOff + end, + OnChange = function(currentBool) + EIDConfig["DisplayTrinketInfo"] = currentBool + end, + }) ------------CARDS-------------- ModConfigMenu.AddSetting("EID","General", {