Repository navigation
🔖 v1.11.0 - #536
Merged
Merged
🔖 v1.11.0#536
Conversation
- it configures rig behaviour, not data pack output - still shown only when a data pack is being exported
…k aware - delegate JSON-text wrapping to book-and-quill 1.1.0, drop the local port (src/systems/jsonText/wrapping.ts) - split THREE.js text-mesh generation out of fontManager into a dedicated fontRenderer with geometry/colour/layout caches, so option-only edits skip re-parsing and re-wrapping - assetManager now reads stacked resource-pack layers and exposes a preview-pack cache-busting key, so fonts can merge providers across packs
- new Blueprint Settings "Preview" page overlays resource pack folders or .zip archives on vanilla assets, in the editor only - never exported; separate from the blueprint's own resource pack - packs stack by priority; changing them invalidates the asset caches and refreshes affected displays
- vitest can't run code that only works inside Blockbench; jestbench drives the built plugin in a real headless Blockbench - swap in jest + @swc/jest, add config files, update CI (xvfb + envbench cache) - drop the empty vitest stub test
- glyph/layout caches were keyed by Minecraft version only, so a render finishing right after a cache clear could refill them with the wrong font - a preview resource pack's custom fonts sometimes never showed up - fix: also key those caches by the active pack - expose previewResourcePack on the AnimatedJava global for the test
Fixes #525. - general, resourcepack, and misc pages rendered hardcoded English labels and descriptions instead of going through the localization system - route every visible string through createScopedTranslator, matching the already-localized datapack and rig pages - add the missing en.yml keys (target_environment, blueprint_name, resource_pack_export_mode option descriptions, resource_pack.folder/zip titles) and repoint the dead render-box keys at the copy actually shown
Fixes #315. - command keyframes and config functions (on-summon/tick/remove, variant apply, ...) are emitted verbatim into the mcb templates and only parsed during compiler.compile(), so a syntax error in any of them bubbled up as a raw MC-Build error that looked like a plugin crash - wrap compiler.compile() and rethrow as an IntentionalExportError that names the likely sources and includes the original compiler message
Fixes #528. - the 1.21.0 data pack template swapped variant models by setting the minecraft:item_model component, but that component was only added in 1.21.2, so 1.21.0/1.21.1 exports logged "invalid item" and the swap silently did nothing - swap through minecraft:custom_model_data instead, matching the 1.20.5 template and the base-model assignment already done for >= 1.20.5
Fixes #407. - the codec saved and restored bone groups but never texture groups, so on reload every texture group vanished and its textures fell back to the root of the list - save TextureGroup.all and recreate the groups before textures load, so each texture's group reference resolves
Fixes #518. - locator and interaction frame positions were rounded to 4 decimals, but the camera branch wrote raw floats, so near-zero values serialized in scientific notation (e.g. 9.217e-7) and broke the macro-driven frame and last_frame_effects functions - round the camera px/py/pz/ry/rx the same way, in every version template
Fixes #524. - plugin mode exports a JSON file, but the export-time settings check still ran validateResourcePackFolder / validateDataPackFolder, so a blank pack folder (the norm in plugin mode) failed the export with a settings error - skip the pack folder checks when enable_plugin_mode is set
Fixes #337. - internal texture names accepted any character and allowed duplicates, so an invalid or repeated name only failed much later at export - add a project mod that lowercases names, replaces anything outside [a-z0-9._-] with _, and suffixes collisions, on load, on add, and after any edit that touches textures - textures linked from a valid resource pack are referenced by resource location, not copied in, so they are left alone and may share a name with an internal texture
Fixes #396. - a bone only checked its direct parent for step / pre-post interpolation, so a deeper descendant of a stepped bone still interpolated over 1 tick in-game while its ancestor snapped - walk up to the nearest keyframed ancestor and inherit its interpolation, stopping once an ancestor with normal interpolation is found
Fixes #408. - svelte-dnd-action 0.9.47 never cancelled its auto-scroll loop when a drop happened inside the scroll zone, so the variants list kept scrolling until the app was reloaded - bump to 0.9.79, which destroys the scroller on drop
- the icon only updated on change_texture_path (fired solely by "Reopen"), add, and select, so relinking a texture or editing its path in the properties dialog left a stale icon - also refresh on finished_edit whenever the edit touched textures - drop a leftover per-texture console.log
- an internal texture (embedded in the Blueprint, no file on disk) showed Blockbench's "save" prompt, which does not apply to it - show a `box` icon for internal textures, with an explanatory tooltip; give the linked icon one too - override Texture.save() to no-op for internal and linked textures so a click on the (informational) icon does nothing, without needing pointer-events: none, which would also suppress the tooltip - override Texture.fromPath() to refresh the icon and mark the Blueprint dirty when "Save As" turns an internal texture into a file-backed one (neither fires an event) - the file-backed branch fully restores the save / check_circle state so switching away from internal cleans up
- native <select> options can't render images, so replace the two texture-map dropdowns with a small custom picker (textureSelect.svelte) that shows a checkerboard-backed thumbnail beside each option name - the menu is portalled to <body> so the dialog's scroll containers don't clip it, and closes on outside click / Escape / scroll - match by texture UUID instead of name (names are no longer unique)
- improved styling - gives players a direct link to support the project - makes Ko-fi supporters stand out from the general thanks list
- item/block/text displays can rotate and scale around a moved pivot - exported transforms fold in the pivot offset so they match the preview - fixes flipped item display animator rotation/position signs
- 2D item outlines drew one big rectangle around the whole icon
- Variant.selected kept pointing at a closed project's variant - select the default variant right away instead of a frame later
- .prettierrc already uses it for .svelte files
- unused; test-packs/latest covers manual testing
- faces assigned to a slot can switch between the slot's textures - 1.21.4+ can switch each slot on its own via texture_slots functions - variants pick a texture per slot instead of mapping textures - default variant can now be renamed - 1.11.0 blueprint upgrade migrates old texture maps - plugin JSON format v3 replaces texture_palettes with texture_slots
- SNBT text components failed to parse, so the interaction functions never loaded - helper serializes the component per target version
- fast path needs uuid() and NBT text components, both 1.21.5+ - those versions fall back to the 1.21.0 global
- item_model rewrite skipped bones that reuse the default model
- advancement entity conditions are now loot conditions - loot functions use `type` instead of `function`
- Implements #382 - Adds `tween_paused`, a function that tweens from the current pose, to the target animation, but does not play the target animation.
- Only constant tints were editable; vanilla has 8 types - Types filter by target version, since map_color is gone in 26.3 - Export fails on a tint the target version doesn't support - Dialog redesigned as a compact table that expands one tint at a time, using native Blockbench inputs - Dye/firework keep ARGB alpha (MC-278626)
- Chromium 150 (Blockbench 5.2) inserts <br> on Enter, which CodeJar drops from its value - Insert line breaks as `\n` text instead, in every CodeJar editor - Fixes #535
- Tag pushes build, test, and create a draft release with the plugin files - Publishing a release announces it on Discord with version-based role pings - Drafts post a no-ping preview to a test channel; previews can be re-run by hand - Long notes are trimmed to fit Discord's 4000-character limit - Release notes rendering moved out of the packager so the announcer can share it - Templates now link the right release, escape URLs once, and drop the stale PR note
- Variant keyframes apply several Variants in order; old keyframes migrate in 1.11.0 - Texture Slot keyframes switch slots during an animation, on 1.21.4+ only - Animate mode previews each bone from the animation's start state, leaving Edit mode alone - Each frame's effects export to one function, shared by baked, storage, and loop paths - Plugin JSON exports Variants and `variant` keyframes instead of flattening them - Keyframe panel edits are undoable and mark the project unsaved - Fix Variant keyframes never applying with storage animations - Fix last-frame Variant and function keyframes skipped in loops without a moving Locator
- Storage mode's apply_frame never called them, so they silently did nothing - Root functions now go through each frame's frame_effects, after Variants and texture slots, for every animation mode
- Nothing read the pause tag, so tween_paused behaved exactly like tween - Tag is now added after tween, since tween's pause_all clears it - play and pause_all clear a pending pause so it can't leak into later animations
- Covers Texture Slot keyframes, Variant stacks, and the keyframe fixes - Includes the other pending 1.11.0 changelog edits
- gl comes in through block-model-renderer, and CI can't compile it (no Node 24 prebuild, no X11 headers) - The plugin never uses it; Blockbench already provides WebGL - An explicit trusted list replaces Bun's default, so it keeps the other packages that ran scripts before
- Pre-approves plugin permissions, so the native prompt no longer freezes Blockbench in fresh CI environments - Actually isolates the test profile instead of using the real Blockbench one
- A hung Blockbench otherwise runs until GitHub's 6-hour limit
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.
No description provided.