def assign_gate_assignment(self, assignment: GateAssignment) -> "GamePatches": new_translator_gates = copy.copy(self.translator_gates) for gate, translator in assignment.items(): assert gate not in new_translator_gates assert gate.resource_type == ResourceType.GATE_INDEX new_translator_gates[gate] = translator return dataclasses.replace(self, translator_gates=new_translator_gates)
def _create_translator_gates_field(gate_assignment: GateAssignment) -> list: """ Creates the translator gate entries in the patcher file :param gate_assignment: :return: """ return [{ "gate_index": gate.index, "translator_index": translator.index, } for gate, translator in gate_assignment.items()]