diff --git a/src/main/java/emt/init/EMTItems.java b/src/main/java/emt/init/EMTItems.java index 2915c44..12068c2 100644 --- a/src/main/java/emt/init/EMTItems.java +++ b/src/main/java/emt/init/EMTItems.java @@ -58,6 +58,7 @@ public class EMTItems { public static Item christmasFocus; public static Item shieldFocus; public static Item energyBallFocus; + public static Item maintenanceFocus; public static Item electricGoggles; public static Item streamChainsaw; public static Item rockbreakerDrill; @@ -197,5 +198,8 @@ public class EMTItems { energyBallFocus = new ItemEnergyBallFocus(); GameRegistry.registerItem(energyBallFocus, "EnergyBallFocus"); + + maintenanceFocus = new ItemMaintenanceFocus(); + GameRegistry.registerItem(maintenanceFocus, "MaintenanceFocus"); } } diff --git a/src/main/java/emt/init/EMTRecipes.java b/src/main/java/emt/init/EMTRecipes.java index 81e06d9..125ffdf 100644 --- a/src/main/java/emt/init/EMTRecipes.java +++ b/src/main/java/emt/init/EMTRecipes.java @@ -17,6 +17,7 @@ import emt.EMT; import emt.util.EMTConfigHandler; import emt.util.EMTCraftingAspects; import emt.util.EMTResearchAspects; +import gregtech.api.enums.ItemList; import ic2.api.item.IC2Items; import ic2.api.recipe.IRecipeInput; import ic2.api.recipe.RecipeInputItemStack; @@ -67,6 +68,7 @@ public class EMTRecipes { public static InfusionRecipe thaumicNanoHelmet; public static InfusionRecipe explosionFocus; public static InfusionRecipe shieldFocus; + public static InfusionRecipe maintenanceFocus; public static InfusionRecipe potentiaGenerator; public static InfusionRecipe streamChainsaw; public static InfusionRecipe rockbreakerDrill; @@ -534,6 +536,18 @@ public class EMTRecipes { new ItemStack(Blocks.soul_sand), new ItemStack(Blocks.obsidian), new ItemStack(Blocks.obsidian) }); + maintenanceFocus = addInfusionCraftingRecipe( + "Wand Focus: Maintenance", + new ItemStack(EMTItems.maintenanceFocus), + 6, + EMTCraftingAspects.maintenanceFocus, + new ItemStack(EMTItems.chargeFocus), + new ItemStack[] { new ItemStack(ConfigItems.itemShard, 1, 5), + new ItemStack(ConfigItems.itemShard, 1, 4), new ItemStack(ConfigItems.itemShard, 1, 3), + new ItemStack(EMTItems.itemEMTItems, 1, 9), new ItemStack(ConfigItems.itemShard, 1, 2), + new ItemStack(ConfigItems.itemShard, 1, 1), new ItemStack(ConfigItems.itemShard, 1, 0), + ItemList.Duct_Tape.get(1) }); + potentiaGenerator = addInfusionCraftingRecipe( "Potentia Generator", new ItemStack(EMTBlocks.essentiaGens, 1, 0), diff --git a/src/main/java/emt/init/EMTResearches.java b/src/main/java/emt/init/EMTResearches.java index ede16b3..f57bca0 100644 --- a/src/main/java/emt/init/EMTResearches.java +++ b/src/main/java/emt/init/EMTResearches.java @@ -648,6 +648,17 @@ public class EMTResearches { .setPages(new ResearchPage(""), new ResearchPage(EMTRecipes.chargeFocus)); } + if (!EMTConfigHandler.maintenanceFocusResearch) { + new EMTResearchItem( + "Wand Focus: Maintenance", + EMTResearchAspects.maintenanceFocus, + 7, + 4, + 4, + new ItemStack(EMTItems.maintenanceFocus)).setParents("Wand Focus: Charging").setConcealed() + .registerResearchItem() + .setPages(new ResearchPage(""), new ResearchPage(EMTRecipes.maintenanceFocus)); + } if (!EMTConfigHandler.wandChargeFocusResearch) { new EMTResearchItem( "Wand Focus: Wand Charging", diff --git a/src/main/java/emt/item/focus/ItemMaintenanceFocus.java b/src/main/java/emt/item/focus/ItemMaintenanceFocus.java new file mode 100644 index 0000000..520ea50 --- /dev/null +++ b/src/main/java/emt/item/focus/ItemMaintenanceFocus.java @@ -0,0 +1,76 @@ +package emt.item.focus; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +import thaumcraft.api.aspects.Aspect; +import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.wands.FocusUpgradeType; +import thaumcraft.common.items.wands.ItemWandCasting; +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.metatileentity.BaseMetaTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; + +public class ItemMaintenanceFocus extends ItemBaseFocus { + + private static final AspectList visCost = new AspectList().add(Aspect.FIRE, 2500).add(Aspect.EARTH, 2500) + .add(Aspect.ORDER, 2500); + + public ItemMaintenanceFocus() { + super("maintenance"); + } + + @Override + public int getFocusColor(ItemStack stack) { + return 0xC0C0C0; + } + + @Override + public AspectList getVisCost(ItemStack focusstack) { + return visCost; + } + + @Override + public String getSortingHelper(ItemStack itemstack) { + return "MAINTENANCE"; + } + + @Override + public FocusUpgradeType[] getPossibleUpgradesByRank(ItemStack focusstack, int rank) { + return new FocusUpgradeType[] { FocusUpgradeType.frugal }; + } + + @Override + public ItemStack onFocusRightClick(ItemStack itemStack, World world, EntityPlayer player, + MovingObjectPosition mop) { + + ItemWandCasting wand = (ItemWandCasting) itemStack.getItem(); + + if (!world.isRemote) { + if (!player.isSneaking()) { + return itemStack; + } + TileEntity hatchCandidateTile = world.getTileEntity(mop.blockX, mop.blockY, mop.blockZ); + if (hatchCandidateTile instanceof BaseMetaTileEntity) { + IMetaTileEntity hatchCandidateMetaTile = ((BaseMetaTileEntity) hatchCandidateTile).getMetaTileEntity(); + if (hatchCandidateMetaTile instanceof GT_MetaTileEntity_Hatch_Maintenance) { + GT_MetaTileEntity_Hatch_Maintenance hatch = (GT_MetaTileEntity_Hatch_Maintenance) hatchCandidateMetaTile; + if (player.capabilities.isCreativeMode + || wand.consumeAllVis(itemStack, player, getVisCost(itemStack), true, true)) { + hatch.mCrowbar = true; + hatch.mScrewdriver = true; + hatch.mHardHammer = true; + hatch.mSolderingTool = true; + hatch.mWrench = true; + hatch.mSoftHammer = true; + } + } + } + } + player.swingItem(); + return itemStack; + } +} diff --git a/src/main/java/emt/util/EMTConfigHandler.java b/src/main/java/emt/util/EMTConfigHandler.java index 31e5ede..5bd41b8 100644 --- a/src/main/java/emt/util/EMTConfigHandler.java +++ b/src/main/java/emt/util/EMTConfigHandler.java @@ -107,6 +107,7 @@ public class EMTConfigHandler { public static boolean christmasFocusResearch; public static boolean energyBallFocusResearch; public static boolean shieldFocusResearch; + public static boolean maintenanceFocusResearch; public static boolean shieldBlockResearch; public static boolean potentiaGeneratorResearch; public static boolean ignisGeneratorResearch; @@ -390,6 +391,8 @@ public class EMTConfigHandler { christmasFocusResearch = config.get(RESEARCH, "Kris-tmas Focus", false).getBoolean(christmasFocusResearch); energyBallFocusResearch = config.get(RESEARCH, "EnergyBall Focus", false).getBoolean(christmasFocusResearch); shieldFocusResearch = config.get(RESEARCH, "Shield Focus", false).getBoolean(shieldFocusResearch); + maintenanceFocusResearch = config.get(RESEARCH, "Maintenance Focus", false) + .getBoolean(maintenanceFocusResearch); shieldBlockResearch = config.get(RESEARCH, "Shield Block", false).getBoolean(shieldBlockResearch); potentiaGeneratorResearch = config.get(RESEARCH, "Potentia Generator", false) .getBoolean(potentiaGeneratorResearch); diff --git a/src/main/java/emt/util/EMTCraftingAspects.java b/src/main/java/emt/util/EMTCraftingAspects.java index 86d398b..32ef750 100644 --- a/src/main/java/emt/util/EMTCraftingAspects.java +++ b/src/main/java/emt/util/EMTCraftingAspects.java @@ -83,6 +83,8 @@ public class EMTCraftingAspects { .add(Aspect.MECHANISM, 32); public static AspectList wandChargeFocus = new AspectList().add(Aspect.ENERGY, 48).add(Aspect.AURA, 32) .add(Aspect.EXCHANGE, 48).add(Aspect.GREED, 64); + public static AspectList maintenanceFocus = new AspectList().add(Aspect.CRAFT, 32).add(Aspect.EXCHANGE, 48) + .add(Aspect.TOOL, 64).add(Aspect.MAGIC, 64).add(Aspect.MECHANISM, 32).add(Aspect.ENERGY, 32); public static AspectList inventoryChargingRing = new AspectList().add(Aspect.ENERGY, 64).add(Aspect.CRYSTAL, 32) .add(Aspect.MAGIC, 48); public static AspectList armorChargingRing = new AspectList().add(Aspect.ENERGY, 64).add(Aspect.ARMOR, 32) diff --git a/src/main/java/emt/util/EMTResearchAspects.java b/src/main/java/emt/util/EMTResearchAspects.java index f256248..7f04da4 100644 --- a/src/main/java/emt/util/EMTResearchAspects.java +++ b/src/main/java/emt/util/EMTResearchAspects.java @@ -25,6 +25,8 @@ public class EMTResearchAspects { .add(Aspect.LIFE, 6); public static AspectList shieldFocusResearch = new AspectList().add(Aspect.ARMOR, 5).add(Aspect.AIR, 2) .add(Aspect.CRYSTAL, 3).add(Aspect.TRAP, 2); + public static AspectList maintenanceFocus = new AspectList().add(Aspect.MECHANISM, 5).add(Aspect.FIRE, 3) + .add(Aspect.ORDER, 3).add(Aspect.ENERGY, 5).add(Aspect.MAGIC, 5).add(Aspect.TOOL, 5); public static AspectList electricGogglesResearch = new AspectList().add(Aspect.ARMOR, 8).add(Aspect.ENERGY, 5) .add(Aspect.SENSES, 6); public static AspectList potentiaGeneratorResearch = new AspectList().add(Aspect.ENERGY, 4).add(Aspect.EXCHANGE, 4) diff --git a/src/main/resources/assets/emt/lang/en_US.lang b/src/main/resources/assets/emt/lang/en_US.lang index ac764f8..10259cc 100644 --- a/src/main/resources/assets/emt/lang/en_US.lang +++ b/src/main/resources/assets/emt/lang/en_US.lang @@ -106,6 +106,7 @@ item.EMT.focus.christmas.name=Wand Focus: Kris-tmas item.EMT.focus.shield.name=Wand Focus: Shield item.EMT.focus.charge.name=Wand Focus: Charging item.EMT.focus.chargeWand.name=Wand Focus: Wand Charging +item.EMT.focus.maintenance.name=Wand Focus: Maintenance item.EMT.focus.electricCloud.name=Electric Cloud item.EMT.focus.energyBall.name=Energy Ball Focus @@ -251,6 +252,10 @@ emt.rsname.Shield Focus=Shield Focus emt.tag.Shield Focus=S.H.I.E.L.D. emt.text.Shield Focus=With some experimentation with the Portable Hole, you have found out more about the transportation of objects to alternate dimensions. You believe you can reverse these effects to summon a swath of blocks from a dimension full of matter to shield you from any oncoming disaster. Caution is to be taken when using this focus, as when bringing these blocks into our dimension, it will transpose any blocks in the way into the dimension it came from, never to return again. You will also be unable to move while this shield is in existence. +emt.rsname.Wand Focus: Maintenance=Thaumic Maintenance +emt.tag.Wand Focus: Maintenance=Who needs a toolbox when you have magic? +emt.text.Wand Focus: Maintenance=After intense study of the supposedly mechanical nature of your apparati, you've finally done it, you've discovered a method allowing the use of vis in repair.
What are a few exploded cleanrooms in the face of sheer progress? Now you can get rid of those dastardly mundane tools... + emt.rsname.Potentia Generator=Potentia Generator emt.tag.Potentia Generator=Harnessing the power-producing potential of Essentia emt.text.Potentia Generator=After much studying and research, you have finally discovered how to create electricity from your leftover Essentia.

Simply place a Warded Jar containing Potentia in a 8 blocks radius of the machine and it will draw it in to create EU.

While Potentia seems like the most logical choice for producing Essentia with EU, you believe you will be able to generate electricity from different Essentia in the near future with a bit of tinkering. diff --git a/src/main/resources/assets/emt/textures/items/focus_maintenance.png b/src/main/resources/assets/emt/textures/items/focus_maintenance.png new file mode 100644 index 0000000..8cc1014 Binary files /dev/null and b/src/main/resources/assets/emt/textures/items/focus_maintenance.png differ