Cardinal-Components-API

Component API to add external data to objects.

MIT License

Stars
151
Committers
13

Bot releases are hidden (Show)

Cardinal-Components-API - v2.7.9

Published by Pyrofab almost 4 years ago

Version 2.7.9:

  • Mcdev annotations are no longer a transitive dependency

see full changelog here

Cardinal-Components-API - v2.7.8

Published by Pyrofab almost 4 years ago

Version 2.7.8:

Changes

  • Promoted ComponentKey#sync(provider, writer), ComponentKey#sync(provider, writer, predicate),
    ComponentKey#isProvidedBy, and ComponentKey#getNullable to stable API

Fixes

  • Fixed backward compatibility with SyncedComponent

see full changelog here

Cardinal-Components-API - v2.7.7

Published by Pyrofab almost 4 years ago

Version 2.7.7:

Fixes

  • Fixed NBT deserialization not respecting component registration order

see full changelog here

Cardinal-Components-API - v2.7.6

Published by Pyrofab almost 4 years ago

Version 2.7.6:

Changes

  • Optimized ItemStack component initialization
  • Promoted ComponentKey#syncWith to (experimental) public API
  • Promoted ClientTickingComponent, ServerTickingComponent and CommonTickingComponent to stable API

see full changelog here

Cardinal-Components-API - v3.0.0-nightly.20w46a

Published by Pyrofab almost 4 years ago

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

Cardinal-Components-API - v2.7.5

Published by Pyrofab almost 4 years ago

Version 2.7.5:

Additions

  • Added the universal cardinal-components entrypoint key
    • This new key can be used for any CCA registration initializer (replaces eg. cardinal-components-entity)

see full changelog here

Cardinal-Components-API - v3.0.0-nightly.1.17-20w45a

Published by Pyrofab almost 4 years ago

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

Cardinal-Components-API - v2.7.4

Published by Pyrofab almost 4 years ago

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

Cardinal-Components-API - v2.7.3

Published by Pyrofab almost 4 years ago

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

Cardinal-Components-API - v2.7.2

Published by Pyrofab almost 4 years ago

Version 2.7.2:

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

see full changelog here

Cardinal-Components-API - v2.7.1

Published by Pyrofab almost 4 years ago

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

Cardinal-Components-API - v2.7.0

Published by Pyrofab about 4 years ago

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

Cardinal-Components-API - v2.6.0

Published by Pyrofab about 4 years ago

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

Cardinal-Components-API - v2.5.4

Published by Pyrofab about 4 years ago

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

Cardinal-Components-API - v2.5.3

Published by Pyrofab about 4 years ago

Version 2.5.3:

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

see full changelog here

Cardinal-Components-API - v2.5.2

Published by Pyrofab about 4 years ago

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

Cardinal-Components-API - v2.5.1

Published by Pyrofab about 4 years ago

Version 2.5.1:

  • Basic V3 interfaces are no longer experimental
    • This is a good time to start using them!
  • Overhauled component synchronization for V3 API
    • There is no longer specialized synchronized component interfaces for each type of provider
    • This is a breaking change for Team and Block V3 (experimental) APIs
  • Added dedicated static registration methods for player components in cardinal-components-entity
  • V3 ComponentContainers are no longer generic
  • Added a dedicated ComponentContainer factory interface replacing use of Function,
    and moved the existing builder to it

see full changelog here

Cardinal-Components-API - v2.5.0

Published by Pyrofab about 4 years ago

Version 2.5.0:

This release breaks compatibility between modules of different versions.

  • Updated to 1.16.2

Additions

  • Added a new API for block components (see PR #42)
  • Added a new API for scoreboard components (see PR #36)
  • Added reworked ComponentProvider and ComponentContainer interfaces to the V3 API
    • Refactored a lot of internal code to use the new types
  • Added ComponentV3 and ComponentRegistryV3 interfaces for early V3 adopters
  • Added a factory builder to the ComponentContainer interface for third-party ComponentProvider implementations
  • Added alternatives to registerFor methods taking a predicate, for fine-tuned registration

Changes

  • The NBT serialized form of ComponentContainer is now more space-efficient.
    • Instances serialized before this update should get converted as they load.
  • Removed experimental deprecated method EntityComponentFactoryRegistry#register (use registerFor)

Fixes

  • Fixed item components not being copied by the smithing table
  • Removed the Internal annotation from new API packages

see full changelog here

Cardinal-Components-API - v2.5.0-nightly.1.16.2-rc2

Published by Pyrofab about 4 years ago

Version 2.5.0:

This release breaks compatibility between modules of different versions.

  • Updated cardinal-components-level, cardinal-components-world and cardinal-components-chunk to 1.16.2

Additions

  • Added a new API for block components (see PR #42)
  • Added a new API for scoreboard components (see PR #36)
  • Added reworked ComponentProvider and ComponentContainer interfaces to the V3 API
    • Refactored a lot of internal code to use the new types
  • Added ComponentV3 and ComponentRegistryV3 interfaces for early V3 adopters
  • Added a factory builder to the ComponentContainer interface for third-party ComponentProvider implementations
  • Added alternatives to registerFor methods taking a predicate, for fine-tuned registration

Changes

  • The NBT serialized form of ComponentContainer is now more space-efficient.
    • Instances serialized before this update should get converted as they load.
  • Removed experimental deprecated method EntityComponentFactoryRegistry#register (use registerFor)

Fixes

  • Fixed item components not being copied by the smithing table
  • Removed the Internal annotation from new API packages

see full changelog here

Cardinal-Components-API - v2.5.0-nightly.20w30a

Published by Pyrofab about 4 years ago

Version 2.5.0:

This release breaks compatibility between modules of different versions.

  • Updated cardinal-components-level and cardinal-components-chunk to 1.16.2

Additions

  • Added reworked ComponentProvider and ComponentContainer interfaces to the V3 API
    • Refactored a lot of internal code to use the new types

Fixes

  • Fixed item components not being copied by the smithing table

see full changelog here

Related Projects