diff options
-rw-r--r-- | src/Java/miscutil/core/block/base/BasicBlock.java | 3 | ||||
-rw-r--r-- | src/Java/miscutil/core/block/base/BlockBaseModular.java | 26 | ||||
-rw-r--r-- | src/Java/miscutil/core/item/ModItems.java | 23 | ||||
-rw-r--r-- | src/Java/miscutil/core/item/tool/staballoy/MultiPickaxeBase.java | 179 | ||||
-rw-r--r-- | src/Java/miscutil/core/item/tool/staballoy/StaballoyPickaxe.java | 18 | ||||
-rw-r--r-- | src/Java/miscutil/core/util/Utils.java | 36 | ||||
-rw-r--r-- | src/Java/miscutil/core/util/debug/DEBUG_ScreenOverlay.java | 5 | ||||
-rw-r--r-- | src/Java/miscutil/core/util/item/UtilsItems.java | 24 | ||||
-rw-r--r-- | src/resources/assets/miscutils/textures/items/itemPickaxe.png | bin | 0 -> 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 Binary files differnew file mode 100644 index 0000000000..d21440bd11 --- /dev/null +++ b/src/resources/assets/miscutils/textures/items/itemPickaxe.png |