mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-03-24 09:18:55 +05:00
64 lines
1.2 KiB
C++
64 lines
1.2 KiB
C++
#include "stdafx.h"
|
|
#include "com.mojang.nbt.h"
|
|
#include "net.minecraft.world.level.tile.h"
|
|
#include "net.minecraft.world.phys.h"
|
|
#include "net.minecraft.world.level.h"
|
|
#include "net.minecraft.world.damagesource.h"
|
|
#include "WaterAnimal.h"
|
|
|
|
|
|
|
|
WaterAnimal::WaterAnimal(Level *level) : PathfinderMob( level )
|
|
{
|
|
// 4J Stu - This function call had to be moved here from the Entity ctor to ensure that
|
|
// the derived version of the function is called
|
|
|
|
// This should only be called for the most derive classes
|
|
//this->defineSynchedData();
|
|
}
|
|
|
|
bool WaterAnimal::isWaterMob()
|
|
{
|
|
return true; //prevent drowning
|
|
}
|
|
|
|
bool WaterAnimal::canSpawn()
|
|
{
|
|
return level->isUnobstructed(bb);
|
|
}
|
|
|
|
int WaterAnimal::getAmbientSoundInterval()
|
|
{
|
|
return 20 * 6;
|
|
}
|
|
|
|
bool WaterAnimal::removeWhenFarAway()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
int WaterAnimal::getExperienceReward(shared_ptr<Player> killedBy)
|
|
{
|
|
return 1 + level->random->nextInt(3);
|
|
}
|
|
|
|
void WaterAnimal::baseTick()
|
|
{
|
|
int airSupply = getAirSupply();
|
|
|
|
PathfinderMob::baseTick(); // this modified the airsupply
|
|
|
|
if (isAlive() && !isInWater())
|
|
{
|
|
setAirSupply(--airSupply);
|
|
if (getAirSupply() == -20)
|
|
{
|
|
setAirSupply(0);
|
|
hurt(DamageSource::drown, 2);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
setAirSupply(TOTAL_AIR_SUPPLY);
|
|
}
|
|
} |