oldschool-toontown/otp/web/SettingsMgr.py
2019-11-02 18:27:54 -04:00

41 lines
1.6 KiB
Python

from direct.distributed.DistributedObjectGlobal import DistributedObjectGlobal
from direct.directnotify.DirectNotifyGlobal import directNotify
from otp.web.SettingsMgrBase import SettingsMgrBase
class SettingsMgr(DistributedObjectGlobal, SettingsMgrBase):
notify = directNotify.newCategory('SettingsMgr')
def announceGenerate(self):
DistributedObjectGlobal.announceGenerate(self)
SettingsMgrBase.announceGenerate(self)
if not self.cr.isLive():
self._sracs = None
if self.cr.isConnected():
self._scheduleChangedSettingRequest()
self._crConnectEvent = self.cr.getConnectedEvent()
self.accept(self._crConnectEvent, self._handleConnected)
return
def _handleConnected(self):
self._scheduleChangedSettingRequest()
def _scheduleChangedSettingRequest(self):
if self._sracs:
self._sracs.destroy()
self._sracs = FrameDelayedCall('requestAllChangedSettings', self.sendRequestAllChangedSettings)
def delete(self):
self.ignore(self._crConnectEvent)
if self._sracs:
self._sracs.destroy()
SettingsMgrBase.delete(self)
DistributedObjectGlobal.delete(self)
def sendRequestAllChangedSettings(self):
self.sendUpdate('requestAllChangedSettings', [])
def settingChange(self, settingName, valueStr):
if valueStr == self._getCurrentValueRepr(settingName):
return
self.notify.info('got setting change: %s -> %s' % (settingName, valueStr))
self._changeSetting(settingName, valueStr)