diff options
author | Detrav <witalyezep@gmail.com> | 2016-03-21 13:13:55 +0300 |
---|---|---|
committer | Detrav <witalyezep@gmail.com> | 2016-03-21 13:13:55 +0300 |
commit | 1520e32508fe119b5017c148528342cbcc5b1abd (patch) | |
tree | f933c066a8e6a3d8765a3f64c521d95dffbea2c6 /src | |
parent | 3136ee7505810670253dacecc83cc075b11e22c6 (diff) | |
download | GT5-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.java | 13 | ||||
-rw-r--r-- | src/main/java/com/detrav/gui/DetravGuiProPick.java | 43 | ||||
-rw-r--r-- | src/main/java/com/detrav/gui/DetravMapTexture.java | 48 | ||||
-rw-r--r-- | src/main/java/com/detrav/net/DetravProPickPacket01.java | 39 | ||||
-rw-r--r-- | src/main/java/com/detrav/proxies/CommonProxy.java | 18 |
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; + } } |