From 92be0126df63927d07fc695945f8b98e328f945a Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Wed, 6 Jan 2021 21:17:26 +0000 Subject: [PATCH] Fix disk recipes Closes #652. This has been broken since the 1.13 update. Not filling myself with confidence here. --- .../computercraft/shared/common/ColourableRecipe.java | 6 +----- .../computercraft/shared/media/recipes/DiskRecipe.java | 7 ++----- .../dan200/computercraft/shared/util/ColourTracker.java | 7 +++++++ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/dan200/computercraft/shared/common/ColourableRecipe.java b/src/main/java/dan200/computercraft/shared/common/ColourableRecipe.java index 50b15c15d..25a1bf4a6 100644 --- a/src/main/java/dan200/computercraft/shared/common/ColourableRecipe.java +++ b/src/main/java/dan200/computercraft/shared/common/ColourableRecipe.java @@ -5,7 +5,6 @@ */ package dan200.computercraft.shared.common; -import dan200.computercraft.shared.util.Colour; import dan200.computercraft.shared.util.ColourTracker; import dan200.computercraft.shared.util.ColourUtils; import net.minecraft.inventory.CraftingInventory; @@ -75,10 +74,7 @@ public ItemStack getCraftingResult( @Nonnull CraftingInventory inv ) else { DyeColor dye = ColourUtils.getStackColour( stack ); - if( dye == null ) continue; - - Colour colour = Colour.fromInt( 15 - dye.getId() ); - tracker.addColour( colour.getR(), colour.getG(), colour.getB() ); + if( dye != null ) tracker.addColour( dye ); } } diff --git a/src/main/java/dan200/computercraft/shared/media/recipes/DiskRecipe.java b/src/main/java/dan200/computercraft/shared/media/recipes/DiskRecipe.java index 5640bd2e3..6580f3a3c 100644 --- a/src/main/java/dan200/computercraft/shared/media/recipes/DiskRecipe.java +++ b/src/main/java/dan200/computercraft/shared/media/recipes/DiskRecipe.java @@ -55,7 +55,7 @@ else if( redstone.test( stack ) ) if( redstoneFound ) return false; redstoneFound = true; } - else if( ColourUtils.getStackColour( stack ) != null ) + else if( ColourUtils.getStackColour( stack ) == null ) { return false; } @@ -80,10 +80,7 @@ public ItemStack getCraftingResult( @Nonnull CraftingInventory inv ) if( !paper.test( stack ) && !redstone.test( stack ) ) { DyeColor dye = ColourUtils.getStackColour( stack ); - if( dye == null ) continue; - - Colour colour = Colour.VALUES[dye.getId()]; - tracker.addColour( colour.getR(), colour.getG(), colour.getB() ); + if( dye != null ) tracker.addColour( dye ); } } diff --git a/src/main/java/dan200/computercraft/shared/util/ColourTracker.java b/src/main/java/dan200/computercraft/shared/util/ColourTracker.java index 457573e85..4b4c8838c 100644 --- a/src/main/java/dan200/computercraft/shared/util/ColourTracker.java +++ b/src/main/java/dan200/computercraft/shared/util/ColourTracker.java @@ -5,6 +5,7 @@ */ package dan200.computercraft.shared.util; +import net.minecraft.item.DyeColor; import net.minecraft.item.crafting.ArmorDyeRecipe; /** @@ -33,6 +34,12 @@ public void addColour( float r, float g, float b ) addColour( (int) (r * 255), (int) (g * 255), (int) (b * 255) ); } + public void addColour( DyeColor dye ) + { + Colour colour = Colour.VALUES[15 - dye.getId()]; + addColour( colour.getR(), colour.getG(), colour.getB() ); + } + public boolean hasColour() { return count > 0;