render entities from vanilla client models, add items, displays and leashes

- dump entity models straight from the unobfuscated client jar
  (tools/VanillaModelDump.java, tools/update-vanilla-models.sh): models posed
  by vanilla setupAnim, baby/variant/layer models, renderer transforms,
  default textures, pose variants (sitting, holding items, illager arms)
  and all layer definitions; the old CEM template is only a fallback now
- fix adult zombies captured as babies, zero-thickness planes (wings,
  fins) and back faces in the entity intersector
- held items, head items (pumpkins, skulls), shields, elytra, saddles and
  body equipment for every mount, armor following the pose
- block/item/text display entities, dropped items, falling blocks, primed
  TNT, minecart contents, block entities inside displays, leash ropes
- item models resolved from the 26.x item definitions with display
  transforms; generated items extruded like vanilla
- bundle the vanilla font definitions as fallback so sign/text rendering
  works with packs that lack font/*.json
- one failing entity no longer aborts the whole photo
- edge-case test plugin (tools/edgecase-plugin) and offline harnesses
This commit is contained in:
MineTec committed 2026-11-04 13:11:39 +01:00
1 parent 5904814e69
commit 32afe08f03
41 files changed
+3761 -370

No files matched your search

+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env bash
# Builds the edge-case test plugin (PPTest.jar) against the compiled PixelPics classes.
# Usage: ./gradlew compileJava && tools/edgecase-plugin/build.sh <compile-classpath> [out.jar]
# (classpath = paper-api + its deps, e.g. the Gradle compileClasspath joined with ":")
# Then drop the jar into the TEST server's plugins/ (never production), start the server and run
# `pptest all` (or `pptest <scene>`) in its console; renders land in plugins/PPTest/<scene>.png.
# Scenes are built at world (5000 + i*64, 200, 5000) on stone platforms; see PPTest#onEnable.
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
API="${1:?compile classpath (paper-api + deps)}"
OUT="${2:-$ROOT/build/PPTest.jar}"
JAVAC="${JAVAC:-javac}"
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
"$JAVAC" -nowarn -d "$TMP" -cp "$ROOT/build/classes/java/main:$API" "$ROOT/tools/edgecase-plugin/pptest/PPTest.java"
cp "$ROOT/tools/edgecase-plugin/plugin.yml" "$TMP/"
(cd "$TMP" && zip -q -r "$OUT" .)
echo "Wrote $OUT"