aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDetrav <witalyezep@gmail.com>2016-03-21 17:55:27 +0300
committerDetrav <witalyezep@gmail.com>2016-03-21 17:55:27 +0300
commit59b52ae2912ede30a0ee86c6358130905b5a0cf5 (patch)
tree1a5e4356cc92a6c1337c05a7ea43d39e15e846a9 /src
parenta9b3c6fe4f335bb4349f297fdf090c202e8105fa (diff)
downloadGT5-Unofficial-59b52ae2912ede30a0ee86c6358130905b5a0cf5.tar.gz
GT5-Unofficial-59b52ae2912ede30a0ee86c6358130905b5a0cf5.tar.bz2
GT5-Unofficial-59b52ae2912ede30a0ee86c6358130905b5a0cf5.zip
Complete sample gui
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/detrav/gui/DetravGuiProPick.java89
-rw-r--r--src/main/java/com/detrav/gui/DetravMapTexture.java4
-rw-r--r--src/main/java/com/detrav/net/DetravProPickPacket01.java35
3 files changed, 119 insertions, 9 deletions
diff --git a/src/main/java/com/detrav/gui/DetravGuiProPick.java b/src/main/java/com/detrav/gui/DetravGuiProPick.java
index ebb098f6a3..0abc3ada57 100644
--- a/src/main/java/com/detrav/gui/DetravGuiProPick.java
+++ b/src/main/java/com/detrav/gui/DetravGuiProPick.java
@@ -1,7 +1,18 @@
package com.detrav.gui;
+import cpw.mods.fml.client.GuiScrollingList;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.entity.AbstractClientPlayer;
+import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.texture.TextureUtil;
+import net.minecraft.util.ResourceLocation;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
/**
* Created by wital_000 on 21.03.2016.
@@ -9,6 +20,8 @@ import net.minecraft.client.renderer.texture.TextureUtil;
public class DetravGuiProPick extends GuiScreen {
public static final int GUI_ID = 20;
private static DetravMapTexture map = null;
+ ListOres ores = null;
+
public DetravGuiProPick()
{
@@ -21,8 +34,11 @@ public class DetravGuiProPick extends GuiScreen {
}
map = aMap;
map.loadTexture(null);
+ //ores = new ListOres(Minecraft.getMinecraft(),)
}
+ int prevW;
+ int prevH;
@Override
@@ -30,15 +46,76 @@ public class DetravGuiProPick extends GuiScreen {
this.drawDefaultBackground();
if(map!=null)
{
- int aX = (this.width - map.width)/2;
+ List<String> keys = new ArrayList(map.ores.keySet());
+ Collections.sort(keys);
+ int w = 0;
+ for(String item : keys)
+ {
+ w = Math.max(fontRendererObj.getStringWidth(item),w);
+ }
+ w+=10;
+
+ int aX = (this.width - map.width-100)/2;
int aY = (this.height - map.height)/2;
+
+ if(ores == null)
+ {
+ ores = new ListOres(this,100,map.height,aY,aY+map.height,aX+map.width,10,map.ores);
+ prevW = width;
+ prevH = height;
+ }
+ if(prevW!=width || prevH !=height)
+ {
+ ores = new ListOres(this,100,map.height,aY,aY+map.height,aX+map.width,10,map.ores);
+ prevW = width;
+ prevH = height;
+ }
+
map.glBindTexture();
map.draw(aX,aY);
- //this.drawTexturedModalRect(aX,aY,0,0,map.width,map.height);
+ ores.drawScreen(0,0,f);
+ }
+ }
+
+ class ListOres extends GuiScrollingList
+ {
+ HashMap<String,Integer> ores = null;
+ List<String> keys = null;
+
+ public ListOres(GuiScreen parent, int width, int height, int top, int bottom, int left, int entryHeight,HashMap<String,Integer> aOres) {
+ super(parent.mc, width, height, top, bottom, left, entryHeight);
+ ores = aOres;
+ keys = new ArrayList(map.ores.keySet());
+ Collections.sort(keys);
+ }
+
+ @Override
+ protected int getSize() {
+ return ores.size();
+ }
+
+ @Override
+ protected void elementClicked(int index, boolean doubleClick) {
+
+ }
+
+ @Override
+ protected boolean isSelected(int index) {
+ return false;
+ }
+
+ @Override
+ protected void drawBackground() {
+ //drawRect(this.left,this.top,this.listWidth,this.listHeight,0xFFFFFFFF);
+ }
+
+ @Override
+ protected void drawSlot(int slotIdx, int entryRight, int slotTop, int slotBuffer, Tessellator tess) {
+ //drawString(fontRendererObj,);
+ //fontRendererObj.drawString(fontRendererObj.trimStringToWidth())
+
+ fontRendererObj.drawString(fontRendererObj.trimStringToWidth(keys.get(slotIdx), listWidth - 10), this.left + 3 , slotTop + 2, ores.get(keys.get(slotIdx)));
+
}
- //TextureUtil.glGenTextures()
- //this.mc.renderEngine.bindTexture();
- //this.drawTexturedModelRectFromIcon();
- //this.drawTexturedModalRect();
}
}
diff --git a/src/main/java/com/detrav/gui/DetravMapTexture.java b/src/main/java/com/detrav/gui/DetravMapTexture.java
index 38977db6e5..ab58128ee2 100644
--- a/src/main/java/com/detrav/gui/DetravMapTexture.java
+++ b/src/main/java/com/detrav/gui/DetravMapTexture.java
@@ -9,6 +9,8 @@ import org.lwjgl.opengl.GL11;
import java.awt.image.BufferedImage;
import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
/**
* Created by wital_000 on 21.03.2016.
@@ -24,6 +26,7 @@ public class DetravMapTexture extends AbstractTexture {
public int width = -1;
public int height = -1;
+ public HashMap<String,Integer> ores = null;
@Override
public void loadTexture(IResourceManager p_110551_1_){
@@ -36,6 +39,7 @@ public class DetravMapTexture extends AbstractTexture {
TextureUtil.uploadTextureImageAllocate(this.getGlTextureId(), bufferedimage, false, false);
width = packet.getSize();
height = packet.getSize();
+ ores = packet.getOres();
}
//GL11.glDrawPixels();
}
diff --git a/src/main/java/com/detrav/net/DetravProPickPacket01.java b/src/main/java/com/detrav/net/DetravProPickPacket01.java
index 120f63fcc4..f691231b22 100644
--- a/src/main/java/com/detrav/net/DetravProPickPacket01.java
+++ b/src/main/java/com/detrav/net/DetravProPickPacket01.java
@@ -8,6 +8,7 @@ import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
+import gregtech.api.util.GT_LanguageManager;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChatComponentText;
@@ -18,6 +19,7 @@ import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
import java.io.File;
import java.util.HashMap;
+import java.util.List;
/**
* Created by wital_000 on 20.03.2016.
@@ -106,12 +108,20 @@ public class DetravProPickPacket01 extends DetravPacket {
//String key = String.format(("x_y"))
}
+ private HashMap<String,Integer> ores = null;
+
public BufferedImage getImage() {
int wh = (size*2+1)*16;
//int aWh = 1024;
//while (aWh<wh) aWh*=2;
- BufferedImage image = new BufferedImage(wh,wh,BufferedImage.TYPE_3BYTE_BGR );
+ BufferedImage image = new BufferedImage(wh,wh,BufferedImage.TYPE_INT_ARGB );
WritableRaster raster = image.getRaster();
+
+ int playerI = (int)Minecraft.getMinecraft().thePlayer.posX - (chunkX-size)*16;
+ int playerJ = (int)Minecraft.getMinecraft().thePlayer.posZ - (chunkZ-size)*16;
+
+ if(ores == null) ores = new HashMap<String, Integer>();
+
for(int i =0; i<wh; i++)
for(int j =0; j<wh; j++) {
if (map[i][j] == null)
@@ -119,6 +129,7 @@ public class DetravProPickPacket01 extends DetravPacket {
raster.setSample(i,j,0,255);
raster.setSample(i,j,1,255);
raster.setSample(i,j,2,255);
+ raster.setSample(i,j,3,255);
}
else
{
@@ -126,11 +137,22 @@ public class DetravProPickPacket01 extends DetravPacket {
//Пока только по одному буду
Materials tMaterial = GregTech_API.sGeneratedMaterials[meta% 1000];
short[] rgba = tMaterial.getRGBA();
- raster.setSample(i,j,0,rgba[2]);
+ raster.setSample(i,j,0,rgba[0]);
raster.setSample(i,j,1,rgba[1]);
- raster.setSample(i,j,2,rgba[0]);
+ raster.setSample(i,j,2,rgba[2]);
+ raster.setSample(i,j,3,255);
+ //ores.put(GT_Ore)
+ String name = GT_LanguageManager.getTranslation("gt.blockores." + meta + ".name");
+ if(!ores.containsKey(name))
+ ores.put(name,(0xFF << 24) + ((rgba[0]&0xFF)<<16)+((rgba[1]&0xFF)<<8)+((rgba[2]&0xFF)));
}
}
+ if(playerI == i || playerJ == j)
+ {
+ 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);
+ }
if((i-15)%16 == 0 || (j-15)%16 == 0)
{
raster.setSample(i,j,0,raster.getSample(i,j,0)/2);
@@ -151,6 +173,13 @@ public class DetravProPickPacket01 extends DetravPacket {
//return null;
}
+ public HashMap<String,Integer> getOres()
+ {
+ if(ores == null) return new HashMap<String, Integer>();
+ return ores;
+ }
+
+
public int getSize() {
return (size*2+1)*16;
}