diff --git a/src/main/java/me/tibinonest/mods/cauldron_dyeing/block/WaterCauldronBlockEntity.java b/src/main/java/me/tibinonest/mods/cauldron_dyeing/block/WaterCauldronBlockEntity.java index ca4cf2a..a1a896e 100644 --- a/src/main/java/me/tibinonest/mods/cauldron_dyeing/block/WaterCauldronBlockEntity.java +++ b/src/main/java/me/tibinonest/mods/cauldron_dyeing/block/WaterCauldronBlockEntity.java @@ -14,11 +14,12 @@ import net.minecraft.util.math.BlockPos; import org.jetbrains.annotations.Nullable; public class WaterCauldronBlockEntity extends BlockEntity { + private final int[] EMPTY_NBT = new int[] {-1, -1, -1}; private int[] color; public WaterCauldronBlockEntity(BlockPos pos, BlockState state) { super(CauldronDyeing.WATER_CAULDRON_BLOCK_ENTITY, pos, state); - color = new int[]{-1, -1, -1}; + color = null; } // Formula taken from https://minecraft.fandom.com/wiki/Dye#Dyeing_armor and DyeableItem#blendAndSetColor @@ -30,7 +31,7 @@ public class WaterCauldronBlockEntity extends BlockEntity { newColor[1] = (int) (colorComponents[1] * 255.0f); newColor[2] = (int) (colorComponents[2] * 255.0f); - if (hasColor()) { + if (color != null) { var avgColor = new int[3]; avgColor[0] = (color[0] + newColor[0]) / 2; avgColor[1] = (color[1] + newColor[1]) / 2; @@ -51,29 +52,26 @@ public class WaterCauldronBlockEntity extends BlockEntity { markDirty(); } - public boolean hasColor() { - return color.length == 3 && color[0] != -1 && color[1] != -1 && color[2] != -1; - } - public int getColor() { - return hasColor() ? (color[0] << 16) + (color[1] << 8) + color[2] : -1; + return color != null ? (color[0] << 16) + (color[1] << 8) + color[2] : -1; } public void resetColor() { - color = new int[]{-1, -1, -1}; + color = null; markDirty(); } @Override public void writeNbt(NbtCompound tag) { super.writeNbt(tag); - tag.putIntArray("color", color); + tag.putIntArray("color", color != null ? color : EMPTY_NBT); } @Override public void readNbt(NbtCompound tag) { super.readNbt(tag); - color = tag.getIntArray("color"); + var value = tag.getIntArray("color"); + color = value != EMPTY_NBT ? color : null; markDirty(); }