Merge pull request #376 from Buurazu/master
Text position modifiers update
This commit is contained in:
4 files changed
+72
-45
No files matched your search
+17
-10
@@ -404,8 +404,8 @@ function EID:getAdjustedSubtype(Type, Variant, SubType)
|
|||||||
return 9999
|
return 9999
|
||||||
end
|
end
|
||||||
local pool = game:GetItemPool()
|
local pool = game:GetItemPool()
|
||||||
if REPENTANCE and EID.player.SubType == PlayerType.PLAYER_THESOUL_B then
|
if REPENTANCE and EID.player:GetPlayerType() == PlayerType.PLAYER_THESOUL_B then
|
||||||
SubType = pool:GetPillEffect(SubType, EID.player:GetOtherTwin()) + 1
|
SubType = pool:GetPillEffect(SubType, EID.player:GetOtherTwin() or EID.player) + 1
|
||||||
else SubType = pool:GetPillEffect(SubType, EID.player) + 1 end
|
else SubType = pool:GetPillEffect(SubType, EID.player) + 1 end
|
||||||
end
|
end
|
||||||
return SubType
|
return SubType
|
||||||
@@ -742,6 +742,19 @@ function EID:filterColorMarkup(text, baseKColor)
|
|||||||
return textPartsTable
|
return textPartsTable
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- A simple function to replace all markup {{ }} with placeholder strings, to use in fitTextToWidth
|
||||||
|
function EID:replaceAllMarkupWithSpaces(text)
|
||||||
|
for word in string.gmatch(text, "{{.-}}") do
|
||||||
|
local lookup = EID:getIcon(word)
|
||||||
|
if lookup[1] ~= "ERROR" then
|
||||||
|
text = string.gsub(text, word, EID:generatePlaceholderString(lookup[3]), 1)
|
||||||
|
else
|
||||||
|
text = string.gsub(text, word, "", 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return text
|
||||||
|
end
|
||||||
|
|
||||||
-- Fits a given string to a specific width
|
-- Fits a given string to a specific width
|
||||||
-- returns the string as a table of lines
|
-- returns the string as a table of lines
|
||||||
function EID:fitTextToWidth(str, textboxWidth, breakUtf8Chars)
|
function EID:fitTextToWidth(str, textboxWidth, breakUtf8Chars)
|
||||||
@@ -815,14 +828,8 @@ function EID:fitTextToWidth(str, textboxWidth, breakUtf8Chars)
|
|||||||
|
|
||||||
-- we can break after str[cursor]
|
-- we can break after str[cursor]
|
||||||
local word = sub(str, word_begin_index, cursor)
|
local word = sub(str, word_begin_index, cursor)
|
||||||
|
local wordFiltered = EID:replaceAllMarkupWithSpaces(word)
|
||||||
local colorFiltered = EID:filterColorMarkup(word, EID:getTextColor())
|
local wordLength = EID:getStrWidth(wordFiltered)
|
||||||
local filteredWord = {}
|
|
||||||
for _, filtered in ipairs(colorFiltered) do
|
|
||||||
table.insert(filteredWord, filtered[1])
|
|
||||||
end
|
|
||||||
local strFiltered, spriteTable = EID:filterIconMarkup(table.concat(filteredWord), 0, 0)
|
|
||||||
local wordLength = EID:getStrWidth(strFiltered)
|
|
||||||
|
|
||||||
if curLength + wordLength <= textboxWidth or curLength < 17 then
|
if curLength + wordLength <= textboxWidth or curLength < 17 then
|
||||||
table.insert(text, word)
|
table.insert(text, word)
|
||||||
|
|||||||
@@ -514,7 +514,7 @@ local moddedCrafting = false
|
|||||||
-- Only works if the new items are at Weight 1.0 in their item pools, but better than nothing
|
-- Only works if the new items are at Weight 1.0 in their item pools, but better than nothing
|
||||||
local function GameStartCrafting()
|
local function GameStartCrafting()
|
||||||
if EID.Config["BagOfCraftingModdedRecipes"] and not EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_TMTRAINER) and EID.itemConfig:GetCollectible(EID.XMLMaxItemID+1) ~= nil then
|
if EID.Config["BagOfCraftingModdedRecipes"] and not EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_TMTRAINER) and EID.itemConfig:GetCollectible(EID.XMLMaxItemID+1) ~= nil then
|
||||||
dofile("eid_xmldata")
|
dofile(EID.modPath .. "eid_xmldata.lua")
|
||||||
-- Items past max ID detected
|
-- Items past max ID detected
|
||||||
CraftingMaxItemID = EID.XMLMaxItemID -- XMLMaxItemID is never modified
|
CraftingMaxItemID = EID.XMLMaxItemID -- XMLMaxItemID is never modified
|
||||||
-- Add new item qualities
|
-- Add new item qualities
|
||||||
@@ -542,7 +542,7 @@ local function GameStartCrafting()
|
|||||||
sortNeeded = true
|
sortNeeded = true
|
||||||
elseif moddedCrafting then
|
elseif moddedCrafting then
|
||||||
-- we had modded items; they have since been disabled
|
-- we had modded items; they have since been disabled
|
||||||
dofile("eid_xmldata")
|
dofile(EID.modPath .. "eid_xmldata.lua")
|
||||||
moddedCrafting = false
|
moddedCrafting = false
|
||||||
sortNeeded = true
|
sortNeeded = true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -366,6 +366,7 @@ if REPENTANCE then
|
|||||||
|
|
||||||
-- Watch for a Void absorbing active items
|
-- Watch for a Void absorbing active items
|
||||||
-- (Note: Doesn't differentiate between different players if both players have Void...)
|
-- (Note: Doesn't differentiate between different players if both players have Void...)
|
||||||
|
-- (Note: Doesn't care about shop / choice items yet either)
|
||||||
function EID:CheckVoidAbsorbs(collectibleType)
|
function EID:CheckVoidAbsorbs(collectibleType)
|
||||||
local pedestals = Isaac.FindByType(5, 100, -1, true, false)
|
local pedestals = Isaac.FindByType(5, 100, -1, true, false)
|
||||||
for _, pedestal in ipairs(pedestals) do
|
for _, pedestal in ipairs(pedestals) do
|
||||||
@@ -509,8 +510,8 @@ function EID:printDescription(desc)
|
|||||||
end
|
end
|
||||||
--Display ItemType / Charge
|
--Display ItemType / Charge
|
||||||
local itemType = -1
|
local itemType = -1
|
||||||
if tonumber(desc.ObjSubType) ~= nil and desc.ObjType == 5 and desc.ObjVariant == 100 then
|
if desc.ObjSubType ~= nil and desc.ObjType == 5 and desc.ObjVariant == 100 then
|
||||||
itemType = EID.itemConfig:GetCollectible(tonumber(desc.ObjSubType)).Type or -1
|
itemType = EID.itemConfig:GetCollectible(desc.ObjSubType).Type or -1
|
||||||
end
|
end
|
||||||
if EID.Config["ShowItemType"] and (itemType == 3 or itemType == 4) then
|
if EID.Config["ShowItemType"] and (itemType == 3 or itemType == 4) then
|
||||||
local offsetY = 2
|
local offsetY = 2
|
||||||
@@ -806,8 +807,8 @@ end
|
|||||||
|
|
||||||
function EID:setPlayer()
|
function EID:setPlayer()
|
||||||
local p = Isaac.GetPlayer(0)
|
local p = Isaac.GetPlayer(0)
|
||||||
if REPENTANCE and p.SubType == PlayerType.PLAYER_THEFORGOTTEN_B then
|
if REPENTANCE and p:GetPlayerType() == PlayerType.PLAYER_THEFORGOTTEN_B then
|
||||||
EID.player = p:GetOtherTwin()
|
EID.player = p:GetOtherTwin() or p
|
||||||
else
|
else
|
||||||
EID.player = p
|
EID.player = p
|
||||||
end
|
end
|
||||||
@@ -928,6 +929,51 @@ local function checkStartOfRunWarnings()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Check our position modifiers based on HUD offset and character choice
|
||||||
|
local function checkPosModifiers()
|
||||||
|
-- HUD offset adjustment, done every frame so it looks nice while changing the option
|
||||||
|
if Options then
|
||||||
|
EID:addTextPosModifier("HudOffset", Vector(((Options.HUDOffset * 10) * 2) - 20, (Options.HUDOffset * 10) - 10))
|
||||||
|
else
|
||||||
|
EID:addTextPosModifier("HudOffset", Vector((EID.Config["HUDOffset"] * 2) - 20, EID.Config["HUDOffset"] - 10))
|
||||||
|
end
|
||||||
|
-- the other modifiers don't need to be ran as frequently
|
||||||
|
if EID.GameRenderCount % 30 ~= 0 then return end
|
||||||
|
-- Greed Mode small right adjustment
|
||||||
|
if game:IsGreedMode() then
|
||||||
|
EID:addTextPosModifier("Greed Mode Horizontal", Vector(8,0))
|
||||||
|
else
|
||||||
|
EID:removeTextPosModifier("Greed Mode Horizontal")
|
||||||
|
end
|
||||||
|
if not REPENTANCE then
|
||||||
|
-- AB+ Schoolbag adjustment
|
||||||
|
if EID.player:HasCollectible(CollectibleType.COLLECTIBLE_SCHOOLBAG) then
|
||||||
|
EID:addTextPosModifier("Schoolbag", Vector(0,30))
|
||||||
|
else
|
||||||
|
EID:removeTextPosModifier("Schoolbag")
|
||||||
|
end
|
||||||
|
else
|
||||||
|
-- Tainted Isaac and Tainted ??? unique HUD adjustment
|
||||||
|
if EID.player:GetPlayerType() == 21 or EID.player:GetPlayerType() == 25 then
|
||||||
|
EID:addTextPosModifier("Tainted HUD", Vector(0,30))
|
||||||
|
else
|
||||||
|
EID:removeTextPosModifier("Tainted HUD")
|
||||||
|
end
|
||||||
|
-- Jacob and Esau card/pill adjustment
|
||||||
|
if EID.player:GetPlayerType() == 19 then
|
||||||
|
EID:addTextPosModifier("J&E HUD", Vector(0,15))
|
||||||
|
else
|
||||||
|
EID:removeTextPosModifier("J&E HUD")
|
||||||
|
end
|
||||||
|
-- Magdalene Birthright third row of hearts adjustment
|
||||||
|
if EID.player:GetPlayerType() == 1 and EID.player:HasCollectible(619) then
|
||||||
|
EID:addTextPosModifier("18 Heart HUD", Vector(0,5))
|
||||||
|
else
|
||||||
|
EID:removeTextPosModifier("18 Heart HUD")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
---------------------------On Render Function------------------------------
|
---------------------------On Render Function------------------------------
|
||||||
@@ -963,29 +1009,9 @@ local function onRender(t)
|
|||||||
end
|
end
|
||||||
|
|
||||||
checkStartOfRunWarnings()
|
checkStartOfRunWarnings()
|
||||||
|
checkPosModifiers()
|
||||||
EID:renderMCMDummyDescription()
|
EID:renderMCMDummyDescription()
|
||||||
|
|
||||||
if EID.GameVersion == "ab+" then
|
|
||||||
if EID.player:HasCollectible(CollectibleType.COLLECTIBLE_SCHOOLBAG) then
|
|
||||||
EID:addTextPosModifier("Schoolbag", Vector(0,30))
|
|
||||||
else
|
|
||||||
EID:removeTextPosModifier("Schoolbag")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
-- Tainted Isaac and Tainted ???
|
|
||||||
if EID.player.SubType == 21 or EID.player.SubType == 25 then
|
|
||||||
EID:addTextPosModifier("Tained HUD", Vector(0,30))
|
|
||||||
else
|
|
||||||
EID:removeTextPosModifier("Tained HUD")
|
|
||||||
end
|
|
||||||
-- Magdalene Birthright
|
|
||||||
if EID.player.SubType == 1 and EID.player:HasCollectible(619) then
|
|
||||||
EID:addTextPosModifier("18 Heart HUD", Vector(0,5))
|
|
||||||
else
|
|
||||||
EID:removeTextPosModifier("18 Heart HUD")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if EID.isHidden then
|
if EID.isHidden then
|
||||||
return
|
return
|
||||||
elseif EID.Config["HideInBattle"] then
|
elseif EID.Config["HideInBattle"] then
|
||||||
@@ -1299,11 +1325,6 @@ if EID.MCMLoaded or REPENTANCE then
|
|||||||
|
|
||||||
EID:fixDefinedFont()
|
EID:fixDefinedFont()
|
||||||
EID:loadFont(EID.modPath .. "resources/font/eid_"..EID.Config["FontType"]..".fnt")
|
EID:loadFont(EID.modPath .. "resources/font/eid_"..EID.Config["FontType"]..".fnt")
|
||||||
if REPENTANCE then
|
|
||||||
EID:addTextPosModifier("HudOffset", Vector(((Options.HUDOffset * 10) * 2) - 20, (Options.HUDOffset * 10) - 10))
|
|
||||||
else
|
|
||||||
EID:addTextPosModifier("HudOffset", Vector((EID.Config["HUDOffset"] * 2) - 20, EID.Config["HUDOffset"] - 10))
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
+2
-3
@@ -76,15 +76,14 @@ end
|
|||||||
|
|
||||||
function EID:renderMCMDummyDescription()
|
function EID:renderMCMDummyDescription()
|
||||||
if MCMLoaded then
|
if MCMLoaded then
|
||||||
|
if not Options then
|
||||||
local hudOffset = ModConfigMenu.Config["General"].HudOffset
|
local hudOffset = ModConfigMenu.Config["General"].HudOffset
|
||||||
if hudOffset == nil and ScreenHelper then
|
if hudOffset == nil and ScreenHelper then
|
||||||
hudOffset = ScreenHelper.GetOffset()
|
hudOffset = ScreenHelper.GetOffset()
|
||||||
end
|
end
|
||||||
if REPENTANCE and Options then
|
|
||||||
hudOffset = (Options.HUDOffset * 10)
|
|
||||||
end
|
|
||||||
EID.Config["HUDOffset"] = hudOffset
|
EID.Config["HUDOffset"] = hudOffset
|
||||||
EID:addTextPosModifier("HudOffset", Vector((hudOffset * 2) - 20, hudOffset - 10))
|
EID:addTextPosModifier("HudOffset", Vector((hudOffset * 2) - 20, hudOffset - 10))
|
||||||
|
end
|
||||||
if MCM.IsVisible and EID.MCMCompat_isDisplayingEIDTab ~= "" then
|
if MCM.IsVisible and EID.MCMCompat_isDisplayingEIDTab ~= "" then
|
||||||
if EID.MCMCompat_isDisplayingEIDTab == "Mouse" and EID.Config["EnableMouseControls"] then
|
if EID.MCMCompat_isDisplayingEIDTab == "Mouse" and EID.Config["EnableMouseControls"] then
|
||||||
clearRenderDummyDesc()
|
clearRenderDummyDesc()
|
||||||
|
|||||||
Reference in new issue
Block a user