Skip to content

Cardinal Components World

Pyrofab edited this page Nov 23, 2020 · 7 revisions

This module allows mods to attach components to World objects. World components can be automatically synchronized by implementing SyncedComponent, most commonly through the WorldSyncedComponent helper interface.

Usage

Registration

World components are registered by a WorldComponentInitializer, exposed as cardinal-components-world in the mod json (more information on the component registration page). Once a component factory is registered, its associated component will be available on every World instance, on both clients and servers.

Synchronization

World components can be automatically synchronized from the server to the client by implementing AutoSyncedComponent - more information is available on the component synchronization page.

Ticking

World components support both server and client ticking. Components get ticked right after everything else in World#tick.

Vanilla Alternative: PersistentState

+ No dependency required
+ Slightly easier to setup (no registration)
- Only exists on ServerWorld - cannot be synchronized, requires casting to use
- Must extend the PersistentState abstract class