1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-06-03 07:04:11 +00:00

Merge pull request #288 from Wojbie/getPaletteColour-fix

Fix to getPalletteColour
This commit is contained in:
Daniel Ratcliffe 2017-05-28 13:40:56 +01:00 committed by GitHub
commit 54d202cf6b
4 changed files with 24 additions and 24 deletions

View File

@ -33,7 +33,7 @@ public class FixedWidthFontRenderer
m_textureManager = textureManager; m_textureManager = textureManager;
} }
private static void greyscaleify( float[] rgb ) private static void greyscaleify( double[] rgb )
{ {
Arrays.fill( rgb, ( rgb[0] + rgb[1] + rgb[2] ) / 3.0f ); Arrays.fill( rgb, ( rgb[0] + rgb[1] + rgb[2] ) / 3.0f );
} }
@ -43,14 +43,14 @@ public class FixedWidthFontRenderer
int column = index % 16; int column = index % 16;
int row = index / 16; int row = index / 16;
float[] colour = p.getColour( 15 - color ); double[] colour = p.getColour( 15 - color );
if(greyscale) if(greyscale)
{ {
greyscaleify( colour ); greyscaleify( colour );
} }
float r = colour[0]; float r = (float)colour[0];
float g = colour[1]; float g = (float)colour[1];
float b = colour[2]; float b = (float)colour[2];
renderer.pos( x, y, 0.0 ).tex( (double) (column * FONT_WIDTH) / 256.0, (double) (row * FONT_HEIGHT ) / 256.0 ).color( r, g, b, 1.0f ).endVertex(); renderer.pos( x, y, 0.0 ).tex( (double) (column * FONT_WIDTH) / 256.0, (double) (row * FONT_HEIGHT ) / 256.0 ).color( r, g, b, 1.0f ).endVertex();
renderer.pos( x, y + FONT_HEIGHT, 0.0 ).tex( (double) (column * FONT_WIDTH) / 256.0, (double) ((row + 1) * FONT_HEIGHT) / 256.0 ).color( r, g, b, 1.0f ).endVertex(); renderer.pos( x, y + FONT_HEIGHT, 0.0 ).tex( (double) (column * FONT_WIDTH) / 256.0, (double) ((row + 1) * FONT_HEIGHT) / 256.0 ).color( r, g, b, 1.0f ).endVertex();
@ -62,14 +62,14 @@ public class FixedWidthFontRenderer
private void drawQuad( VertexBuffer renderer, double x, double y, int color, double width, Palette p, boolean greyscale ) private void drawQuad( VertexBuffer renderer, double x, double y, int color, double width, Palette p, boolean greyscale )
{ {
float[] colour = p.getColour( 15 - color ); double[] colour = p.getColour( 15 - color );
if(greyscale) if(greyscale)
{ {
greyscaleify( colour ); greyscaleify( colour );
} }
float r = colour[0]; float r = (float)colour[0];
float g = colour[1]; float g = (float)colour[1];
float b = colour[2]; float b = (float)colour[2];
renderer.pos( x, y, 0.0 ).color( r, g, b, 1.0f ).endVertex(); renderer.pos( x, y, 0.0 ).color( r, g, b, 1.0f ).endVertex();
renderer.pos( x, y + FONT_HEIGHT, 0.0 ).color( r, g, b, 1.0f ).endVertex(); renderer.pos( x, y + FONT_HEIGHT, 0.0 ).color( r, g, b, 1.0f ).endVertex();

View File

@ -110,7 +110,7 @@ public class TermAPI implements ILuaAPI
}; };
} }
public static void setColour( Terminal terminal, int colour, float r, float g, float b ) public static void setColour( Terminal terminal, int colour, double r, double g, double b )
{ {
if( terminal.getPalette() != null ) if( terminal.getPalette() != null )
{ {
@ -296,7 +296,7 @@ public class TermAPI implements ILuaAPI
{ {
int colour = 15 - parseColour( args ); int colour = 15 - parseColour( args );
int hex = ((Double)args[1]).intValue(); int hex = ((Double)args[1]).intValue();
float[] rgb = Palette.decodeRGB8( hex ); double[] rgb = Palette.decodeRGB8( hex );
setColour( m_terminal, colour, rgb[0], rgb[1], rgb[2] ); setColour( m_terminal, colour, rgb[0], rgb[1], rgb[2] );
return null; return null;
} }
@ -304,9 +304,9 @@ public class TermAPI implements ILuaAPI
if(args.length >= 4 && args[0] instanceof Double && args[1] instanceof Double && args[2] instanceof Double && args[3] instanceof Double) if(args.length >= 4 && args[0] instanceof Double && args[1] instanceof Double && args[2] instanceof Double && args[3] instanceof Double)
{ {
int colour = 15 - parseColour( args ); int colour = 15 - parseColour( args );
float r = ((Double)args[1]).floatValue(); double r = (Double)args[1];
float g = ((Double)args[2]).floatValue(); double g = (Double)args[2];
float b = ((Double)args[3]).floatValue(); double b = (Double)args[3];
setColour( m_terminal, colour, r, g, b ); setColour( m_terminal, colour, r, g, b );
return null; return null;
} }

View File

@ -240,7 +240,7 @@ public class MonitorPeripheral implements IPeripheral
{ {
int colour = 15 - dan200.computercraft.core.apis.TermAPI.parseColour( args ); int colour = 15 - dan200.computercraft.core.apis.TermAPI.parseColour( args );
int hex = ((Double)args[1]).intValue(); int hex = ((Double)args[1]).intValue();
float[] rgb = Palette.decodeRGB8( hex ); double[] rgb = Palette.decodeRGB8( hex );
dan200.computercraft.core.apis.TermAPI.setColour( terminal, colour, rgb[0], rgb[1], rgb[2] ); dan200.computercraft.core.apis.TermAPI.setColour( terminal, colour, rgb[0], rgb[1], rgb[2] );
return null; return null;
} }
@ -248,9 +248,9 @@ public class MonitorPeripheral implements IPeripheral
if (args.length >= 4 && args[0] instanceof Double && args[1] instanceof Double && args[2] instanceof Double && args[3] instanceof Double) if (args.length >= 4 && args[0] instanceof Double && args[1] instanceof Double && args[2] instanceof Double && args[3] instanceof Double)
{ {
int colour = 15 - dan200.computercraft.core.apis.TermAPI.parseColour( args ); int colour = 15 - dan200.computercraft.core.apis.TermAPI.parseColour( args );
float r = ((Double)args[1]).floatValue(); double r = (Double)args[1];
float g = ((Double)args[2]).floatValue(); double g = (Double)args[2];
float b = ((Double)args[3]).floatValue(); double b = (Double)args[3];
dan200.computercraft.core.apis.TermAPI.setColour( terminal, colour, r, g, b ); dan200.computercraft.core.apis.TermAPI.setColour( terminal, colour, r, g, b );
return null; return null;
} }

View File

@ -5,7 +5,7 @@ import net.minecraft.nbt.NBTTagCompound;
public class Palette public class Palette
{ {
private static final int PALETTE_SIZE = 16; private static final int PALETTE_SIZE = 16;
private final float[][] colours = new float[PALETTE_SIZE][3]; private final double[][] colours = new double[PALETTE_SIZE][3];
public static final Palette DEFAULT = new Palette(); public static final Palette DEFAULT = new Palette();
@ -15,7 +15,7 @@ public class Palette
resetColours(); resetColours();
} }
public void setColour(int i, float r, float g, float b) public void setColour(int i, double r, double g, double b)
{ {
if( i >= 0 && i < colours.length ) if( i >= 0 && i < colours.length )
{ {
@ -30,7 +30,7 @@ public class Palette
setColour( i, colour.getR(), colour.getG(), colour.getB() ); setColour( i, colour.getR(), colour.getG(), colour.getB() );
} }
public float[] getColour( int i ) public double[] getColour( int i )
{ {
if( i >= 0 && i < colours.length ) if( i >= 0 && i < colours.length )
{ {
@ -55,7 +55,7 @@ public class Palette
} }
} }
public static int encodeRGB8( float[] rgb ) public static int encodeRGB8( double[] rgb )
{ {
int r = (int)( rgb[0] * 255 ) & 0xFF; int r = (int)( rgb[0] * 255 ) & 0xFF;
int g = (int)( rgb[1] * 255 ) & 0xFF; int g = (int)( rgb[1] * 255 ) & 0xFF;
@ -64,9 +64,9 @@ public class Palette
return ( r << 16 ) | ( g << 8 ) | b; return ( r << 16 ) | ( g << 8 ) | b;
} }
public static float[] decodeRGB8( int rgb ) public static double[] decodeRGB8( int rgb )
{ {
return new float[] return new double[]
{ {
(( rgb >> 16 ) & 0xFF) / 255.0f, (( rgb >> 16 ) & 0xFF) / 255.0f,
(( rgb >> 8 ) & 0xFF) / 255.0f, (( rgb >> 8 ) & 0xFF) / 255.0f,