Merge pull request 'fix: zombie villager + flint and steel ignition' (#30) from Fireblade/neoLegacy:main into main

Reviewed-on: https://git.neolegacy.dev/neoStudiosLCE/neoLegacy/pulls/30
This commit is contained in:
Fireblade
2026-07-07 00:47:12 +01:00
4 changed files with 49 additions and 2 deletions

View File

@@ -14,15 +14,61 @@ void VillagerZombieModel::_init(float g, float yOffset, bool isArmor)
}
else
{
delete pants0;
delete pants1;
delete jacket;
head = new ModelPart(this);
head->setPos(0, 0 + yOffset, 0);
head->texOffs(0, 32)->addBox(-4, -10, -4, 8, 10, 8, g);
head->texOffs(24, 32)->addBox(-1, -3, -6, 2, 4, 2, g);
}
delete body;
body = new ModelPart(this, 16, 16);
body->addBox(-4, 0, -2, 8, 12, 4, g);
body->setPos(0, 0 + yOffset, 0);
delete arm0;
arm0 = new ModelPart(this, 40, 16);
arm0->addBox(-3, -2, -2, 4, 12, 4, g);
arm0->setPos(-5, 2 + yOffset, 0);
pants0 = new ModelPart(this, 40, 16);
pants0->addBox(0, 0, 0, 0, 0, 0, g);
pants0->setPos(0, 0 + yOffset, 0);
pants1 = new ModelPart(this, 40, 16);
pants1->addBox(0, 0, 0, 0, 0, 0, g);
pants1->setPos(0, 0 + yOffset, 0);
delete arm1;
arm1 = new ModelPart(this, 40, 16);
arm1->bMirror = true;
arm1->addBox(-1, -2, -2, 4, 12, 4, g);
arm1->setPos(5, 2 + yOffset, 0);
delete leg0;
leg0 = new ModelPart(this, 0, 16);
leg0->addBox(-2, 0, -2, 4, 12, 4, g);
leg0->setPos(-1.9f, 12 + yOffset, 0);
delete leg1;
leg1 = new ModelPart(this, 0, 16);
leg1->bMirror = true;
leg1->addBox(-2, 0, -2, 4, 12, 4, g);
leg1->setPos(1.9f, 12 + yOffset, 0);
}
// 4J added - compile now to avoid random performance hit first time cubes are rendered
head->compile(1.0f/16.0f);
if (!isArmor)
{
body->compile(1.0f/16.0f);
arm0->compile(1.0f/16.0f);
arm1->compile(1.0f/16.0f);
leg0->compile(1.0f/16.0f);
leg1->compile(1.0f/16.0f);
}
}
VillagerZombieModel::VillagerZombieModel() : HumanoidModel(0, 0, 64, 64)

View File

@@ -99,6 +99,7 @@ void ZombieRenderer::swapArmor(shared_ptr<Zombie> mob)
}
humanoidModel = static_cast<HumanoidModel *>(model);
resModel = model;
}
void ZombieRenderer::setupRotations(shared_ptr<LivingEntity> _mob, float bob, float bodyRot, float a)

View File

@@ -188,7 +188,7 @@ void Skeleton::dropDeathLoot(bool wasKilledByPlayer, int playerBonusLevel)
{
if (getSkeletonType() == TYPE_WITHER)
{
// drop some arrows
// drop some coal
int count = random->nextInt(3 + playerBonusLevel) - 1;
for (int i = 0; i < count; i++)
{