# coding=utf-8 from ...BlueFoxTools.ModConfig import MOD_NAME from ...BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxClientSystem from ...BlueFoxTools.SystemTools import SystemTools from ...BlueFoxTools.ToolsConfig import * from ...BlueFoxTools.EventFilter import BlueFoxFilterEnum as ef class MainClient(BlueFoxClientSystem): systemTools = SystemTools.GetTools('MainClient') mcListener = systemTools.ListenForEvent() blueFoxListener = systemTools.GetBlueFoxServerListener() mainServer = systemTools.ListenForEvent( namespace=MOD_NAME, systemName='MainServer' ) blockUseListener = systemTools.FilterListener(eventName='ClientItemUseOnEvent') def __init__(self, *args): super(MainClient, self).__init__(*args) self.systemTools.Binding(self) self.usingCd = False @blueFoxListener def PlaySound(self, args): posDim = args['posDim'] pitch = args['pitch'] if posDim[3] == clientCompFactory.CreateGame(LevelId).GetCurrentDimension(): clientCompFactory.CreateCustomAudio(LevelId).PlayCustomMusic( args['soundName'], posDim[:3], pitch=pitch ) @blockUseListener(ef.ClientEvent.NormalEvent.NotInCd('rtdd:ItemUseOnEvent', 0.2)) def ClientItemUseOnEventNotInCd02(self, args): if args['itemName'] == 'rtdd:recipe_book': clientApi.PushScreen(MOD_NAME, 'CookRecipe', {}) @blueFoxListener def PlayAttackAnim(self, args): clientCompFactory.CreatePlayer(LevelId).Swing()