// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.builtin.fluid;

import javax.annotation.Nonnull;
import java.util.List;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;

record FluidState(int fluidLevel, byte verticalFill) {
    public static int SOURCE_LEVEL;
    public static final int FULL_LEVEL = 8;
    public static final FluidState[] FLUID_STATES;
    
    public FluidState(final int fluidLevel, final int verticalFill) {
        this(fluidLevel, (byte)verticalFill);
    }
    
    @Nonnull
    public static FluidState[] generateFluidStates(final int maxLevel) {
        final List<FluidState> fluidStateList = new ObjectArrayList<FluidState>();
        fluidStateList.add(new FluidState(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;
    }
    
    static {
        FluidState.SOURCE_LEVEL = 0;
        FLUID_STATES = generateFluidStates(8);
    }
}
