コード例 #1
0
 def handle(self, element, module, dll):
     dll = BugDll.decode(dll)
     element.setState("dll", dll)
     if module and dll:
         BugUtil.debug(
             "BugConfig - configuration for module %s requires DLL version %s",
             module, dll)
コード例 #2
0
 def handle(self, element, how, module, function, toModule, asName, dll):
     dll = BugDll.decode(dll)
     if self.isDllOkay(element, dll):
         BugUtil.extendFunction(module, function, toModule, asName, how)
     else:
         BugUtil.info(
             "BugConfig - ignoring <%s> %s.%s, requires dll version %s",
             element.tag, module, function, self.resolveDll(element, dll))
コード例 #3
0
 def handle(self, element, module, clazz, dll):
     dll = BugDll.decode(dll)
     if self.isDllOkay(element, dll):
         BugUtil.callFunction(module, clazz,
                              CvEventInterface.getEventManager(),
                              *element.args, **element.kwargs)
     else:
         BugUtil.info(
             "BugConfig - ignoring <%s> from %s.%s, requires dll version %s",
             element.tag, module, clazz, self.resolveDll(element, dll))
コード例 #4
0
ファイル: BugConfig.py プロジェクト: keldath/kmod-adv-Doto
	def resolveDll(self, element, dll):
		dll = BugDll.decode(dll)
		inherited = element.getState("dll")
		if dll is None:
			return inherited
		if inherited is None:
			return dll
		if inherited > dll:
			BugUtil.warn("BugConfig - element <%s>.dll attribute %s overrides newer inherited dll attribute %s" % (element.tag, dll, inherited))
		return dll
コード例 #5
0
ファイル: BugConfig.py プロジェクト: AP-ML/DTM
	def resolveDll(self, element, dll):
		dll = BugDll.decode(dll)
		inherited = element.getState("dll")
		if dll is None:
			return inherited
		if inherited is None:
			return dll
		if inherited > dll:
			BugUtil.warn("BugConfig - element <%s>.dll attribute %s overrides newer inherited dll attribute %s" % (element.tag, dll, inherited))
		return dll
コード例 #6
0
 def handle(self, element, type, module, function, dll):
     dll = BugDll.decode(dll)
     if self.isDllOkay(element, dll):
         CvEventInterface.getEventManager().addEventHandler(
             type,
             BugUtil.getFunction(module, function, True, *element.args,
                                 **element.kwargs))
     else:
         BugUtil.info(
             "BugConfig - ignoring <%s> %s, requires dll version %s",
             element.tag, type, self.resolveDll(element, dll))
コード例 #7
0
ファイル: BugConfig.py プロジェクト: AP-ML/DTM
	def handle(self, element, module, function, immediate, dll):
		immediate = self.isTrue(immediate)
		dll = BugDll.decode(dll)
		if self.isDllOkay(element, dll):
			func = BugUtil.getFunction(module, function, True, *element.args, **element.kwargs)
			if immediate:
				func()
			else:
				BugInit.addInit(module, func)
		else:
			BugUtil.info("BugConfig - ignoring <%s> %s.%s, requires dll version %s", element.tag, module, function, self.resolveDll(element, dll))
コード例 #8
0
ファイル: BugConfig.py プロジェクト: keldath/kmod-adv-Doto
	def handle(self, element, module, function, immediate, dll):
		immediate = self.isTrue(immediate)
		dll = BugDll.decode(dll)
		if self.isDllOkay(element, dll):
			func = BugUtil.getFunction(module, function, True, *element.args, **element.kwargs)
			if immediate:
				func()
			else:
				BugInit.addInit(module, func)
		else:
			BugUtil.info("BugConfig - ignoring <%s> %s.%s, requires dll version %s", element.tag, module, function, self.resolveDll(element, dll))
コード例 #9
0
ファイル: InputUtil.py プロジェクト: macaurther/DOCUSA
 def handle(self, element, keys, module, function, dll):
     dll = BugDll.decode(dll)
     if self.isDllOkay(element, dll):
         CvEventInterface.getEventManager().addShortcutHandler(
             keys,
             BugUtil.getFunction(module, function, *element.args,
                                 **element.kwargs))
     else:
         BugUtil.info(
             "InputUtil - ignoring <%s> %s, requires dll version %s",
             element.tag, keys, self.resolveDll(element, dll))
