diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c18dd8d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__/ diff --git a/Pipfile b/Pipfile index 7c2dccb..c64ebfc 100644 --- a/Pipfile +++ b/Pipfile @@ -4,7 +4,6 @@ url = "https://pypi.org/simple" verify_ssl = true [dev-packages] -spyder = "*" [packages] pygame = "*" diff --git a/gui/__init__.py b/gui/__init__.py new file mode 100644 index 0000000..39c3b69 --- /dev/null +++ b/gui/__init__.py @@ -0,0 +1,2 @@ +from . import main +from . import modules diff --git a/gui/main.py b/gui/main.py new file mode 100644 index 0000000..6b7d71e --- /dev/null +++ b/gui/main.py @@ -0,0 +1,43 @@ +import asyncio +import time +import sys + +import pygame +from . import modules +class GUI: + def __init__(self, loop, size=(600,600)): + self.loop = loop + self.events = asyncio.Queue() + self.size = self.width, self.height = size + self.screen = None + self.modules = [module.MainClass(self) for module in modules.imports] + + async def start(self): + pygame.init() + self.screen = pygame.display.set_mode(self.size, flags=pygame.RESIZABLE) + self.loop.run_in_executor(None, self.blocking_event_loop) + + def blocking_event_loop(self): + while True: + event = pygame.event.wait() + self.dispatch("pygame_" + pygame.event.event_name(event.type).lower(), event) + + def dispatch(self, event_type, *args, **kwargs): + print(event_type) + for module in self.modules: + asyncio.run_coroutine_threadsafe(module.dispatch_event(event_type, *args, **kwargs), loop=self.loop) + + def stop(self): + pass + + +if True: + loop = asyncio.get_event_loop() + gui = GUI(loop) + asyncio.ensure_future(gui.start()) + try: + loop.run_forever() + except KeyboardInterrupt: + pass + finally: + gui.stop() diff --git a/gui/modules/__init__.py b/gui/modules/__init__.py new file mode 100644 index 0000000..e5775b9 --- /dev/null +++ b/gui/modules/__init__.py @@ -0,0 +1,2 @@ +from . import base +imports = [base] diff --git a/gui/modules/base/__init__.py b/gui/modules/base/__init__.py new file mode 100644 index 0000000..4842c2a --- /dev/null +++ b/gui/modules/base/__init__.py @@ -0,0 +1,21 @@ + +class BaseClass: + def __init__(self, gui): + self.gui = gui + self.drawing = True + + async def draw(self): + pass + + async def dispatch_event(self, event_type, *args, **kwargs): + try: + coro = self.__getattribute__("on_" + event_type) + except AttributeError: + pass + else: + await coro(*args, **kwargs) + + +class MainClass(BaseClass): + async def on_pygame_keydown(self, event): + print("prout") diff --git a/gui/modules/main_menu/__init__.py b/gui/modules/main_menu/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/main.py b/main.py index ae698ac..424ee59 100755 --- a/main.py +++ b/main.py @@ -6,7 +6,5 @@ Created on Thu May 28 19:45:33 2020 @author: suwako """ - -import lifelib -import pygame +import gui diff --git a/networking/__init__.py b/networking/__init__.py new file mode 100644 index 0000000..3a4d676 --- /dev/null +++ b/networking/__init__.py @@ -0,0 +1,3 @@ +import p2p +import server +import client diff --git a/networking/client.py b/networking/client.py new file mode 100644 index 0000000..e69de29 diff --git a/networking/p2p.py b/networking/p2p.py new file mode 100644 index 0000000..e69de29 diff --git a/networking/server.py b/networking/server.py new file mode 100644 index 0000000..e69de29