SteppableTickingSystem
Package: com.hypixel.hytale.server.npc.systems
public abstract class SteppableTickingSystem extends EntityTickingSystem<EntityStore>Abstract base class for NPC ECS systems that respect the Frozen component for debug stepping. When an NPC entity has a Frozen component (or the world’s isAllNPCFrozen() flag is set), the system skips the entity unless a StepComponent is present, in which case it ticks for a single step using the step’s configured tick length.
Most NPC systems extend this class rather than EntityTickingSystem directly, ensuring that frozen NPCs only advance when explicitly stepped by the debug tools.
Tick Flow
Section titled “Tick Flow”@Overridepublic void tick( float dt, int index, @Nonnull ArchetypeChunk<EntityStore> archetypeChunk, @Nonnull Store<EntityStore> store, @Nonnull CommandBuffer<EntityStore> commandBuffer)Checks the Frozen component and world freeze flag. If the entity is not frozen, delegates to steppedTick with the frame delta time. If frozen, looks for a StepComponent and uses its tick length. If frozen with no step component, returns without ticking.
Abstract Method
Section titled “Abstract Method”public abstract void steppedTick( float var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull Store<EntityStore> var4, @Nonnull CommandBuffer<EntityStore> var5)Called with the resolved tick length (either the frame dt or the step component’s tick length). Subclasses implement their per-entity tick logic here.
Fields
Section titled “Fields”| Field | Type | Description |
|---|---|---|
stepComponentType | ComponentType<EntityStore, StepComponent> | Component type for debug step. |
frozenComponentType | ComponentType<EntityStore, Frozen> | Component type for frozen state. |
Related Types
Section titled “Related Types”- StepCleanupSystem — removes
StepComponentat end of frame - AvoidanceSystem, SteeringSystem, ComputeVelocitySystem, MovementStatesSystem — concrete subclasses