Skip to content

Releases: Ladysnake/Cardinal-Components-API

v3.0.0-nightly.1.17-20w45a

08 Nov 16:28
Compare
Choose a tag to compare

Version 3.0.0:

The breaking changes are here !

  • Updated to 20w45a

Additions

  • Ticking components now work on any BlockEntity, not just those that already tick in vanilla

Changes

  • Every class deprecated in 2.7.0 has been completely removed
  • Every class remaining in the nerdhub.component.* packages has been moved to a dev.onyxstudios.cca.* package
  • Replaced specific factory interfaces with a generic variant (eg. ComponentFactory)

see full changelog here

v2.7.4

08 Nov 14:22
Compare
Choose a tag to compare

Version 2.7.4:

Additions

  • Added a TransientComponent utility interface, for components that do not store any data
  • Added a registration overload to ItemComponentFactoryRegistry#registerFor that takes an item directly

Fixes

  • Fixed potential concurrency issues with ComponentContainer.Factory.Builder

see full changelog here

v2.7.3

03 Nov 14:05
Compare
Choose a tag to compare

Version 2.7.3:

  • Updated to 1.16.4

Changes

  • cardinal-components-item will now verify that components attached to ItemStacks redefine equals
    • This behaviour can be disabled by adding -Dcca.debug.noverifyequals=true to your VM options

Fixes

  • Fixed cardinal-components-block crashing on dedicated servers

see full changelog here

v2.7.2

22 Oct 18:45
Compare
Choose a tag to compare

Version 2.7.2:

  • Fixed components attached to a block entity not stacking with the superclass' components

see full changelog here

v2.7.1

19 Oct 14:28
Compare
Choose a tag to compare

Version 2.7.1:

  • Remove the ScheduledForRemoval annotation from the legacy Component interface
    • Should fix unstable API warnings in IDEA
  • Fixed the new AutoSyncedComponent interface for level components

see full changelog here

v2.7.0

17 Oct 22:13
Compare
Choose a tag to compare

Version 2.7.0:

Deprecated most classes from the nerdhub.component.* packages.
Those classes will be removed during the MC 1.17 update.

Additions

  • Implemented the new synchronization in cardinal-components-level
    • Added LevelComponents#sync, replacing ComponentKey#sync for components attached to WorldProperties
  • Implemented the new (serverside) ticking API in cardinal-components-level and cardinal-components-scoreboard
  • Added a CommonTickingComponent interface, implementing both Client and Server variants

Changes

  • Item components now use lazily initialization
  • The ComponentContainer and ComponentProvider interfaces are no longer experimental
  • Refactored the sync API again, making it more flexible
    • Deprecated the old AutoSyncedComponent interface
  • Moved ticking interfaces to a separate package
    • Deprecated the old ticking component interfaces

Fixes

  • Fixed invalid metadata in the fabric.mod.json
  • Fixed some hypothetical bugs with dropped items not merging

see full changelog here

v2.6.0

07 Sep 19:35
Compare
Choose a tag to compare

Version 2.6.0:

  • Added the Ticking Components experimental feature
  • Made cardinal-components-block possibly more compatible with future versions of Immersive Portals
  • Documented more methods with annotations

see full changelog here

v2.5.4

30 Aug 22:16
Compare
Choose a tag to compare

Version 2.5.4:

  • ComponentContainer iteration order is now the same as the factory registration order
    • This means mods have some (limited) control over the order in which components are de-serialized/synchronized
  • Removed the experimental tag from more methods
  • ComponentContainer.Factory#createContainer now accepts null arguments (but will NPE if a component factory does not expect it)

see full changelog here

v2.5.3

29 Aug 21:10
Compare
Choose a tag to compare

Version 2.5.3:

  • Fixed a crash in cardinal-components-chunk when cardinal-components-world was not installed

see full changelog here

v2.5.2

26 Aug 10:28
Compare
Choose a tag to compare

Version 2.5.2:

  • Added a syncOp parameter to AutoSyncedComponent methods, making the interface more flexible
    • The new parameter can be ignored, or it can be used to implement multiple types of sync without custom packets

see full changelog here