aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDetrav <witalyezep@gmail.com>2016-03-21 13:13:55 +0300
committerDetrav <witalyezep@gmail.com>2016-03-21 13:13:55 +0300
commit1520e32508fe119b5017c148528342cbcc5b1abd (patch)
treef933c066a8e6a3d8765a3f64c521d95dffbea2c6 /src
parent3136ee7505810670253dacecc83cc075b11e22c6 (diff)
downloadGT5-Unofficial-1520e32508fe119b5017c148528342cbcc5b1abd.tar.gz
GT5-Unofficial-1520e32508fe119b5017c148528342cbcc5b1abd.tar.bz2
GT5-Unofficial-1520e32508fe119b5017c148528342cbcc5b1abd.zip
Added simple map gui
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/detrav/DetravScannerMod.java13
-rw-r--r--src/main/java/com/detrav/gui/DetravGuiProPick.java43
-rw-r--r--src/main/java/com/detrav/gui/DetravMapTexture.java48
-rw-r--r--src/main/java/com/detrav/net/DetravProPickPacket01.java39
-rw-r--r--src/main/java/com/detrav/proxies/CommonProxy.java18
5 files changed, 156 insertions, 5 deletions
diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java
index 17ea564795..b70abfae26 100644
--- a/src/main/java/com/detrav/DetravScannerMod.java
+++ b/src/main/java/com/detrav/DetravScannerMod.java
@@ -9,6 +9,7 @@ import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
+import cpw.mods.fml.common.network.NetworkRegistry;
import gregtech.api.GregTech_API;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
@@ -21,20 +22,24 @@ public class DetravScannerMod
public static final CreativeTabs TAB_DETRAV = new DetravCreativeTab();
+ @SidedProxy(clientSide = "com.detrav.proxies.ClientProxy", serverSide = "com.detrav.proxies.ServerProxy")
+ public static CommonProxy proxy;
+
+ @Mod.Instance(DetravScannerMod.MODID)
+ public static DetravScannerMod instance;
+
public DetravScannerMod()
{
GregTech_API.sAfterGTPreload.add(new DetravLoader());
new DetravNetwork();
}
-
- @SidedProxy(clientSide = "com.detrav.proxies.ClientProxy", serverSide = "com.detrav.proxies.ServerProxy")
- public static CommonProxy proxy;
@EventHandler
public void init(FMLInitializationEvent event)
{
// some example code
- System.out.println("DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName());
+ //System.out.println("DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName());
+ NetworkRegistry.INSTANCE.registerGuiHandler(instance, proxy );
}
@EventHandler
diff --git a/src/main/java/com/detrav/gui/DetravGuiProPick.java b/src/main/java/com/detrav/gui/DetravGuiProPick.java
new file mode 100644
index 0000000000..73c6973fd9
--- /dev/null
+++ b/src/main/java/com/detrav/gui/DetravGuiProPick.java
@@ -0,0 +1,43 @@
+package com.detrav.gui;
+
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.renderer.texture.TextureUtil;
+
+/**
+ * Created by wital_000 on 21.03.2016.
+ */
+public class DetravGuiProPick extends GuiScreen {
+ public static final int GUI_ID = 20;
+ private static DetravMapTexture map = null;
+ public DetravGuiProPick()
+ {
+
+ }
+
+ public static void newMap(DetravMapTexture aMap) {
+ if (map != null) {
+ map.deleteGlTexture();
+ map = null;
+ }
+ map = aMap;
+ map.loadTexture(null);
+ }
+
+
+
+ @Override
+ public void drawScreen(int x, int y, float f) {
+ this.drawDefaultBackground();
+ if(map!=null)
+ {
+ int aX = (this.width - map.width)/2;
+ int aY = (this.height - map.height)/2;
+ map.glBindTexture();
+ this.drawTexturedModalRect(aX,aY,0,0,map.width,map.height);
+ }
+ //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
new file mode 100644
index 0000000000..487bdc3b1e
--- /dev/null
+++ b/src/main/java/com/detrav/gui/DetravMapTexture.java
@@ -0,0 +1,48 @@
+package com.detrav.gui;
+
+import com.detrav.net.DetravProPickPacket01;
+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.image.BufferedImage;
+import java.io.IOException;
+
+/**
+ * Created by wital_000 on 21.03.2016.
+ */
+public class DetravMapTexture extends AbstractTexture {
+
+ private DetravProPickPacket01 packet;
+
+ public DetravMapTexture(DetravProPickPacket01 aPacket)
+ {
+ packet = aPacket;
+ }
+
+ public int width = -1;
+ public int height = -1;
+
+ @Override
+ public void loadTexture(IResourceManager p_110551_1_){
+ this.deleteGlTexture();
+ if(packet!=null)
+ {
+ int tId = getGlTextureId();
+ if(tId <0) return;
+ BufferedImage bufferedimage = packet.getImage();
+ TextureUtil.uploadTextureImageAllocate(this.getGlTextureId(), bufferedimage, false, false);
+ width = bufferedimage.getWidth();
+ height = bufferedimage.getHeight();
+ }
+ //GL11.glDrawPixels();
+ }
+
+ public int glBindTexture() {
+ if (this.glTextureId < 0) return this.glTextureId;
+ GL11.glBindTexture(GL11.GL_TEXTURE_2D, this.getGlTextureId());
+ return this.glTextureId;
+ }
+
+}
diff --git a/src/main/java/com/detrav/net/DetravProPickPacket01.java b/src/main/java/com/detrav/net/DetravProPickPacket01.java
index ad6aba226e..7a4843acbd 100644
--- a/src/main/java/com/detrav/net/DetravProPickPacket01.java
+++ b/src/main/java/com/detrav/net/DetravProPickPacket01.java
@@ -1,11 +1,18 @@
package com.detrav.net;
+import com.detrav.DetravScannerMod;
+import com.detrav.gui.DetravGuiProPick;
+import com.detrav.gui.DetravMapTexture;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import net.minecraft.client.Minecraft;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ChatComponentText;
+import java.awt.image.BufferedImage;
+import java.awt.image.ColorModel;
+import java.awt.image.WritableRaster;
import java.util.HashMap;
/**
@@ -80,6 +87,9 @@ public class DetravProPickPacket01 extends DetravPacket {
@Override
public void process() {
+ DetravGuiProPick.newMap(new DetravMapTexture(this));
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+ player.openGui(DetravScannerMod.instance, DetravGuiProPick.GUI_ID,player.worldObj,(int)player.posX,(int)player.posY,(int)player.posZ);
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("NetworkTested: " + Integer.toString(level)));
}
@@ -91,4 +101,33 @@ public class DetravProPickPacket01 extends DetravPacket {
map[aX][aZ].put((byte)y,metaData);
//String key = String.format(("x_y"))
}
+
+ public BufferedImage getImage() {
+ int wh = (size*2+1)*16;
+ BufferedImage image = new BufferedImage(wh,wh,BufferedImage.TYPE_3BYTE_BGR );
+ WritableRaster raster = image.getRaster();
+ for(int i =0; i<wh; i++)
+ for(int j =0; j<wh; j++) {
+ if (map[i][j] == null)
+ {
+ raster.setSample(i,j,0,255);
+ raster.setSample(i,j,1,255);
+ raster.setSample(i,j,2,255);
+ }
+ else
+ {
+ raster.setSample(i,j,0,0);
+ raster.setSample(i,j,1,0);
+ raster.setSample(i,j,2,0);
+ for(byte key : map[i][j].keySet()) {
+ //Пока только по одному буду
+ }
+ }
+ }
+ return image;
+
+
+ //image.set
+ //return null;
+ }
}
diff --git a/src/main/java/com/detrav/proxies/CommonProxy.java b/src/main/java/com/detrav/proxies/CommonProxy.java
index 7e7c84fc06..70a39ccf1e 100644
--- a/src/main/java/com/detrav/proxies/CommonProxy.java
+++ b/src/main/java/com/detrav/proxies/CommonProxy.java
@@ -1,16 +1,20 @@
package com.detrav.proxies;
import com.detrav.enums.DetravSimpleItems;
+import com.detrav.gui.DetravGuiProPick;
+import cpw.mods.fml.common.network.IGuiHandler;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.SubTag;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.world.World;
/**
* Created by wital_000 on 19.03.2016.
*/
-public class CommonProxy {
+public class CommonProxy implements IGuiHandler {
public void onLoad() {
@@ -28,4 +32,16 @@ public class CommonProxy {
}
}
}
+
+ @Override
+ public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
+ return null;
+ }
+
+ @Override
+ public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
+ if(ID == DetravGuiProPick.GUI_ID)
+ return new DetravGuiProPick();
+ return null;
+ }
}