diff options
author | Detrav <witalyezep@gmail.com> | 2016-03-20 18:40:37 +0300 |
---|---|---|
committer | Detrav <witalyezep@gmail.com> | 2016-03-20 18:40:37 +0300 |
commit | c75ec13a10389ff891782ae40ae00727a0cb0434 (patch) | |
tree | b6e37b0e438bf18652b788af0f400cee355155f5 /src/main/java/com/detrav/items | |
parent | b6651aa34b5e54d071e97eac4ca31103a23d89ed (diff) | |
download | GT5-Unofficial-c75ec13a10389ff891782ae40ae00727a0cb0434.tar.gz GT5-Unofficial-c75ec13a10389ff891782ae40ae00727a0cb0434.tar.bz2 GT5-Unofficial-c75ec13a10389ff891782ae40ae00727a0cb0434.zip |
Refactor name and path
Diffstat (limited to 'src/main/java/com/detrav/items')
9 files changed, 649 insertions, 1 deletions
diff --git a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java index 31e6992e65..a00cdb228e 100644 --- a/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java +++ b/src/main/java/com/detrav/items/DetravMetaGeneratedTool01.java @@ -2,7 +2,10 @@ package com.detrav.items; import com.detrav.DetravScannerMod; import com.detrav.enums.DetravToolDictNames; -import com.detrav.tools.*; +import com.detrav.items.tools.DetravToolHVElectricProPick; +import com.detrav.items.tools.DetravToolLVElectricProPick; +import com.detrav.items.tools.DetravToolMVElectricProPick; +import com.detrav.items.tools.DetravToolProPick; import gregtech.api.enums.TC_Aspects; import gregtech.api.items.GT_MetaGenerated_Tool; diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java new file mode 100644 index 0000000000..1ba9a77968 --- /dev/null +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolElectricProPick.java @@ -0,0 +1,33 @@ +package com.detrav.items.behaviours; + +import gregtech.api.items.GT_MetaBase_Item; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; + +/** + * Created by wital_000 on 19.03.2016. + */ +public class BehaviourDetravToolElectricProPick extends BehaviourDetravToolProPick +{ + + public BehaviourDetravToolElectricProPick(int aCosts) { + super(aCosts); + } + + public ItemStack onItemRightClick(GT_MetaBase_Item aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer) { + + if (!aWorld.isRemote) { + //aPlayer.openGui(); + + aPlayer.addChatMessage(new ChatComponentText("Scanning Begin")); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + return super.onItemRightClick(aItem,aStack,aWorld,aPlayer); + } +}
\ No newline at end of file diff --git a/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java new file mode 100644 index 0000000000..5c5b64d53c --- /dev/null +++ b/src/main/java/com/detrav/items/behaviours/BehaviourDetravToolProPick.java @@ -0,0 +1,120 @@ +package com.detrav.items.behaviours; + +import com.detrav.items.DetravMetaGeneratedTool01; +import gregtech.api.GregTech_API; +import gregtech.api.items.GT_MetaBase_Item; +import gregtech.api.util.GT_LanguageManager; +import gregtech.common.blocks.GT_TileEntity_Ores; +import gregtech.common.items.behaviors.Behaviour_None; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; + +import java.util.HashMap; +import java.util.Random; + +/** + * Created by wital_000 on 19.03.2016. + */ +public class BehaviourDetravToolProPick extends Behaviour_None { + + static final String[] foundTexts = new String[]{ + "Found nothing of interest", //0 + "Found Traces of ", //1-9 + "Found a small sample of ", //10-29 + "Found a medium sample of ", //30-59 + "Found a large sample of ", //60-99 + "Found a very large sample of ", //100-** + "Found " + }; + private final int mCosts; + + public BehaviourDetravToolProPick(int aCosts) + { + mCosts = aCosts; + } + + public boolean onItemUse(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ) { + + if(aWorld.getBlock(aX,aY,aZ).getMaterial() == Material.rock || aWorld.getBlock(aX,aY,aZ) == GregTech_API.sBlockOres1) { + if (!aWorld.isRemote) { + processOreProspecting((DetravMetaGeneratedTool01) aItem,aStack,aPlayer,aWorld.getChunkFromBlockCoords(aX,aZ), aWorld.getTileEntity(aX,aY,aZ), new Random(aWorld.getSeed() + 3547*aX + 1327 * aZ + 9973* aY)); + return true; + } + //aPlayer.addChatMessage(new ChatComponentText("Tested")); + return true; + } + return false; + } + + private void processOreProspecting(DetravMetaGeneratedTool01 aItem, ItemStack aStack, EntityPlayer aPlayer, Chunk aChunk, TileEntity aTileEntity, Random aRandom)//TileEntity aTileEntity) + { + aRandom.nextInt(); + if(aTileEntity != null) { + if (aTileEntity instanceof GT_TileEntity_Ores) { + GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores) aTileEntity; + String name = GT_LanguageManager.getTranslation("gt.blockores." + gt_entity.getMetaData() + ".name"); + aPlayer.addChatMessage(new ChatComponentText(foundTexts[6] + name)); + aItem.doDamage(aStack, this.mCosts); + return; + } + } + else if(aRandom.nextInt(10)<4) { + HashMap<String, Integer> ores = new HashMap<String, Integer>(); + for (int x = 0; x < 16; x++) + for (int z = 0; z < 16; z++) { + int ySize = aChunk.getHeightValue(x, z); + for (int y = 1; y < ySize; y++) { + Block b = aChunk.getBlock(x, y, z); + if (b == GregTech_API.sBlockOres1) { + TileEntity entity = aChunk.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 (!ores.containsKey(name)) + ores.put(name, 1); + else { + int val = ores.get(name); + ores.put(name, val + 1); + } + } + } + } + } + for(String key : ores.keySet()) + { + int value = ores.get(key); + if(value<10) + aPlayer.addChatMessage(new ChatComponentText(foundTexts[1] + key)); + else if(value<30) + aPlayer.addChatMessage(new ChatComponentText(foundTexts[2] + key)); + else if(value<60) + aPlayer.addChatMessage(new ChatComponentText(foundTexts[3] + key)); + else if(value<100) + aPlayer.addChatMessage(new ChatComponentText(foundTexts[4] + key)); + else + aPlayer.addChatMessage(new ChatComponentText(foundTexts[5] + key)); + } + aItem.doDamage(aStack, this.mCosts); + return; + } + aPlayer.addChatMessage(new ChatComponentText(foundTexts[0])); + + /*//aPlayer.addChatMessage(new ChatComponentText()); + if(aTileEntity != null && aTileEntity instanceof GT_TileEntity_Ores) + { + GT_TileEntity_Ores gt_entity = (GT_TileEntity_Ores)aTileEntity; + + /*String name = GT_LanguageManager.getTranslation( + b.getUnlocalizedName() + "." + gt_entity.getMetaData() + ".name"); + if(name.startsWith("Small")) continue; + }*/ + } +}
\ No newline at end of file diff --git a/src/main/java/com/detrav/items/processing/ProcessingDetravShaping.java b/src/main/java/com/detrav/items/processing/ProcessingDetravShaping.java new file mode 100644 index 0000000000..9cffbf28f7 --- /dev/null +++ b/src/main/java/com/detrav/items/processing/ProcessingDetravShaping.java @@ -0,0 +1,38 @@ +package com.detrav.items.processing; + +import com.detrav.enums.DetravItemList; +import com.detrav.enums.DetravSimpleItems; +import gregtech.api.enums.GT_Values; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.enums.SubTag; +import gregtech.api.util.GT_OreDictUnificator; +import gregtech.api.util.GT_Utility; +import net.minecraft.item.ItemStack; + +/** + * Created by wital_000 on 20.03.2016. + */ +public class ProcessingDetravShaping implements gregtech.api.interfaces.IOreRecipeRegistrator { + + public ProcessingDetravShaping() { + OrePrefixes.ingot.add(this); + } + + @Override + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + if ((GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L) != null) && (!aMaterial.contains(SubTag.NO_SMELTING))) { + int tAmount = (int) (aPrefix.mMaterialAmount / 3628800L); + if ((tAmount > 0) && (tAmount <= 64) && (aPrefix.mMaterialAmount % 3628800L == 0L)) { + int tVoltageMultiplier = aMaterial.mBlastFurnaceTemp >= 2800 ? 64 : 16; + + if (aMaterial.contains(SubTag.NO_SMASHING)) { + tVoltageMultiplier /= 4; + } else if (aPrefix.name().startsWith(OrePrefixes.dust.name())) { + return; + } + GT_Values.RA.addExtruderRecipe(GT_Utility.copyAmount(2L, new Object[]{aStack}), DetravItemList.Shape_Extruder_ProPick.get(0L, new Object[0]), GT_OreDictUnificator.get(DetravSimpleItems.toolHeadProPick.get(aMaterial), tAmount), (int) Math.max(aMaterial.getMass() * 2L * tAmount, tAmount), 8 * tVoltageMultiplier); + } + } + } +}
\ No newline at end of file diff --git a/src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java b/src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java new file mode 100644 index 0000000000..7f1d53db42 --- /dev/null +++ b/src/main/java/com/detrav/items/processing/ProcessingDetravToolProPick.java @@ -0,0 +1,42 @@ +package com.detrav.items.processing; + +import com.detrav.enums.DetravItemList; +import com.detrav.enums.DetravSimpleItems; +import com.detrav.items.DetravMetaGeneratedItem01; +import com.detrav.items.DetravMetaGeneratedTool01; +import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +import gregtech.api.enums.OrePrefixes; +import gregtech.api.util.GT_ModHandler; +import gregtech.common.items.GT_MetaGenerated_Tool_01; +import net.minecraft.item.ItemStack; + +/** + * Created by wital_000 on 18.03.2016. + */ +public class ProcessingDetravToolProPick implements gregtech.api.interfaces.IOreRecipeRegistrator { + public ProcessingDetravToolProPick() { + OrePrefixes.toolHeadPickaxe.add(this); + } + + public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack) { + GT_ModHandler. + addShapelessCraftingRecipe( + DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(0, 1, aMaterial, aMaterial.mHandleMaterial, null), + new Object[]{DetravSimpleItems.toolHeadProPick.get(aMaterial), OrePrefixes.stick.get(aMaterial.mHandleMaterial)}); + + + GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(2, 1, aMaterial, Materials.StainlessSteel, new long[]{100000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_LV,Character.valueOf('E'), ItemList.Emitter_LV,Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('H'), DetravSimpleItems.toolHeadProPick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(2, 1, aMaterial, Materials.StainlessSteel, new long[]{75000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_LV,Character.valueOf('E'), ItemList.Emitter_LV,Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('H'), DetravSimpleItems.toolHeadProPick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(2, 1, aMaterial, Materials.StainlessSteel, new long[]{50000L, 32L, 1L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_LV,Character.valueOf('E'), ItemList.Emitter_LV,Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Basic), Character.valueOf('H'), DetravSimpleItems.toolHeadProPick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(Materials.StainlessSteel), Character.valueOf('B'), ItemList.Battery_RE_LV_Sodium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(4, 1, aMaterial, Materials.Titanium, new long[]{400000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_MV,Character.valueOf('E'), ItemList.Emitter_MV,Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('H'), DetravSimpleItems.toolHeadProPick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(4, 1, aMaterial, Materials.Titanium, new long[]{300000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_MV,Character.valueOf('E'), ItemList.Emitter_MV,Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('H'), DetravSimpleItems.toolHeadProPick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(4, 1, aMaterial, Materials.Titanium, new long[]{200000L, 128L, 2L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_MV,Character.valueOf('E'), ItemList.Emitter_MV,Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Good), Character.valueOf('H'), DetravSimpleItems.toolHeadProPick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(Materials.Titanium), Character.valueOf('B'), ItemList.Battery_RE_MV_Sodium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(6, 1, aMaterial, Materials.TungstenSteel, new long[]{1600000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_HV,Character.valueOf('E'), ItemList.Emitter_HV,Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('H'), DetravSimpleItems.toolHeadProPick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Lithium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(6, 1, aMaterial, Materials.TungstenSteel, new long[]{1200000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_HV,Character.valueOf('E'), ItemList.Emitter_HV,Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('H'), DetravSimpleItems.toolHeadProPick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Cadmium.get(1L, new Object[0])}); + GT_ModHandler.addCraftingRecipe(DetravMetaGeneratedTool01.INSTANCE.getToolWithStats(6, 1, aMaterial, Materials.TungstenSteel, new long[]{800000L, 512L, 3L, -1L}), GT_ModHandler.RecipeBits.DISMANTLEABLE | GT_ModHandler.RecipeBits.DO_NOT_CHECK_FOR_COLLISIONS | GT_ModHandler.RecipeBits.BUFFERED, new Object[]{"EHR", "CSC", "PBP", Character.valueOf('S'), ItemList.Cover_Screen, Character.valueOf('R'), ItemList.Sensor_HV,Character.valueOf('E'), ItemList.Emitter_HV,Character.valueOf('C'), OrePrefixes.circuit.get(Materials.Advanced), Character.valueOf('H'), DetravSimpleItems.toolHeadProPick.get(aMaterial), Character.valueOf('P'), OrePrefixes.plate.get(Materials.TungstenSteel), Character.valueOf('B'), ItemList.Battery_RE_HV_Sodium.get(1L, new Object[0])}); + + GT_ModHandler.addCraftingRecipe(DetravItemList.Shape_Extruder_ProPick.get(1L,new Object[0]), + new Object[]{"h","X","M", Character.valueOf('X'),DetravSimpleItems.toolHeadProPick.get(aMaterial),Character.valueOf('M'),ItemList.Shape_Empty}); + } +}
\ No newline at end of file diff --git a/src/main/java/com/detrav/items/tools/DetravToolHVElectricProPick.java b/src/main/java/com/detrav/items/tools/DetravToolHVElectricProPick.java new file mode 100644 index 0000000000..3196ac7f5d --- /dev/null +++ b/src/main/java/com/detrav/items/tools/DetravToolHVElectricProPick.java @@ -0,0 +1,22 @@ +package com.detrav.items.tools; + +import com.detrav.enums.Textures01; +import gregtech.api.interfaces.IIconContainer; +import net.minecraft.item.ItemStack; + +/** + * Created by wital_000 on 19.03.2016. + */ +public class DetravToolHVElectricProPick extends DetravToolMVElectricProPick { + public int getBaseQuality() { + return 2; + } + + public float getMaxDurabilityMultiplier() { + return 4.0F; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return Textures01.mTextures[3]; + } +} diff --git a/src/main/java/com/detrav/items/tools/DetravToolLVElectricProPick.java b/src/main/java/com/detrav/items/tools/DetravToolLVElectricProPick.java new file mode 100644 index 0000000000..4ad574a6dc --- /dev/null +++ b/src/main/java/com/detrav/items/tools/DetravToolLVElectricProPick.java @@ -0,0 +1,182 @@ +package com.detrav.items.tools; + +import com.detrav.enums.Textures01; +import com.detrav.items.behaviours.BehaviourDetravToolElectricProPick; +import gregtech.GT_Mod; +import gregtech.api.GregTech_API; +import gregtech.api.damagesources.GT_DamageSources; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.IToolStats; +import gregtech.api.items.GT_MetaGenerated_Tool; +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 19.03.2016. + */ +public class DetravToolLVElectricProPick implements IToolStats { + public int getToolDamagePerBlockBreak() { + return GT_Mod.gregtechproxy.mHardRock ? 50 : 100; + } + + public int getToolDamagePerDropConversion() { + return 100; + } + + public int getToolDamagePerContainerCraft() { + return 100; + } + + public int getToolDamagePerEntityAttack() { + return 2000; + } + + public int getBaseQuality() { + return 0; + } + + public float getBaseDamage() { + return 1.0F; + } + + @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 false; + } + + 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 Textures01.mTextures[1]; + } + + 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) { + aItem.addItemBehavior(aID, new BehaviourDetravToolElectricProPick(getToolDamagePerBlockBreak())); + } + + 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 Pick Up'ed by " + EnumChatFormatting.GREEN + aPlayer.getCommandSenderName() + EnumChatFormatting.WHITE); + } +}
\ No newline at end of file diff --git a/src/main/java/com/detrav/items/tools/DetravToolMVElectricProPick.java b/src/main/java/com/detrav/items/tools/DetravToolMVElectricProPick.java new file mode 100644 index 0000000000..81bfed4f17 --- /dev/null +++ b/src/main/java/com/detrav/items/tools/DetravToolMVElectricProPick.java @@ -0,0 +1,21 @@ +package com.detrav.items.tools; + +import com.detrav.enums.Textures01; +import gregtech.api.interfaces.IIconContainer; +import net.minecraft.item.ItemStack; + +/** + * Created by wital_000 on 19.03.2016. + */ +public class DetravToolMVElectricProPick extends DetravToolLVElectricProPick { + public int getBaseQuality() { + return 1; + } + public float getMaxDurabilityMultiplier() { + return 2.0F; + } + + public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack) { + return Textures01.mTextures[2]; + } +} diff --git a/src/main/java/com/detrav/items/tools/DetravToolProPick.java b/src/main/java/com/detrav/items/tools/DetravToolProPick.java new file mode 100644 index 0000000000..c7f61b955b --- /dev/null +++ b/src/main/java/com/detrav/items/tools/DetravToolProPick.java @@ -0,0 +1,187 @@ +package com.detrav.items.tools; + +import com.detrav.enums.DetravSimpleItems; +import com.detrav.enums.Textures01; +import com.detrav.items.behaviours.BehaviourDetravToolProPick; +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.block.material.Material; +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 ? 50 : 100; + } + + 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.0F; + } + + @Override + public int getHurtResistanceTime(int i, Entity entity) { + return i; + } + + public float getSpeedMultiplier() { + return 0.5F; + } + + 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) { + + String tTool = aBlock.getHarvestTool(aMetaData); + return tTool != null && tTool.equals("pickaxe") || aBlock.getMaterial() == Material.rock || aBlock.getMaterial() == Material.iron || aBlock.getMaterial() == Material.anvil || aBlock.getMaterial() == Material.glass; + } + + @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 ? + Textures01.mTextures[DetravSimpleItems.toolHeadProPick.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) { + aItem.addItemBehavior(aID, new BehaviourDetravToolProPick(getToolDamagePerBlockBreak())); + } + + 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); + } +} |