Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
1.8 kB · 68 lines
C++
at master
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768#include "stdafx.h"#include "net.minecraft.world.entity.h"#include "net.minecraft.world.entity.ai.control.h"#include "net.minecraft.world.level.h"#include "net.minecraft.world.phys.h"#include "LookAtPlayerGoal.h"
LookAtPlayerGoal::LookAtPlayerGoal(Mob *mob, const type_info& lookAtType, float lookDistance) : lookAtType(lookAtType){ this->mob = mob; this->lookDistance = lookDistance; probability = 0.02f; setRequiredControlFlags(Control::LookControlFlag);
lookTime = 0;}
LookAtPlayerGoal::LookAtPlayerGoal(Mob *mob, const type_info& lookAtType, float lookDistance, float probability) : lookAtType(lookAtType){ this->mob = mob; this->lookDistance = lookDistance; this->probability = probability; setRequiredControlFlags(Control::LookControlFlag);
lookTime = 0;}
bool LookAtPlayerGoal::canUse(){ if (mob->getRandom()->nextFloat() >= probability) return false;
if (mob->getTarget() != NULL) { lookAt = mob->getTarget(); } if (lookAtType == typeid(Player)) { lookAt = mob->level->getNearestPlayer(mob->shared_from_this(), lookDistance); } else { lookAt = weak_ptr<Entity>(mob->level->getClosestEntityOfClass(lookAtType, mob->bb->grow(lookDistance, 3, lookDistance), mob->shared_from_this())); } return lookAt.lock() != NULL;}
bool LookAtPlayerGoal::canContinueToUse(){ if (lookAt.lock() == NULL || !lookAt.lock()->isAlive()) return false; if (mob->distanceToSqr(lookAt.lock()) > lookDistance * lookDistance) return false; return lookTime > 0;}
void LookAtPlayerGoal::start(){ lookTime = 40 + mob->getRandom()->nextInt(40);}
void LookAtPlayerGoal::stop(){ lookAt = weak_ptr<Entity>();}
void LookAtPlayerGoal::tick(){ mob->getLookControl()->setLookAt(lookAt.lock()->x, lookAt.lock()->y + lookAt.lock()->getHeadHeight(), lookAt.lock()->z, 10, mob->getMaxHeadXRot()); --lookTime;}