コード例 #10
0
 def handle(self, element, how, module, function, toModule, asName, dll):
     dll = BugDll.decode(dll)
     if self.isDllOkay(element, dll):
         BugUtil.extendFunction(module, function, toModule, asName, how)
     else:
         BugUtil.info(
             "BugConfig - ignoring <%s> %s.%s, requires dll version %s",
             element.tag,
             module,
             function,
             self.resolveDll(element, dll),
         )
コード例 #11
0
 def handle(self, element, module, clazz, dll):
     dll = BugDll.decode(dll)
     if self.isDllOkay(element, dll):
         BugUtil.callFunction(module, clazz, CvEventInterface.getEventManager(), *element.args, **element.kwargs)
     else:
         BugUtil.info(
             "BugConfig - ignoring <%s> from %s.%s, requires dll version %s",
             element.tag,
             module,
             clazz,
             self.resolveDll(element, dll),
         )
コード例 #12
0
ファイル: BugOptions.py プロジェクト: AP-ML/DTM
	def __init__(self, mod, id, andId=None, dll=None):
		self.mod = mod
		self.id = id
		self.andId = andId
		self.andOption = None
		self.dll = BugDll.decode(dll)
		if self.dll is not None and self.dll <= 0:
			BugUtil.warn("BugOptions - %s has invalid dll value %r, ignoring", id, dll)
			self.dll = None
		self.enabled = True
		if self.dll > 0:
			if not BugDll.isVersion(self.dll):
				self.enabled = False
コード例 #13
0
 def handle(self, element, type, module, function, dll):
     dll = BugDll.decode(dll)
     if self.isDllOkay(element, dll):
         CvEventInterface.getEventManager().addEventHandler(
             type, BugUtil.getFunction(module, function, True, *element.args, **element.kwargs)
         )
     else:
         BugUtil.info(
             "BugConfig - ignoring <%s> %s, requires dll version %s",
             element.tag,
             type,
             self.resolveDll(element, dll),
         )
コード例 #14
0
	def handle(self, element, id, name, fromKey, offset, dll):
		dll = BugDll.decode(dll)
		if self.isDllOkay(element, dll):
			if not fromKey:
				if not self.lastSymbol:
					raise BugUtil.ConfigError("<%s> %s requires an offset symbol" % (element.tag, id))
				fromKey = self.lastSymbol
			if offset is None:
				offset = 1
			else:
				offset = int(offset)
			self.lastSymbol = addOffsetSymbol(id, fromKey, offset, name)
		else:
			BugUtil.info("FontUtil - ignoring <%s> %s, requires dll version %s", element.tag, id, self.resolveDll(element, dll))
コード例 #15
0
ファイル: BugGameUtils.py プロジェクト: macaurther/DOCUSA
 def handle(self, element, module, clazz, handlers, listeners, override,
            log, dll):
     override = self.isTrue(override)
     dll = BugDll.decode(dll)
     if self.isDllOkay(element, dll):
         if clazz:
             utils = BugUtil.callFunction(module, clazz)
             element.setState("gameutils", utils)
             if handlers or listeners:
                 if handlers:
                     for handler in handlers.replace(",", " ").split():
                         addHandler(BugUtil.bindFunction(utils, handler),
                                    override, log)
                 if listeners:
                     for listener in listeners.replace(",", " ").split():
                         func = None
                         if not listener.endswith(LISTENER_SUFFIX):
                             try:
                                 func = BugUtil.bindFunction(
                                     utils, listener + LISTENER_SUFFIX)
                             except BugUtil.ConfigError:
                                 pass
                         if not func:
                             try:
                                 func = BugUtil.bindFunction(
                                     utils, listener)
                             except BugUtil.ConfigError:
                                 raise BugUtil.ConfigError(
                                     "Game utils %s.%s must define function %s or %s",
                                     module, clazz, listener,
                                     listener + "Listener")
                         addListener(func, log)
             else:
                 addClassUtils(utils, override, log)
         else:
             if handlers or listeners:
                 if handlers:
                     for handler in handlers.replace(",", " ").split():
                         addHandler(BugUtil.lookupFunction(module, handler),
                                    override, log)
                 if listeners:
                     for listener in listeners.replace(",", " ").split():
                         addListener(
                             BugUtil.lookupFunction(module, listener), log)
             else:
                 addModuleUtils(BugUtil.lookupModule(module), override, log)
     else:
         BugUtil.info(
             "BugGameUtils - ignoring <%s> %s.%s, requires dll version %s",
             element.tag, module, clazz, self.resolveDll(element, dll))
