X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=server%2Fio.py;h=5e02ed4287d1c22e4724a982f2f72718ef3af839;hb=2bf9dbbeca48cfde11566275d10ca91912257a0b;hp=01d04365770ace851b97568ea7f0c22cd19dc451;hpb=0a790da8aa952ed96d46c913aadebf9fc361fc43;p=plomrogue diff --git a/server/io.py b/server/io.py index 01d0436..5e02ed4 100644 --- a/server/io.py +++ b/server/io.py @@ -170,12 +170,10 @@ def save_world(): for _id in sorted(world_db[category].keys()): string = string + id_string + " " + str(_id) + "\n" for key in sorted(world_db[category][_id].keys()): - if not key in special_keys: + if key.isupper() and not key in special_keys: x = world_db[category][_id][key] argument = quote_escape(x) if str == type(x) else str(x) string = string + key + " " + argument + "\n" - elif special_keys[key]: - string = string + special_keys[key](_id) return string def helper_things(): @@ -187,32 +185,13 @@ def save_world(): t = world_db["Things"][tid] for key in sorted(t.keys()): if key not in {"T_CARRIES", "carried", "fovmap", "T_MEMMAP", - "T_MEMTHING", "T_MEMDEPTHMAP"}: + "T_MEMTHING", "T_MEMDEPTHMAP", "pos"}: argument = t[key] string += key + " " + (quote_escape(argument) if \ str == type(argument) else str(argument)) + "\n" string += memthing(tid) + memmap(tid) + memdepthmap(tid) return string - # ALTERNATIVE TO helper_things, but not more efficient despite listcomp - # def helper4(): - # def foo(t, key): - # argument = t[key] - # return key + " " + (quote_escape(argument) if \ - # str == type(argument) else str(argument)) + "\n" - # string = "" - # memmap = mapsetter("T_MEMMAP") - # memdepthmap = mapsetter("T_MEMDEPTHMAP") - # for tid in sorted(world_db["Things"].keys()): - # string += "T_ID " + str(tid) + "\n" - # t = world_db["Things"][tid] - # lines = [foo(t, key) for key in sorted(t.keys()) - # if key not in {"T_CARRIES", "carried", "fovmap", - # "T_MEMMAP", "T_MEMTHING", "T_MEMDEPTHMAP"}] - # string += "".join(lines) - # string += memthing(tid) + memmap(tid) + memdepthmap(tid) - # return string - string = "" for plugin in world_db["PLUGIN"]: string = string + "PLUGIN " + plugin + "\n" @@ -233,6 +212,7 @@ def save_world(): string = string + "T_ID " + str(tid) + "\n" for carried in sorted(world_db["Things"][tid]["T_CARRIES"]): string = string + "T_CARRIES " + str(carried) + "\n" + string = string + io_db["hook_save"]() string = string + "SEED_RANDOMNESS " + str(rand.seed) + "\n" + \ "WORLD_ACTIVE " + str(world_db["WORLD_ACTIVE"]) atomic_write(io_db["path_save"], string) @@ -288,7 +268,7 @@ def obey(command, prefix, replay=False, do_record=False): if world_db["WORLD_ACTIVE"]: save_world() io_db["record_chunk"] = "" - io_db["save_wait"] = time.time() + io_db["save_wait_start"] = time.time() io_db["worldstate_updateable"] = world_db["WORLD_ACTIVE"] elif 0 != len(tokens): print("Invalid command/argument, or bad number of tokens: " + command) @@ -307,7 +287,7 @@ def obey_lines_in_file(path, name, do_record=False): def try_worldstate_update(): """Write worldstate file if io_db["worldstate_updateable"] is set.""" - if io_db["worldstate_updateable"]: + if world_db["WORLD_ACTIVE"] and io_db["worldstate_updateable"]: string = "" for entry in io_db["worldstate_write_order"]: if entry[1] == "world_int":