package com.hypixel.hytale.server.npc.instructions; import com.hypixel.hytale.component.ComponentAccessor; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Store; import com.hypixel.hytale.server.core.universe.world.storage.EntityStore; import com.hypixel.hytale.server.npc.movement.Steering; import com.hypixel.hytale.server.npc.role.Role; import com.hypixel.hytale.server.npc.sensorinfo.InfoProvider; import com.hypixel.hytale.server.npc.util.IAnnotatedComponent; import javax.annotation.Nonnull; import javax.annotation.Nullable; public interface Motion extends RoleStateChange, IAnnotatedComponent { default void preComputeSteering(@Nonnull Ref ref, @Nonnull Role role, @Nullable InfoProvider provider, @Nonnull Store store) { } default void activate(@Nonnull Ref ref, @Nonnull Role role, @Nonnull ComponentAccessor componentAccessor) { } default void deactivate(@Nonnull Ref ref, @Nonnull Role role, @Nonnull ComponentAccessor componentAccessor) { } boolean computeSteering( @Nonnull Ref var1, @Nonnull Role var2, @Nullable InfoProvider var3, double var4, @Nonnull Steering var6, @Nonnull ComponentAccessor var7 ); }