This commit is contained in:
2025-10-05 02:25:37 +02:00
parent a547b6ede1
commit bb1427754f
20 changed files with 4514 additions and 5 deletions
+22 -5
View File
@@ -12,11 +12,22 @@ from server.game_state import GameState
from server.economy import EconomyEngine
from server.database import Database
# Global instances
game_state = GameState()
ws_manager = WebSocketManager(game_state)
economy_engine = EconomyEngine(game_state)
database = Database()
# Global instances - can be overridden for testing
game_state = None
ws_manager = None
economy_engine = None
database = None
def initialize_components(test_db_path=None):
"""Initialize server components with optional test database"""
global game_state, ws_manager, economy_engine, database
game_state = GameState()
ws_manager = WebSocketManager(game_state)
economy_engine = EconomyEngine(game_state)
database = Database(test_db_path) if test_db_path else Database()
return game_state, ws_manager, economy_engine, database
# --- HYBRID MODEL RE-IMPLEMENTED ---
last_economy_tick_time = time.time()
@@ -66,6 +77,12 @@ async def economy_loop():
@asynccontextmanager
async def lifespan(app: FastAPI):
"""Startup and shutdown events."""
global game_state, ws_manager, economy_engine, database
# Initialize components if not already done (for testing)
if not all([game_state, ws_manager, economy_engine, database]):
initialize_components()
logger.info("Server starting up...")
database.init_db()
game_state.load_state(database.load_game_state())