Fixes 🍋
- Remove null text in UI in favor of empty string to fix compatibility with other mods
Additions 🍎
- Added saved state for collapsed entries (session based, saved until game relaunch)
Changes 🍐
- Applied a different method to updating UI components.
- Most entries sync, but there is still some work to do, so it will stay as beta until the rest of the issues are figured out.
Fixes 🍋
- Fixed attribute functions not being able to be edited (and that were default).
Changes 🌽
- Resolved an exception that happened with the
DefaultAttributeRegistry
.
Fixes 🍋
- Resolved percentage formatting, should be more accurate now
Overview
There are breaking changes in this release. Ensure you back up your config(s) if possible. Mods relying on the beta version will have to be updated.
Welcome to the release of the new Data Attributes. This has taken a considerable amount of time to complete.
I am glad to have this opportunity to work on this project and be supported with the first ever public project I will personally release.
Additions 🍎
- No more needing to leave the UI to your config json~ you can do everything you need to do in the UI!
- Allowed easier control of the config menu, and added some new features.
- A
Reset
option to reset your targeted attribute, refreshing all its entries to start anew. - A
Remove
option to remove the targeted entry of your choice. - A
Edit
option to edit the identifier to target a different entry. - A
Add
option to include new entries. - You can also add into default entries.
- A
- Added autocomplete that will appear while editing fields. This will show you currently registered entities and attributes when editing the respective id you want.
- Press [ENTER] to quickly grab the first entry on the autocomplete.
- Attribute components in configuration now will re-render in certain scenarios, allowing for a better experience with working with multiple attributes.
- Improved logic with entering fields, commit changes by pressing [Done], and [Reload] to refresh to the latest config.
- You can now actually use the search bar to look up the specific entries you wish to find.
- Translations should be compatible in the language you choose as well as the attribute id.
- e.g., looking up
playerex:luck
, orLuck
should work.
- e.g., looking up
- Translations should be compatible in the language you choose as well as the attribute id.
- You can now enable/disable Attribute Functions.
Changes 🌽
- [BREAKING] Changed mockup of config JSON.
- Config keys such as
"functions"/"overrides"/"entity_types": { ... }
have been replaced with"entries": { ... }
. - This retains parity with the data-pack format.
- Config keys such as
- [BREAKING] Changed
Map<Identifier, Double>
toMap<Identifier, EntityTypeEntry>
forEntityTypeData
.- This also includes a
fallback
value that gets the default registered base value for the specific attribute under that entity.
- This also includes a
- [BREAKING] Changed overall structure of config related class definitions. This will affect your config file considerably.
- [BREAKING] Removed
DefaultAttributeFactory
. - [BREAKING] Changed
Map<Identifier, List<AttributeFunction>>
toMap<Identifier, Map<Identifier, AttributeFunction>>
- This existed to avoid an odd situation that does not exist anymore.
- Made some changes to certain logic internally and micro-optimizations.
- Fixed CTD issues with editing function values.
- Separated config entries from defaults using color coding & tooltips.
- [BREAKING] Integrated diminishing returns as intended.
- You must keep and/or target attribute min/max ranges between -1 & 1.
- It is how it usually worked in the original DataAttributes, as unfortunately, a solution to implement diminishing returns on all attributes was not possible (at this time).
Fixes 🍋
- Adjusted formatting of
Whole
formats to not go past two decimals.
Additions 🍎
- Added a condensed way to format attribute values into the API through
getFormattedValue
.
Changes 🌽
- Resolved an issue with entity-types/functions not applying properly if a mod/data-pack got to the entity-type id first.
Additions 🍎
- Implemented a feature that reads data-packs and applies attribute modifications to the world based on order.
- More documentation on this feature will come as the mod stabilizes.
- For now, if you want to be aware of how to format your data-pack(s), look towards the source code of the next builds of PlayerEX/WizardEX.
Changes 🌽
- Changed how configs and modded entries are applied.
- Your config will appear sparse on startup, but when you go to a world (in an integrated server), it will show the extra modifications provided by loaded packs and mods.
- You can overwrite these, and they will appear in your actual config. Your config will overwrite any data-pack or modded pack.
- The UI will be overhauled to better assist in knowing what is supplied by datapacks/mods, but that will be in the later future.
- Deprecated the
DefaultAttributeRegistry
to keep previous versions functional, but it will be removed before release. - Being able to override specific mods and being able to customize your data-packs will come in the future. For now, if you want to override something, use your config as it is the main source of truth.
Additions 🍎
- We use Interface Injection for all API interfaces now. Rejoice.
Changes 🌽
- Dropped
WrapMethod
in favor of anInject
that just will perform nearly the same way. Connector folks rejoice. You can play PlayerEX with this latest build now (somehow). - Edited some other mixins.
- 1.21 will take some time to catch up, for I wish to go over DataAttributes again (primarily the
DefaultAttributeFactory
, I have big plans for it!)
Notes 🍋
- Certain translation keys are not functional in this update.
- The mod is relatively stable, but due to the lack of a certain feature with items, it will be in the alpha channel for now.
- Take caution if you plan on using the mod (as usual with alpha builds).
Changes 🌽
- Updated dependencies to
1.21
equivalent versions. - Changed internal networking to abide by version.
ItemFields
have changed to fit1.21
definitions.- 💖 The API now takes in
RegistryEntry
along with the targeted attribute.- This also goes for all events.
IEntityAttribute
has also been extended to get itsRegistryEntry
.
Changes ⚙️
- Now using
WrapMethod
on computation of modifier(s) to avoid unneeded recalculation.
Additions 💫
Implemented diminishing formula.
Additions 💫
API
- Added
getManager
which decides the proper AttributeConfigManager via a world instance. - Added
clientManager
&serverManager
respectively, which are self-explanatory.
Changes ⚙️
- Cleaned up codebase, adjusting certain logic.
- Updated Endec to match with wispforest's uploaded versions, and resolved issues with reading/writing Endec's that could cause a fatal exception.
- Updated
EntityAttributeSupplier
(again).
Removals
- Removed
ConfigDefaults
. - Removed the ability to access config through functions in the API.
- Removed an attribute modified event that changed health. This should be optionally handled in a workspace that implements the API instead.
Additions 💫
- Added in the API a way to fetch functions, entity-types, and overrides from an
EntityAttribute
.
Changes ⚙️
- Resolved synchronization issues with the config manager, which caused issues when running DataAttributes on a server instance and connecting from a client.
Changes ⚙️
- Addressed issue with the
DefaultAttributeFactory
continuing to attach extra config entries, causing unneeded duplications.
Changes ⚙️
- Addressed issue with attribute initialization on
LivingEntity
instances.
Changes ⚙️
- Adjusting the mod to a beta release cycle, updates will be less frequent.
- It is getting to the point where it is functional enough to use without corruption.
- Fixed possible
NaN
calculation when smoothness was0
. This is resolved by clamping the smoothness during calculation. - The only thing that may be incorrect is the diminishing scale, which will be addressed. Otherwise, documentation and cleanup will begin, and this mod will release with PlayerEX come time.