aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/detrav/gui/textures
diff options
context:
space:
mode:
authorJason Mitchell <mitchej@gmail.com>2021-01-24 00:37:23 -0800
committerJason Mitchell <mitchej@gmail.com>2021-01-24 00:37:23 -0800
commit8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a (patch)
tree6ce989529cb927ff79d2a07cd3e72176d060099a /src/main/java/com/detrav/gui/textures
parentbf8c5581ff93b056a03017f858a8d907a2fa69e2 (diff)
downloadGT5-Unofficial-8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a.tar.gz
GT5-Unofficial-8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a.tar.bz2
GT5-Unofficial-8ecc28d1317e01036a6d0f1cefa34b0aacd2d16a.zip
Selectable ores on electronic prospector
* Cleaned up some class/file names * Removed unused code/comments * Cached other mods being loaded * Various optimizations
Diffstat (limited to 'src/main/java/com/detrav/gui/textures')
-rw-r--r--src/main/java/com/detrav/gui/textures/DetravMapTexture.java98
1 files changed, 74 insertions, 24 deletions
diff --git a/src/main/java/com/detrav/gui/textures/DetravMapTexture.java b/src/main/java/com/detrav/gui/textures/DetravMapTexture.java
index 58d69260ce..5cf913985c 100644
--- a/src/main/java/com/detrav/gui/textures/DetravMapTexture.java
+++ b/src/main/java/com/detrav/gui/textures/DetravMapTexture.java
@@ -1,48 +1,100 @@
package com.detrav.gui.textures;
-import java.awt.image.BufferedImage;
-import java.util.HashMap;
-
-import org.lwjgl.opengl.GL11;
-
-import com.detrav.net.DetravProPickPacket00;
-
-import net.minecraft.client.Minecraft;
+import com.detrav.net.ProspectingPacket;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.AbstractTexture;
import net.minecraft.client.renderer.texture.TextureUtil;
import net.minecraft.client.resources.IResourceManager;
+import org.lwjgl.opengl.GL11;
+
+import java.awt.Color;
+import java.awt.image.BufferedImage;
+import java.awt.image.WritableRaster;
/**
* Created by wital_000 on 21.03.2016.
*/
public class DetravMapTexture extends AbstractTexture {
- private DetravProPickPacket00 packet;
+ public final ProspectingPacket packet;
+ private String selected = "All";
+ public int width = -1;
+ public int height = -1;
- public DetravMapTexture(DetravProPickPacket00 aPacket)
+ public DetravMapTexture(ProspectingPacket aPacket)
{
packet = aPacket;
}
- public int width = -1;
- public int height = -1;
- public HashMap<String,Integer> ores = null;
+ private BufferedImage getImage() {
+ int wh = (packet.size * 2 + 1) * 16;
+
+ BufferedImage image = new BufferedImage(wh, wh, BufferedImage.TYPE_INT_ARGB);
+ WritableRaster raster = image.getRaster();
+
+ int playerI = packet.posX - (packet.chunkX - packet.size) * 16 - 1; // Correct player offset
+ int playerJ = packet.posZ - (packet.chunkZ - packet.size) * 16 - 1;
+ for (int i = 0; i < wh; i++) {
+ for (int j = 0; j < wh; j++) {
+ image.setRGB(i, j, Color.WHITE.getRGB());
+ if (packet.map[i][j] != null) {
+ if (packet.ptype == 0 || packet.ptype == 1) {
+ for (short meta : packet.map[i][j].values()) {
+ final String name = packet.metaMap.get(meta);
+ if (!selected.equals("All") && !selected.equals(name)) continue;
+ image.setRGB(i, j, packet.ores.get(name) | 0XFF000000);
+ break;
+ }
+ } else if (packet.ptype == 2) {
+ final short fluidId = packet.map[i][j].get((byte) 1), fluidSize = packet.map[i][j].get((byte) 2);
+ final String name = packet.metaMap.get(fluidId);
+
+ // Variables used to locate within a chunk.
+ final int k = (i % 16), l = (j % 16);
+
+ if( ( (k + l * 16) * 3) < (fluidSize + 48) ) {
+ image.setRGB(i, j, packet.ores.get(name));
+ }
+ }else if (packet.ptype == 3) {
+ final short meta = packet.map[i][j].get((byte) 1);
+ final String name = packet.metaMap.get(meta);
+ image.setRGB(i, j, packet.ores.get(name));
+ }
+ }
+ // draw player pos
+ if (i == playerI || j == playerJ) {
+ raster.setSample(i, j, 0, (raster.getSample(i, j, 0) + 255) / 2);
+ raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
+ raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
+ }
+ // draw grid
+ if ((i) % 16 == 0 || (j) % 16 == 0) {
+ raster.setSample(i, j, 0, raster.getSample(i, j, 0) / 2);
+ raster.setSample(i, j, 1, raster.getSample(i, j, 1) / 2);
+ raster.setSample(i, j, 2, raster.getSample(i, j, 2) / 2);
+ }
+ }
+ }
+
+ return image;
+ }
+
@Override
- public void loadTexture(IResourceManager p_110551_1_){
+ public void loadTexture(IResourceManager resourceManager){
this.deleteGlTexture();
- if(packet!=null)
- {
+ if(packet != null) {
int tId = getGlTextureId();
if(tId <0) return;
- BufferedImage bufferedimage = packet.getImage((int)Minecraft.getMinecraft().thePlayer.posX,(int)Minecraft.getMinecraft().thePlayer.posZ);
- TextureUtil.uploadTextureImageAllocate(this.getGlTextureId(), bufferedimage, false, false);
+ TextureUtil.uploadTextureImageAllocate(this.getGlTextureId(), getImage(), false, false);
width = packet.getSize();
height = packet.getSize();
- ores = packet.getOres();
}
- //GL11.glDrawPixels();
+ }
+
+ public void loadTexture(IResourceManager resourceManager, String selected){
+ this.selected = selected;
+ loadTexture(resourceManager);
}
public int glBindTexture() {
@@ -51,12 +103,10 @@ public class DetravMapTexture extends AbstractTexture {
return this.glTextureId;
}
- public void draw(int x, int y)
- {
+ public void draw(int x, int y) {
float f = 1F / (float)width;
float f1 = 1F / (float)height;
- int u = 0;
- int v = 0;
+ int u = 0, v = 0;
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
tessellator.addVertexWithUV((double)(x), (double)(y + height), 0, (double)((float)(u) * f), (double)((float)(v + height) * f1));