From 3020ce3d7b8a2dc1476e091cc96faa52bef0b0f7 Mon Sep 17 00:00:00 2001 From: klemek Date: Mon, 2 Nov 2026 17:42:13 +0100 Subject: [PATCH] feat: show feedback display --- project/forge_project.cfg | 2 +- resources/background.png | Bin 301 -> 301 bytes src/forge_invar/display.py | 30 ++++++++++++++++++++++++++---- src/forge_invar/forge_data.py | 4 ++++ 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/project/forge_project.cfg b/project/forge_project.cfg index 0b67696..9a0c7d6 100644 --- a/project/forge_project.cfg +++ b/project/forge_project.cfg @@ -237,7 +237,7 @@ GROUP_3_1_X=48 GROUP_3_1_Y=58 GROUP_3_1_Z= GROUP_3_2_X=0 -GROUP_3_2_Y= +GROUP_3_2_Y=16 GROUP_3_2_Z= # Auto-Random Ignore (ARI) prefixes diff --git a/resources/background.png b/resources/background.png index 2b096755bb57636aa23fe40366c02f3fb1b8a779..22de263eba9fbe29273270b441f78424ab1343f3 100644 GIT binary patch delta 260 zcmV+f0sH=~0<8j&F@F$6->fZViwLKrOKy@q3K!rExa1g|f)Z_d#0`*=HVrt6gd<^p z3OfYFSlA$@nbp_+oj3cjm;2%o$gUqEfYbBs_6~S+I{+L>$sVAdhDNBkoC2_q?T!5D z3V;i~uSAlha^Ccq$^h`b>A{^leik~9_RJnxnbzFsi{M!hY<&dS0CYS{MU(2GmK4}n zz>a@BVr){B%oRzGg3MD`z%fx|S$Fvyo*7}>auclwfu*P8!DfRj?mU;2gDqIOuEq39 zru;Oe%64q*-*f3l|Ao+(%O9#GOmeCm_>93;yblFyEm~4V06qXLlVU>^xI{Am0000< KMNUMnLSTZ|(t8O2 delta 260 zcmV+f0sH=~0<8j&F@F?9-(OqG77bT63i@gl9#t34OsvM8}gWn$(V!q`<}k zcKG87wncT#kB4+1rZJ4JD=* zG8LaLO}1rY|K7{#=)WLN_3{Vw36p}R06uE4lDDzJdWmwH2*5kz8e~J!o{QK30000< KMNUMnLSTXwqI6#X diff --git a/src/forge_invar/display.py b/src/forge_invar/display.py index 1ac8876..bae7ef6 100644 --- a/src/forge_invar/display.py +++ b/src/forge_invar/display.py @@ -124,9 +124,31 @@ def __get_running_display(data: ForgeData) -> Image.Image: if data.mfx_inverted: draw2.rectangle((101, 30, 111, 30), fill="white") - # TODO show feedback - # TODO show blank out - # TODO show inverted out + # feedback / output + draw_base = False + + if data.frag_state(SRCA_FRAG) == 1: + draw_base = True + draw.rectangle((119, 22, 121, 36), fill="white") + draw.rectangle((119, 22, 127, 24), fill="white") + draw.rectangle((123, 21, 126, 25), fill=None, outline="black") + draw.rectangle((0, 22, 11, 24), fill="white") + draw.rectangle((1, 21, 4, 25), fill=None, outline="black") + + if data.frag_state(SRCB_FRAG) == 1: + draw_base = True + draw.rectangle((119, 34, 121, 48), fill="white") + draw.rectangle((119, 46, 127, 48), fill="white") + draw.rectangle((123, 45, 126, 49), fill=None, outline="black") + draw.rectangle((0, 46, 11, 48), fill="white") + draw.rectangle((1, 45, 4, 49), fill=None, outline="black") + + if not data.output_blank: + draw_base = True + draw.rectangle((119, 34, 128, 36), fill="white") + + if draw_base: + draw.rectangle((114, 34, 121, 36), fill="white") return __xor(im, im_overlay) @@ -170,7 +192,7 @@ def generate_background_image() -> None: # pipes draw.rectangle((26, 22, 78, 24), fill="white") draw.rectangle((26, 46, 78, 48), fill="white") - draw.rectangle((78, 34, 128, 36), fill="white") + draw.rectangle((78, 34, 105, 36), fill="white") draw.rectangle((76, 23, 78, 46), fill="white") # squares diff --git a/src/forge_invar/forge_data.py b/src/forge_invar/forge_data.py index 7c1665f..4997ac8 100644 --- a/src/forge_invar/forge_data.py +++ b/src/forge_invar/forge_data.py @@ -226,6 +226,10 @@ class ForgeData: self.frag_seed(MFX_FRAG), ) + @property + def output_blank(self) -> bool: + return self.group_value(EXTRA_GROUP, 1, 0)[1] > 0 + def mock(self) -> typing.Self: self.__data.read(MOCK_SAVE_PATH) self.state = ForgeState.RUNNING