コード例 #16
0
	def handle(self, element, name, type, default, module, handler, listener, log, dll):
		dll = BugDll.decode(dll)
		if self.isDllOkay(element, dll):
			utils = element.getState("gameutils")
			if utils:
				func = BugUtil.bindFunction(utils, handler)
				if listener:
					listenerFunc = BugUtil.bindFunction(utils, listener)
			elif not module:
				raise BugUtil.ConfigError("Element <%s> requires attribute module or be enclosed in <gameutils> that defines a class", element.tag)
			else:
				func = BugUtil.lookupFunction(module, handler)
				if listener:
					listenerFunc = BugUtil.lookupFunction(module, listener)
			createCallback(name, func, self.createValue(type, default), log)
			if listener:
				addNamedListener(name, listenerFunc, log)
		else:
			BugUtil.info("BugGameUtils - ignoring <%s> %s, requires dll version %s", element.tag, name, self.resolveDll(element, dll))
コード例 #17
0
	def handle(self, element, module, clazz, handlers, listeners, override, log, dll):
		override = self.isTrue(override)
		dll = BugDll.decode(dll)
		if self.isDllOkay(element, dll):
			if clazz:
				utils = BugUtil.callFunction(module, clazz)
				element.setState("gameutils", utils)
				if handlers or listeners:
					if handlers:
						for handler in handlers.replace(",", " ").split():
							addHandler(BugUtil.bindFunction(utils, handler), override, log)
					if listeners:
						for listener in listeners.replace(",", " ").split():
							func = None
							if not listener.endswith(LISTENER_SUFFIX):
								try:
									func = BugUtil.bindFunction(utils, listener + LISTENER_SUFFIX)
								except BugUtil.ConfigError:
									pass
							if not func:
								try:
									func = BugUtil.bindFunction(utils, listener)
								except BugUtil.ConfigError:
									raise BugUtil.ConfigError("Game utils %s.%s must define function %s or %s", 
											module, clazz, listener, listener + "Listener")
							addListener(func, log)
				else:
					addClassUtils(utils, override, log)
			else:
				if handlers or listeners:
					if handlers:
						for handler in handlers.replace(",", " ").split():
							addHandler(BugUtil.lookupFunction(module, handler), override, log)
					if listeners:
						for listener in listeners.replace(",", " ").split():
							addListener(BugUtil.lookupFunction(module, listener), log)
				else:
					addModuleUtils(BugUtil.lookupModule(module), override, log)
		else:
			BugUtil.info("BugGameUtils - ignoring <%s> %s.%s, requires dll version %s", element.tag, module, clazz, self.resolveDll(element, dll))
コード例 #18
0
ファイル: BugConfig.py プロジェクト: AP-ML/DTM
	def handle(self, element, module, dll):
		dll = BugDll.decode(dll)
		element.setState("dll", dll)
		if module and dll:
			BugUtil.debug("BugConfig - configuration for module %s requires DLL version %s", module, dll)
コード例 #19
0
ファイル: BugConfig.py プロジェクト: keldath/kmod-adv-Doto
	def handle(self, element, id, name, dll, author, version, build, date, url):
		dll = BugDll.decode(dll)
		element.setState("mod", BugCore.game._getMod(id))
		element.setState("dll", BugDll.decode(dll))
コード例 #20
0
ファイル: BugConfig.py プロジェクト: AP-ML/DTM
	def handle(self, element, id, name, dll, author, version, build, date, url):
		dll = BugDll.decode(dll)
		element.setState("mod", BugCore.game._getMod(id))
		element.setState("dll", BugDll.decode(dll))
コード例 #21
0
	def handle(self, element, keys, module, function, dll):
		dll = BugDll.decode(dll)
		if self.isDllOkay(element, dll):
			CvEventInterface.getEventManager().addShortcutHandler(keys, BugUtil.getFunction(module, function, *element.args, **element.kwargs))
		else:
			BugUtil.info("InputUtil - ignoring <%s> %s, requires dll version %s", element.tag, keys, self.resolveDll(element, dll))