def __init__(self, args): """ BoomBoomClient constructor. @param host: Server hostname. @type host: C{str} @param display_port: Server port for "display"/"view" connection. @type display_port: C{int} @param input_port: Server port for "input" connection. @type input_port: C{int} @param verbose: Verbose mode flag. @type verbose: C{bool} @param debug: Debug mode flag. @type debug: C{bool} @param max_fps: Maximal number of frames per second, for optimization. @type max_fps: C{int} """ args["protocol"] = protocol.loadProtocol("protocol.xml") args["features"] = ["game"] # Constant features Happyboom.__init__(self, args) EventListener.__init__(self, prefix="evt_") self.display = Display(args) self.input = Input(args) self.__verbose = args.get("verbose", False) self.registerEvent("happyboom") self.registerEvent("game")
def __init__(self, args): """ BoomBoomDisplay constructor. @param host: Server hostname. @type host: C{str} @param port: Server port for "display"/"view" connection. @type port: C{int} @param name: Name of the client (as known by the server). @type name: C{string} @param verbose: Verbose mode flag. @type verbose: C{bool} @param debug: Debug mode flag. @type debug: C{bool} @param max_fps: Maximal number of frames per second, for optimization. @type max_fps: C{int} """ EventListener.__init__(self) self.registerEvent("graphical") # Current offscreen self._screen = None max_fps = args.get("max_fps", 25) self._frameTime = 1.0 / max_fps self._items = [] self.__stopped = False self.__stoplock = thread.allocate_lock()
def __init__(self, id=None): """ BoomBoomItem constructor. """ EventListener.__init__(self, "evt_") EventLauncher.__init__(self) self.visual = None self.launchEvent("graphical", "item", self) self.id = id
def __init__(self, type, gateway, **args): EventLauncher.__init__(self) EventListener.__init__(self) ActionAgent.__init__(self, prefix="msg_") self._gateway = gateway self.type = type self.__debug = args.get("debug", False) self.sendBroadcast = self.sendBroadcastMessage
def __init__(self, protocol, presentation, client_manager, arg): EventListener.__init__(self, "evt_") Agent.__init__(self, self, "gateway") self.__protocol = protocol self.client_manager = client_manager self.presentation = presentation self.presentation.gateway = self self.presentation.client_manager = self.client_manager self.client_manager.presentation = self.presentation self.__server = None self._debug = arg.get("debug", False) self._verbose = arg.get("verbose", False) self.__scheduler = DummyScheduler(sleep=0.01) self.registerEvent("happyboom") Kernel().addAgent(self.__scheduler)
def __init__(self, args): """ BoomBoomDrawer constructor. @param max_fps: Maximal number of frames per second, for optimization. @type max_fps: C{int} """ EventListener.__init__(self, prefix="evt_") # Current offscreen self.__screen = None max_fps = args.get("max_fps", 25) self.__frameTime = 1.0 / max_fps self.__items = [] self.registerEvent("graphical") self.window = args["window"] self.__stopped = False self.__stoplock = thread.allocate_lock() self.__itemlock = thread.allocate_lock()
def __init__(self, protocol, args): EventLauncher.__init__(self) EventListener.__init__(self, "evt_") self.protocol = protocol self.launchEvent("happyboom", "register", "connection", self.processConnection) self.launchEvent("happyboom", "register", "disconnection", self.processDisconnection) self.launchEvent("happyboom", "register", "create_item", self.processCreateItem) self.launchEvent("happyboom", "register", "destroy_item", self.processDestroyItem) self.launchEvent("happyboom", "register", "recv_event", self.processEvent) self.registerEvent("happyboom") self.verbose = args.get("verbose", False) self.debug = args.get("debug", False) self.features = {} for feat in args.get("features", ()): self.features[feat] = None self.items = {} itemPath = args["item_path"] dirs = itemPath.split(os.path.sep) if dirs[-1] == "": dirs = dirs[:-1] packagePath = None try: for d in dirs: #print "imp.find_module(%s, %s)" %(repr(modName), repr(modDir)) f, fname, desc = imp.find_module(d, packagePath) self.module = imp.load_module(d, f, fname, desc) packagePath = self.module.__path__ except: raise Exception("[HAPPYBOOM] Invalid item path : %s" % itemPath) import types for attr in self.module.__dict__: if type(self.module.__dict__[attr]) == types.ClassType: itemClass = self.module.__dict__[attr] if hasattr(itemClass, "feature"): feat = getattr(itemClass, "feature") if feat != None: if feat in self.features: raise Exception( "[HAPPYBOOM] Duplicated feature %s in %s and %s classes" % (feat, itemClass.__name__, self.features[feat].__name__)) self.features[feat] = itemClass
def __init__(self, args): EventListener.__init__(self) EventLauncher.__init__(self) self.host = args.get("host", "127.0.0.1") self.port = args.get("port", 12430) self.verbose = args.get("verbose", False) self.debug = args.get("debug", False) protocol = args.get("protocol", None) self._io = IO_TCP() self._io.verbose = False # self.verbose self._io.debug = False # self.debug self.__stopped = False self.__stoplock = thread.allocate_lock() self.signature = None self.presentation = HappyboomProtocol(protocol, args) self.gateway = Gateway(protocol, args) self.registerEvent("happyboom")
def __init__(self, arg): """ BoomBoomInput constructor. @param host: Server hostname. @type host: C{str} @param port: Server port for "input" connection. @type port: C{int} @param name: Name of the client (as known by the server). @type name: C{string} @param verbose: Verbose mode flag. @type verbose: C{bool} @param debug: Debug mode flag. @type debug: C{bool} """ EventLauncher.__init__(self) EventListener.__init__(self) self.weapon_angle = None self.weapon_strength = None self.registerEvent("weapon")
def __init__(self, protocol, args): EventListener.__init__(self) self.protocol = protocol self.items = {} self._unpackFunc = {} self.registerEvent("happyboom") self.verbose = args.get("verbose", False) # Event (IO_Client client, str version, str signature) self._on_connection = None # Event (IO_Client client, str features) self._on_features = None # Event (IO_Client client) self._on_disconnection = None # Event (IO_Client client, str feature, str event, str arguments) self._on_recv_event = None # Event (IO_Client client, str type, int id) self._on_create_item = None # Event (IO_Client client, int id) self._on_destroy_item = None
def __init__(self, protocol, args): EventLauncher.__init__(self) EventListener.__init__(self, "evt_") self.protocol = protocol self.launchEvent("happyboom", "register", "connection", self.processConnection) self.launchEvent("happyboom", "register", "disconnection", self.processDisconnection) self.launchEvent("happyboom", "register", "create_item", self.processCreateItem) self.launchEvent("happyboom", "register", "destroy_item", self.processDestroyItem) self.launchEvent("happyboom", "register", "recv_event", self.processEvent) self.registerEvent("happyboom") self.verbose = args.get("verbose", False) self.debug = args.get("debug", False) self.features = {} for feat in args.get("features", ()): self.features[feat] = None self.items = {} itemPath = args["item_path"] dirs = itemPath.split(os.path.sep) if dirs[-1] == "": dirs = dirs[:-1] packagePath = None try: for d in dirs: #print "imp.find_module(%s, %s)" %(repr(modName), repr(modDir)) f, fname, desc = imp.find_module(d, packagePath) self.module = imp.load_module(d, f, fname, desc) packagePath = self.module.__path__ except: raise Exception("[HAPPYBOOM] Invalid item path : %s" %itemPath) import types for attr in self.module.__dict__: if type(self.module.__dict__[attr]) == types.ClassType: itemClass = self.module.__dict__[attr] if hasattr(itemClass, "feature"): feat = getattr(itemClass, "feature") if feat != None: if feat in self.features: raise Exception("[HAPPYBOOM] Duplicated feature %s in %s and %s classes" %(feat, itemClass.__name__, self.features[feat].__name__)) self.features[feat] = itemClass