Skip to content

Blockhaven: zombies and skeletons on Java's models, and a pack built from your own game - #69

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

eklonofficial merged 3 commits into
eklonofficial:mainfrom
k1519035:blockhaven-mobs-undead

Conversation

@k1519035

@k1519035 k1519035 commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

This is the first batch of mobs on Java 1.20.1's own models, plus a way to test with the official textures without committing them.

Builds on #68 (Java's player model and java unwrap). Until #68 merges, this PR also shows its commits; only the last commit is new.

Undead (zombie, husk, drowned, skeleton, stray, wither skeleton)

  • Meshes and texture layouts: Java's exact meshes (ZombieModel, DrownedModel, SkeletonModel), via a new mobHumanoid() in entity/humanoid.js.
    • Zombies mirror their left limbs.
    • The drowned has its own left arm and leg.
    • Skeletons have 2-px limbs with legs 2 px out.
    • 64×32 textures fill the top half of a layer.
  • Poses: HumanoidModel.setupAnim plus each mob's own arms.
    • animateZombieArms: held out, higher while hunting, chopping on a hit.
    • The skeleton aims its bow along its gaze, or reaches with both arms when fighting without one.
    • The drowned raises its trident to throw.
    • Arm bob.
    • Armor and held items follow the new pivots.
  • Painted skins: the existing procedural skins are painted into Java's layouts.
  • Pack textures: each model names its pack image (entity/zombie/zombie, entity/skeleton/stray, ...), so a resource pack's textures/entity replaces the paint (readEntityTexture, scaled to 64 wide for HD packs).
  • Outer layers: the stray's clothing (StrayClothingLayer, 0.25 px out) and the drowned's outer layer (DrownedOuterLayer) are drawn as Java does. They're clear unless the pack supplies them.
  • Size: husks are drawn 1.0625× as in Java.

Official textures without committing them: tools/pack-from-jar.mjs

  • node docs/games/blockhaven/tools/pack-from-jar.mjs builds ~/Downloads/blockhaven-vanilla-1.20.1.zip from the player's own installed client jar. It looks in the Minecraft launcher, the Modrinth App, Prism Launcher and CurseForge, and otherwise downloads the client from Mojang the way the launcher does.
  • The zip contains assets/minecraft/textures and a pack.mcmeta.
  • Load it on any build (including the deployed site) with Options › Resource Packs.... It stays in that browser.
  • Nothing from Mojang is in the repository.
  • The script has no dependencies (its own zip reader and writer).

Testing

  • tests/humanoid.test.mjs gains checks on the mob meshes (mirroring, the drowned's own limbs, skeleton limbs, texture names, outer layers), the zombie arm heights, and the skeleton's bow aim.
  • node --test: 124 pass.
  • By eye (headless Edge):
    • All six mobs, painted and with a pack built by the script from the official 1.20.1 jar (local only).
    • Poses side-on: idle and hunting zombie arms, skeleton bow, wither skeleton melee, drowned trident.
    • All six summoned in a world.

🤖 Generated with Claude Code

https://claude.ai/code/session_01R5yMmGQVzFD1XVDyZe42KG

Copilot AI balanced review requested due to automatic review settings October 3, 2026 00:34
@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 3 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
@eklonofficial
eklonofficial force-pushed the blockhaven-mobs-undead branch from cd44298 to 1ae268d Compare October 3, 2026 14:16
@eklonofficial
eklonofficial merged commit 49c4d5f into eklonofficial:main Oct 3, 2026
2 of 3 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