4jcraft/minecraft/Minecraft.Client/Common/Source Files/Tutorial/Tasks/HorseChoiceTask.cpp
2026-03-31 13:50:13 -05:00

45 lines
1.5 KiB
C++

#include <memory>
#include "Minecraft.World/net/minecraft/world/entity/animal/EntityHorse.h"
#include "HorseChoiceTask.h"
#include "Minecraft.Client/Common/Source Files/Tutorial/Tasks/ChoiceTask.h"
#include "Minecraft.World/net/minecraft/world/entity/Entity.h"
#include "java/Class.h"
class Tutorial;
HorseChoiceTask::HorseChoiceTask(Tutorial* tutorial, int iDescHorse,
int iDescDonkey, int iDescMule, int iPromptId,
bool requiresUserInput, int iConfirmMapping,
int iCancelMapping,
eTutorial_CompletionAction cancelAction)
: ChoiceTask(tutorial, -1, iPromptId, requiresUserInput, iConfirmMapping,
iCancelMapping, cancelAction) {
m_eHorseType = -1;
m_iDescMule = iDescMule;
m_iDescDonkey = iDescDonkey;
m_iDescHorse = iDescHorse;
}
int HorseChoiceTask::getDescriptionId() {
switch (m_eHorseType) {
case EntityHorse::TYPE_HORSE:
return m_iDescHorse;
case EntityHorse::TYPE_DONKEY:
return m_iDescDonkey;
case EntityHorse::TYPE_MULE:
return m_iDescMule;
default:
return -1;
}
return -1;
}
void HorseChoiceTask::onLookAtEntity(std::shared_ptr<Entity> entity) {
if ((m_eHorseType < 0) && entity->instanceof(eTYPE_HORSE)) {
std::shared_ptr<EntityHorse> horse =
std::dynamic_pointer_cast<EntityHorse>(entity);
if (horse->isAdult()) m_eHorseType = horse->getType();
}
}