placement.py 977B

123456789101112131415161718192021222324252627
  1. # coding: utf-8
  2. from synergine2.terminals import TerminalPackage
  3. from synergine2_cocos2d.interaction import Interaction
  4. from opencombat.simulation.placement import SetSubjectPositionsSimulationBehaviour # nopep8
  5. from opencombat.user_action import UserAction
  6. class SetSubjectPositionsInteraction(Interaction):
  7. gui_action = UserAction.SET_SUBJECTS_POSITION
  8. def get_package_for_terminal(self) -> TerminalPackage:
  9. data = [] # type: typing.List[typing.Tuple[int, typing.Tuple[int, int]]] # nopep8
  10. for moved_subject in self.layer_manager.edit_layer.selection.keys():
  11. grid_position = self.layer_manager.grid_manager.get_grid_position(
  12. moved_subject.position,
  13. )
  14. data.append(
  15. (moved_subject.subject.id, grid_position),
  16. )
  17. return TerminalPackage(
  18. simulation_actions=[
  19. (SetSubjectPositionsSimulationBehaviour, data),
  20. ]
  21. )