home · contact · privacy
Refactor parser code.
[plomrogue2] / rogue_chat.py
index 4a9c56f923ead32b655da4811a1bd94ba2e7a051..6696a7348088dd5ec6819f79686f5865c7574e75 100755 (executable)
 #!/usr/bin/env python3
 from plomrogue.game import Game
-from plomrogue.io_websocket import PlomWebSocketServer
-from plomrogue.io_tcp import PlomTCPServer
-from plomrogue.commands import (cmd_ALL, cmd_LOGIN, cmd_NICK, cmd_PING,
-                                cmd_MAP, cmd_TURN, cmd_MAP_LINE, cmd_GET_ANNOTATION,
+from plomrogue.commands import (cmd_ALL, cmd_LOGIN, cmd_NICK, cmd_PING, cmd_THING,
+                                cmd_MAP, cmd_TURN, cmd_MAP_LINE, cmd_THING_INSTALLED,
                                 cmd_ANNOTATE, cmd_PORTAL, cmd_GET_GAMESTATE,
                                 cmd_TASKS, cmd_MAP_CONTROL_LINE, cmd_MAP_CONTROL_PW,
-                                cmd_GOD_ANNOTATE, cmd_GOD_PORTAL)
-from plomrogue.tasks import (Task_WAIT, Task_MOVE, Task_WRITE,
-                             Task_FLATTEN_SURROUNDINGS)
-import sys
+                                cmd_GOD_ANNOTATE, cmd_GOD_PORTAL, cmd_THING_TYPES,
+                                cmd_THING_NAME, cmd_TERRAINS, cmd_ADMIN_PASSWORD,
+                                cmd_BECOME_ADMIN, cmd_SET_TILE_CONTROL,
+                                cmd_GOD_THING_NAME, cmd_THING_DOOR_CLOSED,
+                                cmd_GOD_THING_PROTECTION, cmd_THING_PROTECTION,
+                                cmd_SET_MAP_CONTROL_PASSWORD, cmd_SPAWN_POINT,
+                                cmd_THING_MUSICPLAYER_SETTINGS, cmd_INTRO_MSG,
+                                cmd_THING_MUSICPLAYER_PLAYLIST_ITEM, cmd_TERRAIN,
+                                cmd_THING_BOTTLE_EMPTY, cmd_PLAYER_FACE,
+                                cmd_GOD_PLAYER_FACE, cmd_GOD_PLAYER_HAT,
+                                cmd_GOD_PLAYERS_HAT_CHARS,
+                                cmd_TERRAIN_TAG, cmd_THING_DOOR_KEY,
+                                cmd_THING_CRATE_ITEM, cmd_MAP_CONTROL_PRESETS,
+                                cmd_THING_SPAWNPOINT_CREATED, cmd_GOD_THING_DESIGN,
+                                cmd_THING_DESIGN, cmd_THING_DESIGN_SIZE,
+                                cmd_GOD_THING_DESIGN_SIZE)
+from plomrogue.tasks import (Task_WAIT, Task_MOVE, Task_WRITE, Task_PICK_UP,
+                             Task_DROP, Task_FLATTEN_SURROUNDINGS, Task_DOOR,
+                             Task_INTOXICATE, Task_COMMAND, Task_INSTALL,
+                             Task_WEAR, Task_SPIN, Task_DANCE)
+from plomrogue.things import (Thing_Player, Thing_Item, Thing_ItemSpawner,
+                              Thing_SpawnPoint, Thing_SpawnPointSpawner,
+                              Thing_Door, Thing_DoorSpawner, Thing_Bottle,
+                              Thing_BottleSpawner, Thing_BottleDeposit,
+                              Thing_MusicPlayer, Thing_Hat, Thing_HatRemixer,
+                              Thing_Cookie, Thing_CookieSpawner, Thing_Psychedelic,
+                              Thing_PsychedelicSpawner, Thing_DoorKey,
+                              Thing_Crate, Thing_CrateSpawner, Thing_Stimulant,
+                              Thing_StimulantSpawner, Thing_Sign,
+                              Thing_SignSpawner, Thing_Chair, Thing_ChairSpawner)
 
-if len(sys.argv) != 2:
-    print('wrong number of arguments, expected one (save file)')
-    exit(1)
-savefile = sys.argv[1]
-game = Game(savefile)
+from plomrogue.config import config
+game = Game(config['savefile'])
 game.register_command(cmd_PING)
 game.register_command(cmd_ALL)
 game.register_command(cmd_LOGIN)
 game.register_command(cmd_NICK)
 game.register_command(cmd_TURN)
 game.register_command(cmd_MAP)
