File Details
Runic Races 1.0.0 (Forge 1.20.1)
- R
- Apr 16, 2026
- 615.77 KB
- 42
- 1.20.1
- Forge
File Name
runic_races-1.0.0.jar
Supported Versions
- 1.20.1
Curse Maven Snippet
[1.0.0] - 2026-04-16
Bug Fixes
- Wyvern claustrophobia HP flicker -- Replaced Origins
conditioned_attributeon max health with a server-side Java handler using 2-second hysteresis. Health and speed penalties no longer toggle rapidly at sky-visibility boundaries. TheTIGHT_SPACEHUD flag now matches the actual penalty state (previously required being below sea level in addition to enclosed, causing the rune to disagree with the real debuff). - Cooldown HUD silent failures -- Missing Origins powers now log a warning instead of silently inserting a fake "ready" state. Exception type and resource ID are logged on lookup failure.
- Wing flap animation desync -- Added server-authoritative
S2CFlapTriggeredPacketso wing animation triggers from the server's accepted flap event, not from client-side Y-velocity threshold guessing. Velocity-threshold detection remains as a one-version compatibility fallback. - Flap validation too loose -- Server guard tightened from "not gliding AND grounded" to "not gliding". Prevents flap acceptance for non-gliding airborne players.
- Wrong keybind hints on all races --
resolveKeyHint()assumed sort order mapped to Origins keybind slots. It doesn't. AddedKeyHintTypeenum (PASSIVE, PRIMARY_ACTIVE, SECONDARY_ACTIVE, FLAP_KEY) and classified all 41 abilities from power JSON evidence. Passive abilities no longer show keybind hints. Active abilities show the correct key. Flap abilities show the bound flap key or Space. - Ready flash on HUD load -- Flash now fires for all ready abilities when the HUD first appears (seeded
wasReadywithfalseinstead of current state). - Flap flash spam -- Suppressed ready-flash animation for cooldowns under 60 ticks (3 seconds), eliminating visual noise from 1.5-second wing flap cooldowns during active flight.
- TOP_LEFT/TOP_RIGHT anchor collision -- State rune overlay now queries cooldown overlay height and offsets below it, preventing overlap when both overlays use a corner anchor.
- Human Adaptation comment/code mismatch -- Comment said "distinct mob types" but code increments on any kill. Comment corrected.
New Features
- Giant Blooded Earthshaker registered in cooldown HUD (was missing entirely).
- Deep Dwarf Tremorsense registered in cooldown HUD (was missing -- the only
secondary_activeability in the mod). - State rune tooltips -- Hovering a state rune now shows its full name (e.g., "Claustrophobia", "Beast Surge", "Home Biome").
- State rune fade animation -- Runes fade in/out over ~10 frames instead of appearing and disappearing instantly.
- Cooldown text color gradient -- Timer text transitions from reddish (long remaining) to greenish (nearly ready) as cooldown progresses.
- Sprite rendering path --
AbilityIconrecord now supports an optionalResourceLocation spritefield. When set, the overlay renders viablitinstead ofrenderItem. All current abilities use the vanilla ItemStack fallback; custom sprite atlas can be wired in without code changes. - Flap packet instrumentation -- Debug logging added to flap request/rejection flow, claustrophobia state transitions, and cooldown power lookups. All gated behind the existing debug toggle.
Icon Changes
Thematic icon upgrades for 7 abilities:
| Ability | Old | New |
|---|---|---|
| Wood Elf Thornguard | Sweet Berries | Cactus |
| Sprite Fae Wings | Feather | Amethyst Shard |
| Troll Regrowth | Ghast Tear | Glistering Melon Slice |
| Wyvern Tailstrike | Phantom Membrane | Bone |
| Wyvern Wings | Phantom Membrane | Feather |
| Vampire Mesmerize | Ender Pearl | Sculk Sensor |
| Lycanthrope Transformation | Fermented Spider Eye | Spider Eye |
Refactoring
- RacialEventHandler split -- The 665-line monolithic event handler was extracted into 8 focused handlers:
ClaustrophobiaHandler,VampireSunHandler,NineLivesHandler,TrollFireHandler,HumanAdaptationHandler,RevenantRevivalHandler,GiantBloodedPhysicsHandler,ScaleSafetyHandler. Each registered independently on the Forge event bus.ScaleSafetyHandler.onLivingDamageruns atHIGHESTpriority to ensure resize protection fires before Nine Lives. - Claustrophobia power JSON -- Reduced to
origins:simplestub. Both health (-4 HP) and speed (-5%) penalties are now managed server-side with hysteresis, eliminating the dual-authority split between Origins conditioned attributes and Java event logic. - Dead code removal -- Unused
tooltipfield removed fromStateRuneOverlay.RuneDef(restored later with actual rendering).
Networking
- Protocol version bumped to 2 -- New
S2CFlapTriggeredPacket(id=4) added. Incompatible with v0.x clients on mixed-version servers. FlightConfiggainedflapAnimDurationTicksfield to supply animation duration to the flap packet without depending on client-onlyWingType.
Testing
- Added
RaceRegistryTest(7 tests) -- validates all 24 races present, no duplicates, families populated, scales in range. - Added
RaceStateFlagsTest(6 tests) -- validates no bit overlaps, single-bit masks, set/clear round-trips,of()combiner.