Skip to content

Blockhaven: farm and wild animals on Java's models - #71

Merged
eklonofficial merged 6 commits into
eklonofficial:mainfrom
k1519035:blockhaven-mobs-animals
Oct 3, 2026
Merged

eklonofficial merged 6 commits into
eklonofficial:mainfrom
k1519035:blockhaven-mobs-animals

Conversation

@k1519035

@k1519035 k1519035 commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

This is the third batch of mobs on Java 1.20.1's own models: the farm and wild animals.

Builds on #70 (and #69, #68). Until those merge, this PR also shows their commits; only the last commit is new.

Models (entity/animals.js, new)

Mob Java model Pack texture
Pig PigModel (QuadrupedModel, 6-tall legs, snout) pig/pig
Cow, mooshroom CowModel (horns, udder, mirrored left legs) cow/cow, cow/red_mooshroom
Sheep SheepModel + SheepFurModel (wool 1.75 px out, tinted by colour, gone when sheared) sheep/sheep, sheep/sheep_fur
Chicken ChickenModel (beak, wattle, wings, thin legs) chicken
Wolf WolfModel (head in a turning holder, mane, tail) wolf/wolf, wolf_tame, wolf_angry
Fox FoxModel (48×32) fox/fox
Polar bear PolarBearModel (128×64) bear/polarbear
Goat GoatModel (horns, goatee, angled nose) goat/goat
Llama LlamaModel (128×64) llama/creamy
Horse, donkey HorseModel / DonkeyModel (neck holding head, mouth and mane; donkey's long ears) horse/horse_brown, horse/donkey
  • Painted defaults: each animal keeps its painted look. A small adapter takes the styles off the old box model part by part and paints them into Java's layout. The chicken's leg is painted as Java's texture is (a thin stalk with toes in a 3×3 box).
  • Mooshroom mushrooms: red mushroom block models placed as MushroomCowMushroomLayer places them, two on the back and one following the head.

Poses

  • QuadrupedModel.setupAnim: head look, and legs swinging in diagonal pairs.
  • Chickens: beat their wings while off the ground (ChickenRenderer.getBob).
  • Wolves (WolfModel):
    • Tail wags while walking, raised when angry, and held lower the more a tame wolf is hurt.
    • Java's sitting pose.
    • Tame and angry wolves wear their own textures (WolfRenderer).
  • Horses: the neck tilts down 30° and follows the gaze, legs move in pairs, and the tail lifts with speed.

Testing

  • tests/animals.test.mjs (new) checks:
    • Every animal's texture and Java texture size, the wool layer and the wolf skins.
    • The pig snout, cow horns, udder and mirrored legs.
    • Diagonal leg pairs.
    • The tame wolf's tail by health, and the sitting pose.
    • The chicken's wing flap.
  • node --test: 133 pass.
  • By eye (headless Edge):
    • All twelve, painted and with a pack built by tools/pack-from-jar.mjs from the official 1.20.1 jar (local only).
    • Close-ups of each, the wolf from behind and sitting, and the goat and fox side-on.
    • Summoned in a world with no errors.

🤖 Generated with Claude Code

https://claude.ai/code/session_01R5yMmGQVzFD1XVDyZe42KG

Copilot AI balanced review requested due to automatic review settings October 3, 2026 01:45
@vercel

vercel Bot commented Oct 3, 2026

Copy link
Copy Markdown

@k1519035 is attempting to deploy a commit to the Marin Team on Vercel.

A member of the Team first needs to authorize it.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

k1519035 and others added 6 commits October 3, 2026 09:14
…inventory preview

The player is Java's PlayerModel (64x64 skin with its outer layer, slim arms) unwrapped
exactly as ModelPart.Cube, posed by a port of HumanoidModel.setupAnim. Players can load
their own Minecraft skin (64x64 or classic 64x32). Armor is Java's two-layer armor model,
using a pack's textures/models/armor when present. The inventory shows the live model
turned towards the pointer. Also fixes the elytra wind code throwing in the rain.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5yMmGQVzFD1XVDyZe42KG
Its angles came out NaN until the first mouse move, so the preview stayed empty.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5yMmGQVzFD1XVDyZe42KG
…from your own game

Zombie, husk, drowned, skeleton, stray and wither skeleton use Java's ZombieModel,
DrownedModel and SkeletonModel meshes and texture layouts, posed by HumanoidModel.setupAnim
with Java's zombie and skeleton arm animations. A resource pack's entity textures replace
their painted skins, and the stray's clothes and the drowned's outer layer are drawn as in
Java. tools/pack-from-jar.mjs builds a resource pack of the official textures from the
player's own installed Minecraft (launcher, Modrinth, Prism or CurseForge), never committed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5yMmGQVzFD1XVDyZe42KG
Villagers (with their biome and profession layers), wandering traders, zombie villagers,
witches, pillagers, vindicators, evokers, piglins and zombified piglins use Java's
VillagerModel, WitchModel, IllagerModel, PiglinModel and ZombieVillagerModel, posed by
their setupAnim (folded arms, spellcasting, crossbows, axe swings, flapping ears). Entity
texture layers grow to 128x128 so Java's taller textures (the witch's 64x128) fit, and a
model face's painted decoration no longer spills onto another face's pixels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5yMmGQVzFD1XVDyZe42KG
Pig, cow, mooshroom, sheep (with its tinted wool layer), chicken, wolf (tame and angry
skins, sitting), fox, polar bear, goat, llama, horse and donkey use Java's model geometry
and texture layouts, posed by their setupAnim; mooshrooms carry Java's mushrooms. Their
painted looks carry over, and a resource pack's textures/entity images replace them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5yMmGQVzFD1XVDyZe42KG
Checked every model against the LayerDefinitions 1.20.1 builds: quadruped legs share one
unmirrored texture, the goat's ears are 3 wide and its goatee mirrored, and armor legs are
inflated 0.1 less than the rest (HumanoidArmorModel).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5yMmGQVzFD1XVDyZe42KG
@eklonofficial
eklonofficial force-pushed the blockhaven-mobs-animals branch from 166acd2 to 4bc15bd Compare October 3, 2026 14:16
@eklonofficial
eklonofficial merged commit 0bf62e0 into eklonofficial:main Oct 3, 2026
3 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants