package com.hypixel.hytale.math.shape; import com.hypixel.hytale.function.predicate.TriIntObjPredicate; import com.hypixel.hytale.function.predicate.TriIntPredicate; import com.hypixel.hytale.math.vector.Vector3d; import javax.annotation.Nonnull; public interface Shape { default Box getBox(@Nonnull Vector3d position) { return this.getBox(position.getX(), position.getY(), position.getZ()); } Box getBox(double var1, double var3, double var5); default boolean containsPosition(@Nonnull Vector3d origin, @Nonnull Vector3d position) { return this.containsPosition(position.getX() - origin.getX(), position.getY() - origin.getY(), position.getZ() - origin.getZ()); } default boolean containsPosition(@Nonnull Vector3d position) { return this.containsPosition(position.getX(), position.getY(), position.getZ()); } boolean containsPosition(double var1, double var3, double var5); void expand(double var1); default boolean forEachBlock(@Nonnull Vector3d origin, TriIntPredicate consumer) { return this.forEachBlock(origin.getX(), origin.getY(), origin.getZ(), consumer); } default boolean forEachBlock(@Nonnull Vector3d origin, double epsilon, TriIntPredicate consumer) { return this.forEachBlock(origin.getX(), origin.getY(), origin.getZ(), epsilon, consumer); } default boolean forEachBlock(double x, double y, double z, TriIntPredicate consumer) { return this.forEachBlock(x, y, z, 0.0, consumer); } boolean forEachBlock(double var1, double var3, double var5, double var7, TriIntPredicate var9); default boolean forEachBlock(@Nonnull Vector3d origin, T t, TriIntObjPredicate consumer) { return this.forEachBlock(origin.getX(), origin.getY(), origin.getZ(), t, consumer); } default boolean forEachBlock(@Nonnull Vector3d origin, double epsilon, T t, TriIntObjPredicate consumer) { return this.forEachBlock(origin.getX(), origin.getY(), origin.getZ(), epsilon, t, consumer); } default boolean forEachBlock(double x, double y, double z, T t, TriIntObjPredicate consumer) { return this.forEachBlock(x, y, z, 0.0, t, consumer); } boolean forEachBlock(double var1, double var3, double var5, double var7, T var9, TriIntObjPredicate var10); }