From fabd71058c87a39655a51b281b1a34298c5bcf95 Mon Sep 17 00:00:00 2001 From: Wofsauge Date: Sat, 15 May 2021 21:55:49 +0200 Subject: [PATCH] Fixed Indicators not working in big rooms --- main.lua | 39 ++++++++++++++++++++++----------------- metadata.xml | 2 +- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/main.lua b/main.lua index 1c8182dc..a84ab1c3 100644 --- a/main.lua +++ b/main.lua @@ -289,32 +289,37 @@ function EID:renderQuestionMark() end function EID:renderIndicator(entity) + if EID.Config["Indicator"] == "none" then + return + end local repDiv = 1 if REPENTANCE then repDiv = 255 end + local sprite = entity:GetSprite() + local entityPos = Game():GetRoom():WorldToScreenPosition(entity.Position) if EID.Config["Indicator"] == "blink" then local c = 255 - math.floor(255 * ((entity.FrameCount % 40) / 40)) - entity:SetColor(Color(1, 1, 1, 1, c/repDiv, c/repDiv, c/repDiv), 1, 1, false, false) - entity:Render(nullVector) - entity:SetColor(Color(1, 1, 1, 1, 0, 0, 0), 2, 1, false, false) + sprite.Color = Color(1, 1, 1, 1, c/repDiv, c/repDiv, c/repDiv) + sprite:Render(entityPos, nullVector, nullVector) + sprite.Color = Color(1, 1, 1, 1, 0, 0, 0) elseif EID.Config["Indicator"] == "border" then local c = 255 - math.floor(255 * ((entity.FrameCount % 40) / 40)) - entity:SetColor(Color(1, 1, 1, 1, c/repDiv, c/repDiv, c/repDiv), 1, 1, false, false) - entity:Render(Vector(0, 1)) - entity:Render(Vector(0, -1)) - entity:Render(Vector(1, 0)) - entity:Render(Vector(-1, 0)) - entity:SetColor(Color(1, 1, 1, 1, 0, 0, 0), 2, 1, false, false) - entity:Render(nullVector) + sprite.Color = Color(1, 1, 1, 1, c/repDiv, c/repDiv, c/repDiv) + sprite:Render(entityPos + Vector(0, 1), nullVector, nullVector) + sprite:Render(entityPos + Vector(0, -1), nullVector, nullVector) + sprite:Render(entityPos + Vector(1, 0), nullVector, nullVector) + sprite:Render(entityPos + Vector(-1, 0), nullVector, nullVector) + sprite.Color = Color(1, 1, 1, 1, 0, 0, 0) + sprite:Render(entityPos, nullVector, nullVector) elseif EID.Config["Indicator"] == "highlight" then - entity:SetColor(Color(1, 1, 1, 1, 255/repDiv, 255/repDiv, 255/repDiv), 1, 1, false, false) - entity:Render(Vector(0, 1)) - entity:Render(Vector(0, -1)) - entity:Render(Vector(1, 0)) - entity:Render(Vector(-1, 0)) - entity:SetColor(Color(1, 1, 1, 1, 0, 0, 0), 2, 1, false, false) - entity:Render(nullVector) + sprite.Color = Color(1, 1, 1, 1, 255/repDiv, 255/repDiv, 255/repDiv) + sprite:Render(entityPos + Vector(0, 1), nullVector, nullVector) + sprite:Render(entityPos + Vector(0, -1), nullVector, nullVector) + sprite:Render(entityPos + Vector(1, 0), nullVector, nullVector) + sprite:Render(entityPos + Vector(-1, 0), nullVector, nullVector) + sprite.Color = Color(1, 1, 1, 1, 0, 0, 0) + sprite:Render(entityPos, nullVector, nullVector) elseif EID.Config["Indicator"] == "arrow" then ArrowSprite:Update() local ArrowOffset = Vector(0, -35) diff --git a/metadata.xml b/metadata.xml index 586913d7..14766f49 100644 --- a/metadata.xml +++ b/metadata.xml @@ -86,7 +86,7 @@ https://moddingofisaac.com/mod/1079/external-item-descriptions - Jake for the sweet [b]German[/b] language pack - [url=https://steamcommunity.com/id/whytefang/]adc[/url] for creating an awesome new Languagepack and providing ideas for new functionalities - 3.37 + 3.38 Public