+game.register_command(cmd_TERRAIN)
+game.register_command(cmd_TERRAIN_TAG)
 game.register_command(cmd_MAP_LINE)
 game.register_command(cmd_MAP_CONTROL_LINE)
 game.register_command(cmd_MAP_CONTROL_PW)
-game.register_command(cmd_GET_ANNOTATION)
 game.register_command(cmd_ANNOTATE)
 game.register_command(cmd_PORTAL)
 game.register_command(cmd_GOD_ANNOTATE)
 game.register_command(cmd_GOD_PORTAL)
 game.register_command(cmd_GET_GAMESTATE)
 game.register_command(cmd_TASKS)
+game.register_command(cmd_THING_TYPES)
+game.register_command(cmd_TERRAINS)
+game.register_command(cmd_THING)
+game.register_command(cmd_THING_PROTECTION)
+game.register_command(cmd_GOD_THING_PROTECTION)
+game.register_command(cmd_THING_NAME)
+game.register_command(cmd_THING_DOOR_CLOSED)
+game.register_command(cmd_THING_INSTALLED)
+game.register_command(cmd_GOD_THING_NAME)
+game.register_command(cmd_ADMIN_PASSWORD)
+game.register_command(cmd_SET_TILE_CONTROL)
+game.register_command(cmd_SET_MAP_CONTROL_PASSWORD)
+game.register_command(cmd_BECOME_ADMIN)
+game.register_command(cmd_SPAWN_POINT)
+game.register_command(cmd_THING_MUSICPLAYER_SETTINGS)
+game.register_command(cmd_THING_MUSICPLAYER_PLAYLIST_ITEM)
+game.register_command(cmd_THING_BOTTLE_EMPTY)
+game.register_command(cmd_PLAYER_FACE)
+game.register_command(cmd_GOD_PLAYER_FACE)
+game.register_command(cmd_GOD_PLAYER_HAT)
+game.register_command(cmd_GOD_PLAYERS_HAT_CHARS)
+game.register_command(cmd_THING_DOOR_KEY)
+game.register_command(cmd_THING_CRATE_ITEM)
+game.register_command(cmd_THING_DESIGN)
+game.register_command(cmd_THING_DESIGN_SIZE)
+game.register_command(cmd_GOD_THING_DESIGN)
+game.register_command(cmd_GOD_THING_DESIGN_SIZE)
+game.register_command(cmd_MAP_CONTROL_PRESETS)
+game.register_command(cmd_THING_SPAWNPOINT_CREATED)
+game.register_command(cmd_INTRO_MSG)
 game.register_task(Task_WAIT)
 game.register_task(Task_MOVE)
 game.register_task(Task_WRITE)
 game.register_task(Task_FLATTEN_SURROUNDINGS)
+game.register_task(Task_PICK_UP)
+game.register_task(Task_DROP)
+game.register_task(Task_DOOR)
+game.register_task(Task_INTOXICATE)
+game.register_task(Task_COMMAND)
+game.register_task(Task_INSTALL)
+game.register_task(Task_WEAR)
+game.register_task(Task_SPIN)
+game.register_task(Task_DANCE)
+game.register_thing_type(Thing_Player)
+game.register_thing_type(Thing_Item)
+game.register_thing_type(Thing_ItemSpawner)
+game.register_thing_type(Thing_SpawnPoint)
+game.register_thing_type(Thing_SpawnPointSpawner)
+game.register_thing_type(Thing_Door)
+game.register_thing_type(Thing_DoorKey)
+game.register_thing_type(Thing_DoorSpawner)
+game.register_thing_type(Thing_Bottle)
+game.register_thing_type(Thing_BottleSpawner)
+game.register_thing_type(Thing_BottleDeposit)
+game.register_thing_type(Thing_MusicPlayer)
+game.register_thing_type(Thing_Hat)
+game.register_thing_type(Thing_HatRemixer)
+game.register_thing_type(Thing_Cookie)
+game.register_thing_type(Thing_CookieSpawner)
+game.register_thing_type(Thing_Psychedelic)
+game.register_thing_type(Thing_PsychedelicSpawner)
+game.register_thing_type(Thing_Crate)
+game.register_thing_type(Thing_CrateSpawner)
+game.register_thing_type(Thing_Stimulant)
+game.register_thing_type(Thing_StimulantSpawner)
+game.register_thing_type(Thing_Sign)
+game.register_thing_type(Thing_SignSpawner)
+game.register_thing_type(Thing_Chair)
+game.register_thing_type(Thing_ChairSpawner)
 game.read_savefile()
 game.io.start_loop()
-game.io.start_server(8000, PlomWebSocketServer)
-game.io.start_server(5000, PlomTCPServer)
+for port in config['servers']:
+    game.io.start_server(port, config['servers'][port],
+                         config['certfile'], config['keyfile'])