diff --git a/src/main/java/dmx/lwjake2/render/TextureManager.java b/src/main/java/dmx/lwjake2/render/TextureManager.java new file mode 100644 index 0000000..50a6f7c --- /dev/null +++ b/src/main/java/dmx/lwjake2/render/TextureManager.java @@ -0,0 +1,16 @@ +package dmx.lwjake2.render; + +public class TextureManager { + + private static int[] colorTable = new int[256]; + + public static void setColorPalette(int[] palette) { + for (int i = 0; i < 256; i++) { + colorTable[i] = palette[i] & 0x00FFFFFF; + } + } + + public static int getColorPalette(int index) { + return colorTable[index]; + } +} diff --git a/src/main/java/lwjake2/client/V.java b/src/main/java/lwjake2/client/V.java index 58066d8..c92c9a0 100644 --- a/src/main/java/lwjake2/client/V.java +++ b/src/main/java/lwjake2/client/V.java @@ -18,6 +18,7 @@ package lwjake2.client; +import dmx.lwjake2.render.TextureManager; import lombok.extern.slf4j.Slf4j; import lwjake2.game.Cmd; import lwjake2.game.cvar_t; @@ -103,7 +104,7 @@ public final class V { int i = r_numparticles++; - int c = particle_t.colorTable[color]; + int c = TextureManager.getColorPalette(color); c |= (int) (alpha * 255) << 24; particle_t.colorArray.put(i, c); diff --git a/src/main/java/lwjake2/client/particle_t.java b/src/main/java/lwjake2/client/particle_t.java index d8264b2..fe8f400 100644 --- a/src/main/java/lwjake2/client/particle_t.java +++ b/src/main/java/lwjake2/client/particle_t.java @@ -18,6 +18,7 @@ package lwjake2.client; +import dmx.lwjake2.render.TextureManager; import lwjake2.Defines; import lwjake2.util.Lib; @@ -32,14 +33,11 @@ public class particle_t { private static ByteBuffer colorByteArray = Lib.newByteBuffer(Defines.MAX_PARTICLES * Lib.SIZEOF_INT, ByteOrder.LITTLE_ENDIAN); public static FloatBuffer vertexArray = Lib.newFloatBuffer(Defines.MAX_PARTICLES * 3); - public static int[] colorTable = new int[256]; - public static IntBuffer colorArray = colorByteArray.asIntBuffer(); - + public static IntBuffer colorArray = colorByteArray.asIntBuffer(); + @Deprecated public static void setColorPalette(int[] palette) { - for (int i=0; i < 256; i++) { - colorTable[i] = palette[i] & 0x00FFFFFF; - } + TextureManager.setColorPalette(palette); } public static ByteBuffer getColorAsByteBuffer() {