Contents
Package com.hypixel.hytale.component
package com.hypixel.hytale.component
An implementation of an EntityComponentSystem (aka ECS).
For a basic (mixed) graph view see component-system.svg file located in the root of this maven module.
An ECS is made up of three main parts, Entities, Components and Systems.
Components are simply pieces of data.
Systems operate on components to produce functionality.
Entities are the concept of something that is in a world and are made up of components and operated on by systems.
In this implementation entities usually take two forms,
1. Either an integer which is the index within a ArchetypeChunk or
an Ref (which is just a wrapper for the integer).
This is the index used to access and modify the entities data.
2. As an Holder when the entity is not a part of a
ISystem for example when being saved.
-
ClassDescriptionDetermines the reason why an entity was added to the world.Archetype<ECS_TYPE>An entity archetype, which describes a set of component types.ArchetypeChunk<ECS_TYPE>A chunk of entities that all share the same archetype and the same parent.CommandBuffer<ECS_TYPE>The CommandBuffer is a critical part of the component system.Component<ECS_TYPE>An interface for marking ECS components, which are data containers for entities.ComponentAccessor<ECS_TYPE>Allows access to components in logic that might only have access to the
CommandBufferbut not theStoreand vice versa depending on from where it's called.ComponentRegistration<ECS_TYPE, T extends Component<ECS_TYPE>>A class that represents the registration of a component type.ComponentRegistry<ECS_TYPE>Contains registered components and systems, and stores for this registryComponentRegistry.Data<ECS_TYPE>A versioned immutable copy of registry data needed byStore's.ComponentRegistryProxy<ECS_TYPE>ComponentType<ECS_TYPE, T extends Component<ECS_TYPE>>Represents a type ofComponentclass, registered via aComponentRegistryand used as a key to fetch components.Deprecated, for removal: This API element is subject to removal in a future version.A resource storage implementation that has no persistent storage.Holder<ECS_TYPE>Used to hold AoS style data for when moving an entity around or serializing it.IComponentRegistry<ECS_TYPE>An interface for a class that can register a variety of ECS objects.An interface for resource storage operations.NonSerialized<ECS_TYPE>A component that marks an entity as non-serialized.NonTicking<ECS_TYPE>A component that marks an entity as non-ticking.ReadWriteQuery<ECS_TYPE>A query type that matches archetypes based on read and write archetypes.Ref<ECS_TYPE>Used to reference an entity by a system external to the component data chunks.Determines the reason why an entity was removed from the world.Resource<ECS_TYPE>A resource is a piece of shared data.ResourceRegistration<ECS_TYPE, T extends Resource<ECS_TYPE>>A class that represents the registration of a resource type.ResourceType<ECS_TYPE, T extends Resource<ECS_TYPE>>Describes aResourcetype registered with aComponentRegistryStore<ECS_TYPE>A store of components and entities for a specificComponentRegistry.SystemGroup<ECS_TYPE>A group of systems, registered with aComponentRegistry, whcih helps define the order systems should run.SystemType<ECS_TYPE, T extends ISystem<ECS_TYPE>>Describes a system type registered with aComponentRegistry.WeakComponentReference<ECS_TYPE, T extends Component<ECS_TYPE>>A weak reference to a component.