"""Miscellaneous functions for the mudpy engine."""
-# Copyright (c) 2004-2016 Jeremy Stanley <fungi@yuggoth.org>. Permission
+# Copyright (c) 2004-2017 Jeremy Stanley <fungi@yuggoth.org>. Permission
# to use, copy, modify, and distribute this software is granted under
# terms provided in the LICENSE file distributed with this software.
else:
node = ".".join((self.key, facet))
self.origin.data[node] = value
- self.facethash[node] = self.origin.data[node]
+ self.facethash[facet] = self.origin.data[node]
self.origin.modified = True
def append(self, facet, value):
self.contents = {}
self.default_origins = {}
self.directions = set()
+ self.loading = False
self.loglines = []
self.private_files = []
self.reload_flag = False
def load(self):
"""Load universe data from persistent storage."""
+ # while loading, it's safe to update elements from read-only files
+ self.loading = True
+
# it's possible for this to enter before logging configuration is read
pending_loglines = []
for element in self.contents.values():
element.update_location()
element.clean_contents()
+
+ # done loading, so disallow updating elements from read-only files
+ self.loading = False
+
return pending_loglines
def new(self):
def check_idle(self):
"""Warn or disconnect idle users as appropriate."""
idletime = universe.get_time() - self.last_input
- linkdead_dict = universe.categories["internal"]["time"].get(
- "linkdead"
- )
+ linkdead_dict = universe.contents[
+ "mudpy.timing.idle.disconnect"].facets()
if self.state in linkdead_dict:
linkdead_state = self.state
else:
log(logline, 2)
self.state = "disconnecting"
self.menu_seen = False
- idle_dict = universe.categories["internal"]["time"].get("idle")
+ idle_dict = universe.contents["mudpy.timing.idle.warn"].facets()
if self.state in idle_dict:
idle_state = self.state
else:
replacement = replacement[:-2]
else:
replacement = ""
- log("Couldn't read included " + incfile + " file.", 6)
+ log("Couldn't read included " + incfile + " file.", 7)
# if we get here, log and replace it with null
else:
if not universe.categories["internal"]["counters"].get("mark"):
log(str(len(universe.userlist)) + " connection(s)")
universe.categories["internal"]["counters"].set(
- "mark", universe.categories["internal"]["time"].get(
- "frequency_log"
- )
+ "mark", universe.contents["mudpy.timing"].get("status")
)
else:
universe.categories["internal"]["counters"].set(
if not universe.categories["internal"]["counters"].get("save"):
universe.save()
universe.categories["internal"]["counters"].set(
- "save", universe.categories["internal"]["time"].get(
- "frequency_save"
- )
+ "save", universe.contents["mudpy.timing"].get("save")
)
else:
universe.categories["internal"]["counters"].set(
)
# pause for a configurable amount of time (decimal seconds)
- time.sleep(universe.categories["internal"]
- ["time"].get("increment"))
+ time.sleep(universe.contents["mudpy.timing"].get("increment"))
# increase the elapsed increment counter
universe.categories["internal"]["counters"].set(
log(
"User " +
actor.owner.account.get("name") + " reloaded the world.",
- 8
+ 6
)
# set a flag to reload