34 lines
1020 B
Java
34 lines
1020 B
Java
package com.hypixel.hytale.builtin.fluid;
|
|
|
|
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
|
import java.util.List;
|
|
import javax.annotation.Nonnull;
|
|
|
|
public record FluidState(int fluidLevel, byte verticalFill) {
|
|
public static int SOURCE_LEVEL = 0;
|
|
public static final int FULL_LEVEL = 8;
|
|
public static final FluidState[] FLUID_STATES = generateFluidStates(8);
|
|
|
|
public FluidState(int fluidLevel, int verticalFill) {
|
|
this(fluidLevel, (byte)verticalFill);
|
|
}
|
|
|
|
@Nonnull
|
|
public static FluidState[] generateFluidStates(int maxLevel) {
|
|
List<FluidState> fluidStateList = new ObjectArrayList();
|
|
fluidStateList.add(new FluidState(SOURCE_LEVEL, maxLevel));
|
|
|
|
for (int i = 1; i <= maxLevel; i++) {
|
|
fluidStateList.add(new FluidState(i, i));
|
|
}
|
|
|
|
return fluidStateList.toArray(FluidState[]::new);
|
|
}
|
|
|
|
@Nonnull
|
|
@Override
|
|
public String toString() {
|
|
return "FluidState{fluidLevel=" + this.fluidLevel + ", verticalFill=" + this.verticalFill + "}";
|
|
}
|
|
}
|