package net.minecraft.world.level.storage; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import net.fabricmc.fabric.api.serialization.v1.value.FabricValueOutput; import org.jspecify.annotations.Nullable; public interface ValueOutput extends FabricValueOutput { void store(String name, Codec codec, T value); void storeNullable(String name, Codec codec, @Nullable T value); @Deprecated void store(MapCodec codec, T value); void putBoolean(String name, boolean value); void putByte(String name, byte value); void putShort(String name, short value); void putInt(String name, int value); void putLong(String name, long value); void putFloat(String name, float value); void putDouble(String name, double value); void putString(String name, String value); void putIntArray(String name, int[] value); ValueOutput child(String name); ValueOutput.ValueOutputList childrenList(String name); ValueOutput.TypedOutputList list(String name, Codec codec); void discard(String name); boolean isEmpty(); public interface TypedOutputList { void add(T value); boolean isEmpty(); } public interface ValueOutputList { ValueOutput addChild(); void discardLast(); boolean isEmpty(); } }