aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorDetrav <witalyezep@gmail.com>2016-03-19 09:08:23 +0300
committerDetrav <witalyezep@gmail.com>2016-03-19 09:08:23 +0300
commitc0db9cb3ceafd2d7c573ebe07bba1681ac9422b5 (patch)
tree4644ac250d65b04eaa25b3dc4ae197c78dacace0 /src/main/java
parent108f9786404ccd2535aebe9ec980cb600f394853 (diff)
downloadGT5-Unofficial-c0db9cb3ceafd2d7c573ebe07bba1681ac9422b5.tar.gz
GT5-Unofficial-c0db9cb3ceafd2d7c573ebe07bba1681ac9422b5.tar.bz2
GT5-Unofficial-c0db9cb3ceafd2d7c573ebe07bba1681ac9422b5.zip
Inited
now backup
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/detrav/DetravLoader.java19
-rw-r--r--src/main/java/com/detrav/DetravScannerMod.java56
-rw-r--r--src/main/java/com/detrav/commands/DetravScannerCommand.java165
-rw-r--r--src/main/java/com/detrav/proxies/ClientProxy.java20
-rw-r--r--src/main/java/com/detrav/proxies/CommonProxy.java17
-rw-r--r--src/main/java/com/detrav/proxies/ServerProxy.java7
-rw-r--r--src/main/java/com/detrav/tools/DetravMetaGeneratedItem01.java21
-rw-r--r--src/main/java/com/detrav/tools/DetravRenderItemMetaGenerated.java163
-rw-r--r--src/main/java/com/detrav/tools/DetravToolProPick.java178
-rw-r--r--src/main/java/com/detrav/tools/Detrav_MetaGenerated_Tool_01.java25
-rw-r--r--src/main/java/com/detrav/tools/ProcessingToolHeadProPick.java22
-rw-r--r--src/main/java/com/detrav/tools/ToolDictNames.java9
-rw-r--r--src/main/java/com/detrav/utils/DetravCreativeTab.java20
-rw-r--r--src/main/java/com/detrav/utils/DetravMetaGeneratedItem.java110
-rw-r--r--src/main/java/com/detrav/utils/DetravMetaGeneratedTool.java30
-rw-r--r--src/main/java/com/detrav/utils/Textures.java50
16 files changed, 912 insertions, 0 deletions
diff --git a/src/main/java/com/detrav/DetravLoader.java b/src/main/java/com/detrav/DetravLoader.java
new file mode 100644
index 0000000000..2709ad1912
--- /dev/null
+++ b/src/main/java/com/detrav/DetravLoader.java
@@ -0,0 +1,19 @@
+package com.detrav;
+
+import com.detrav.tools.DetravMetaGeneratedItem01;
+import com.detrav.tools.DetravToolProPick;
+import com.detrav.tools.Detrav_MetaGenerated_Tool_01;
+import com.detrav.tools.ProcessingToolHeadProPick;
+import gregtech.api.enums.OrePrefixes;
+
+/**
+ * Created by wital_000 on 18.03.2016.
+ */
+public class DetravLoader implements Runnable {
+ @Override
+ public void run() {
+ new DetravMetaGeneratedItem01();
+ //new Detrav_MetaGenerated_Tool_01();
+ //new ProcessingToolHeadProPick();
+ }
+}
diff --git a/src/main/java/com/detrav/DetravScannerMod.java b/src/main/java/com/detrav/DetravScannerMod.java
new file mode 100644
index 0000000000..15ab843e91
--- /dev/null
+++ b/src/main/java/com/detrav/DetravScannerMod.java
@@ -0,0 +1,56 @@
+package com.detrav;
+
+import com.detrav.proxies.CommonProxy;
+import com.detrav.commands.DetravScannerCommand;
+import com.detrav.utils.DetravCreativeTab;
+import cpw.mods.fml.common.Mod;
+import cpw.mods.fml.common.Mod.EventHandler;
+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 gregtech.api.GregTech_API;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.init.Blocks;
+
+@Mod(modid = DetravScannerMod.MODID, version = DetravScannerMod.VERSION,dependencies = "required-after:IC2;required-after:gregtech")
+public class DetravScannerMod
+{
+ public static final String MODID = "detravscannermod";
+ public static final String VERSION = "0.4";
+
+ public static final CreativeTabs TAB_DETRAV = new DetravCreativeTab();
+
+ public DetravScannerMod()
+ {
+ GregTech_API.sAfterGTPreload.add(new DetravLoader());
+ }
+
+ @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());
+ }
+
+ @EventHandler
+ public void onLoad(FMLInitializationEvent aEvent)
+ {
+ proxy.onLoad();
+ }
+
+ @EventHandler
+ public void onPostLoad(FMLPostInitializationEvent aEvent)
+ {
+ proxy.onPostLoad();
+ }
+
+ @EventHandler
+ public void serverLoad(FMLServerStartingEvent event)
+ {
+ event.registerServerCommand(new DetravScannerCommand());
+ }
+}
diff --git a/src/main/java/com/detrav/commands/DetravScannerCommand.java b/src/main/java/com/detrav/commands/DetravScannerCommand.java
new file mode 100644
index 0000000000..673a2e1d44
--- /dev/null
+++ b/src/main/java/com/detrav/commands/DetravScannerCommand.java
@@ -0,0 +1,165 @@
+package com.detrav.commands;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.common.blocks.GT_TileEntity_Ores;
+import net.minecraft.block.Block;
+import net.minecraft.client.Minecraft;
+import net.minecraft.command.ICommand;
+import net.minecraft.command.ICommandSender;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.ChunkCoordinates;
+import net.minecraft.world.World;
+import net.minecraft.world.chunk.Chunk;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Created by wital_000 on 17.03.2016.
+ */
+public class DetravScannerCommand implements ICommand {
+
+ private List aliases;
+
+ public DetravScannerCommand()
+ {
+ this.aliases = new ArrayList<String>();
+ this.aliases.add("DetravScanner");
+ this.aliases.add("dscan");
+ }
+
+ @Override
+ public String getCommandName() {
+ return "DetravScanner";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender sender) {
+ return "DetravScanner [\"Part of Greg ore name\"]";
+ }
+
+ @Override
+ public List getCommandAliases() {
+ return this.aliases;
+ }
+
+ @Override
+ public void processCommand(ICommandSender sender, String[] args) {
+ int aX = 0;
+ int aZ = 0;
+ int aY = 0;
+ String name = null;
+
+ ArrayList<String> strs = new ArrayList<String>();
+ for(int i =0; i<args.length;i++)
+ {
+ strs.add(args[i]);
+ if(args[i].startsWith("\"")) {
+ for (i++; i < args.length; i++) {
+ String temp = (String)strs.get(strs.size()-1);
+ temp = temp + " " + args[i];
+ temp = temp.replace("\"","");
+ strs.set(strs.size()-1,temp);
+ if(args[i].endsWith("\""))
+ break;
+ }
+ }
+ }
+ args = new String[strs.size()];
+ args = strs.toArray(args);
+
+ switch (args.length)
+ {
+ case 0:
+ break;
+ case 1:
+ if(args[0].toLowerCase() == "help") {
+ sendHelpMessage(sender);
+ return;
+ }
+ name = args[0];
+ break;
+ default:
+ sendHelpMessage(sender);
+ return ;
+ }
+ ChunkCoordinates c = sender.getPlayerCoordinates();
+ if(name!=null) name = name.toLowerCase();
+ process(sender,(int)Math.floor(c.posX/16.0),(int)Math.floor(c.posZ/16.0),name);
+ }
+
+ private void process(ICommandSender sender, int aX, int aZ, String fName)
+ {
+ Chunk c = sender.getEntityWorld().getChunkFromChunkCoords(aX,aZ);
+ if(c == null)
+ sender.addChatMessage(new ChatComponentText("ERROR"));
+ HashMap<String,Integer> ores = new HashMap<String,Integer>();
+ for (int x = 0; x < 16; x++)
+ for (int z = 0; z < 16; z++) {
+ int ySize = c.getHeightValue(x, z);
+ for (int y = 1; y < ySize; y++) {
+ Block b = c.getBlock(x, y, z);
+ if (b == GregTech_API.sBlockOres1) {
+ TileEntity entity = c.getTileEntityUnsafe(x, y, z);
+ if (entity != null) {
+ GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) entity;
+ String name = GT_LanguageManager.getTranslation(
+ b.getUnlocalizedName() + "." + gt_entity.getMetaData() + ".name");
+ if(name.startsWith("Small")) continue;
+ if (fName == null || name.toLowerCase().contains(fName)) {
+ if (!ores.containsKey(name))
+ ores.put(name, 1);
+ else {
+ int val = ores.get(name);
+ ores.put(name, val + 1);
+ }
+ }
+ }
+ }
+ }
+
+ }
+ sender.addChatMessage(new ChatComponentText("*** Detrav Scanner Begin"));
+ for(String key : ores.keySet())
+ {
+ sender.addChatMessage(new ChatComponentText(String.format("%s : %d", key, ores.get(key))));
+ }
+ sender.addChatMessage(new ChatComponentText("*** Detrav Scanner End"));
+ }
+
+ private void sendHelpMessage(ICommandSender sender)
+ {
+ sender.addChatMessage(new ChatComponentText(getCommandUsage(sender)));
+ }
+
+
+ @Override
+ public boolean canCommandSenderUseCommand(ICommandSender p_71519_1_) {
+ return true;
+ }
+
+ @Override
+ public List addTabCompletionOptions(ICommandSender sender, String[] args) {
+ if(args.length !=1) return null;
+ if("help".startsWith(args[0].toLowerCase())) {
+ List result = new ArrayList();
+ result.add("help");
+ sendHelpMessage(sender);
+ return result;
+ }
+ return null;
+ }
+
+ @Override
+ public boolean isUsernameIndex(String[] p_82358_1_, int p_82358_2_) {
+ return false;
+ }
+
+ @Override
+ public int compareTo(Object o) {
+ return 0;
+ }
+}
diff --git a/src/main/java/com/detrav/proxies/ClientProxy.java b/src/main/java/com/detrav/proxies/ClientProxy.java
new file mode 100644
index 0000000000..5178275208
--- /dev/null
+++ b/src/main/java/com/detrav/proxies/ClientProxy.java
@@ -0,0 +1,20 @@
+package com.detrav.proxies;
+
+import com.detrav.tools.DetravRenderItemMetaGenerated;
+import com.detrav.utils.Textures;
+
+/**
+ * Created by wital_000 on 19.03.2016.
+ */
+public class ClientProxy extends CommonProxy {
+ @Override
+ public void onPostLoad()
+ {
+ Textures.load();
+ }
+ @Override
+ public void onLoad()
+ {
+ new DetravRenderItemMetaGenerated();
+ }
+}
diff --git a/src/main/java/com/detrav/proxies/CommonProxy.java b/src/main/java/com/detrav/proxies/CommonProxy.java
new file mode 100644
index 0000000000..3d5fe20186
--- /dev/null
+++ b/src/main/java/com/detrav/proxies/CommonProxy.java
@@ -0,0 +1,17 @@
+package com.detrav.proxies;
+
+/**
+ * Created by wital_000 on 19.03.2016.
+ */
+public class CommonProxy {
+
+ public void onLoad()
+ {
+
+ }
+
+ public void onPostLoad()
+ {
+
+ }
+}
diff --git a/src/main/java/com/detrav/proxies/ServerProxy.java b/src/main/java/com/detrav/proxies/ServerProxy.java
new file mode 100644
index 0000000000..4aa26808ad
--- /dev/null
+++ b/src/main/java/com/detrav/proxies/ServerProxy.java
@@ -0,0 +1,7 @@
+package com.detrav.proxies;
+
+/**
+ * Created by wital_000 on 19.03.2016.
+ */
+public class ServerProxy extends CommonProxy {
+}
diff --git a/src/main/java/com/detrav/tools/DetravMetaGeneratedItem01.java b/src/main/java/com/detrav/tools/DetravMetaGeneratedItem01.java
new file mode 100644
index 0000000000..dd3c8213e4
--- /dev/null
+++ b/src/main/java/com/detrav/tools/DetravMetaGeneratedItem01.java
@@ -0,0 +1,21 @@
+package com.detrav.tools;
+
+import com.detrav.utils.DetravMetaGeneratedItem;
+import com.detrav.utils.Textures;
+import gregtech.api.enums.TC_Aspects;
+
+/**
+ * Created by wital_000 on 19.03.2016.
+ */
+public class DetravMetaGeneratedItem01 extends DetravMetaGeneratedItem {
+
+ public static DetravMetaGeneratedItem01 INSTANCE;
+
+ public DetravMetaGeneratedItem01() {
+ super("detrav.meta.item.01");
+ INSTANCE = this;
+ this.addItem(1,"ProPick Head",null, new Object[] {new TC_Aspects.TC_AspectStack(TC_Aspects.METALLUM, 4L)});
+ //this.getIco
+ mIconList[1][1] = Textures.ItemIcons.PRO_PICK_HEAD.getIcon();
+ }
+}
diff --git a/src/main/java/com/detrav/tools/DetravRenderItemMetaGenerated.java b/src/main/java/com/detrav/tools/DetravRenderItemMetaGenerated.java
new file mode 100644
index 0000000000..9d029690c2
--- /dev/null
+++ b/src/main/java/com/detrav/tools/DetravRenderItemMetaGenerated.java
@@ -0,0 +1,163 @@
+package com.detrav.tools;
+
+import com.detrav.utils.DetravMetaGeneratedItem;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.util.GT_Utility;
+import gregtech.common.render.GT_RenderUtil;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.ItemRenderer;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.client.renderer.entity.RenderItem;
+import net.minecraft.client.renderer.texture.TextureMap;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraftforge.client.IItemRenderer;
+import net.minecraftforge.client.MinecraftForgeClient;
+import org.lwjgl.opengl.GL11;
+
+import java.util.Iterator;
+
+/**
+ * Created by wital_000 on 19.03.2016.
+ */
+public class DetravRenderItemMetaGenerated implements IItemRenderer {
+
+ public DetravRenderItemMetaGenerated()
+ {
+ Iterator tIterator = DetravMetaGeneratedItem01.sInstances.values().iterator();
+ while(tIterator.hasNext())
+ {
+ DetravMetaGeneratedItem dItem = (DetravMetaGeneratedItem) tIterator.next();
+ if(dItem != null)
+ MinecraftForgeClient.registerItemRenderer(dItem, this);
+ }
+ }
+
+ @Override
+ public boolean handleRenderType(ItemStack aStack, IItemRenderer.ItemRenderType aType) {
+ if ((GT_Utility.isStackInvalid(aStack)) || (aStack.getItemDamage() < 0)) {
+ return false;
+ }
+ return (aType == IItemRenderer.ItemRenderType.EQUIPPED_FIRST_PERSON) || (aType == IItemRenderer.ItemRenderType.INVENTORY) || (aType == IItemRenderer.ItemRenderType.EQUIPPED) || (aType == IItemRenderer.ItemRenderType.ENTITY);
+ }
+
+ @Override
+ public boolean shouldUseRenderHelper(IItemRenderer.ItemRenderType aType, ItemStack aStack, IItemRenderer.ItemRendererHelper aHelper) {
+ if (GT_Utility.isStackInvalid(aStack)) {
+ return false;
+ }
+ return aType == IItemRenderer.ItemRenderType.ENTITY;
+ }
+ @Override
+ public void renderItem(IItemRenderer.ItemRenderType type, ItemStack aStack, Object... data) {
+
+ if (GT_Utility.isStackInvalid(aStack)) {
+ return;
+ }
+ short aMetaData = (short) aStack.getItemDamage();
+ if (aMetaData < 0) {
+ return;
+ }
+
+ DetravMetaGeneratedItem aItem = (DetravMetaGeneratedItem) aStack.getItem();
+
+ GL11.glEnable(3042);
+ if (type == IItemRenderer.ItemRenderType.ENTITY) {
+ if (RenderItem.renderInFrame) {
+ GL11.glScalef(0.85F, 0.85F, 0.85F);
+ GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
+ GL11.glTranslated(-0.5D, -0.42D, 0.0D);
+ } else {
+ GL11.glTranslated(-0.5D, -0.42D, 0.0D);
+ }
+ GL11.glColor3f(1.0F, 1.0F, 1.0F);
+ if (aMetaData < 0) {
+ IIconContainer aIcon = aItem.getIconContainer(aMetaData);
+ IIcon tOverlay = null;
+ IIcon tFluidIcon = null;
+ IIcon tIcon;
+ if (aIcon == null) {
+ tIcon = aStack.getIconIndex();
+ } else {
+ tIcon = aIcon.getIcon();
+ tOverlay = aIcon.getOverlayIcon();
+ }
+ if (tIcon == null) {
+ return;
+ }
+ /*FluidStack tFluid = GT_Utility.getFluidForFilledItem(aStack, true);
+ if ((tOverlay != null) && (tFluid != null) && (tFluid.getFluid() != null)) {
+ tFluidIcon = tFluid.getFluid().getIcon(tFluid);
+ }*/
+ Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
+ GL11.glBlendFunc(770, 771);
+ if (tFluidIcon == null) {
+ short[] tModulation = aItem.getRGBa(aStack);
+ GL11.glColor3f(tModulation[0] / 255.0F, tModulation[1] / 255.0F, tModulation[2] / 255.0F);
+ }
+ if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
+ GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
+ } else {
+ ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F);
+ }
+ /*if (tFluidIcon != null) {
+ assert (tFluid != null);
+ int tColor = tFluid.getFluid().getColor(tFluid);
+ GL11.glColor3f((tColor >> 16 & 0xFF) / 255.0F, (tColor >> 8 & 0xFF) / 255.0F, (tColor & 0xFF) / 255.0F);
+ Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture);
+ GL11.glBlendFunc(770, 771);
+ GL11.glDepthFunc(514);
+ if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
+ GT_RenderUtil.renderItemIcon(tFluidIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
+ } else {
+ ItemRenderer.renderItemIn2D(Tessellator.instance, tFluidIcon.getMaxU(), tFluidIcon.getMinV(), tFluidIcon.getMinU(), tFluidIcon.getMaxV(), tFluidIcon.getIconWidth(), tFluidIcon.getIconHeight(), 0.0625F);
+ }
+ GL11.glDepthFunc(515);
+ }*/
+ GL11.glColor3f(1.0F, 1.0F, 1.0F);
+ if (tOverlay != null) {
+ Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
+ GL11.glBlendFunc(770, 771);
+ if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
+ GT_RenderUtil.renderItemIcon(tOverlay, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
+ } else {
+ ItemRenderer.renderItemIn2D(Tessellator.instance, tOverlay.getMaxU(), tOverlay.getMinV(), tOverlay.getMinU(), tOverlay.getMaxV(), tOverlay.getIconWidth(), tOverlay.getIconHeight(), 0.0625F);
+ }
+ }
+ } else {
+ IIcon tIcon;
+ if (aItem.mIconList[(aMetaData)].length > 1) {
+ Long[] tStats = null;
+ //Long[] tStats = (Long[]) aItem.mElectricStats.get(Short.valueOf(aMetaData));
+
+ if ((tStats != null) && (tStats[3].longValue() < 0L)) {
+ long tCharge = aItem.getRealCharge(aStack);
+
+ if (tCharge <= 0L) {
+ tIcon = aItem.mIconList[(aMetaData)][1];
+ } else {
+
+ if (tCharge >= tStats[0].longValue()) {
+ tIcon = aItem.mIconList[(aMetaData)][8];
+ } else {
+ tIcon = aItem.mIconList[(aMetaData)][(7 - (int) java.lang.Math.max(0L, java.lang.Math.min(5L, (tStats[0].longValue() - tCharge) * 6L / tStats[0].longValue())))];
+ }
+ }
+ } else {
+ tIcon = aItem.mIconList[(aMetaData)][0];
+ }
+ } else {
+ tIcon = aItem.mIconList[(aMetaData)][0];
+ }
+ Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
+ GL11.glBlendFunc(770, 771);
+ if (type.equals(IItemRenderer.ItemRenderType.INVENTORY)) {
+ GT_RenderUtil.renderItemIcon(tIcon, 16.0D, 0.001D, 0.0F, 0.0F, -1.0F);
+ } else {
+ ItemRenderer.renderItemIn2D(Tessellator.instance, tIcon.getMaxU(), tIcon.getMinV(), tIcon.getMinU(), tIcon.getMaxV(), tIcon.getIconWidth(), tIcon.getIconHeight(), 0.0625F);
+ }
+ }
+ GL11.glDisable(3042);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/java/com/detrav/tools/DetravToolProPick.java b/src/main/java/com/detrav/tools/DetravToolProPick.java
new file mode 100644
index 0000000000..ee6a074792
--- /dev/null
+++ b/src/main/java/com/detrav/tools/DetravToolProPick.java
@@ -0,0 +1,178 @@
+package com.detrav.tools;
+
+import gregtech.GT_Mod;
+import gregtech.api.GregTech_API;
+import gregtech.api.damagesources.GT_DamageSources;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+import gregtech.api.interfaces.IToolStats;
+import net.minecraft.block.Block;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.stats.AchievementList;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IChatComponent;
+import net.minecraftforge.event.world.BlockEvent;
+
+import java.util.List;
+
+/**
+ * Created by wital_000 on 18.03.2016.
+ */
+public class DetravToolProPick implements IToolStats {
+ public int getToolDamagePerBlockBreak() {
+ return GT_Mod.gregtechproxy.mHardRock ? 25 : 50;
+ }
+
+ public int getToolDamagePerDropConversion() {
+ return 100;
+ }
+
+ public int getToolDamagePerContainerCraft() {
+ return 100;
+ }
+
+ public int getToolDamagePerEntityAttack() {
+ return 200;
+ }
+
+ public int getBaseQuality() {
+ return 0;
+ }
+
+ public float getBaseDamage() {
+ return 1.5F;
+ }
+
+ @Override
+ public int getHurtResistanceTime(int i, Entity entity) {
+ return i;
+ }
+
+ public float getSpeedMultiplier() {
+ return 1.0F;
+ }
+
+ public float getMaxDurabilityMultiplier() {
+ return 1.0F;
+ }
+
+ @Override
+ public DamageSource getDamageSource(EntityLivingBase aPlayer, Entity aEntity) {
+ return GT_DamageSources.getCombatDamage((aPlayer instanceof EntityPlayer) ? "player" : "mob", aPlayer, (aEntity instanceof EntityLivingBase) ? getDeathMessage(aPlayer, (EntityLivingBase) aEntity) : null);
+ }
+
+ public String getCraftingSound() {
+ return null;
+ }
+
+ public String getEntityHitSound() {
+ return null;
+ }
+
+ public String getBreakingSound() {
+ return (String) GregTech_API.sSoundList.get(Integer.valueOf(0));
+ }
+
+ @Override
+ public Enchantment[] getEnchantments(ItemStack itemStack) {
+ return new Enchantment[0];
+ }
+
+ @Override
+ public int[] getEnchantmentLevels(ItemStack itemStack) {
+ return new int[0];
+ }
+
+ public String getMiningSound() {
+ return null;
+ }
+
+ public boolean canBlock() {
+ return false;
+ }
+
+ public boolean isCrowbar() {
+ return false;
+ }
+
+ @Override
+ public boolean isGrafter() {
+ return false;
+ }
+
+ @Override
+ public boolean isChainsaw() {
+ return false;
+ }
+
+ @Override
+ public boolean isWrench() {
+ return false;
+ }
+
+ @Override
+ public boolean isWeapon() {
+ return false;
+ }
+
+ @Override
+ public boolean isRangedWeapon() {
+ return false;
+ }
+
+ @Override
+ public boolean isMiningTool() {
+ return true;
+ }
+
+ public boolean isMinableBlock(Block aBlock, byte aMetaData) {
+ return false;
+ }
+
+ @Override
+ public int convertBlockDrops(List<ItemStack> list, ItemStack itemStack, EntityPlayer entityPlayer, Block block, int i, int i1, int i2, byte b, int i3, boolean b1, BlockEvent.HarvestDropsEvent harvestDropsEvent) {
+ return 0;
+ }
+
+ public ItemStack getBrokenItem(ItemStack aStack) {
+ return null;
+ }
+
+ @Override
+ public float getNormalDamageAgainstEntity(float v, Entity entity, ItemStack itemStack, EntityPlayer entityPlayer) {
+ return v;
+ }
+
+ @Override
+ public float getMagicDamageAgainstEntity(float v, Entity entity, ItemStack itemStack, EntityPlayer entityPlayer) {
+ return v;
+ }
+
+ public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) {
+ return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.toolHeadPickaxe.mTextureIndex] : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mIconSet.mTextures[gregtech.api.enums.OrePrefixes.stick.mTextureIndex];
+ }
+
+ public short[] getRGBa(boolean aIsToolHead, ItemStack aStack) {
+ return aIsToolHead ? GT_MetaGenerated_Tool.getPrimaryMaterial(aStack).mRGBa : GT_MetaGenerated_Tool.getSecondaryMaterial(aStack).mRGBa;
+ }
+
+ public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID) {
+ }
+
+ public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer) {
+
+ aPlayer.triggerAchievement(AchievementList.openInventory);
+ aPlayer.triggerAchievement(AchievementList.mineWood);
+ aPlayer.triggerAchievement(AchievementList.buildWorkBench);
+ }
+
+ public IChatComponent getDeathMessage(EntityLivingBase aPlayer, EntityLivingBase aEntity) {
+ return new ChatComponentText(EnumChatFormatting.RED + aEntity.getCommandSenderName() + EnumChatFormatting.WHITE + " got ProPicked by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE);
+ }
+}
diff --git a/src/main/java/com/detrav/tools/Detrav_MetaGenerated_Tool_01.java b/src/main/java/com/detrav/tools/Detrav_MetaGenerated_Tool_01.java
new file mode 100644
index 0000000000..8db6de9595
--- /dev/null
+++ b/src/main/java/com/detrav/tools/Detrav_MetaGenerated_Tool_01.java
@@ -0,0 +1,25 @@
+package com.detrav.tools;
+
+import gregtech.api.enums.TC_Aspects;
+import gregtech.api.items.GT_MetaGenerated_Tool;
+
+/**
+ * Created by wital_000 on 18.03.2016.
+ */
+public class Detrav_MetaGenerated_Tool_01 extends GT_MetaGenerated_Tool {
+ public static Detrav_MetaGenerated_Tool_01 INSTANCE;
+
+ public Detrav_MetaGenerated_Tool_01() {
+ super("detrav.metatool.01");
+ INSTANCE = this;
+ addTool(1, "Prospector's Pick", "", new DetravToolProPick(),
+ new Object[]
+ {
+ ToolDictNames.craftingToolProPick,
+ new TC_Aspects.TC_AspectStack(TC_Aspects.INSTRUMENTUM, 2L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.SENSUS, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.TERRA, 4L),
+ new TC_Aspects.TC_AspectStack(TC_Aspects.ARBOR, 1L)
+ });
+ }
+}
diff --git a/src/main/java/com/detrav/tools/ProcessingToolHeadProPick.java b/src/main/java/com/detrav/tools/ProcessingToolHeadProPick.java
new file mode 100644
index 0000000000..c822a60162
--- /dev/null
+++ b/src/main/java/com/detrav/tools/ProcessingToolHeadProPick.java
@@ -0,0 +1,22 @@
+package com.detrav.tools;
+
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_ModHandler;
+import net.minecraft.item.ItemStack;
+
+/**
+ * Created by wital_000 on 18.03.2016.
+ */
+public class ProcessingToolHeadProPick implements gregtech.api.interfaces.IOreRecipeRegistrator {
+ public ProcessingToolHeadProPick() {
+ OrePrefixes.toolHeadPickaxe.add(this);
+ }
+
+ public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) {
+ /*GT_ModHandler.
+ addShapelessCraftingRecipe(
+ Detrav_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(1, 1, aMaterial, aMaterial.mHandleMaterial, null),
+ new Object[]{aOreDictName, OrePrefixes.stick.get(aMaterial.mHandleMaterial),}});*/
+ }
+}
diff --git a/src/main/java/com/detrav/tools/ToolDictNames.java b/src/main/java/com/detrav/tools/ToolDictNames.java
new file mode 100644
index 0000000000..4c25220c05
--- /dev/null
+++ b/src/main/java/com/detrav/tools/ToolDictNames.java
@@ -0,0 +1,9 @@
+package com.detrav.tools;
+
+/**
+ * Created by wital_000 on 18.03.2016.
+ */
+public enum ToolDictNames {
+ craftingToolProPickHead,
+ craftingToolProPick;
+} \ No newline at end of file
diff --git a/src/main/java/com/detrav/utils/DetravCreativeTab.java b/src/main/java/com/detrav/utils/DetravCreativeTab.java
new file mode 100644
index 0000000000..e54d8d5413
--- /dev/null
+++ b/src/main/java/com/detrav/utils/DetravCreativeTab.java
@@ -0,0 +1,20 @@
+package com.detrav.utils;
+
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.init.Items;
+import net.minecraft.item.Item;
+
+/**
+ * Created by wital_000 on 19.03.2016.
+ */
+public class DetravCreativeTab extends CreativeTabs {
+
+ public DetravCreativeTab() {
+ super("Detrav Scanner");
+ }
+
+ @Override
+ public Item getTabIconItem() {
+ return Items.stick;
+ }
+}
diff --git a/src/main/java/com/detrav/utils/DetravMetaGeneratedItem.java b/src/main/java/com/detrav/utils/DetravMetaGeneratedItem.java
new file mode 100644
index 0000000000..8f46ba39b5
--- /dev/null
+++ b/src/main/java/com/detrav/utils/DetravMetaGeneratedItem.java
@@ -0,0 +1,110 @@
+package com.detrav.utils;
+
+import com.detrav.DetravScannerMod;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import gregtech.api.GregTech_API;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.TC_Aspects;
+import gregtech.api.interfaces.IIconContainer;
+import gregtech.api.items.GT_MetaBase_Item;
+import gregtech.api.util.GT_LanguageManager;
+import gregtech.api.util.GT_OreDictUnificator;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Created by wital_000 on 19.03.2016.
+ */
+public abstract class DetravMetaGeneratedItem extends GT_MetaBase_Item {
+
+ public static final HashMap<String, DetravMetaGeneratedItem> sInstances = new HashMap<String, DetravMetaGeneratedItem>();
+ public IIcon[][] mIconList;
+
+
+ public DetravMetaGeneratedItem(String aUnlocalized) {
+ super(aUnlocalized);
+ setCreativeTab(DetravScannerMod.TAB_DETRAV);
+ setMaxStackSize(64);
+
+ mIconList = new IIcon[1][1];
+
+ sInstances.put(getUnlocalizedName(), this);
+ }
+
+ public final ItemStack addItem(int aID, String aEnglish, String aToolTip, Object... aOreDictNamesAndAspects)
+ {
+ if(aToolTip == null)
+ aToolTip = "";
+ if(aID >= 0 && aID < 32766) {
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + aID + ".name" , aEnglish);
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + aID + ".tooltip" , aToolTip);
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (aID+1) + ".name" , aEnglish + " (Broken)");
+ GT_LanguageManager.addStringLocalization(getUnlocalizedName() + "." + (aID+1) + ".tooltip" , "Perhaps you can salvage some?");
+ ItemStack rStack = new ItemStack(this, 1, aID);
+ List<TC_Aspects.TC_AspectStack> tAspects = new ArrayList<TC_Aspects.TC_AspectStack>();
+ for (Object tOreDictNameOrAspect : aOreDictNamesAndAspects)
+ {
+ if (tOreDictNameOrAspect instanceof TC_Aspects.TC_AspectStack)
+ ((TC_Aspects.TC_AspectStack)tOreDictNameOrAspect).addToAspectList(tAspects);
+ else
+ GT_OreDictUnificator.registerOre(tOreDictNameOrAspect, rStack);
+ }
+ if (GregTech_API.sThaumcraftCompat != null)
+ GregTech_API.sThaumcraftCompat.registerThaumcraftAspectsToItem(rStack, tAspects, false);
+ return rStack;
+ }
+ return null;
+ }
+
+ public final ItemStack getItem(int aID, int aAmount, Materials aPrimaryMaterial)
+ {
+ ItemStack rStack = new ItemStack(this, aAmount, aID);
+ return rStack;
+ }
+
+
+ @Override
+ public Long[] getElectricStats(ItemStack itemStack) {
+ return null;
+ }
+
+ @Override
+ public Long[] getFluidContainerStats(ItemStack itemStack) {
+ return null;
+ }
+
+ @Override
+ public final int getItemStackLimit(ItemStack aStack)
+ {
+ return 64;
+ }
+
+ public IIconContainer getIconContainer(short aMetaData) {
+ //return
+ //return mIconList[aMetaData][1];
+ switch (aMetaData)
+ {
+ case 1:
+ return Textures.ItemIcons.PRO_PICK_HEAD;
+ default:
+ return Textures.ItemIcons.RENDERING_ERROR;
+ }
+ }
+
+ public short[] getRGBa(ItemStack aStack) {
+ return Materials._NULL.getRGBA();
+ }
+
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public final void registerIcons(IIconRegister aIconRegister) {
+ //mIconList[1][1] = aIconRegister.registerIcon()
+ }
+}
diff --git a/src/main/java/com/detrav/utils/DetravMetaGeneratedTool.java b/src/main/java/com/detrav/utils/DetravMetaGeneratedTool.java
new file mode 100644
index 0000000000..81c0ff3cd1
--- /dev/null
+++ b/src/main/java/com/detrav/utils/DetravMetaGeneratedTool.java
@@ -0,0 +1,30 @@
+package com.detrav.utils;
+
+import gregtech.api.interfaces.IDamagableItem;
+import gregtech.api.items.GT_MetaBase_Item;
+import net.minecraft.item.ItemStack;
+
+/**
+ * Created by wital_000 on 19.03.2016.
+ */
+public class DetravMetaGeneratedTool extends GT_MetaBase_Item implements IDamagableItem {
+
+ public DetravMetaGeneratedTool(String aUnlocalized) {
+ super(aUnlocalized);
+ }
+
+ @Override
+ public Long[] getElectricStats(ItemStack itemStack) {
+ return new Long[0];
+ }
+
+ @Override
+ public Long[] getFluidContainerStats(ItemStack itemStack) {
+ return new Long[0];
+ }
+
+ @Override
+ public boolean doDamageToItem(ItemStack itemStack, int i) {
+ return false;
+ }
+}
diff --git a/src/main/java/com/detrav/utils/Textures.java b/src/main/java/com/detrav/utils/Textures.java
new file mode 100644
index 0000000000..1a5387b286
--- /dev/null
+++ b/src/main/java/com/detrav/utils/Textures.java
@@ -0,0 +1,50 @@
+package com.detrav.utils;
+
+import gregtech.api.GregTech_API;
+import gregtech.api.interfaces.IIconContainer;
+import net.minecraft.client.renderer.texture.TextureMap;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.ResourceLocation;
+
+/**
+ * Created by wital_000 on 19.03.2016.
+ */
+public class Textures {
+
+ public static void load() {
+ }
+
+ public enum ItemIcons implements IIconContainer, Runnable {
+ VOID,RENDERING_ERROR,PRO_PICK_HEAD;
+
+
+
+ protected IIcon mIcon, mOverlay;
+
+ @Override
+ public IIcon getIcon() {
+ return mIcon;
+ }
+
+ @Override
+ public IIcon getOverlayIcon() {
+ return mOverlay;
+ }
+
+ @Override
+ public ResourceLocation getTextureFile() {
+ return TextureMap.locationItemsTexture;
+ }
+
+ private ItemIcons() {
+ GregTech_API.sGTItemIconload.add(this);
+ }
+
+
+ @Override
+ public void run() {
+ mIcon = GregTech_API.sItemIcons.registerIcon("gregtech:iconsets/" + this);
+ mOverlay = GregTech_API.sItemIcons.registerIcon("gregtech:iconsets/" + this + "_OVERLAY");
+ }
+ }
+}