CampBuddy/Camp.Buddy v2.2.1/Camp_Buddy-2.2.1-pc/renpy/common/000namespaces.rpy
2025-03-03 23:00:33 +01:00

60 lines
2 KiB
Text

python early hide:
class _ObjectNamespace(object):
def __init__(self, nso, name):
self.nso = nso
self.name = name
def set(self, name, value):
setattr(self.nso, name, value)
def set_default(self, name, value):
raise Exception("The default statement can not be used with the {} namespace.".format(self.name))
class _PersistentNamespace(object):
def set(self, name, value):
if getattr(persistent, name) is None:
setattr(persistent, name, value)
def set_default(self, name, value):
if getattr(persistent, name) is None:
setattr(persistent, name, value)
class _PreferencesNamespace(object):
def set(self, name, value):
raise Exception("The define statement can not be used with the preferences namespace.")
def set_default(self, name, value):
undefined = object()
if not isinstance(persistent._preference_default, dict):
persistent._preference_default = { }
old_default = persistent._preference_default.get(name, undefined)
if old_default != value:
setattr(_preferences, name, value)
persistent._preference_default[name] = value
default_field = "default_" + name
# This ensures we don't conflict with the old way of doing
# things.
if hasattr(config, default_field):
setattr(config, default_field, value)
class _GuiNamespace(object):
def set(self, name, value):
setattr(gui, name, value)
def set_default(self, name, value):
setattr(gui, name, value)
config.special_namespaces["store.config"] = _ObjectNamespace(config, "config")
config.special_namespaces["store.persistent"] = _PersistentNamespace()
config.special_namespaces["store.preferences"] = _PreferencesNamespace()
config.special_namespaces["store.gui"] = _GuiNamespace()