void PlanetManagerImplementation::scheduleShuttle(CreatureObject* shuttle, int shuttleType) {
	Locker clocket(_this.getReferenceUnsafeStaticCast(), shuttle);

	const uint64 oid = shuttle->getObjectID();

	if (shuttleMap.contains(oid)) {
		// this shuttle is already known, no need for a 2nd task
		return;
	}

	shuttle->setPosture(CreaturePosture::UPRIGHT);

	ShuttleDepartureTask* task = new ShuttleDepartureTask(shuttle);

	switch (shuttleType) {
	case SHUTTLEPORT:
		task->setLandedTime(shuttleportLandedTime);
		task->setLandingTime(shuttleportLandingTime);
		task->setDepartedTime(shuttleportAwayTime);
		break;
	case STARPORT:
		task->setLandedTime(starportLandedTime);
		task->setLandingTime(starportLandingTime);
		task->setDepartedTime(starportAwayTime);
		break;
	}

	task->schedule((task->getLandedTime() + task->getLandingTime()) * 1000);

	shuttleMap.put(oid, task);
}
void PlanetManagerImplementation::scheduleShuttle(CreatureObject* shuttle, int shuttleType) {
	Locker locket(_this.get());

	shuttle->setPosture(CreaturePosture::UPRIGHT);

	ShuttleDepartureTask* task = new ShuttleDepartureTask(shuttle);

	switch (shuttleType) {
	case SHUTTLEPORT:
		task->setLandedTime(shuttleportLandedTime);
		task->setLandingTime(shuttleportLandingTime);
		task->setDepartedTime(shuttleportAwayTime);
		break;
	case STARPORT:
		task->setLandedTime(starportLandedTime);
		task->setLandingTime(starportLandingTime);
		task->setDepartedTime(starportAwayTime);
		break;
	}

	task->schedule((task->getLandedTime() + task->getLandingTime()) * 1000);

	shuttleMap.put(shuttle->getObjectID(), task);
}