the whole game

This commit is contained in:
Kolyah35
2026-03-02 22:04:18 +03:00
parent 816e9060b4
commit f0617a5d22
2069 changed files with 581500 additions and 0 deletions

View File

@@ -0,0 +1,113 @@
#include "Chicken.h"
#include "../../item/Item.h"
#include "../../level/Level.h"
Chicken::Chicken( Level* level )
: super(level),
sheared(false),
flap(0),
oFlap(0),
flapSpeed(0),
oFlapSpeed(0),
flapping(1),
eggTime(0)
{
entityRendererId = ER_CHICKEN_RENDERER;
textureName = "mob/chicken.png";
setSize(0.3f, 0.7f);
eggTime = random.nextInt(SharedConstants::TicksPerSecond * 60 * 5) + SharedConstants::TicksPerSecond * 60 * 5;
}
int Chicken::getEntityTypeId() const
{
return MobTypes::Chicken;
}
int Chicken::getMaxHealth()
{
return 4;
}
void Chicken::aiStep()
{
super::aiStep();
oFlap = flap;
oFlapSpeed = flapSpeed;
flapSpeed += (onGround ? -1 : 4) * 0.3f;
if (flapSpeed < 0) flapSpeed = 0;
if (flapSpeed > 1) flapSpeed = 1;
if (!onGround && flapping < 1) flapping = 1;
flapping *= 0.9f;
if (!onGround && yd < 0) {
yd *= 0.6f;
}
flap += flapping * 2;
//@todo
//if (!isBaby()) {
// if (!level->isClientSide && --eggTime <= 0) {
// level->playSound(this, "mob.chickenplop", 1.0f, (random.nextFloat() - random.nextFloat()) * 0.2f + 1.0f);
// spawnAtLocation(Item::egg->id, 1);
// eggTime = random.nextInt(SharedConstants::TicksPerSecond * 60 * 5) + SharedConstants::TicksPerSecond * 60 * 5;
// }
//}
}
void Chicken::addAdditonalSaveData( CompoundTag* tag )
{
super::addAdditonalSaveData(tag);
}
void Chicken::readAdditionalSaveData( CompoundTag* tag )
{
super::readAdditionalSaveData(tag);
}
void Chicken::causeFallDamage( float distance )
{
}
const char* Chicken::getAmbientSound()
{
return "mob.chicken";
}
std::string Chicken::getHurtSound()
{
return "mob.chickenhurt";
}
std::string Chicken::getDeathSound()
{
return "mob.chickenhurt";
}
//int Chicken::getDeathLoot()
//{
// return Item::feather->id;
//}
void Chicken::dropDeathLoot( /*bool wasKilledByPlayer, int playerBonusLevel*/ )
{
//// drop some feathers
int count = random.nextInt(3);// + random.nextInt(1 + playerBonusLevel);
for (int i = 0; i < count; i++) {
spawnAtLocation(Item::feather->id, 1);
}
//// and some meat
//if (isOnFire()) spawnAtLocation(Item::chicken_cooked->id, 1); //@fire
//else
spawnAtLocation(Item::chicken_raw->id, 1);
}
Animal* Chicken::getBreedOffspring( Animal* target )
{
return new Chicken(level);
}