diff --git a/src/main/java/dan200/computercraft/api/turtle/ITurtleAccess.java b/src/main/java/dan200/computercraft/api/turtle/ITurtleAccess.java
index 0e207f076..c6019a916 100644
--- a/src/main/java/dan200/computercraft/api/turtle/ITurtleAccess.java
+++ b/src/main/java/dan200/computercraft/api/turtle/ITurtleAccess.java
@@ -117,31 +117,12 @@ public interface ITurtleAccess
*/
void setSelectedSlot( int slot );
- /**
- * Sets the colour of the turtle, as if the player had dyed it with a dye item.
- *
- * @param dyeColour 0-15 to dye the turtle one of the 16 standard Minecraft dye colours, or -1 to remove
- * the dye from the turtle.
- * @see #getDyeColour()
- * @see #setColour(int)
- */
- void setDyeColour( int dyeColour );
-
- /**
- * Gets the colour the turtle has been dyed.
- *
- * @return 0-15 if the turtle has been dyed one of the 16 standard Minecraft dye colours, -1 if the turtle
- * is clean or has no corresponding dye.
- * @see #setDyeColour(int)
- * @see #getColour()
- */
- int getDyeColour();
-
/**
* Set the colour of the turtle to a RGB number.
*
* @param colour The colour this turtle should be changed to. This should be a RGB colour between {@code 0x000000}
* and {@code 0xFFFFFF} or -1 to reset to the default colour.
+ * @see #getColour()
*/
void setColour( int colour );
@@ -150,6 +131,7 @@ public interface ITurtleAccess
*
* @return The colour this turtle is. This will be a RGB colour between {@code 0x000000} and {@code 0xFFFFFF} or
* -1 if it has no colour.
+ * @see #setColour(int)
*/
int getColour();
diff --git a/src/main/java/dan200/computercraft/shared/turtle/core/TurtleBrain.java b/src/main/java/dan200/computercraft/shared/turtle/core/TurtleBrain.java
index 66059d782..05a31b2ea 100644
--- a/src/main/java/dan200/computercraft/shared/turtle/core/TurtleBrain.java
+++ b/src/main/java/dan200/computercraft/shared/turtle/core/TurtleBrain.java
@@ -113,7 +113,6 @@ public class TurtleBrain implements ITurtleAccess
private int m_selectedSlot;
private int m_fuelLevel;
- private Colour m_colour;
private int m_colourHex;
private ResourceLocation m_overlay;
@@ -136,7 +135,6 @@ public class TurtleBrain implements ITurtleAccess
m_selectedSlot = 0;
m_fuelLevel = 0;
- m_colour = null;
m_colourHex = -1;
m_overlay = null;
@@ -217,7 +215,6 @@ public class TurtleBrain implements ITurtleAccess
}
// Read colour
- m_colour = ColourUtils.getColour( nbttagcompound );
m_colourHex = ColourUtils.getHexColour( nbttagcompound );
// Read overlay
@@ -317,11 +314,7 @@ public class TurtleBrain implements ITurtleAccess
}
// Write colour
- if( m_colour != null )
- {
- nbttagcompound.setInteger( "colourIndex", m_colour.ordinal() );
- }
- else if( m_colourHex != -1 )
+ if( m_colourHex != -1 )
{
nbttagcompound.setInteger( "colour", m_colourHex );
}
@@ -380,11 +373,7 @@ public class TurtleBrain implements ITurtleAccess
}
// Colour
- if( m_colour != null )
- {
- nbttagcompound.setInteger( "colourIndex", m_colour.ordinal() );
- }
- else if( m_colourHex != -1 )
+ if( m_colourHex != -1 )
{
nbttagcompound.setInteger( "colour", m_colourHex );
}
@@ -440,7 +429,6 @@ public class TurtleBrain implements ITurtleAccess
// Colour
m_colourHex = ColourUtils.getHexColour( nbttagcompound );
- m_colour = ColourUtils.getColour( nbttagcompound );
// Overlay
if( nbttagcompound.hasKey( "overlay_mod" ) && nbttagcompound.hasKey( "overlay_path" ) )
@@ -771,12 +759,6 @@ public class TurtleBrain implements ITurtleAccess
m_owner.updateBlock();
}
- @Override
- public int getDyeColour()
- {
- return m_colour != null ? m_colour.ordinal() : -1;
- }
-
public ResourceLocation getOverlay()
{
return m_overlay;
@@ -791,18 +773,23 @@ public class TurtleBrain implements ITurtleAccess
}
}
- @Override
+ public int getDyeColour()
+ {
+ if( m_colourHex == -1 ) return -1;
+ Colour colour = Colour.fromHex( m_colourHex );
+ return colour == null ? -1 : colour.ordinal();
+ }
+
public void setDyeColour( int dyeColour )
{
- Colour newColour = null;
+ int newColour = -1;
if( dyeColour >= 0 && dyeColour < 16 )
{
- newColour = Colour.values()[ dyeColour ];
+ newColour = Colour.values()[ dyeColour ].getHex();
}
- if( m_colour != newColour )
+ if( m_colourHex != newColour )
{
- m_colour = newColour;
- m_colourHex = newColour == null ? -1 : newColour.getHex();
+ m_colourHex = newColour;
m_owner.updateBlock();
}
}
@@ -815,14 +802,12 @@ public class TurtleBrain implements ITurtleAccess
if( m_colourHex != colour )
{
m_colourHex = colour;
- m_colour = Colour.fromHex( colour );
m_owner.updateBlock();
}
}
else if( m_colourHex != -1 )
{
m_colourHex = -1;
- m_colour = null;
m_owner.updateBlock();
}
}