def _load(self, db, worldid, success_callback, failure_callback): db_result = db("SELECT land_manager, ship, warehouse_builder, state FROM ai_mission_found_settlement WHERE rowid = ?", worldid)[0] self.land_manager = WorldObject.get_object_by_id(db_result[0]) self.warehouse_location = Builder.load(db, db_result[2], self.land_manager) self.warehouse = None self.state = self.missionStates[db_result[3]] super(FoundSettlement, self).load(db, worldid, success_callback, failure_callback, WorldObject.get_object_by_id(db_result[1])) if self.state == self.missionStates.moving: self.ship.add_move_callback(Callback(self._reached_destination_area)) self.ship.add_blocked_callback(Callback(self._move_to_destination_area)) else: assert False, 'invalid state'