aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Robertz <dream-master@gmx.net>2021-01-25 18:47:09 +0100
committerGitHub <noreply@github.com>2021-01-25 18:47:09 +0100
commitc1c87c9f07db900cb3c59e32b2c5032d94e637eb (patch)
tree66e32403f5c10be3c74735c36d4e26c831c4cfa6
parent88287f7769c4e1bf122175a698bb3ac1726f1f5d (diff)
parentc52efb53533390f7e3b3ef14558501121b35affe (diff)
downloadGT5-Unofficial-c1c87c9f07db900cb3c59e32b2c5032d94e637eb.tar.gz
GT5-Unofficial-c1c87c9f07db900cb3c59e32b2c5032d94e637eb.tar.bz2
GT5-Unofficial-c1c87c9f07db900cb3c59e32b2c5032d94e637eb.zip
Merge pull request #12 from GTNewHorizons/selectable_ores
Selectable ores - Inspired by Gregicality
-rw-r--r--.gitignore1
-rw-r--r--build.gradle41
-rw-r--r--build.properties2
-rw-r--r--libs/GT-PlusPlus-1.7.05.68.jar (renamed from libs/GT-PlusPlus-1.7.05.53.jar)bin6077536 -> 6213681 bytes
-rw-r--r--libs/GTNewHorizonsCoreMod-1.7.10-1.7.06-dev.jar (renamed from libs/GTNewHorizonsCoreMod-1.7.10-1.6.25.jar)bin10612659 -> 10644416 bytes
-rw-r--r--libs/Railcraft_1.7.10-9.12.2.0-dev.jarbin4089297 -> 3993848 bytes
-rw-r--r--libs/bartworks[1.7.10]-0.5.13_pre8.jarbin877741 -> 0 bytes
-rw-r--r--libs/bartworks[1.7.10]-[c9836c6]-0.5.15-dev.jarbin0 -> 1131697 bytes
-rw-r--r--libs/gregtech-5.09.34.08-dev.jar (renamed from libs/gregtech-5.09.33.24-dev.jar)bin11007701 -> 11044412 bytes
-rw-r--r--src/main/java/com/detrav/DetravScannerMod.java12
-rw-r--r--src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java4
-rw-r--r--src/main/java/com/detrav/commands/DetravScannerCommand.java10
-rw-r--r--src/main/java/com/detrav/enums/DetravToolDictNames.java6
-rw-r--r--src/main/java/com/detrav/gui/DetravGuiProPick.java134
-rw-r--r--src/main/java/com/detrav/gui/DetravScannerGUI.java82
-rw-r--r--src/main/java/com/detrav/gui/OresList.java65
-rw-r--r--src/main/java/com/detrav/gui/textures/DetravMapTexture.java105
-rw-r--r--src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java355
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProspector.java (renamed from src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java)65
-rw-r--r--src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProspector.java (renamed from src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java)50
-rw-r--r--src/main/java/com/detrav/items/processing/ProcessingDetravToolProspector.java (renamed from src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java)21
-rw-r--r--src/main/java/com/detrav/items/tools/DetravProspector.java (renamed from src/main/java/com/detrav/items/tools/DetravProPick.java)16
-rw-r--r--src/main/java/com/detrav/items/tools/DetravToolElectricProspector.java (renamed from src/main/java/com/detrav/items/tools/DetravToolElectricProPick.java)6
-rw-r--r--src/main/java/com/detrav/items/tools/DetravToolElectricProspectorBase.java (renamed from src/main/java/com/detrav/items/tools/DetravToolElectricProPickBase.java)8
-rw-r--r--src/main/java/com/detrav/net/DetravNetwork.java20
-rw-r--r--src/main/java/com/detrav/net/DetravPacket.java4
-rw-r--r--src/main/java/com/detrav/net/DetravProPickPacket00.java341
-rw-r--r--src/main/java/com/detrav/net/ProspectingPacket.java185
-rw-r--r--src/main/java/com/detrav/proxies/ClientProxy.java18
-rw-r--r--src/main/java/com/detrav/proxies/CommonProxy.java14
-rw-r--r--src/main/java/com/detrav/utils/DetravCreativeTab.java28
-rw-r--r--src/main/java/com/detrav/utils/FluidColors.java4
-rw-r--r--src/main/java/com/detrav/utils/GTppHelper.java10
-rw-r--r--src/main/resources/assets/detravscannermod/lang/en_US.lang11
-rw-r--r--src/main/resources/mcmod.info4
35 files changed, 620 insertions, 1002 deletions
diff --git a/.gitignore b/.gitignore
index e710ac74bf..d3b80e6cd6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -66,6 +66,7 @@ libs/
#Folders
eclipse/
+run/
.gradle/
*.log
diff --git a/build.gradle b/build.gradle
index 2664d55586..781618d9be 100644
--- a/build.gradle
+++ b/build.gradle
@@ -16,9 +16,10 @@ buildscript {
}
apply plugin: 'java'
apply plugin: 'forge'
-//apply plugin: 'idea'
+apply plugin: 'idea'
-//idea.module.inheritOutputDirs = true
+
+idea { module { inheritOutputDirs = true } }
file "build.properties" withReader {
def prop = new Properties()
@@ -39,7 +40,7 @@ archivesBaseName = "GT Scanner Mod"
minecraft {
version = "${config.minecraft.version}-${config.forge.version}"
- runDir = "eclipse"
+ runDir = "run"
}
configurations {
@@ -68,32 +69,9 @@ repositories {
maven { // AppleCore
url "http://www.ryanliptak.com/maven/"
}
- //ivy {
- // name "BuildCraft"
- // artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision]-[classifier].[ext]"
- //}
- //ivy {
- // name 'CoFHLib'
- // artifactPattern "http://addons-origin.cursecdn.com/files/${config.cofhlib.cf}/[module]-[revision].[ext]"
- //}
- //ivy {
- // name 'CoFHCore'
- // artifactPattern "http://addons-origin.cursecdn.com/files/${config.cofhcore.cf}/[module]-[revision].[ext]"
- //}
- //ivy {
- // name 'Railcraft'
- // artifactPattern "http://addons-origin.cursecdn.com/files/${config.railcraft.cf}/[module]_[revision].[ext]"
- //}
- //ivy {
- // name 'IC2NuclearControl'
- // artifactPattern "http://addons-origin.cursecdn.com/files/${config.nc.cf}/[module]-[revision].[ext]"
- //}
}
dependencies {
-// provided ("appeng:appliedenergistics2:${config.ae2.version}:dev") {
-// exclude module: '*'
-// }
provided "codechicken:CodeChickenLib:${config.minecraft.version}-${config.codechickenlib.version}:dev"
provided "codechicken:CodeChickenCore:${config.minecraft.version}-${config.codechickencore.version}:dev"
provided "codechicken:NotEnoughItems:${config.minecraft.version}-${config.nei.version}:dev"
@@ -104,11 +82,6 @@ dependencies {
provided ("com.enderio:EnderIO:${config.enderio.version}:dev") {
transitive = false
}
- // provided name: 'buildcraft', version: config.buildcraft.version, classifier: "dev", ext: 'jar'
- // provided name: 'CoFHLib', version: config.cofhlib.version, ext: 'jar'
- // provided name: 'CoFHCore', version: config.cofhcore.version, ext: 'jar'
- // provided name: 'Railcraft', version: config.railcraft.version, ext: 'jar'
- // provided name: 'IC2NuclearControl', version: config.nc.version, ext: 'jar'
}
task devJar(type: Jar) {
from sourceSets.main.output
@@ -137,6 +110,12 @@ artifacts {
archives devJar
archives debugJar
}
+
+// Textures in debug mode. :rage:
+sourceSets {
+ main { output.resourcesDir = output.classesDir }
+}
+
processResources
{
// this will ensure that this task is redone when the versions change.
diff --git a/build.properties b/build.properties
index 9ce918dfd5..ef2552b1d7 100644
--- a/build.properties
+++ b/build.properties
@@ -1,7 +1,7 @@
minecraft.version=1.7.10
forge.version=10.13.4.1614-1.7.10
-detravscanner.version=1.5.9
+detravscanner.version=1.6.0
ae2.version=rv2-beta-33
applecore.version=1.7.10-1.2.1+107.59407
diff --git a/libs/GT-PlusPlus-1.7.05.53.jar b/libs/GT-PlusPlus-1.7.05.68.jar
index b3816bab72..caf54f33ec 100644
--- a/libs/GT-PlusPlus-1.7.05.53.jar
+++ b/libs/GT-PlusPlus-1.7.05.68.jar
Binary files differ
diff --git a/libs/GTNewHorizonsCoreMod-1.7.10-1.6.25.jar b/libs/GTNewHorizonsCoreMod-1.7.10-1.7.06-dev.jar
index 33be0149b4..aa4f3de323 100644
--- a/libs/GTNewHorizonsCoreMod-1.7.10-1.6.25.jar
+++ b/libs/GTNewHorizonsCoreMod-1.7.10-1.7.06-dev.jar
Binary files differ
diff --git a/libs/Railcraft_1.7.10-9.12.2.0-dev.jar b/libs/Railcraft_1.7.10-9.12.2.0-dev.jar
index 43a55309f4..e016668af4 100644
--- a/libs/Railcraft_1.7.10-9.12.2.0-dev.jar
+++ b/libs/Railcraft_1.7.10-9.12.2.0-dev.jar
Binary files differ
diff --git a/libs/bartworks[1.7.10]-0.5.13_pre8.jar b/libs/bartworks[1.7.10]-0.5.13_pre8.jar
deleted file mode 100644
index d87115c7f5..0000000000
--- a/libs/bartworks[1.7.10]-0.5.13_pre8.jar
+++ /dev/null
Binary files differ
diff --git a/libs/bartworks[1.7.10]-[c9836c6]-0.5.15-dev.jar b/libs/bartworks[1.7.10]-[c9836c6]-0.5.15-dev.jar
new file mode 100644
index 0000000000..2413ea4ebc
--- /dev/null
+++ b/libs/bartworks[1.7.10]-[c9836c6]-0.5.15-dev.jar
Binary files differ
diff --git a/libs/gregtech-5.09.33.24-dev.jar b/libs/gregtech-5.09.34.08-dev.jar
index fd36d35b2f..e67ee1e8cc 100644
--- a/libs/gregtech-5.09.33.24-dev.jar
+++ b/libs/gregtech-5.09.34.08-dev.jar
Binary files differ
diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java
index acf8ffec76..92ad44617a 100644
--- a/src/main/java/com/detrav/DetravScannerMod.java
+++ b/src/main/java/com/detrav/DetravScannerMod.java
@@ -24,10 +24,13 @@ import net.minecraftforge.common.config.Configuration;
public class DetravScannerMod
{
public static final String MODID = "detravscannermod";
- public static final String VERSION = "1.5.7";
+ public static final String VERSION = "1.6.0";
public static final String DEBUGOVERRIDE = "@false";
public static final boolean DEBUGBUILD = Boolean.parseBoolean(DEBUGOVERRIDE.substring(1));
public static final CreativeTabs TAB_DETRAV = new DetravCreativeTab();
+ public static boolean isDreamcraftLoaded = false;
+ public static boolean isBartWorksLoaded = false;
+ public static boolean isGTppLoaded = false;
public static final org.apache.logging.log4j.Logger Logger = LogManager.getLogger("GT Scanner Mod");
@@ -39,6 +42,10 @@ public class DetravScannerMod
public DetravScannerMod() {
GregTech_API.sAfterGTPreload.add(new Detrav_AfterGTPreload_Loader());
+ isDreamcraftLoaded = Loader.isModLoaded("dreamcraft");
+ isBartWorksLoaded = Loader.isModLoaded("bartworks");
+ isGTppLoaded = Loader.isModLoaded("miscutils");
+
new DetravNetwork();
}
@@ -64,8 +71,7 @@ public class DetravScannerMod
@EventHandler
public void onPostLoad(FMLPostInitializationEvent aEvent) {
proxy.onPostLoad();
- if (Loader.isModLoaded("miscutils"))
- GTppHelper.generate_OreIDs();
+ if (isGTppLoaded) GTppHelper.generate_OreIDs();
FluidColors.makeColors();
}
diff --git a/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java b/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java
index db9011b1c8..cff4e6eec9 100644
--- a/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java
+++ b/src/main/java/com/detrav/Detrav_AfterGTPreload_Loader.java
@@ -1,7 +1,7 @@
package com.detrav;
import com.detrav.items.DetravMetaGeneratedTool01;
-import com.detrav.items.processing.ProcessingDetravToolProPick;
+import com.detrav.items.processing.ProcessingDetravToolProspector;
/**
* Created by wital_000 on 18.03.2016.
@@ -14,7 +14,7 @@ public class Detrav_AfterGTPreload_Loader implements Runnable {
new DetravMetaGeneratedTool01();
//recipes and etc
- new ProcessingDetravToolProPick();
+ new ProcessingDetravToolProspector();
}
}
diff --git a/src/main/java/com/detrav/commands/DetravScannerCommand.java b/src/main/java/com/detrav/commands/DetravScannerCommand.java
index 22f5d2c279..beeccc482f 100644
--- a/src/main/java/com/detrav/commands/DetravScannerCommand.java
+++ b/src/main/java/com/detrav/commands/DetravScannerCommand.java
@@ -23,8 +23,7 @@ public class DetravScannerCommand implements ICommand {
private List aliases;
- public DetravScannerCommand()
- {
+ public DetravScannerCommand() {
this.aliases = new ArrayList<String>();
this.aliases.add("DetravScanner");
this.aliases.add("dscan");
@@ -52,7 +51,7 @@ public class DetravScannerCommand implements ICommand {
int aY = 0;
String name = null;
- ArrayList<String> strs = new ArrayList<String>();
+ ArrayList<String> strs = new ArrayList<>();
for(int i =0; i<args.length;i++)
{
strs.add(args[i]);
@@ -95,7 +94,7 @@ public class DetravScannerCommand implements ICommand {
Chunk c = sender.getEntityWorld().getChunkFromChunkCoords(aX,aZ);
if(c == null)
sender.addChatMessage(new ChatComponentText("ERROR"));
- HashMap<String,Integer> ores = new HashMap<String,Integer>();
+ HashMap<String,Integer> ores = new HashMap<>();
for (int x = 0; x < 16; x++)
for (int z = 0; z < 16; z++) {
int ySize = c.getHeightValue(x, z);
@@ -123,8 +122,7 @@ public class DetravScannerCommand implements ICommand {
}
sender.addChatMessage(new ChatComponentText("*** Detrav Scanner Begin"));
- for(String key : ores.keySet())
- {
+ for(String key : ores.keySet()) {
sender.addChatMessage(new ChatComponentText(String.format("%s : %d", key, ores.get(key))));
}
sender.addChatMessage(new ChatComponentText("*** Detrav Scanner End"));
diff --git a/src/main/java/com/detrav/enums/DetravToolDictNames.java b/src/main/java/com/detrav/enums/DetravToolDictNames.java
index 6f50a385b2..128545360c 100644
--- a/src/main/java/com/detrav/enums/DetravToolDictNames.java
+++ b/src/main/java/com/detrav/enums/DetravToolDictNames.java
@@ -3,7 +3,7 @@ package com.detrav.enums;
/**
* Created by wital_000 on 19.03.2016.
*/
-public enum DetravToolDictNames {
- craftingToolElectricProPick,
- craftingToolProPick,
+public enum DetravToolDictNames {
+ craftingToolElectricProspector,
+ craftingToolProspector,
}
diff --git a/src/main/java/com/detrav/gui/DetravGuiProPick.java b/src/main/java/com/detrav/gui/DetravGuiProPick.java
deleted file mode 100644
index b62be499fe..0000000000
--- a/src/main/java/com/detrav/gui/DetravGuiProPick.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package com.detrav.gui;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-
-import org.lwjgl.opengl.GL11;
-
-import com.detrav.gui.textures.DetravMapTexture;
-
-import cpw.mods.fml.client.GuiScrollingList;
-import net.minecraft.client.gui.GuiScreen;
-import net.minecraft.client.renderer.Tessellator;
-import net.minecraft.util.ResourceLocation;
-
-/**
- * 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;
- ListOres ores = null;
-
- public DetravGuiProPick()
- {
-
- }
-
- public static void newMap(DetravMapTexture aMap) {
- if (map != null) {
- map.deleteGlTexture();
- map = null;
- }
- map = aMap;
- map.loadTexture(null);
- //ores = new ListOres(Minecraft.getMinecraft(),)
- }
-
- int prevW;
- int prevH;
-
-
- private static int minHeight = 128;
- private static int minWidth = 128;
-
- private static final ResourceLocation back = new ResourceLocation("gregtech:textures/gui/propick.png");
-
- @Override
- public void drawScreen(int x, int y, float f) {
- this.drawDefaultBackground();
- if(map!=null)
- {
- int currentWidth = Math.max(map.width,minWidth);
- int currentHeight = Math.max(map.height,minHeight);
- int aX = (this.width - currentWidth-100)/2;
- int aY = (this.height - currentHeight)/2;
-
- if(ores == null)
- {
- ores = new ListOres(this,100,currentHeight,aY,aY+currentHeight,aX+currentWidth,10,map.ores);
- prevW = width;
- prevH = height;
- }
- if(prevW!=width || prevH !=height)
- {
- ores = new ListOres(this,100,currentHeight,aY,aY+currentHeight,aX+currentWidth,10,map.ores);
- prevW = width;
- prevH = height;
- }
-
-
- //dradback for ores
- drawRect(aX,aY,aX+currentWidth+100,aY+currentHeight,0xFFC6C6C6);
- map.glBindTexture();
- map.draw(aX,aY);
- ores.drawScreen(x,y,f);
- mc.getTextureManager().bindTexture(back);
- GL11.glColor4f(0xFF, 0xFF, 0xFF, 0xFF);
- //drawcorners
- drawTexturedModalRect(aX-5,aY-5,0,0,5,5);//leftTop
- drawTexturedModalRect(aX+currentWidth+100,aY-5,171,0,5,5);//RightTop
- drawTexturedModalRect(aX-5,aY+currentHeight,0,161,5,5);//leftDown
- drawTexturedModalRect(aX+currentWidth+100,aY+currentHeight,171,161,5,5);//RightDown
- //draw edges
- for(int i = aX;i<aX+currentWidth+100;i+=128) drawTexturedModalRect(i,aY-5,5,0,Math.min(128,aX+currentWidth+100-i),5); //top
- for(int i = aX;i<aX+currentWidth+100;i+=128) drawTexturedModalRect(i,aY+currentHeight,5,161,Math.min(128,aX+currentWidth+100-i),5); //down
- for(int i = aY;i<aY+currentHeight;i+=128) drawTexturedModalRect(aX-5,i,0,5,5,Math.min(128,aY + currentHeight-i)); //left
- for(int i = aY;i<aY+currentHeight;i+=128) drawTexturedModalRect(aX+currentWidth+100,i,171,5,5,Math.min(128,aY+currentHeight-i)); //right
- }
- }
-
- 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)));
-
- }
- }
-}
diff --git a/src/main/java/com/detrav/gui/DetravScannerGUI.java b/src/main/java/com/detrav/gui/DetravScannerGUI.java
new file mode 100644
index 0000000000..aebd1c04dd
--- /dev/null
+++ b/src/main/java/com/detrav/gui/DetravScannerGUI.java
@@ -0,0 +1,82 @@
+package com.detrav.gui;
+
+import org.lwjgl.opengl.GL11;
+
+import com.detrav.gui.textures.DetravMapTexture;
+
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.util.ResourceLocation;
+
+/**
+ * Created by wital_000 on 21.03.2016.
+ */
+public class DetravScannerGUI extends GuiScreen {
+ public static final int GUI_ID = 20;
+ private static DetravMapTexture map = null;
+ OresList oresList = null;
+
+ private final static int minHeight = 128;
+ private final static int minWidth = 128;
+ private int prevW;
+ private int prevH;
+
+ private static final ResourceLocation back = new ResourceLocation("gregtech:textures/gui/propick.png");
+
+ public DetravScannerGUI() {
+
+ }
+
+ 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) return;
+
+ int currentWidth = Math.max(map.width, minWidth);
+ int currentHeight = Math.max(map.height, minHeight);
+ int aX = (this.width - currentWidth-100)/2;
+ int aY = (this.height - currentHeight)/2;
+
+ if(oresList == null || (prevW != width || prevH != height)) {
+ oresList = new OresList(
+ this, 100, currentHeight, aY, aY+currentHeight, aX+currentWidth, 10, map.packet.ores,
+ ((name, invert) -> {
+ if (map != null) map.loadTexture(null, name, invert);
+ })
+ );
+ prevW = width;
+ prevH = height;
+ }
+
+ // draw back for ores
+ drawRect(aX,aY,aX+currentWidth+100,aY+currentHeight,0xFFC6C6C6);
+ map.glBindTexture();
+ map.draw(aX,aY);
+ oresList.drawScreen(x, y, f);
+ mc.getTextureManager().bindTexture(back);
+ GL11.glColor4f(0xFF, 0xFF, 0xFF, 0xFF);
+
+ // draw corners
+ drawTexturedModalRect(aX-5,aY-5,0,0,5,5);//leftTop
+ drawTexturedModalRect(aX+currentWidth+100,aY-5,171,0,5,5);//RightTop
+ drawTexturedModalRect(aX-5,aY+currentHeight,0,161,5,5);//leftDown
+ drawTexturedModalRect(aX+currentWidth+100,aY+currentHeight,171,161,5,5);//RightDown
+
+ // draw edges
+ for(int i = aX ; i <aX + currentWidth + 100 ; i += 128) drawTexturedModalRect(i,aY-5,5,0,Math.min(128,aX+currentWidth+100-i),5); //top
+ for(int i = aX ; i <aX + currentWidth + 100 ; i += 128) drawTexturedModalRect(i,aY+currentHeight,5,161,Math.min(128,aX+currentWidth+100-i),5); //down
+ for(int i = aY ; i <aY + currentHeight ; i += 128) drawTexturedModalRect(aX-5,i,0,5,5,Math.min(128,aY + currentHeight-i)); //left
+ for(int i = aY ; i <aY + currentHeight ; i += 128) drawTexturedModalRect(aX+currentWidth+100,i,171,5,5,Math.min(128,aY+currentHeight-i)); //right
+
+ }
+
+}
diff --git a/src/main/java/com/detrav/gui/OresList.java b/src/main/java/com/detrav/gui/OresList.java
new file mode 100644
index 0000000000..a8847d3d64
--- /dev/null
+++ b/src/main/java/com/detrav/gui/OresList.java
@@ -0,0 +1,65 @@
+package com.detrav.gui;
+
+import cpw.mods.fml.client.GuiScrollingList;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.renderer.Tessellator;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.function.BiConsumer;
+import java.util.function.Consumer;
+
+class OresList extends GuiScrollingList {
+ private final HashMap<String, Integer> ores;
+ private final List<String> keys;
+ private final GuiScreen parent;
+ private final BiConsumer<String, Boolean> onSelected;
+ private boolean invert = false;
+
+ private int selected = -1;
+
+ public OresList(GuiScreen parent, int width, int height, int top, int bottom, int left, int entryHeight, HashMap<String, Integer> aOres, BiConsumer<String, Boolean> onSelected) {
+ super(parent.mc, width, height, top, bottom, left, entryHeight);
+ this.parent = parent;
+ this.onSelected = onSelected;
+ ores = aOres;
+ keys = new ArrayList<>(ores.keySet());
+ Collections.sort(keys);
+ if(keys.size() > 1) keys.add(0, "All");
+ selected = 0;
+ }
+
+ @Override
+ protected int getSize() {
+ return keys.size();
+ }
+
+ @Override
+ protected void elementClicked(int index, boolean doubleClick) {
+ selected = index;
+ if (doubleClick) this.invert = !this.invert;
+
+ if(onSelected != null) onSelected.accept(keys.get(index), this.invert);
+ }
+
+ @Override
+ protected boolean isSelected(int index) {
+ return selected == index;
+ }
+
+ @Override
+ protected void drawBackground() {}
+
+ @Override
+ protected void drawSlot(int slotIdx, int entryRight, int slotTop, int slotBuffer, Tessellator tess) {
+ parent.drawString(
+ parent.mc.fontRenderer,
+ parent.mc.fontRenderer.trimStringToWidth(keys.get(slotIdx), listWidth - 10),
+ this.left + 3,
+ slotTop - 1,
+ ores.getOrDefault(keys.get(slotIdx), 0x7d7b76)
+ );
+ }
+}
diff --git a/src/main/java/com/detrav/gui/textures/DetravMapTexture.java b/src/main/java/com/detrav/gui/textures/DetravMapTexture.java
index 58d69260ce..444064594e 100644
--- a/src/main/java/com/detrav/gui/textures/DetravMapTexture.java
+++ b/src/main/java/com/detrav/gui/textures/DetravMapTexture.java
@@ -1,48 +1,107 @@
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 boolean invert = false;
- 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() {
+ final int backgroundColor = invert ? Color.GRAY.getRGB() : Color.WHITE.getRGB();
+ final 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, backgroundColor);
+ 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.getOrDefault(name, Color.BLACK.getRGB()) | 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) && (selected.equals("All") || selected.equals(name))) {
+ image.setRGB(i, j, packet.ores.getOrDefault(name, Color.BLACK.getRGB()) | 0XFF000000);
+ }
+ }else if (packet.ptype == 3) {
+ final short meta = packet.map[i][j].get((byte) 1);
+ image.setRGB(i, j, ((meta & 0xFF) << 16) + ((meta & 0xFF) << 8) + ((meta & 0xFF)) | 0XFF000000);
+ }
+ }
+ // 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.dele