Wolf Armor and Storage Legacy

Wolf Armor and Storage Legacy

19M Downloads

[Major Enhancement] Implement Mixin Library for Bytecode Alterations

satyrnidae opened this issue ยท 0 comments

commented

Is your feature request related to a problem? Please describe.
Fixes custom entity data issues as well as network sync problems related to the new, hacky, "self-made data manager" issue. Can also improve:

  • Enchantments (applied and used)
  • Entity interaction handling (buggy)
  • Capability bloat
  • CarryOn Rendering Issue

Describe the solution you'd like
The SpongePowered/Mixin library will be leveraged to introduce bytecode alterations to the wolf class, as in the original (unreleased) 1.5 version of the mod. This will be backported to any versions which can support the use of the Mixins library that is still to be maintained (candidates TBD)

Describe alternatives you've considered
Previous alternatives:

  • Completely replacing the wolf entity
    • Introduces too many compatibility issues
  • Replacing the wolf entity class with new bytecode
    • Messy
    • Copyright concerns
      • lots of duped Mojang code
    • Obfuscation issues
      • Very difficult to debug
      • Needs 3 versions of the same class, with mcp/srg/obf names
  • Using capabilities to register and manage wolf data state
    • Worked fairly well, but buggy
    • Introduces compatibility issues related to data manager
    • Difficult to understand at a code level (click handlers in capability, etc.)
  • Using custom packets and netcode to handle wolf state data
    • I am not a netcode expert
    • Potentially slow / laggy depending on number of wolves
    • Desync issues, possible packet volume issues

Additional context
None.