home · contact · privacy
Server, plugin: Refactor command_ttid plugin hooking.
[plomrogue] / server / commands.py
index 1ce6464a3527965e16da391940217f86cc9269c7..90de4a9f05092086caf050f441e27672ab72d530 100644 (file)
@@ -87,8 +87,8 @@ def command_makeworld(seed_string):
     """Call make_world()."""
     val = integer_test(seed_string, 0, 4294967295)
     if None != val:
-        from server.config.misc import make_world_func
-        make_world_func(val)
+        from server.make_world import make_world
+        make_world(val)
 
 
 def command_maplength(maplength_string):
@@ -142,7 +142,6 @@ def command_worldactive(worldactive_string):
                 world_db["WORLD_ACTIVE"] = 1
             else:
                 print("Ignoring: No map defined for world to activate.")
-                return
 
 
 def command_tid(id_string):
@@ -150,34 +149,28 @@ def command_tid(id_string):
 
     Default new Thing's type to the first available ThingType, others: zero.
     """
-    id = id_setter(id_string, "Things", command_tid)
-    if None != id:
+    tid = id_setter(id_string, "Things", command_tid)
+    if None != tid:
         if world_db["ThingTypes"] == {}:
             print("Ignoring: No ThingType to settle new Thing in.")
             return
-        type = list(world_db["ThingTypes"].keys())[0]
+        ty = list(world_db["ThingTypes"].keys())[0]
         from server.new_thing import new_Thing
-        world_db["Things"][id] = new_Thing(type)
+        world_db["Things"][tid] = new_Thing(ty)
 
 
 def command_ttid(id_string):
     """Set ID of ThingType to manipulate. ID unused? Create new one.
 
-    Default new ThingType's TT_SYMBOL to "?", TT_CORPSE_ID to self, TT_TOOL to
-    "", others: 0. 
+    Set new type's TT_CORPSE_ID to self, other fields to thingtype_defaults.
     """
-    id = id_setter(id_string, "ThingTypes", command_ttid)
-    if None != id:
-        world_db["ThingTypes"][id] = {
-            "TT_NAME": "(none)",
-            "TT_TOOLPOWER": 0,
-            "TT_LIFEPOINTS": 0,
-            "TT_PROLIFERATE": 0,
-            "TT_START_NUMBER": 0,
-            "TT_SYMBOL": "?",
-            "TT_CORPSE_ID": id,
-            "TT_TOOL": ""
-        }
+    ttid = id_setter(id_string, "ThingTypes", command_ttid)
+    if None != ttid:
+        from server.config.world_data import thingtype_defaults
+        world_db["ThingTypes"][ttid] = {}
+        for key in thingtype_defaults:
+            world_db["ThingTypes"][ttid][key] = thingtype_defaults[key]
+        world_db["ThingTypes"][ttid]["TT_CORPSE_ID"] = ttid
 
 
 def command_taid(id_string):
@@ -185,9 +178,9 @@ def command_taid(id_string):
 
     Default new ThingAction's TA_EFFORT to 1, its TA_NAME to "wait".
     """
-    id = id_setter(id_string, "ThingActions", command_taid, True)
-    if None != id:
-        world_db["ThingActions"][id] = {
+    taid = id_setter(id_string, "ThingActions", command_taid, True)
+    if None != taid:
+        world_db["ThingActions"][taid] = {
             "TA_EFFORT": 1,
             "TA_NAME": "wait"
         }
@@ -316,16 +309,13 @@ def command_taname(name):
        or name == "pickup":
         world_db["ThingActions"][command_taid.id]["TA_NAME"] = name
         if 1 == world_db["WORLD_ACTIVE"]:
-            wait_defined = False
             for id in world_db["ThingActions"]:
                 if "wait" == world_db["ThingActions"][id]["TA_NAME"]:
-                    wait_defined = True
                     break
-            if not wait_defined:
+            else:
                 set_world_inactive()
     else:
         print("Ignoring: Invalid action name.")
-    # In contrast to the original,naming won't map a function to a ThingAction.
 
 
 def setter(category, key, min, max=None):
@@ -517,6 +507,6 @@ def play_move(str_arg):
 
 def command_ai():
     """Call ai() on player Thing, then turn_over()."""
-    from server.config.actions import ai_func
-    ai_func(world_db["Things"][0])
+    from server.ai import ai
+    ai(world_db["Things"][0])
     turn_over()