package net.minecraft.world.level.entity; import java.util.UUID; import java.util.function.Consumer; import net.minecraft.util.AbortableIterationConsumer; import net.minecraft.world.phys.AABB; import org.jspecify.annotations.Nullable; public class LevelEntityGetterAdapter implements LevelEntityGetter { private final EntityLookup visibleEntities; private final EntitySectionStorage sectionStorage; public LevelEntityGetterAdapter(final EntityLookup visibleEntities, final EntitySectionStorage sectionStorage) { this.visibleEntities = visibleEntities; this.sectionStorage = sectionStorage; } @Nullable @Override public T get(final int id) { return this.visibleEntities.getEntity(id); } @Nullable @Override public T get(final UUID id) { return this.visibleEntities.getEntity(id); } @Override public Iterable getAll() { return this.visibleEntities.getAllEntities(); } @Override public void get(final EntityTypeTest type, final AbortableIterationConsumer consumer) { this.visibleEntities.getEntities(type, consumer); } @Override public void get(final AABB bb, final Consumer output) { this.sectionStorage.getEntities(bb, AbortableIterationConsumer.forConsumer(output)); } @Override public void get(final EntityTypeTest type, final AABB bb, final AbortableIterationConsumer consumer) { this.sectionStorage.getEntities(type, bb, consumer); } }