package net.minecraft.world.attribute; import net.minecraft.world.phys.Vec3; import org.jspecify.annotations.Nullable; public sealed interface EnvironmentAttributeLayer permits EnvironmentAttributeLayer.Constant, EnvironmentAttributeLayer.Positional, EnvironmentAttributeLayer.TimeBased { @FunctionalInterface public non-sealed interface Constant extends EnvironmentAttributeLayer { Value applyConstant(Value baseValue); } @FunctionalInterface public non-sealed interface Positional extends EnvironmentAttributeLayer { Value applyPositional(Value baseValue, Vec3 pos, @Nullable SpatialAttributeInterpolator biomeInterpolator); } @FunctionalInterface public non-sealed interface TimeBased extends EnvironmentAttributeLayer { Value applyTimeBased(Value baseValue, int cacheTickId); } }