def start_rollback(self, connection, mapname, start_x, start_y, end_x, end_y, ignore_indestructable=True): if self.rollback_in_progress: return S_ROLLBACK_IN_PROGRESS if mapname is None: map = self.rollback_map else: try: maps = check_rotation([mapname]) if not maps: return S_INVALID_MAP_NAME map = Map(maps[0]).data except MapNotFound as error: return error.message name = (connection.name if connection is not None else S_AUTOMATIC_ROLLBACK_PLAYER_NAME) message = S_ROLLBACK_COMMENCED.format(player=name) self.send_chat(message, irc=True) self.packet_generator = self.create_rollback_generator( self.map, map, start_x, start_y, end_x, end_y, ignore_indestructable) self.rollback_in_progress = True self.rollback_start_time = time.time() self.rollback_last_chat = self.rollback_start_time self.rollback_rows = 0 self.rollback_total_rows = end_x - start_x self.cycle_call = LoopingCall(self.rollback_cycle) self.cycle_call.start(self.rollback_time_between_cycles)
def get_map(self, rot_info: RotationInfo) -> Map: """ Creates and returns a Map object from rotation info """ return Map(rot_info, os.path.join(config.config_dir, 'maps'))
def get_map(self, rot_info): return Map(rot_info, os.path.join(cfg.config_dir, 'maps'))