1.1.0
Curse Maven Snippet
What's new
v1.1.0
Additions
- Added bone hitboxes. Entities can now define hitboxes that follow bones in their model, rotate with them, and stay in sync with whatever animation is playing. Implement
AzHitboxHolderand return anAzHitboxSetto use them. - Hitboxes can fit a bone's cubes automatically or use an explicit size, offset and inflate in Blockbench pixels, and several hitboxes can share one bone.
- Hitboxes have three roles.
COMBAThitboxes take crosshair targeting, projectiles and damage.INTERACThitboxes can be right-clicked to trigger custom logic without affecting combat.ANCHORhitboxes can't be hit and exist only to track a bone's position.
- Melee hits, projectile hits and right-clicks report which hitbox they landed on, so damage can be scaled per hitbox (headshots, armoured plates, weak points).
- Hitboxes are drawn with F3 + B, colored by role and damage multiplier.
- Clients report animated poses to the server, so server-side checks such as projectiles and AI attacks line up with what players see.
- Entities that a nearby player isn't looking at still have their hitboxes posed and reported, so server-side checks keep working behind the camera.
- Added a Bone Hitboxes page to the docs.
- First-person item arms now render the player's worn chestplate sleeve, supporting vanilla armor (including dye and enchantment glint) and AzureLib armor.
Fixes
- Fixed animated textures causing large frame-time spikes and heavy memory churn. Each frame change re-decoded the texture pixel by pixel and re-created its GPU storage, for both the base texture and its glow mask. Frames are now decoded once and uploaded into storage allocated a single time, so frame changes no longer allocate memory.
Changes
- The server's attack reach check now includes an entity's hitboxes, so parts that stick out past the vanilla bounding box (tails, weapons) can be hit from as far as they reach.
- Entities using an
AzEntityRendererthat have hitboxes now run their animator while off-screen within 64 blocks of a player. Keyframe events, including sound keyframes, will fire for those entities even when they aren't visible.
Developer Notes
AzHitboxHolder#onHitboxHitruns on the server at the start ofLivingEntity#hurtand returns the damage to apply.AzHitboxHolder#onHitboxInteractruns on both sides beforemobInteract.- Server-side poses only exist while a player within 64 blocks has the entity loaded. With no player nearby, hitbox queries return nothing and projectiles fall back to the vanilla bounding box, so server logic that reads hitboxes should keep a fallback.
- Reported poses are bounds-checked but come from clients. A modified client can shift a mob's hitboxes within
maxReachandmaxHalfExtent. UseAzHitboxSet.Builder#clientOnly()where that isn't acceptable. - Added
AzRendererPipeline#modelRenderer(),AzEntityRenderer#poseOffscreenandAzEntityModelRenderer#poseBonesOffscreen. The entity transforms and bone matrix tracking inAzEntityModelRendererwere moved into private methods shared by the on-screen and off-screen paths. Behavior is unchanged for subclasses.
This mod has no additional files

