Package com.hypixel.hytale.component
Class ComponentRegistry<ECS_TYPE>
java.lang.Object
com.hypixel.hytale.component.ComponentRegistry<ECS_TYPE>
- All Implemented Interfaces:
IComponentRegistry<ECS_TYPE>
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final SystemType<ECS_TYPE, ArchetypeTickingSystem<ECS_TYPE>> private BuilderCodec<? extends Component<ECS_TYPE>>[]private String[]private final it.unimi.dsi.fastutil.objects.Object2IntMap<String> private final BitSetprivate intprivate ComponentType<ECS_TYPE,? extends Component<ECS_TYPE>>[] private ComponentRegistry.Data<ECS_TYPE> private final StampedLockprivate final ReadWriteLockstatic final intprivate final ReferenceQueue<Holder<ECS_TYPE>> private final Threadprivate final SystemType<ECS_TYPE, HolderSystem<ECS_TYPE>> private static final com.hypixel.hytale.logger.HytaleLoggerprivate final ComponentType<ECS_TYPE, NonSerialized<ECS_TYPE>> private final ComponentType<ECS_TYPE, NonTicking<ECS_TYPE>> private final SystemType<ECS_TYPE, QuerySystem<ECS_TYPE>> private final SystemType<ECS_TYPE, RefChangeSystem<ECS_TYPE, ?>> private static final AtomicIntegerprivate final SystemType<ECS_TYPE, RefSystem<ECS_TYPE>> private BuilderCodec<? extends Resource<ECS_TYPE>>[]private String[]private final it.unimi.dsi.fastutil.objects.Object2IntMap<String> private final BitSetprivate intprivate ResourceType<ECS_TYPE,? extends Resource<ECS_TYPE>>[] private final SystemType<ECS_TYPE, RunWhenPausedSystem<ECS_TYPE>> private booleanprivate final StampedLockprivate intprivate final BitSetprivate SystemGroup<ECS_TYPE>[]private intprivate intprivate final BitSetprivate SystemType<ECS_TYPE,? extends ISystem<ECS_TYPE>>[] private intprivate BitSet[]private final SystemType<ECS_TYPE, TickableSystem<ECS_TYPE>> private final SystemType<ECS_TYPE, TickingSystem<ECS_TYPE>> static final intprivate final ComponentType<ECS_TYPE, UnknownComponents<ECS_TYPE>> private static final KeyedCodec<Integer> Deprecated. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected ComponentRegistry.Data<ECS_TYPE> addStore(ECS_TYPE externalData, IResourceStorage resourceStorage) addStore(ECS_TYPE externalData, IResourceStorage resourceStorage, Consumer<Store<ECS_TYPE>> consumer) addStore0(ECS_TYPE externalData, IResourceStorage resourceStorage, Consumer<Store<ECS_TYPE>> consumer) voidcreateComponent(ComponentType<ECS_TYPE, T> componentType) deserialize(org.bson.BsonDocument entityDocument) deserialize(org.bson.BsonDocument entityDocument, int version) Deprecated.(package private) ComponentRegistry.Data<ECS_TYPE> getData()<T extends EcsEvent>
EntityEventType<ECS_TYPE, T> getEntityEventTypeForClass(Class<T> eClass) <T extends EcsEvent>
WorldEventType<ECS_TYPE, T> getWorldEventTypeForClass(Class<T> eClass) booleanhasSystemClass(Class<T> systemClass) booleanhasSystemGroup(SystemGroup<ECS_TYPE> group) hasSystemType(SystemType<ECS_TYPE, T> systemType) boolean<T extends Component<ECS_TYPE>>
ComponentType<ECS_TYPE, T> registerComponent(Class<? super T> tClass, String id, BuilderCodec<T> codec) <T extends Component<ECS_TYPE>>
ComponentType<ECS_TYPE, T> registerComponent(Class<? super T> tClass, String id, BuilderCodec<T> codec, boolean skipValidation) Deprecated.private <T extends Component<ECS_TYPE>>
ComponentType<ECS_TYPE, T> registerComponent(Class<? super T> tClass, String id, BuilderCodec<T> codec, Supplier<T> supplier, boolean skipValidation) <T extends Component<ECS_TYPE>>
ComponentType<ECS_TYPE, T> registerComponent(Class<? super T> tClass, Supplier<T> supplier) private <T extends Component<ECS_TYPE>>
ComponentType<ECS_TYPE, T> registerComponent0(ComponentRegistration<ECS_TYPE, T> registration) private <T extends Component<ECS_TYPE>>
ComponentType<ECS_TYPE, T> registerComponent0(Class<? super T> tClass, String id, BuilderCodec<T> codec, Supplier<T> supplier, ComponentType<ECS_TYPE, T> componentType) <T extends EcsEvent>
EntityEventType<ECS_TYPE, T> registerEntityEventType(Class<? super T> eventTypeClass) private <T extends EcsEvent>
EntityEventType<ECS_TYPE, T> registerEntityEventType0(Class<? super T> eventTypeClass) <T extends Resource<ECS_TYPE>>
ResourceType<ECS_TYPE, T> registerResource(Class<? super T> tClass, String id, BuilderCodec<T> codec) private <T extends Resource<ECS_TYPE>>
ResourceType<ECS_TYPE, T> registerResource(Class<? super T> tClass, String id, BuilderCodec<T> codec, Supplier<T> supplier) <T extends Resource<ECS_TYPE>>
ResourceType<ECS_TYPE, T> registerResource(Class<? super T> tClass, Supplier<T> supplier) private <T extends Resource<ECS_TYPE>>
ResourceType<ECS_TYPE, T> registerResource0(ResourceRegistration<ECS_TYPE, T> registration) private <T extends Resource<ECS_TYPE>>
ResourceType<ECS_TYPE, T> registerResource0(Class<? super T> tClass, String id, BuilderCodec<T> codec, Supplier<T> supplier, ResourceType<ECS_TYPE, T> resourceType) registerSpatialResource(Supplier<SpatialStructure<Ref<ECS_TYPE>>> supplier) voidregisterSystem(ISystem<ECS_TYPE> system) voidregisterSystem(ISystem<ECS_TYPE> system, boolean bypassClassCheck) Deprecated, for removal: This API element is subject to removal in a future version.private voidregisterSystem0(ISystem<ECS_TYPE> system) registerSystemGroup(Set<Dependency<ECS_TYPE>> dependencies) private SystemGroup<ECS_TYPE> registerSystemGroup0(Set<Dependency<ECS_TYPE>> dependencies) <T extends ISystem<ECS_TYPE>>
SystemType<ECS_TYPE, T> registerSystemType(Class<? super T> systemTypeClass) private <T extends ISystem<ECS_TYPE>>
SystemType<ECS_TYPE, T> registerSystemType0(Class<? super T> systemTypeClass) <T extends EcsEvent>
WorldEventType<ECS_TYPE, T> registerWorldEventType(Class<? super T> eventTypeClass) private <T extends EcsEvent>
WorldEventType<ECS_TYPE, T> registerWorldEventType0(Class<? super T> eventTypeClass) voidremoveStore(Store<ECS_TYPE> store) private voidremoveStore0(Store<ECS_TYPE> store) org.bson.BsonDocumentvoidshutdown()(package private) voidtoString()unregisterComponent(ComponentType<ECS_TYPE, T> componentType) unregisterComponent0(ComponentType<ECS_TYPE, T> componentType) <T extends EcsEvent>
voidunregisterEntityEventType(EntityEventType<ECS_TYPE, T> eventType) private <T extends EcsEvent>
voidunregisterEntityEventType0(EntityEventType<ECS_TYPE, T> eventType) unregisterResource(ResourceType<ECS_TYPE, T> resourceType) unregisterResource0(ResourceType<ECS_TYPE, T> resourceType) voidunregisterSystem(Class<? extends ISystem<ECS_TYPE>> systemClass) private voidunregisterSystem0(int systemIndex, ISystem<ECS_TYPE> system) voidunregisterSystemGroup(SystemGroup<ECS_TYPE> systemGroup) private voidunregisterSystemGroup0(SystemGroup<ECS_TYPE> systemType) unregisterSystemType(SystemType<ECS_TYPE, T> systemType) unregisterSystemType0(SystemType<ECS_TYPE, T> systemType) <T extends EcsEvent>
voidunregisterWorldEventType(WorldEventType<ECS_TYPE, T> eventType) private <T extends EcsEvent>
voidunregisterWorldEventType0(WorldEventType<ECS_TYPE, T> eventType) private voidupdateData0(DataChange... dataChanges)
-
Field Details
-
UNASSIGNED_INDEX
public static final int UNASSIGNED_INDEX- See Also:
-
DEFAULT_INITIAL_SIZE
public static final int DEFAULT_INITIAL_SIZE- See Also:
-
LOGGER
private static final com.hypixel.hytale.logger.HytaleLogger LOGGER -
VERSION
Deprecated. -
REFERENCE_THREAD_COUNTER
-
shutdown
private boolean shutdown -
dataLock
-
componentIdToIndex
-
componentIndexReuse
-
componentSize
private int componentSize -
componentIds
-
componentCodecs
-
componentSuppliers
-
componentTypes
-
resourceIdToIndex
-
resourceIndexReuse
-
resourceSize
private int resourceSize -
resourceIds
-
resourceCodecs
-
resourceSuppliers
-
resourceTypes
-
systemTypeClassToIndex
-
entityEventTypeClassToIndex
-
worldEventTypeClassToIndex
-
systemTypeIndexReuse
-
systemTypeSize
private int systemTypeSize -
systemTypes
-
systemTypeToSystemIndex
-
systemGroupIndexReuse
-
systemGroupSize
private int systemGroupSize -
systemGroups
-
systemSize
private int systemSize -
systems
-
sortedSystems
-
systemClasses
-
systemBypassClassCheck
-
storeLock
-
storeSize
private int storeSize -
stores
-
dataUpdateLock
-
data
-
holders
-
holderReferenceQueue
-
holderReferenceThread
-
unknownComponentType
-
nonTickingComponentType
-
nonSerializedComponentType
-
holderSystemType
-
refSystemType
-
refChangeSystemType
-
querySystemType
-
tickingSystemType
-
tickableSystemType
-
runWhenPausedSystemType
-
archetypeTickingSystemType
@Nonnull private final SystemType<ECS_TYPE,ArchetypeTickingSystem<ECS_TYPE>> archetypeTickingSystemType
-
-
Constructor Details
-
ComponentRegistry
public ComponentRegistry()
-
-
Method Details
-
isShutdown
public boolean isShutdown() -
shutdown
public void shutdown() -
shutdown0
void shutdown0() -
getDataUpdateLock
-
getUnknownComponentType
-
getNonTickingComponentType
-
getNonSerializedComponentType
-
getHolderSystemType
-
getRefSystemType
-
getRefChangeSystemType
-
getQuerySystemType
-
getTickingSystemType
-
getTickableSystemType
-
getRunWhenPausedSystemType
-
getArchetypeTickingSystemType
@Nonnull public SystemType<ECS_TYPE,ArchetypeTickingSystem<ECS_TYPE>> getArchetypeTickingSystemType() -
registerComponent
@Nonnull public <T extends Component<ECS_TYPE>> ComponentType<ECS_TYPE,T> registerComponent(@Nonnull Class<? super T> tClass, @Nonnull Supplier<T> supplier) - Specified by:
registerComponentin interfaceIComponentRegistry<ECS_TYPE>
-
registerComponent
@Nonnull public <T extends Component<ECS_TYPE>> ComponentType<ECS_TYPE,T> registerComponent(@Nonnull Class<? super T> tClass, @Nonnull String id, @Nonnull BuilderCodec<T> codec) - Specified by:
registerComponentin interfaceIComponentRegistry<ECS_TYPE>
-
registerComponent
@Deprecated @Nonnull public <T extends Component<ECS_TYPE>> ComponentType<ECS_TYPE,T> registerComponent(@Nonnull Class<? super T> tClass, @Nonnull String id, @Nonnull BuilderCodec<T> codec, boolean skipValidation) Deprecated. -
registerComponent
@Nonnull private <T extends Component<ECS_TYPE>> ComponentType<ECS_TYPE,T> registerComponent(@Nonnull Class<? super T> tClass, @Nullable String id, @Nullable BuilderCodec<T> codec, @Nonnull Supplier<T> supplier, boolean skipValidation) -
unregisterComponent
public <T extends Component<ECS_TYPE>> void unregisterComponent(@Nonnull ComponentType<ECS_TYPE, T> componentType) -
registerResource
@Nonnull public <T extends Resource<ECS_TYPE>> ResourceType<ECS_TYPE,T> registerResource(@Nonnull Class<? super T> tClass, @Nonnull Supplier<T> supplier) - Specified by:
registerResourcein interfaceIComponentRegistry<ECS_TYPE>
-
registerResource
@Nonnull public <T extends Resource<ECS_TYPE>> ResourceType<ECS_TYPE,T> registerResource(@Nonnull Class<? super T> tClass, @Nonnull String id, @Nonnull BuilderCodec<T> codec) - Specified by:
registerResourcein interfaceIComponentRegistry<ECS_TYPE>
-
registerResource
@Nonnull private <T extends Resource<ECS_TYPE>> ResourceType<ECS_TYPE,T> registerResource(@Nonnull Class<? super T> tClass, @Nullable String id, @Nullable BuilderCodec<T> codec, @Nonnull Supplier<T> supplier) -
unregisterResource
public <T extends Resource<ECS_TYPE>> void unregisterResource(@Nonnull ResourceType<ECS_TYPE, T> resourceType) -
registerSystemType
@Nonnull public <T extends ISystem<ECS_TYPE>> SystemType<ECS_TYPE,T> registerSystemType(@Nonnull Class<? super T> systemTypeClass) - Specified by:
registerSystemTypein interfaceIComponentRegistry<ECS_TYPE>
-
unregisterSystemType
public <T extends ISystem<ECS_TYPE>> void unregisterSystemType(@Nonnull SystemType<ECS_TYPE, T> systemType) -
registerEntityEventType
@Nonnull public <T extends EcsEvent> EntityEventType<ECS_TYPE,T> registerEntityEventType(@Nonnull Class<? super T> eventTypeClass) - Specified by:
registerEntityEventTypein interfaceIComponentRegistry<ECS_TYPE>
-
registerWorldEventType
@Nonnull public <T extends EcsEvent> WorldEventType<ECS_TYPE,T> registerWorldEventType(@Nonnull Class<? super T> eventTypeClass) - Specified by:
registerWorldEventTypein interfaceIComponentRegistry<ECS_TYPE>
-
unregisterEntityEventType
public <T extends EcsEvent> void unregisterEntityEventType(@Nonnull EntityEventType<ECS_TYPE, T> eventType) -
unregisterWorldEventType
public <T extends EcsEvent> void unregisterWorldEventType(@Nonnull WorldEventType<ECS_TYPE, T> eventType) -
registerSystemGroup
- Specified by:
registerSystemGroupin interfaceIComponentRegistry<ECS_TYPE>
-
registerSystemGroup
-
unregisterSystemGroup
-
registerSystem
- Specified by:
registerSystemin interfaceIComponentRegistry<ECS_TYPE>
-
registerSystem
@Deprecated(forRemoval=true) public void registerSystem(@Nonnull ISystem<ECS_TYPE> system, boolean bypassClassCheck) Deprecated, for removal: This API element is subject to removal in a future version. -
unregisterSystem
-
registerSpatialResource
@Nonnull public ResourceType<ECS_TYPE,SpatialResource<Ref<ECS_TYPE>, registerSpatialResourceECS_TYPE>> (@Nonnull Supplier<SpatialStructure<Ref<ECS_TYPE>>> supplier) - Specified by:
registerSpatialResourcein interfaceIComponentRegistry<ECS_TYPE>
-
addStore
@Nonnull public Store<ECS_TYPE> addStore(@Nonnull ECS_TYPE externalData, @Nonnull IResourceStorage resourceStorage) -
addStore
-
removeStore
-
newHolder
-
newHolder
-
_internal_newEntityHolder
-
_internal_getData
-
getData
-
getEntityCodec
-
assertInStoreThread
public void assertInStoreThread() -
deserialize
-
deserialize
@Nullable @Deprecated public Holder<ECS_TYPE> deserialize(@Nonnull org.bson.BsonDocument entityDocument, int version) Deprecated. -
serialize
-
hasSystem
-
hasSystemClass
-
hasSystemType
public <T extends ISystem<ECS_TYPE>> boolean hasSystemType(@Nonnull SystemType<ECS_TYPE, T> systemType) -
hasSystemGroup
-
registerComponent0
@Nonnull private <T extends Component<ECS_TYPE>> ComponentType<ECS_TYPE,T> registerComponent0(@Nonnull ComponentRegistration<ECS_TYPE, T> registration) -
registerComponent0
@Nonnull private <T extends Component<ECS_TYPE>> ComponentType<ECS_TYPE,T> registerComponent0(@Nonnull Class<? super T> tClass, @Nullable String id, @Nullable BuilderCodec<T> codec, @Nonnull Supplier<T> supplier, @Nonnull ComponentType<ECS_TYPE, T> componentType) -
unregisterComponent0
private <T extends Component<ECS_TYPE>> void unregisterComponent0(@Nonnull ComponentType<ECS_TYPE, T> componentType) -
registerResource0
@Nonnull private <T extends Resource<ECS_TYPE>> ResourceType<ECS_TYPE,T> registerResource0(@Nonnull ResourceRegistration<ECS_TYPE, T> registration) -
registerResource0
@Nonnull private <T extends Resource<ECS_TYPE>> ResourceType<ECS_TYPE,T> registerResource0(@Nonnull Class<? super T> tClass, @Nullable String id, @Nullable BuilderCodec<T> codec, @Nonnull Supplier<T> supplier, @Nonnull ResourceType<ECS_TYPE, T> resourceType) -
unregisterResource0
private <T extends Resource<ECS_TYPE>> void unregisterResource0(@Nonnull ResourceType<ECS_TYPE, T> resourceType) -
registerSystemType0
@Nonnull private <T extends ISystem<ECS_TYPE>> SystemType<ECS_TYPE,T> registerSystemType0(@Nonnull Class<? super T> systemTypeClass) -
unregisterSystemType0
private <T extends ISystem<ECS_TYPE>> void unregisterSystemType0(@Nonnull SystemType<ECS_TYPE, T> systemType) -
registerEntityEventType0
@Nonnull private <T extends EcsEvent> EntityEventType<ECS_TYPE,T> registerEntityEventType0(@Nonnull Class<? super T> eventTypeClass) -
unregisterEntityEventType0
private <T extends EcsEvent> void unregisterEntityEventType0(@Nonnull EntityEventType<ECS_TYPE, T> eventType) -
getEntityEventTypeForClass
@Nullable public <T extends EcsEvent> EntityEventType<ECS_TYPE,T> getEntityEventTypeForClass(Class<T> eClass) -
registerWorldEventType0
@Nonnull private <T extends EcsEvent> WorldEventType<ECS_TYPE,T> registerWorldEventType0(@Nonnull Class<? super T> eventTypeClass) -
unregisterWorldEventType0
private <T extends EcsEvent> void unregisterWorldEventType0(@Nonnull WorldEventType<ECS_TYPE, T> eventType) -
getWorldEventTypeForClass
@Nullable public <T extends EcsEvent> WorldEventType<ECS_TYPE,T> getWorldEventTypeForClass(Class<T> eClass) -
registerSystemGroup0
@Nonnull private SystemGroup<ECS_TYPE> registerSystemGroup0(@Nonnull Set<Dependency<ECS_TYPE>> dependencies) -
unregisterSystemGroup0
-
registerSystem0
-
unregisterSystem0
-
addStore0
-
removeStore0
-
doDataUpdate
ComponentRegistry.Data<ECS_TYPE> doDataUpdate() -
updateData0
-
toString
-
createComponent
public <T extends Component<ECS_TYPE>> T createComponent(@Nonnull ComponentType<ECS_TYPE, T> componentType)
-