From 1010744113d4f94f21cf6af04403600f2e40e291 Mon Sep 17 00:00:00 2001 From: Spencer Brown Date: Thu, 13 Jan 2022 15:06:17 +1000 Subject: [PATCH] Add safeguards so comp_relays still run if ctrl_type or value is missing. This fixes BEEmod/BEE2-items#4044. --- transforms/comp_relay.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/transforms/comp_relay.py b/transforms/comp_relay.py index 554a8ce60..00f551395 100644 --- a/transforms/comp_relay.py +++ b/transforms/comp_relay.py @@ -33,9 +33,18 @@ def comp_relay(ctx: Context): ) # If ctrl_type is 0, ctrl_value needs to be 1 to be enabled. # If ctrl_type is 1, ctrl_value needs to be 0 to be enabled. - enabled = conv_bool(relay['ctrl_type']) != conv_bool(relay['ctrl_value']) + if 'ctrl_type' in relay: + enabled = conv_bool(relay['ctrl_type'], False) != conv_bool(relay['ctrl_value'], True) + else: + # Missing, assume true if ctrl_value also isn't present. + enabled = conv_bool(relay['ctrl_value'], True) extra_delay = conv_float(relay['delay']) + + LOGGER.debug( + 'relay "{}", enabled={}, delay={}, remove={}, {} outputs', + relay_name, enabled, extra_delay, should_remove, len(relay.outputs), + ) for out in relay.outputs: try: inp_name = out_names[out.output.casefold()]