Improved code readability, descObj variable names and added a function to append to descriptions

This commit is contained in:
Wofsauge committed 2021-06-04 23:29:27 +02:00
1 parent bd641cb1cc
commit fb5ef9080a
4 files changed
+76 -63

No files matched your search

+27 -17
View File
@@ -259,7 +259,7 @@ end
-- returns the current text position
function EID:getTextPosition()
local posVector = Vector(EID.UsedPosition.X,EID.UsedPosition.Y)
local posVector = Vector(EID.UsedPosition.X, EID.UsedPosition.Y)
for a,modifier in pairs(EID.PositionModifiers) do
posVector = posVector + modifier
end
@@ -289,20 +289,25 @@ function EID:getLastDescribedEntity()
return EID.lastDescriptionEntity
end
-- Appends a given string to the description of a given Description object
function EID:appendToDescription(descObj, appendString)
descObj.Description = descObj.Description..appendString
end
-- returns the description object of the specified entity
-- falls back to english if the objID isnt available
function EID:getDescriptionObj(Type, Variant, SubType)
local description = {}
description.ItemType = Type
description.ItemVariant = Variant
description.ID = SubType
description.fullItemString = Type.."."..Variant.."."..description.ID
description.Name = EID:getObjectName(Type, Variant, description.ID)
description.ObjType = Type
description.ObjVariant = Variant
description.ObjSubType = SubType
description.fullItemString = Type.."."..Variant.."."..description.ObjSubType
description.Name = EID:getObjectName(Type, Variant, description.ObjSubType)
local tableEntry = EID:getDescriptionData(Type, Variant, description.ID)
description.Description = tableEntry and tableEntry[3] or EID:getXMLDescription(Type, Variant, description.ID)
local tableEntry = EID:getDescriptionData(Type, Variant, description.ObjSubType)
description.Description = tableEntry and tableEntry[3] or EID:getXMLDescription(Type, Variant, description.ObjSubType)
description.Transformation = EID:getTransformation(Type, Variant, description.ID)
description.Transformation = EID:getTransformation(Type, Variant, description.ObjSubType)
for k,modifier in pairs(EID.DescModifiers) do
if modifier.condition(description) then
@@ -332,20 +337,24 @@ end
-- returns the specified object table in the current language.
-- falls back to english if it doesnt exist
function EID:getDescriptionTable(objTable)
return EID.descriptions[EID.Config["Language"]][objTable] or EID.descriptions["en_us"][objTable]
function EID:getDescriptionEntry(objTable, objID)
if not objID then
return EID.descriptions[EID.Config["Language"]][objTable] or EID.descriptions["en_us"][objTable]
else
local translatedTable = EID.descriptions[EID.Config["Language"]][objTable]
return (translatedTable and translatedTable[objID]) or (EID.descriptions["en_us"][objTable] and EID.descriptions["en_us"][objTable][objID])
end
end
-- returns the description data table related to a given id, variant and subtype
-- falls back to english if it doesnt exist
function EID:getDescriptionData(Type, Variant, SubType)
local fullString = Type.."."..Variant
local moddedDesc = EID.descriptions[EID.Config["Language"]].custom[fullString.."."..SubType] or
EID.descriptions["en_us"].custom[fullString.."."..SubType] or nil
local moddedDesc = EID:getDescriptionEntry("custom", fullString.."."..SubType)
local tableName = EID:getTableName(Type, Variant, SubType)
local adjustedID = EID:getAdjustedSubtype(Type, Variant, SubType)
local legacyModdedDescription = EID:getLegacyModDescription(Type, Variant, adjustedID)
local defaultDesc = EID.descriptions[EID.Config["Language"]][tableName][adjustedID] or EID.descriptions["en_us"][tableName][adjustedID] or nil
local defaultDesc = EID:getDescriptionEntry(tableName, adjustedID)
return moddedDesc or legacyModdedDescription or defaultDesc
end
@@ -406,7 +415,7 @@ function EID:getTransformationName(id)
end
return id
end
return EID:getDescriptionTable("transformations")[tonumber(id) + 1] or str
return EID:getDescriptionEntry("transformations")[tonumber(id) + 1] or str
end
-- tries to get the ingame name of an item based on its ID
@@ -430,9 +439,9 @@ function EID:getObjectName(Type, Variant, SubType)
name = name or EID.itemConfig:GetPillEffect(adjustedSubtype - 1).Name
return string.gsub(name,"I'm Excited!!!","I'm Excited!!") -- prevent markup trigger
elseif tableName == "sacrifice" then
return EID:getDescriptionTable("sacrificeHeader")
return EID:getDescriptionEntry("sacrificeHeader")
elseif tableName == "dice" then
return EID:getDescriptionTable("diceHeader")
return EID:getDescriptionEntry("diceHeader")
elseif tableName == "custom" then
return name or Type.."."..Variant.."."..SubType
end
@@ -452,6 +461,7 @@ function EID:getXMLDescription(Type, Variant, SubType)
end
return desc or "(No Description available)"
end
-- check if an entity is part of the describable entities
function EID:hasDescription(entity)
local isAllowed = false
+3 -3
View File
@@ -571,9 +571,9 @@ function EID:handleBagOfCraftingRendering()
end
local customDescObj = EID:getDescriptionObj(5, 100, 710)
local roomDesc = EID.descriptions[EID.Config["Language"]].CraftingRoomContent or EID.descriptions["en_us"].CraftingRoomContent
local bagContentDesc = EID.descriptions[EID.Config["Language"]].CraftingBagContent or EID.descriptions["en_us"].CraftingBagContent
local resultDesc = EID.descriptions[EID.Config["Language"]].CraftingResults or EID.descriptions["en_us"].CraftingResults
local roomDesc = EID:getDescriptionEntry("CraftingRoomContent")
local bagContentDesc = EID:getDescriptionEntry("CraftingBagContent")
local resultDesc = EID:getDescriptionEntry("CraftingResults")
local bagContentResult = ""
if #EID.BagItems >= 8 then
local recipe = EID:calculateBagOfCrafting(EID.BagItems)
+23 -21
View File
@@ -3,8 +3,9 @@ local game = Game()
-- Handle Birthright
local function BirthrightCondition(descObj)
return descObj.ItemType == 5 and descObj.ItemVariant == PickupVariant.PICKUP_COLLECTIBLE and descObj.ID == 619
return descObj.ObjType == 5 and descObj.ObjVariant == PickupVariant.PICKUP_COLLECTIBLE and descObj.ObjSubType == 619
end
local function BirthrightCallback(descObj)
descObj.Description = ""
local describedPlayerTypes = {}
@@ -13,11 +14,10 @@ local game = Game()
local playerID = player:GetPlayerType()
if not player:IsSubPlayer() and player:GetMainTwin( ):GetPlayerType() == playerID and not describedPlayerTypes[playerID] then
describedPlayerTypes[playerID] = true
local translatedDesc = EID.descriptions[EID.Config["Language"]]["birthright"]
local birthrightDesc = (translatedDesc and translatedDesc[playerID+1]) or EID.descriptions["en_us"]["birthright"][playerID+1] or nil
local birthrightDesc = EID:getDescriptionEntry("birthright", playerID+1)
if birthrightDesc ~=nil then
local playerName = birthrightDesc[1] or player:GetName()
descObj.Description = descObj.Description.."{{CustomTransformation}} {{ColorGray}}"..playerName.."{{CR}}#"..birthrightDesc[3].."#"
EID:appendToDescription(descObj, "{{CustomTransformation}} {{ColorGray}}"..playerName.."{{CR}}#"..birthrightDesc[3].."#")
end
end
end
@@ -29,7 +29,7 @@ local game = Game()
-- Handle Bingeeater description addition
local function BingeeaterCondition(descObj)
if descObj.ItemType ~= 5 or descObj.ItemVariant ~= PickupVariant.PICKUP_COLLECTIBLE then
if descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_COLLECTIBLE then
return false
end
for i = 0,game:GetNumPlayers() - 1 do
@@ -40,12 +40,12 @@ local game = Game()
end
return false
end
local function BingeeaterCallback(descObj)
local translatedDesc = EID.descriptions[EID.Config["Language"]]["bingeEaterBuffs"]
local bingeBuff = (translatedDesc and translatedDesc[descObj.ID]) or EID.descriptions["en_us"]["bingeEaterBuffs"][descObj.ID] or nil
local bingeBuff = EID:getDescriptionEntry("bingeEaterBuffs", descObj.ObjSubType)
if bingeBuff ~= nil then
local bingeStr = "#{{Collectible664}} "
descObj.Description = descObj.Description..bingeStr..bingeBuff[3]:gsub("#",bingeStr)
local iconStr = "#{{Collectible664}} "
EID:appendToDescription(descObj, iconStr..bingeBuff[3]:gsub("#",iconStr))
end
return descObj
end
@@ -55,7 +55,7 @@ local game = Game()
-- Handle Spindown Dice description addition
local function SpindownDiceCondition(descObj)
if descObj.ItemType ~= 5 or descObj.ItemVariant ~= PickupVariant.PICKUP_COLLECTIBLE then
if descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_COLLECTIBLE then
return false
end
for i = 0,game:GetNumPlayers() - 1 do
@@ -66,20 +66,21 @@ local game = Game()
end
return false
end
local function SpindownDiceCallback(descObj)
descObj.Description = descObj.Description.."#{{Collectible723}} :"
local refID = descObj.ID
EID:appendToDescription(descObj, "#{{Collectible723}} :")
local refID = descObj.ObjSubType
for i = 1,EID.Config["SpindownDiceResults"] do
local spinnedID = EID:getSpindownResult(refID)
refID = spinnedID
if spinnedID > 0 then
descObj.Description = descObj.Description.."{{Collectible"..spinnedID.."}}"
EID:appendToDescription(descObj, "{{Collectible"..spinnedID.."}}")
if i ~= EID.Config["SpindownDiceResults"] then
descObj.Description = descObj.Description.." ->"
EID:appendToDescription(descObj, " ->")
end
else
local errorMsg = EID.descriptions[EID.Config["Language"]]["spindownError"] or EID.descriptions["en_us"]["spindownError"] or nil
descObj.Description = descObj.Description..errorMsg
local errorMsg = EID:getDescriptionEntry("spindownError") or ""
EID:appendToDescription(descObj, errorMsg)
break
end
end
@@ -88,9 +89,10 @@ local game = Game()
EID:addDescriptionModifier("Spindown Dice", SpindownDiceCondition, SpindownDiceCallback)
-- Handle Tarot Cloth description addition
local function TarotClothCondition(descObj)
if descObj.ItemType ~= 5 or descObj.ItemVariant ~= PickupVariant.PICKUP_TAROTCARD then
if descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_TAROTCARD then
return false
end
for i = 0,game:GetNumPlayers() - 1 do
@@ -101,12 +103,12 @@ local game = Game()
end
return false
end
local function TarotClothCallback(descObj)
local translatedDesc = EID.descriptions[EID.Config["Language"]]["tarotClothBuffs"] or EID.descriptions["en_us"]["tarotClothBuffs"]
local clothBuff = (translatedDesc and translatedDesc[descObj.ID]) or ( translatedDesc and translatedDesc[descObj.ID]) or nil
local clothBuff = EID:getDescriptionEntry("tarotClothBuffs", descObj.ObjSubType)
if clothBuff ~= nil then
local bingeStr = "#{{Collectible451}} "
descObj.Description = descObj.Description..bingeStr..clothBuff[3]:gsub("#",bingeStr)
local iconStr = "#{{Collectible451}} "
EID:appendToDescription(descObj, iconStr..clothBuff[3]:gsub("#",iconStr))
end
return descObj
end
+23 -22
View File
@@ -211,27 +211,24 @@ end
function EID:printDescription(desc)
local textScale = Vector(EID.Config["Scale"], EID.Config["Scale"])
local renderPos = EID:getTextPosition()
local itemType = -1
if tonumber(desc.ID) ~= nil and desc.ItemType == 5 and desc.ItemVariant == 100 then
itemType = EID.itemConfig:GetCollectible(tonumber(desc.ID)).Type or -1
end
local offsetX = 0
if EID.Config["ShowItemIcon"] then
local iconType = nil
local renderID = desc.ID
if desc.ItemType == 5 and desc.ItemVariant == 100 then
iconType = "Collectible"
elseif desc.ItemType == 5 and desc.ItemVariant == 350 then
iconType = "Trinket"
elseif desc.ItemType == 5 and desc.ItemVariant == 300 then
iconType = "Card"
elseif desc.ItemType == 5 and desc.ItemVariant == 70 then
iconType = "Pill"
if desc.ObjType == 5 then
if desc.ObjVariant == 100 then
iconType = "Collectible"
elseif desc.ObjVariant == 350 then
iconType = "Trinket"
elseif desc.ObjVariant == 300 then
iconType = "Card"
elseif desc.ObjVariant == 70 then
iconType = "Pill"
end
end
if iconType ~= nil then
offsetX = offsetX + 14
EID:renderString(
"{{" .. iconType .. renderID .. "}}",
"{{" .. iconType .. desc.ObjSubType .. "}}",
renderPos + (Vector(-3, -4) * EID.Config["Scale"]),
textScale,
EID:getNameColor()
@@ -239,6 +236,10 @@ function EID:printDescription(desc)
end
end
--Display ItemType / Charge
local itemType = -1
if tonumber(desc.ObjSubType) ~= nil and desc.ObjType == 5 and desc.ObjVariant == 100 then
itemType = EID.itemConfig:GetCollectible(tonumber(desc.ObjSubType)).Type or -1
end
if EID.Config["ShowItemType"] and (itemType == 3 or itemType == 4) then
local offsetY = 2
if EID.Config["Scale"] < 1 then
@@ -249,11 +250,11 @@ function EID:printDescription(desc)
if itemType == 3 then
-- Display Charge
offsetX = offsetX + 1
local curItemConfig = EID.itemConfig:GetCollectible(desc.ID)
local curItemConfig = EID.itemConfig:GetCollectible(desc.ObjSubType)
if REPENTANCE and curItemConfig.ChargeType == ItemConfig.CHARGE_TIMED then
EID.InlineIconSprite2:SetFrame("pickups", 10) -- Timer Icon
elseif REPENTANCE and (curItemConfig.ChargeType == ItemConfig.CHARGE_SPECIAL or desc.ID == CollectibleType.COLLECTIBLE_BLANK_CARD or desc.ID == CollectibleType.COLLECTIBLE_PLACEBO or
desc.ID == CollectibleType.COLLECTIBLE_CLEAR_RUNE or desc.ID == CollectibleType.COLLECTIBLE_D_INFINITY) then
elseif REPENTANCE and (curItemConfig.ChargeType == ItemConfig.CHARGE_SPECIAL or desc.ObjSubType == CollectibleType.COLLECTIBLE_BLANK_CARD or desc.ObjSubType == CollectibleType.COLLECTIBLE_PLACEBO or
desc.ObjSubType == CollectibleType.COLLECTIBLE_CLEAR_RUNE or desc.ObjSubType == CollectibleType.COLLECTIBLE_D_INFINITY) then
EID.InlineIconSprite2:SetFrame("numbers", 13)
else
EID.InlineIconSprite2:SetFrame("numbers", curItemConfig.MaxCharges)
@@ -274,7 +275,7 @@ function EID:printDescription(desc)
if EID.Config["TranslateItemName"] ~= 2 then
local curLanguage = EID.Config["Language"]
EID.Config["Language"] = "en_us"
local englishName = EID:getObjectName(desc.ItemType, desc.ItemVariant, desc.ID)
local englishName = EID:getObjectName(desc.ObjType, desc.ObjVariant, desc.ObjSubType)
EID.Config["Language"] = curLanguage
if EID.Config["TranslateItemName"] == 1 then
curName = englishName
@@ -282,8 +283,8 @@ function EID:printDescription(desc)
curName = curName.." ("..englishName..")"
end
end
if REPENTANCE and EID.Config["ShowQuality"] and desc.ItemVariant == PickupVariant.PICKUP_COLLECTIBLE then
local quality = tonumber(EID.itemConfig:GetCollectible(tonumber(desc.ID)).Quality)
if REPENTANCE and EID.Config["ShowQuality"] and desc.ObjVariant == PickupVariant.PICKUP_COLLECTIBLE then
local quality = tonumber(EID.itemConfig:GetCollectible(tonumber(desc.ObjSubType)).Quality)
curName = curName.." - {{Quality"..quality.."}}"
end
EID:renderString(
@@ -564,7 +565,7 @@ local function onRender(t)
end
local descriptionObj = EID:getDescriptionObj(closest.Type, closest.Variant, trinketID)
if isGoldenTrinket then
local goldenDesc = EID.descriptions[EID.Config["Language"]].goldenTrinket or EID.descriptions["en_us"].goldenTrinket or ""
local goldenDesc = EID:getDescriptionEntry("goldenTrinket") or ""
descriptionObj.Description = "{{ColorGold}}"..goldenDesc.."#"..descriptionObj.Description
end
EID:printDescription(descriptionObj)
@@ -615,7 +616,7 @@ local function onRender(t)
EID:printDescription(descEntry)
else
EID:renderString(
"{{Pill"..pillColor.."}} "..EID:getDescriptionTable("unidentifiedPill"),
"{{Pill"..pillColor.."}} "..EID:getDescriptionEntry("unidentifiedPill"),
EID:getTextPosition(),
Vector(EID.Config["Scale"], EID.Config["Scale"]),
EID:getErrorColor()