-
Notifications
You must be signed in to change notification settings - Fork 0
Models
Differs between versions. Differences are marked below.
Ageforged Armor replaces the vanilla armor model for every set piece with its own custom 3D model and texture.
-
ModelProviderRegistrymaps each item part (<set>_head,<set>_chest,<set>_legs,<set>_feet) to anArmorModelProvider. Each provider supplies a baked model (a subclass ofArmorModel) and aLayerDefinition, registered client-side throughAgeforgedArmorClient. - Each model part is built from
ArmorModel.templateLayerDefinition(...), which creates the head, body, arms and legs used by the custom geometry. - Textures live under
assets/ageforged_armor/textures/models/armor/. A set's base texture is<armor>.png; the slim variant is<armor>_slim.png. Skinned sets prefix the file name with the skin's texture prefix. -
MixinHumanoidArmorLayersuppresses the vanilla armor piece for these items and submits the custom model instead, using thearmorCutoutNoCullrender type (with an armor glint overlay when the piece is enchanted). -
MixinAvatarRendererdraws the chest armor on the first-person arm, so the custom model is visible in first person.
The preferredModel option in the Configuration screen selects which model type is used:
-
MALE(default) uses the standard model. -
FEMALEuses the slim model. The description warns that using the female model with a non-slim skin can cause visual issues.
The slim variant is chosen per player: for your own player the configured value is used; for other players the value synced from their client is used; if no synced value exists the code falls back to the player's own skin model (a "slim" skin selects the slim model). The choice and the skin are always visible to other players.
A skin changes only the texture used by a set; the model geometry stays the same. Selectable skins, by set:
| Set | Skins |
|---|---|
| O-Yoroi | Default, Amber, Nightblue, Dusk, Ink, Jade, Pinky, Silver (Patreon tier 1), Amethyst (Patreon tier 4) |
| Raijin | Default, Silver (Patreon tier 1), Crystal (Patreon tier 3) |
| Pharaoh | Default, Silver (Patreon tier 1) |
| Centurion | Default, Silver (Patreon tier 1) |
| Iron Plate | Default, Ashes |
Patreon skins are only selectable when the player's detected Patreon tier is high enough; otherwise the set falls back to its default texture. See Configuration for the Patreon category.
The codebase includes AnimatedArmorModelProvider, which cycles through a numbered sequence of textures (<armor>_1.png, <armor>_2.png, ...) at a fixed number of ticks per frame. The currently shipped sets use the static and skinned providers, not the animated provider.
-
ArmorModelextendsHumanoidModel. -
MixinHumanoidArmorLayerrenders using the rawHumanoidRenderStateand only skips the vanilla piece when the equipped item is aHumanoidArmorItem. -
MixinAvatarRenderertargets the hand-render methods that take the player as anAbstractClientPlayerparameter.
-
ArmorModelextendsPlayerModeland adds the empty placeholder partsPlayerModelrequires (jacket, sleeves, pants). Because the vanilla armor models arePlayerModelinstances too, animation mods that mix intoPlayerModel.setupAnim()(for example PlayerAnimationLib, used by BetterCombat) now animate the custom armor as well. -
MixinHumanoidArmorLayercan render on wearers that are not a real player, such as Armor Stands or the fake entity some mods use to preview a 3D item in a tooltip: for those it builds a throwawayAvatarRenderStatecarrying the same pose data and renders the custom model with it. So custom armor appears on Armor Stands and in 3D tooltip previews. "(26.2 only)" -
MixinAvatarRenderertargets the hand-render methods that take anAvatarparameter (Minecraft 26.2 removed theAbstractClientPlayerparameter from that signature) and casts to a client player before drawing the first-person arm armor.
Everything else about the model system (providers, textures, body type, skins, first-person arm rendering) is the same in both versions.
Ageforged Armor is a fork of Armor of the Ages by AlxR00T, maintained by Stalking Dragons. Licensed under the MIT License.