Browse Source

Terminate simulation when close cocos windows. Closes #32

Bastien Sevajol 6 years ago
parent
commit
6ad60b1f69
1 changed files with 13 additions and 0 deletions
  1. 13 0
      opencombat/terminal/base.py

+ 13 - 0
opencombat/terminal/base.py View File

@@ -1,4 +1,8 @@
1 1
 # coding: utf-8
2
+import pyglet
3
+from cocos.director import event_loop
4
+from synergine2.terminals import TerminalPackage
5
+
2 6
 from opencombat.simulation.event import NewVisibleOpponent
3 7
 from opencombat.simulation.event import FireEvent
4 8
 from opencombat.simulation.event import DieEvent
@@ -45,6 +49,15 @@ class CocosTerminal(GameTerminal):
45 49
             map_dir_path=self.map_dir_path,
46 50
         )
47 51
 
52
+        @event_loop.event
53
+        def on_window_close(window):
54
+            event_loop.exit()
55
+            self.send(TerminalPackage(sigterm=True))
56
+
57
+            self.core_process.join(timeout=120)
58
+
59
+            return pyglet.event.EVENT_HANDLED
60
+
48 61
         # TODO: Defind on some other place ?
49 62
         self.gui.subject_mapper_factory.register_mapper(
50 63
             ManSubject,