From 6f374aac7f4d553c484eecc77c9599be79f2d834 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Tue, 20 Aug 2024 18:17:33 -0700 Subject: send the initial state to clients --- kennel/main.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'kennel/main.py') diff --git a/kennel/main.py b/kennel/main.py index 122e40a..17a143b 100644 --- a/kennel/main.py +++ b/kennel/main.py @@ -12,16 +12,16 @@ from fastapi.staticfiles import StaticFiles from kennel.engine.systems.system import SystemType from kennel.engine.systems.network import Event, Publishable, EventType from typing import Annotated, Optional -from .kennel import ( +from kennel.kennel import ( kennel, system_manager, entity_manager, create_session_controllable_entities, ) -from .app import app, templates, logger -from .kennelcats import KennelCatService -from .middleware import logger_middleware -from .config import config +from kennel.app import app, templates, logger +from kennel.kennelcats import KennelCatService +from kennel.middleware import logger_middleware +from kennel.config import config import asyncio import uuid @@ -85,6 +85,16 @@ async def websocket_endpoint( await websocket.accept() logger.info(f"Websocket connection established for session {session}") + await websocket.send_json( + { + "event_type": EventType.INITIAL_STATE, + "data": { + "world": {"width": config.WORLD_WIDTH, "height": config.WORLD_HEIGHT}, + "entities": kennel.entity_manager.to_dict(), + }, + } + ) + session_entities = create_session_controllable_entities(session) try: network_system = system_manager.get_system(SystemType.NETWORK) -- cgit v1.3