Expand description
Data components system for items and entities.
Component values are type-erased through Steel’s deterministic keyed
downcasting system. Vanilla and plugin-defined values use the same storage
path while retaining type-safe access through DataComponentType.
§Architecture
ComponentData- Type-erased component value storageComponent- Object-safe behavior for stored valuesDataComponentType<T>- Compile-time type handle for accessing componentsDataComponentMap- Storage for component values on itemsDataComponentPatch- Diff representation for network/storageDataComponentRegistry- Registry of component types with serialization
§Example
ⓘ
use steel_registry::data_components::vanilla_components::DAMAGE;
// Type-safe access (compile-time checked)
let damage: Option<&i32> = components.get(DAMAGE);
components.set(DAMAGE, Some(10));
// Raw access for plugins
let data = components.get_raw(&key)?;Re-exports§
pub use crate::item_predicate::AdventureModePredicate;pub use crate::item_predicate::BlockPredicate;pub use crate::item_predicate::LockCode;pub use components::ArmorTrim;pub use components::BannerPatternLayer;pub use components::BannerPatternLayers;pub use components::BlocksAttacks;pub use components::BundleContents;pub use components::ChargedProjectiles;pub use components::Consumable;pub use components::CustomData;pub use components::CustomModelData;pub use components::DeathProtection;pub use components::DyedItemColor;pub use components::Enchantable;pub use components::Equippable;pub use components::EquippableAllowedEntities;pub use components::InstrumentComponent;pub use components::InvalidEnchantableValue;pub use components::ItemContainerContents;pub use components::JukeboxPlayable;pub use components::MapDecorationEntry;pub use components::MapDecorations;pub use components::MapId;pub use components::MapItemColor;pub use components::OminousBottleAmplifier;pub use components::PaintingVariantComponent;pub use components::PotDecorations;pub use components::PotionContents;pub use components::ProvidesBannerPatterns;pub use components::ProvidesTrimMaterial;pub use components::Recipes;pub use components::SulfurCubeContent;pub use components::Tool;pub use components::ToolRule;pub use components::ToolRuleBlocks;pub use components::UseRemainder;
Modules§
- component_
data 🔒 - Type-erased data component values.
- components
- Individual component type definitions.
- registry 🔒
- Data component registry and storage types.
- vanilla_
components - Vanilla data component definitions and registration.
Structs§
- Component
Data - A type-erased component value.
- Component
Entry - Metadata for a registered component type.
- Data
Component Map - Storage for component values.
- Data
Component Patch - A patch representing modifications to a
DataComponentMap. - Data
Component Registry - Registry of all data component types.
- Data
Component Type - A typed handle for a data component.
Enums§
- Component
Patch Entry - Entry in a component patch.
Traits§
- Component
- Behavior required from a value stored in a
ComponentData.
Functions§
- component_
try_ into - Attempts to extract a typed component from
ComponentData.
Type Aliases§
- Component
Entry Ref - NbtReader
- Reader function for deserializing a component from NBT format.
- NbtWriter
- Writer function for serializing a component to NBT format.
- Network
Reader - Network
Writer - Writer function for serializing a component to network format.