the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 36 lines 1.1 kB view raw
1#include "stdafx.h" 2#include "net.minecraft.world.entity.h" 3#include "net.minecraft.world.entity.animal.h" 4#include "OwnerHurtTargetGoal.h" 5 6OwnerHurtTargetGoal::OwnerHurtTargetGoal(TamableAnimal *tameAnimal) : TargetGoal(tameAnimal, 32, false) 7{ 8 this->tameAnimal = tameAnimal; 9 setRequiredControlFlags(TargetGoal::TargetFlag); 10 timestamp = 0; 11} 12 13bool OwnerHurtTargetGoal::canUse() 14{ 15 if (!tameAnimal->isTame()) return false; 16 shared_ptr<LivingEntity> owner = dynamic_pointer_cast<LivingEntity>( tameAnimal->getOwner() ); 17 if (owner == NULL) return false; 18 ownerLastHurt = weak_ptr<LivingEntity>(owner->getLastHurtMob()); 19 int ts = owner->getLastHurtMobTimestamp(); 20 shared_ptr<LivingEntity> locked = ownerLastHurt.lock(); 21 return ts != timestamp && canAttack(locked, false) && tameAnimal->wantsToAttack(locked, owner); 22} 23 24void OwnerHurtTargetGoal::start() 25{ 26 mob->setTarget(ownerLastHurt.lock()); 27 28 shared_ptr<LivingEntity> owner = dynamic_pointer_cast<LivingEntity>( tameAnimal->getOwner() ); 29 if (owner != NULL) 30 { 31 timestamp = owner->getLastHurtMobTimestamp(); 32 33 34 TargetGoal::start(); 35 } 36}