Code:
#@../root/ui.py
#@Search for:
def RegisterToolTipWindow(type, createToolTipWindow):
createToolTipWindowDict[type]=createToolTipWindow
#@Add after:
#######################################
#### START OF REGISTER STRUCT CLASS ####
"""
How To Use Ex:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@E.g #1:
class ZodiacTempleToolTipBoard(ui.ThinBoard):
CONFIG = ui.RegisterStructClass('TOOLTIP_BASE_POS TOOLTIP_WIDTH TOOLTIP_HEIGHT TOOLTIP_DEFAULT_SIZE_DICT '
'TOOLTIP_TOP_RANK_LIST TOOLTIP_ADD_STRING')(100, 450, 300, {'w': 400, 'h': 500}, [1, 2, 3], 'String')
def __mem_func__(self):
print (self.CONFIG.TOOLTIP_BASE_POS, self.CONFIG.TOOLTIP_WIDTH, self.CONFIG.TOOLTIP_HEIGHT, self.CONFIG.TOOLTIP_ADD_STRING)
print (self.CONFIG.TOOLTIP_DEFAULT_SIZE_DICT.get('w'), self.CONFIG.TOOLTIP_DEFAULT_SIZE_DICT.get('h'))
print self.CONFIG.TOOLTIP_TOP_RANK_LIST
@E.g #2:
self.Transfer(ui.RegisterStructClass('szName lX lY')(player.GetName(), player.GetX(), player.GetY())) # TPacketGGTransfer
def Transfer(self, c_pData):
print(c_pData.szName, c_pData.lX, c_pData.lY)
@E.g #3:
pack = ui.RegisterStructClass('a b c')(15, {}, [])
pack.a += 50
pack.b.update({0: 250})
pack.c.append(100)
print (pack.a, pack.b, pack.c)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"""
def RegisterStructClass(obj):
import exception
if (not isinstance(obj, str)):
exception.Abort('RegisterStructClass:: Objects {0} need to be as {1}.'.format(type(obj), type(str)))
def register(self, * kwargs):
args = obj.split()
if (len(args) <> len(kwargs)):
exception.Abort('RegisterStructClass:: Failed to read arguments.')
[self.__dict__.setdefault(key, value) for (key, value) in zip(args, kwargs)]
return type('__struct__', (object, ), {'__init__': register})
######################################
#### END OF REGISTER STRUCT CLASS ####







