Blockhaven: Java's player model, real skins, armor layers and a live inventory preview - #68
Merged
eklonofficial merged 2 commits intoOct 3, 2026
Conversation
|
@k1519035 is attempting to deploy a commit to the Marin Team on Vercel. A member of the Team first needs to authorize it. |
This was referenced Oct 3, 2026
k1519035
force-pushed
the
blockhaven-player-model
branch
from
October 3, 2026 01:27
d4c000b to
1629a0f
Compare
…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
eklonofficial
force-pushed
the
blockhaven-player-model
branch
from
October 3, 2026 14:16
2fbb712 to
1840256
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The player now uses Java 1.20.1's own player model, poses and armor layers, so real Minecraft skins and armor textures look exactly as they do in Java, in third person, in first person and in the inventory.
Player model (
js/entity/humanoid.js, new)PlayerModel's exact geometry and texture offsets on a 64×64 skin.javamodel flag makes the renderer unwrap boxes exactly asModelPart.Cubedoes.HumanoidModel.setupAnimandPlayerModel:Your own skin
HttpTexture.processLegacySkinis ported. Classic skins get their left limbs copied from the right ones (mirrored), the first layer is made opaque, and Notch's hat-transparency rule applies.Armor (
HumanoidArmorModel,HumanoidArmorLayer)textures/models/armor/<material>_layer_1|2.pngreplaces the painted layers. Leather is tinted with Java's default leather colour and its_overlayis laid on top.Inventory preview
renderEntityInInventoryFollowsMouse, the body turns up to 20° and the head up to 40° toward the pointer, tilting as it rises or falls.Fixes
drawWeather, where the player wasn't defined. It threw every frame while raining and never ran in clear weather. It now runs every frame.$&, which the packed build mangled, so the world never loaded. The same one-linetools/build.mjsfix as Blockhaven: block models in Java's element format, so pack textures map like Java #67 is included, so either PR can merge first.Testing
tests/humanoid.test.mjs(new) checks:node --test: 122 pass.mainas well (it passed here earlier today), so I'm relying on CI for it.🤖 Generated with Claude Code
https://claude.ai/code/session_01R5yMmGQVzFD1XVDyZe42KG