aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Java/miscutil/core/block/base/BasicBlock.java3
-rw-r--r--src/Java/miscutil/core/block/base/BlockBaseModular.java26
-rw-r--r--src/Java/miscutil/core/item/ModItems.java23
-rw-r--r--src/Java/miscutil/core/item/tool/staballoy/MultiPickaxeBase.java179
-rw-r--r--src/Java/miscutil/core/item/tool/staballoy/StaballoyPickaxe.java18
-rw-r--r--src/Java/miscutil/core/util/Utils.java36
-rw-r--r--src/Java/miscutil/core/util/debug/DEBUG_ScreenOverlay.java5
-rw-r--r--src/Java/miscutil/core/util/item/UtilsItems.java24
-rw-r--r--src/resources/assets/miscutils/textures/items/itemPickaxe.pngbin0 -> 178 bytes
9 files changed, 295 insertions, 19 deletions
diff --git a/src/Java/miscutil/core/block/base/BasicBlock.java b/src/Java/miscutil/core/block/base/BasicBlock.java
index 9fd57b510f..385ba8d266 100644
--- a/src/Java/miscutil/core/block/base/BasicBlock.java
+++ b/src/Java/miscutil/core/block/base/BasicBlock.java
@@ -2,6 +2,7 @@ package miscutil.core.block.base;
import miscutil.core.creative.AddToCreativeTab;
import miscutil.core.lib.CORE;
+import miscutil.core.util.Utils;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
@@ -9,7 +10,7 @@ public class BasicBlock extends Block {
public BasicBlock(String unlocalizedName, Material material) {
super(material);
- this.setBlockName(unlocalizedName);
+ this.setBlockName(Utils.sanitizeString(unlocalizedName));
this.setBlockTextureName(CORE.MODID + ":" + unlocalizedName);
this.setCreativeTab(AddToCreativeTab.tabBlock);
this.setHardness(2.0F);
diff --git a/src/Java/miscutil/core/block/base/BlockBaseModular.java b/src/Java/miscutil/core/block/base/BlockBaseModular.java
index 79817d6759..311c34b2cc 100644
--- a/src/Java/miscutil/core/block/base/BlockBaseModular.java
+++ b/src/Java/miscutil/core/block/base/BlockBaseModular.java
@@ -3,6 +3,7 @@ package miscutil.core.block.base;
import miscutil.core.item.base.itemblock.ItemBlockGtBlock;
import miscutil.core.item.base.itemblock.ItemBlockGtFrameBox;
import miscutil.core.lib.CORE;
+import miscutil.core.util.Utils;
import miscutil.core.util.math.MathUtils;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
@@ -27,7 +28,7 @@ public class BlockBaseModular extends BasicBlock{
this.thisBlock = blockType;
this.thisBlockMaterial = blockMaterial;
this.thisBlockType = blockType.name().toUpperCase();
- this.setBlockName(getLocalizedName());
+ this.setBlockName(GetProperName());
if (!CORE.DEBUG){
//Utils.LOG_INFO("=============Block Info Dump=============");
@@ -54,15 +55,15 @@ public class BlockBaseModular extends BasicBlock{
//setOreDict(unlocalizedName, blockType);
if (thisBlockType == BlockTypes.STANDARD.name().toUpperCase()){
- GameRegistry.registerBlock(this, ItemBlockGtBlock.class, blockType.getTexture()+unlocalizedName);
+ GameRegistry.registerBlock(this, ItemBlockGtBlock.class, Utils.sanitizeString(blockType.getTexture()+unlocalizedName));
//Utils.LOG_INFO("Registered Block in Block Registry as: "+"Block of "+blockMaterial);
}
else if (thisBlockType == BlockTypes.FRAME.name().toUpperCase()){
- GameRegistry.registerBlock(this, ItemBlockGtFrameBox.class, blockType.getTexture()+unlocalizedName);
+ GameRegistry.registerBlock(this, ItemBlockGtFrameBox.class, Utils.sanitizeString(blockType.getTexture()+unlocalizedName));
//Utils.LOG_INFO("Registered Block in Block Registry as: "+blockMaterial+" Frame Box");
}
else {
- GameRegistry.registerBlock(this, ItemBlockGtBlock.class, blockType.getTexture()+unlocalizedName);
+ GameRegistry.registerBlock(this, ItemBlockGtBlock.class, Utils.sanitizeString(blockType.getTexture()+unlocalizedName));
//Utils.LOG_INFO("Registered Block in Block Registry as: "+blockMaterial);
}
@@ -82,7 +83,7 @@ public class BlockBaseModular extends BasicBlock{
return 0;
}
- @Override
+ /*@Override
public String getLocalizedName() {
String tempIngot;
if (thisBlock == BlockTypes.STANDARD){
@@ -96,6 +97,21 @@ public class BlockBaseModular extends BasicBlock{
tempIngot = getUnlocalizedName().replace("tile.blockGt", "ingot");
}
return tempIngot;
+ }*/
+
+ public String GetProperName() {
+ String tempIngot;
+ if (thisBlock == BlockTypes.STANDARD){
+ tempIngot = "Block of "+thisBlockMaterial;
+ }
+ else if (thisBlock == BlockTypes.FRAME){
+ tempIngot = thisBlockMaterial + " Frame Box";
+ }
+ else {
+
+ tempIngot = getUnlocalizedName().replace("tile.blockGt", "ingot");
+ }
+ return tempIngot;
}
@Override
diff --git a/src/Java/miscutil/core/item/ModItems.java b/src/Java/miscutil/core/item/ModItems.java
index e57211b0ca..56750dfb62 100644
--- a/src/Java/miscutil/core/item/ModItems.java
+++ b/src/Java/miscutil/core/item/ModItems.java
@@ -2,6 +2,7 @@ package miscutil.core.item;
import static miscutil.core.creative.AddToCreativeTab.tabMachines;
import static miscutil.core.creative.AddToCreativeTab.tabMisc;
import static miscutil.core.lib.CORE.LOAD_ALL_CONTENT;
+import gregtech.api.enums.Materials;
import gregtech.api.util.GT_OreDictUnificator;
import miscutil.core.creative.AddToCreativeTab;
import miscutil.core.item.base.BaseItemBackpack;
@@ -25,6 +26,7 @@ import miscutil.core.item.general.RF2EU_Battery;
import miscutil.core.item.general.fuelrods.FuelRod_Base;
import miscutil.core.item.init.ItemsFoods;
import miscutil.core.item.tool.misc.SandstoneHammer;
+import miscutil.core.item.tool.staballoy.MultiPickaxeBase;
import miscutil.core.item.tool.staballoy.StaballoyAxe;
import miscutil.core.item.tool.staballoy.StaballoyPickaxe;
import miscutil.core.lib.CORE;
@@ -170,6 +172,16 @@ public final class ModItems {
public static Item itemPersonalCloakingDeviceCharged;
public static Item itemPersonalHealingDevice;
+ public static MultiPickaxeBase MP_Iron;
+ public static MultiPickaxeBase MP_Gold;
+ public static MultiPickaxeBase MP_Diamond;
+ public static MultiPickaxeBase MP_Wood;
+ public static MultiPickaxeBase MP_Stone;
+ public static MultiPickaxeBase MP_Quartz;
+ public static MultiPickaxeBase MP_Obsidian;
+ public static MultiPickaxeBase MP_Redstone;
+
+
public static BaseItemBackpack backpack_Red;
public static BaseItemBackpack backpack_Green;
public static BaseItemBackpack backpack_Blue;
@@ -288,6 +300,17 @@ public final class ModItems {
//Uranium-233if
UtilsItems.generateItemsFromMaterial("Uranium233", "Uranium 233", 4, MaterialInfo.INCONEL792, Utils.rgbtoHexValue(73, 220, 83), false); //Uranium-233 is a fissile isotope of uranium that is bred from thorium-232 as part of the thorium fuel cycle.
+ MP_Wood = new MultiPickaxeBase("Wooden Multipick", ToolMaterial.WOOD, ToolMaterial.WOOD.getMaxUses(), Utils.rgbtoHexValue(139,90,43));
+ MP_Stone = new MultiPickaxeBase("Cobblestone Multipick", ToolMaterial.STONE, ToolMaterial.STONE.getMaxUses(), Utils.rgbtoHexValue(161,161,161));
+ MP_Iron = new MultiPickaxeBase("Iron Multipick", ToolMaterial.IRON, ToolMaterial.IRON.getMaxUses(), Utils.rgbtoHexValue(110,123,139));
+ MP_Gold = new MultiPickaxeBase("Gold Multipick", ToolMaterial.GOLD, ToolMaterial.GOLD.getMaxUses(), Utils.rgbtoHexValue(238,221,130));
+ MP_Diamond = new MultiPickaxeBase("Diamond Multipick", ToolMaterial.EMERALD, ToolMaterial.EMERALD.getMaxUses(), Utils.rgbtoHexValue(191,239,255));
+
+ MP_Redstone = UtilsItems.generateMultiPick(Materials.Redstone);
+ MP_Obsidian = UtilsItems.generateMultiPick(Materials.Obsidian);
+ MP_Obsidian = UtilsItems.generateMultiPick(Materials.Abyssal);
+ MP_Obsidian = UtilsItems.generateMultiPick(Materials.NetherStar);
+ MP_Obsidian = UtilsItems.generateMultiPick(Materials.Neutronium);
//EnderIO Resources
if (LoadedMods.EnderIO || LOAD_ALL_CONTENT){
diff --git a/src/Java/miscutil/core/item/tool/staballoy/MultiPickaxeBase.java b/src/Java/miscutil/core/item/tool/staballoy/MultiPickaxeBase.java
new file mode 100644
index 0000000000..49d62956a8
--- /dev/null
+++ b/src/Java/miscutil/core/item/tool/staballoy/MultiPickaxeBase.java
@@ -0,0 +1,179 @@
+package miscutil.core.item.tool.staballoy;
+
+import miscutil.core.creative.AddToCreativeTab;
+import miscutil.core.lib.CORE;
+import miscutil.core.util.Utils;
+import miscutil.core.util.math.MathUtils;
+import miscutil.core.util.player.UtilsMining;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.EnumRarity;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+
+public class MultiPickaxeBase extends StaballoyPickaxe{
+
+ /* (non-Javadoc)
+ * @see net.minecraft.item.Item#getDurabilityForDisplay(net.minecraft.item.ItemStack)
+ */
+ @Override
+ public double getDurabilityForDisplay(ItemStack stack) {
+ if (super.getDurabilityForDisplay(stack) > 0){
+ return super.getDurabilityForDisplay(stack);}
+ return 0;
+ }
+
+ protected Boolean FACING_HORIZONTAL = true;
+ protected String FACING = "north";
+ protected EntityPlayer localPlayer;
+ protected String lookingDirection;
+ protected World localWorld;
+ protected ItemStack thisPickaxe = null;
+ protected final int colour;
+ protected final String materialName;
+
+ public MultiPickaxeBase(String unlocalizedName, ToolMaterial material, int materialDurability, int colour) {
+ super(Utils.sanitizeString(unlocalizedName), material);
+ this.setUnlocalizedName(Utils.sanitizeString(unlocalizedName));
+ this.setTextureName(CORE.MODID + ":" + "itemPickaxe");
+ this.FACING_HORIZONTAL=true;
+ this.setMaxStackSize(1);
+ this.setMaxDamage(materialDurability);
+ this.colour = colour;
+ this.materialName = material.name();
+ GameRegistry.registerItem(this, Utils.sanitizeString(unlocalizedName));
+ this.setCreativeTab(AddToCreativeTab.tabTools);
+ }
+
+ /*
+ *
+ *
+ *
+ * Methods
+ *
+ *
+ *
+ */
+
+ public final String getMaterialName() {
+ return materialName;
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack iStack) {
+
+ String name;
+ if (getUnlocalizedName().toLowerCase().contains("wood")){
+ name = "Wooden";
+ }
+ else if (getUnlocalizedName().toLowerCase().contains("cobblestone")){
+ name = "Cobblestone";
+ }
+ else if (getUnlocalizedName().toLowerCase().contains("iron")){
+ name = "Iron";
+ }
+ else if (getUnlocalizedName().toLowerCase().contains("gold")){
+ name = "Gold";
+ }
+ else if (getUnlocalizedName().toLowerCase().contains("diamond")){
+ name = "Diamond";
+ }
+ else {
+ name = materialName;
+ }
+ return name+" Multipickaxe";
+ }
+
+ @Override
+ public int getColorFromItemStack(ItemStack stack, int HEX_OxFFFFFF) {
+ if (colour == 0){
+ return MathUtils.generateSingularRandomHexValue();
+ }
+ return colour;
+
+ }
+
+ @SuppressWarnings("static-method")
+ private float calculateDurabilityLoss(World world, int X, int Y, int Z){
+ float bDurabilityLoss = 0;
+ Boolean correctTool = false;
+ float bHardness = 0;
+ if (!world.isRemote){
+ try {
+ Block removalist = world.getBlock(X, Y, Z);
+ //Utils.LOG_WARNING(removalist.toString());
+
+ bHardness = removalist.getBlockHardness(world, X, Y, Z);
+ Utils.LOG_WARNING("Hardness: "+bHardness);
+
+ bDurabilityLoss = (bDurabilityLoss + bHardness);
+ //Utils.LOG_WARNING("Durability Loss: "+bDurabilityLoss);
+
+ correctTool = canPickaxeBlock(removalist, world);
+ Utils.LOG_WARNING(""+correctTool);
+
+ if (!correctTool){
+ return 0;
+ }
+
+ } catch (NullPointerException e){
+
+ }
+ }
+ return bDurabilityLoss;
+ }
+
+ @Override
+ public int doDurabilityDamage(int x){
+ return x;
+ }
+
+ //Should clear up blocks quicker if I chain it.
+ @Override
+ public void removeBlockAndDropAsItem(World world, int X, int Y, int Z, ItemStack heldItem){
+ localWorld = world;
+ try {
+ Block block = world.getBlock(X, Y, Z);
+ float dur = calculateDurabilityLoss(world, X, Y, Z);
+ Utils.LOG_WARNING(block.toString());
+ String removalTool = "";
+ removalTool = block.getHarvestTool(1);
+
+ if (removalTool.equals("pickaxe") || UtilsMining.getBlockType(block)){
+ if (canPickaxeBlock(block, world)){
+ if((block != Blocks.bedrock) && (block.getBlockHardness(world, X, Y, Z) != -1) && (block.getBlockHardness(world, X, Y, Z) <= 100) && (block != Blocks.water) && (block != Blocks.lava)){
+
+ if (heldItem.getItemDamage() <= (heldItem.getMaxDamage()-dur)){
+
+ block.dropBlockAsItem(world, X, Y, Z, world.getBlockMetadata(X, Y, Z), 0);
+ world.setBlockToAir(X, Y, Z);
+
+ }
+
+ }
+ }
+ else {
+ Utils.LOG_WARNING("Incorrect Tool for mining this block.");
+ }
+ }
+ } catch (NullPointerException e){
+
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public EnumRarity getRarity(ItemStack par1ItemStack){
+ return EnumRarity.uncommon;
+ }
+
+ @Override
+ public boolean hasEffect(ItemStack par1ItemStack){
+ return false;
+ }
+
+}
diff --git a/src/Java/miscutil/core/item/tool/staballoy/StaballoyPickaxe.java b/src/Java/miscutil/core/item/tool/staballoy/StaballoyPickaxe.java
index 8d02b308fb..c25dc07d88 100644
--- a/src/Java/miscutil/core/item/tool/staballoy/StaballoyPickaxe.java
+++ b/src/Java/miscutil/core/item/tool/staballoy/StaballoyPickaxe.java
@@ -31,11 +31,11 @@ public class StaballoyPickaxe extends ItemPickaxe{
return 0;
}
- public Boolean FACING_HORIZONTAL = true;
- public String FACING = "north";
- public EntityPlayer localPlayer;
- public String lookingDirection;
- public World localWorld;
+ protected Boolean FACING_HORIZONTAL = true;
+ protected String FACING = "north";
+ protected EntityPlayer localPlayer;
+ protected String lookingDirection;
+ protected World localWorld;
public ItemStack thisPickaxe = null;
/*
@@ -101,7 +101,7 @@ public class StaballoyPickaxe extends ItemPickaxe{
return bDurabilityLoss;
}
- public static Boolean canPickaxeBlock(Block currentBlock, World currentWorld){
+ public Boolean canPickaxeBlock(Block currentBlock, World currentWorld){
String correctTool = "";
if (!currentWorld.isRemote){
try {
@@ -170,14 +170,12 @@ public class StaballoyPickaxe extends ItemPickaxe{
}
}
- public static int doDurabilityDamage(int x){
-
-
+ public int doDurabilityDamage(int x){
return x;
}
//Should clear up blocks quicker if I chain it.
- private void removeBlockAndDropAsItem(World world, int X, int Y, int Z, ItemStack heldItem){
+ public void removeBlockAndDropAsItem(World world, int X, int Y, int Z, ItemStack heldItem){
localWorld = world;
try {
Block block = world.getBlock(X, Y, Z);
diff --git a/src/Java/miscutil/core/util/Utils.java b/src/Java/miscutil/core/util/Utils.java
index cbd488afab..24236b0e0a 100644
--- a/src/Java/miscutil/core/util/Utils.java
+++ b/src/Java/miscutil/core/util/Utils.java
@@ -1,5 +1,6 @@
package miscutil.core.util;
+import gregtech.api.enums.Materials;
import gregtech.api.enums.TC_Aspects;
import gregtech.api.enums.TC_Aspects.TC_AspectStack;
import ic2.core.IC2Potion;
@@ -32,6 +33,7 @@ import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemStack;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.MathHelper;
@@ -496,6 +498,40 @@ public class Utils {
}
return null;
}
+
+ public static String sanitizeString(String input){
+ String temp;
+ String output;
+
+ temp = input.replace(" ", "");
+ temp = temp.replace("-", "");
+ temp = temp.replace("_", "");
+ temp = temp.replace("?", "");
+ temp = temp.replace("!", "");
+ temp = temp.replace("@", "");
+ temp = temp.replace("#", "");
+ temp = temp.replace("(", "");
+ temp = temp.replace(")", "");
+ temp = temp.replace("{", "");
+ temp = temp.replace("}", "");
+ temp = temp.replace("[", "");
+ temp = temp.replace("]", "");
+ output = temp;
+ return output;
+
+ }
+
+ public static ToolMaterial generateMaterialFromGT(Materials gtMaterial){
+ String name = gtMaterial.name();
+ int harvestLevel = gtMaterial.mToolQuality;
+ int durability = gtMaterial.mDurability;
+ float damage = gtMaterial.mToolQuality;
+ int efficiency = (int) gtMaterial.mToolSpeed;
+ int enchantability = gtMaterial.mEnchantmentToolsLevel;
+ ToolMaterial temp = EnumHelper.addToolMaterial(name, harvestLevel, durability, efficiency, damage, enchantability);
+ return temp;
+
+ }
}
diff --git a/src/Java/miscutil/core/util/debug/DEBUG_ScreenOverlay.java b/src/Java/miscutil/core/util/debug/DEBUG_ScreenOverlay.java
index 9752127d73..aefe66fc04 100644
--- a/src/Java/miscutil/core/util/debug/DEBUG_ScreenOverlay.java
+++ b/src/Java/miscutil/core/util/debug/DEBUG_ScreenOverlay.java
@@ -1,6 +1,5 @@
package miscutil.core.util.debug;
-import miscutil.core.item.tool.staballoy.StaballoyPickaxe;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.Gui;
@@ -30,7 +29,7 @@ public class DEBUG_ScreenOverlay extends Gui {
try{heldItem = mc.thePlayer.getHeldItem().getItem();
if (heldItem != null){
- if (heldItem instanceof StaballoyPickaxe){
+ /*if (heldItem instanceof StaballoyPickaxe){
int dmg =((StaballoyPickaxe) heldItem).getDamage(((StaballoyPickaxe) heldItem).thisPickaxe);
@@ -38,7 +37,7 @@ public class DEBUG_ScreenOverlay extends Gui {
str = "DAMAGE: "+ dmg +" | FACING: "+((StaballoyPickaxe) heldItem).FACING+" | FACING_HORIZONTAL: "+((StaballoyPickaxe) heldItem).FACING_HORIZONTAL+" | LOOKING DIRECTION: "+((StaballoyPickaxe) heldItem).lookingDirection;
drawString(fontRender, str, (this.width - fontRender.getStringWidth(str)) / 2, this.height / 10, 0xFFAA00);
- }
+ }*/
}
}catch(NullPointerException e){}
diff --git a/src/Java/miscutil/core/util/item/UtilsItems.java b/src/Java/miscutil/core/util/item/UtilsItems.java
index 401618df52..e46b49074f 100644
--- a/src/Java/miscutil/core/util/item/UtilsItems.java
+++ b/src/Java/miscutil/core/util/item/UtilsItems.java
@@ -1,5 +1,6 @@
package miscutil.core.util.item;
+import gregtech.api.enums.Materials;
import gregtech.api.util.GT_OreDictUnificator;
import java.util.ArrayList;
@@ -19,6 +20,7 @@ import miscutil.core.item.base.rods.BaseItemRod;
import miscutil.core.item.base.rods.BaseItemRodLong;
import miscutil.core.item.base.rotors.BaseItemRotor;
import miscutil.core.item.base.screws.BaseItemScrew;
+import miscutil.core.item.tool.staballoy.MultiPickaxeBase;
import miscutil.core.lib.CORE;
import miscutil.core.lib.LoadedMods;
import miscutil.core.lib.MaterialInfo;
@@ -27,6 +29,7 @@ import miscutil.core.util.wrapper.var;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
+import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary;
import cpw.mods.fml.common.registry.GameRegistry;
@@ -313,6 +316,27 @@ public class UtilsItems {
}
+ public static MultiPickaxeBase generateMultiPick(Materials material){
+ ToolMaterial customMaterial = Utils.generateMaterialFromGT(material);
+ short[] rgb;
+ rgb = material.getRGBA();
+ int dur = customMaterial.getMaxUses();
+
+ if (dur <= 0){
+ dur = material.mDurability;
+ }
+
+ MultiPickaxeBase MP_Redstone = new MultiPickaxeBase(
+ material.name()+" Multipick",
+ (customMaterial),
+ dur,
+ Utils.rgbtoHexValue(rgb[0],rgb[1],rgb[2])
+ );
+
+ return MP_Redstone;
+
+ }
+
public static String getArrayStackNames(ItemStack[] aStack){
String itemNames = "Item Array: ";
for (ItemStack alph : aStack){
diff --git a/src/resources/assets/miscutils/textures/items/itemPickaxe.png b/src/resources/assets/miscutils/textures/items/itemPickaxe.png
new file mode 100644
index 0000000000..d21440bd11
--- /dev/null
+++ b/src/resources/assets/miscutils/textures/items/itemPickaxe.png
Binary files differ