예제 #1
0
    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)
예제 #2
0
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()]