diff options
author | Jakub <53441451+kuba6000@users.noreply.github.com> | 2022-08-29 11:01:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-29 11:01:23 +0200 |
commit | 24e5b1391b6a057d6508d1902f5f02bc27d508c8 (patch) | |
tree | e40ab6b04ca965fee6f72e6bc9051b12729eeab0 /src/main/java | |
parent | 0618db983f399da0556aae55179906504100a663 (diff) | |
download | GT5-Unofficial-24e5b1391b6a057d6508d1902f5f02bc27d508c8.tar.gz GT5-Unofficial-24e5b1391b6a057d6508d1902f5f02bc27d508c8.tar.bz2 GT5-Unofficial-24e5b1391b6a057d6508d1902f5f02bc27d508c8.zip |
Tea line (#11)
* Add normal Tea
* Add Tea Line
Also removed red tea and butterfly tea
* Don't use item if in creative
* Move recipes
* Better MTE registration
* Always throw
* Add textures
Diffstat (limited to 'src/main/java')
14 files changed, 509 insertions, 190 deletions
diff --git a/src/main/java/kubatech/CommonProxy.java b/src/main/java/kubatech/CommonProxy.java index 6f9a187cc2..9f59dd02af 100644 --- a/src/main/java/kubatech/CommonProxy.java +++ b/src/main/java/kubatech/CommonProxy.java @@ -36,9 +36,9 @@ public class CommonProxy { Config.init(event.getModConfigurationDirectory()); Config.synchronizeConfiguration(); - RecipeLoader.addRecipes(); FMLCommonHandler.instance().bus().register(new FMLEventHandler()); RegisterItems(); + RecipeLoader.addRecipes(); } public void init(FMLInitializationEvent event) {} diff --git a/src/main/java/kubatech/api/LoaderReference.java b/src/main/java/kubatech/api/LoaderReference.java index b41db59904..482da4204f 100644 --- a/src/main/java/kubatech/api/LoaderReference.java +++ b/src/main/java/kubatech/api/LoaderReference.java @@ -11,4 +11,6 @@ public class LoaderReference { public static final boolean MineTweaker = Loader.isModLoaded("MineTweaker3"); public static final boolean Bartworks = Loader.isModLoaded("bartworks"); public static final boolean GTNHCoreMod = Loader.isModLoaded("dreamcraft"); + public static final boolean GTPlusPlus = Loader.isModLoaded("miscutils"); + public static final boolean HarvestCraft = Loader.isModLoaded("harvestcraft"); } diff --git a/src/main/java/kubatech/api/enums/ItemList.java b/src/main/java/kubatech/api/enums/ItemList.java index 270faf39cc..015a2b77b9 100644 --- a/src/main/java/kubatech/api/enums/ItemList.java +++ b/src/main/java/kubatech/api/enums/ItemList.java @@ -15,8 +15,20 @@ import net.minecraft.item.ItemStack; public enum ItemList implements IItemContainer { ExtremeExterminationChamber, + LegendaryBlackTea, + LegendaryButterflyTea, + LegendaryEarlGrayTea, + LegendaryGreenTea, + LegendaryLemonTea, + LegendaryMilkTea, + LegendaryOolongTea, + LegendaryPeppermintTea, + LegendaryPuerhTea, + LegendaryRedTea, + LegendaryWhiteTea, + LegendaryYellowTea, + LegendaryUltimateTea, BlackTea, - ButterflyTea, EarlGrayTea, GreenTea, LemonTea, @@ -24,10 +36,21 @@ public enum ItemList implements IItemContainer { OolongTea, PeppermintTea, PuerhTea, - RedTea, WhiteTea, YellowTea, - UltimateTea, + BlackTeaLeaf, + GreenTeaLeaf, + OolongTeaLeaf, + PuerhTeaLeaf, + WhiteTeaLeaf, + YellowTeaLeaf, + TeaLeafDehydrated, + SteamedTeaLeaf, + RolledTeaLeaf, + OxidizedTeaLeaf, + FermentedTeaLeaf, + BruisedTeaLeaf, + PartiallyOxidizedTeaLeaf, ; private ItemStack mStack; diff --git a/src/main/java/kubatech/kubatech.java b/src/main/java/kubatech/kubatech.java index 6a19eb3721..4c5f78ae10 100644 --- a/src/main/java/kubatech/kubatech.java +++ b/src/main/java/kubatech/kubatech.java @@ -19,13 +19,15 @@ package kubatech; -import static kubatech.api.enums.ItemList.RedTea; +import static kubatech.api.enums.ItemList.LegendaryRedTea; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.*; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; import cpw.mods.fml.relauncher.Side; +import java.util.List; +import kubatech.api.enums.ItemList; import kubatech.api.network.CustomTileEntityPacket; import kubatech.api.network.LoadConfigPacket; import net.minecraft.creativetab.CreativeTabs; @@ -42,7 +44,7 @@ import org.apache.logging.log4j.Logger; acceptedMinecraftVersions = "[1.7.10]", dependencies = "required-after:gregtech; " + "required-after:spongemixins@[1.4.0,); " + "after:EnderIO; " + "after:AWWayofTime; " + "after:ExtraUtilities; " + "after: InfernalMobs; " + "after: Thaumcraft; " - + "after: MineTweaker3; ") + + "after: MineTweaker3; " + "after: miscutils; " + "after: harvestcraft; ") public class kubatech { public static kubatech instance = null; @@ -52,7 +54,7 @@ public class kubatech { @Override public ItemStack getIconItemStack() { - if (iconItemStack == null) iconItemStack = RedTea.get(1); + if (iconItemStack == null) iconItemStack = LegendaryRedTea.get(1); return iconItemStack; } @@ -65,6 +67,12 @@ public class kubatech { public String getTranslatedTabLabel() { return Tags.MODNAME; } + + @Override + public void displayAllReleventItems(List p_78018_1_) { + super.displayAllReleventItems(p_78018_1_); + p_78018_1_.add(ItemList.ExtremeExterminationChamber.get(1)); + } }; static { diff --git a/src/main/java/kubatech/loaders/ItemLoader.java b/src/main/java/kubatech/loaders/ItemLoader.java index 940f5274f9..7df248da60 100644 --- a/src/main/java/kubatech/loaders/ItemLoader.java +++ b/src/main/java/kubatech/loaders/ItemLoader.java @@ -24,6 +24,8 @@ import static kubatech.api.enums.ItemList.*; import cpw.mods.fml.common.registry.GameRegistry; import kubatech.loaders.item.KubaItems; import kubatech.loaders.item.items.Tea; +import kubatech.loaders.item.items.TeaCollection; +import kubatech.loaders.item.items.TeaIngredient; import kubatech.loaders.item.items.TeaUltimate; public class ItemLoader { @@ -31,18 +33,47 @@ public class ItemLoader { public static void RegisterItems() { GameRegistry.registerItem(kubaitems, "kubaitems"); - BlackTea.set(kubaitems.registerProxyItem(new Tea("black_tea"))); - ButterflyTea.set(kubaitems.registerProxyItem(new Tea("butterfly_tea"))); - EarlGrayTea.set(kubaitems.registerProxyItem(new Tea("earl_gray_tea"))); - GreenTea.set(kubaitems.registerProxyItem(new Tea("green_tea"))); - LemonTea.set(kubaitems.registerProxyItem(new Tea("lemon_tea"))); - MilkTea.set(kubaitems.registerProxyItem(new Tea("milk_tea"))); - OolongTea.set(kubaitems.registerProxyItem(new Tea("oolong_tea"))); - PeppermintTea.set(kubaitems.registerProxyItem(new Tea("peppermint_tea"))); - PuerhTea.set(kubaitems.registerProxyItem(new Tea("pu-erh_tea"))); - RedTea.set(kubaitems.registerProxyItem(new Tea("red_tea"))); - WhiteTea.set(kubaitems.registerProxyItem(new Tea("white_tea"))); - YellowTea.set(kubaitems.registerProxyItem(new Tea("yellow_tea"))); - UltimateTea.set(kubaitems.registerProxyItem(new TeaUltimate())); + + // DON'T EVER CHANGE ORDER IN HERE, ADD NEW ITEMS ON BOTTOM + + LegendaryBlackTea.set(kubaitems.registerProxyItem(new TeaCollection("black_tea"))); + LegendaryButterflyTea.set(kubaitems.registerProxyItem(new TeaCollection("butterfly_tea"))); + LegendaryEarlGrayTea.set(kubaitems.registerProxyItem(new TeaCollection("earl_gray_tea"))); + LegendaryGreenTea.set(kubaitems.registerProxyItem(new TeaCollection("green_tea"))); + LegendaryLemonTea.set(kubaitems.registerProxyItem(new TeaCollection("lemon_tea"))); + LegendaryMilkTea.set(kubaitems.registerProxyItem(new TeaCollection("milk_tea"))); + LegendaryOolongTea.set(kubaitems.registerProxyItem(new TeaCollection("oolong_tea"))); + LegendaryPeppermintTea.set(kubaitems.registerProxyItem(new TeaCollection("peppermint_tea"))); + LegendaryPuerhTea.set(kubaitems.registerProxyItem(new TeaCollection("pu-erh_tea"))); + LegendaryRedTea.set(kubaitems.registerProxyItem(new TeaCollection("red_tea"))); + LegendaryWhiteTea.set(kubaitems.registerProxyItem(new TeaCollection("white_tea"))); + LegendaryYellowTea.set(kubaitems.registerProxyItem(new TeaCollection("yellow_tea"))); + LegendaryUltimateTea.set(kubaitems.registerProxyItem(new TeaUltimate())); + + BlackTea.set(kubaitems.registerProxyItem(new Tea("black_tea", 4, 0.3f))); + EarlGrayTea.set(kubaitems.registerProxyItem(new Tea("earl_gray_tea", 4, 0.3f))); + GreenTea.set(kubaitems.registerProxyItem(new Tea("green_tea", 4, 0.3f))); + LemonTea.set(kubaitems.registerProxyItem(new Tea("lemon_tea", 4, 0.3f))); + MilkTea.set(kubaitems.registerProxyItem(new Tea("milk_tea", 4, 0.3f))); + OolongTea.set(kubaitems.registerProxyItem(new Tea("oolong_tea", 4, 0.3f))); + PeppermintTea.set(kubaitems.registerProxyItem(new Tea("peppermint_tea", 4, 0.3f))); + PuerhTea.set(kubaitems.registerProxyItem(new Tea("pu-erh_tea", 4, 0.3f))); + WhiteTea.set(kubaitems.registerProxyItem(new Tea("white_tea", 4, 0.3f))); + YellowTea.set(kubaitems.registerProxyItem(new Tea("yellow_tea", 4, 0.3f))); + + BlackTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("black_tea_leaf"))); + GreenTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("green_tea_leaf"))); + OolongTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("oolong_tea_leaf"))); + PuerhTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("pu-erh_tea_leaf"))); + WhiteTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("white_tea_leaf"))); + YellowTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("yellow_tea_leaf"))); + + TeaLeafDehydrated.set(kubaitems.registerProxyItem(new TeaIngredient("tea_leaf_dehydrated"))); + SteamedTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("steamed_tea_leaf"))); + RolledTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("rolled_tea_leaf"))); + OxidizedTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("oxidized_tea_leaf"))); + FermentedTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("fermented_tea_leaf"))); + BruisedTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("bruised_tea_leaf"))); + PartiallyOxidizedTeaLeaf.set(kubaitems.registerProxyItem(new TeaIngredient("partially_oxidized_tea_leaf"))); } } diff --git a/src/main/java/kubatech/loaders/RecipeLoader.java b/src/main/java/kubatech/loaders/RecipeLoader.java index 84c3603225..62d1594a30 100644 --- a/src/main/java/kubatech/loaders/RecipeLoader.java +++ b/src/main/java/kubatech/loaders/RecipeLoader.java @@ -19,15 +19,26 @@ package kubatech.loaders; +import static kubatech.api.enums.ItemList.*; +import static kubatech.api.enums.ItemList.YellowTea; + +import cpw.mods.fml.common.registry.GameRegistry; +import gregtech.api.enums.GT_Values; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Utility; +import gtPlusPlus.core.lib.CORE; +import java.lang.reflect.InvocationTargetException; import kubatech.Tags; import kubatech.api.LoaderReference; import kubatech.api.enums.ItemList; import kubatech.tileentity.gregtech.multiblock.GT_MetaTileEntity_ExtremeExterminationChamber; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -43,10 +54,12 @@ public class RecipeLoader { private static final int MTEIDMax = 14300; public static void addRecipes() { - if (LoaderReference.EnderIO) { - ItemList.ExtremeExterminationChamber.set(new GT_MetaTileEntity_ExtremeExterminationChamber( - MTEID++, "multimachine.exterminationchamber", "Extreme Extermination Chamber") - .getStackForm(1L)); + if (registerMTE( + ExtremeExterminationChamber, + GT_MetaTileEntity_ExtremeExterminationChamber.class, + "multimachine.exterminationchamber", + "Extreme Extermination Chamber", + LoaderReference.EnderIO)) { GT_ModHandler.addCraftingRecipe(ItemList.ExtremeExterminationChamber.get(1), bitsd, new Object[] { "RCR", "CHC", @@ -61,9 +74,48 @@ public class RecipeLoader { GT_ModHandler.getModItem("OpenBlocks", "vacuumhopper", 1, new ItemStack(Blocks.hopper)) }); } + RegisterTeaLine(); if (MTEID > MTEIDMax + 1) throw new RuntimeException("MTE ID's"); } + private static boolean registerMTE( + ItemList item, Class<? extends MetaTileEntity> mte, String aName, String aNameRegional) { + return registerMTE(item, mte, aName, aNameRegional, true); + } + + private static boolean registerMTE( + ItemList item, Class<? extends MetaTileEntity> mte, String aName, String aNameRegional, boolean... deps) { + boolean dep = true; + for (boolean i : deps) + if (!i) { + dep = false; + break; + } + return registerMTE(item, mte, aName, aNameRegional, dep); + } + + private static boolean registerMTE( + ItemList item, Class<? extends MetaTileEntity> mte, String aName, String aNameRegional, boolean dep) { + if (MTEID > MTEIDMax) throw new RuntimeException("MTE ID's"); + if (dep) { + try { + item.set(mte.getConstructor(int.class, String.class, String.class) + .newInstance(MTEID, aName, aNameRegional) + .getStackForm(1)); + } catch (InvocationTargetException ex) { + Throwable original_ex = ex.getCause(); + if (original_ex instanceof RuntimeException) throw (RuntimeException) original_ex; + throw new RuntimeException(original_ex.getMessage()); + } catch (RuntimeException ex) { + throw ex; + } catch (Exception ex) { + throw new RuntimeException(ex.getMessage()); + } + } + MTEID++; + return dep; + } + private static boolean lateRecipesInitialized = false; public static void addRecipesLate() { @@ -74,4 +126,122 @@ public class RecipeLoader { MobRecipeLoader.generateMobRecipeMap(); MobRecipeLoader.processMobRecipeMap(); } + + private static void RegisterTeaLine() { + // TEA LINE // + if (LoaderReference.GTPlusPlus && LoaderReference.HarvestCraft) { + CORE.RA.addDehydratorRecipe( + new ItemStack[] {GameRegistry.findItemStack("harvestcraft", "tealeafItem", 1)}, + null, + null, + new ItemStack[] {TeaLeafDehydrated.get(1)}, + null, + 100, + 32); + CORE.RA.addDehydratorRecipe( + new ItemStack[] {TeaLeafDehydrated.get(1)}, + null, + null, + new ItemStack[] {WhiteTeaLeaf.get(1)}, + null, + 100, + 32); + GT_Values.RA.addMixerRecipe( + new ItemStack[] {TeaLeafDehydrated.get(1)}, + new FluidStack[] {FluidRegistry.getFluidStack("water", 50)}, + new ItemStack[] {SteamedTeaLeaf.get(1)}, + null, + 100, + 32); + CORE.RA.addDehydratorRecipe( + new ItemStack[] {SteamedTeaLeaf.get(1)}, + null, + null, + new ItemStack[] {YellowTeaLeaf.get(1)}, + null, + 100, + 32); + GT_Values.RA.addBenderRecipe(TeaLeafDehydrated.get(1), RolledTeaLeaf.get(1), 100, 32); + CORE.RA.addDehydratorRecipe( + new ItemStack[] {RolledTeaLeaf.get(1)}, + null, + null, + new ItemStack[] {GreenTeaLeaf.get(1)}, + null, + 100, + 32); + GT_Values.RA.addChemicalRecipe( + RolledTeaLeaf.get(1), GT_Utility.getIntegratedCircuit(1), OxidizedTeaLeaf.get(1), 100, 32); + CORE.RA.addDehydratorRecipe( + new ItemStack[] {OxidizedTeaLeaf.get(1)}, + null, + null, + new ItemStack[] {BlackTeaLeaf.get(1)}, + null, + 100, + 32); + GT_Values.RA.addChemicalRecipe( + RolledTeaLeaf.get(1), GT_Utility.getIntegratedCircuit(2), FermentedTeaLeaf.get(1), 200, 32); + CORE.RA.addDehydratorRecipe( + new ItemStack[] {FermentedTeaLeaf.get(1)}, + null, + null, + new ItemStack[] {PuerhTeaLeaf.get(1)}, + null, + 100, + 32); + GT_Values.RA.addCutterRecipe( + new ItemStack[] {TeaLeafDehydrated.get(1)}, + new ItemStack[] {BruisedTeaLeaf.get(1)}, + 100, + 32, + false); + GT_Values.RA.addChemicalRecipe( + BruisedTeaLeaf.get(1), GT_Utility.getIntegratedCircuit(1), PartiallyOxidizedTeaLeaf.get(1), 50, 32); + CORE.RA.addDehydratorRecipe( + new ItemStack[] {PartiallyOxidizedTeaLeaf.get(1)}, + null, + null, + new ItemStack[] {OolongTeaLeaf.get(1)}, + null, + 100, + 32); + + // Tea Assembly + GameRegistry.addSmelting(BlackTeaLeaf.get(1), BlackTea.get(1), 10); + GT_Values.RA.addMixerRecipe( + new ItemStack[] {BlackTea.get(1), GameRegistry.findItemStack("harvestcraft", "limejuiceItem", 1)}, + null, + new ItemStack[] {EarlGrayTea.get(1)}, + null, + 100, + 32); + GameRegistry.addSmelting(GreenTeaLeaf.get(1), GreenTea.get(1), 10); + GT_Values.RA.addMixerRecipe( + new ItemStack[] {BlackTea.get(1)}, + new FluidStack[] {FluidRegistry.getFluidStack("potion.lemonjuice", 1000)}, + new ItemStack[] {LemonTea.get(1)}, + null, + 100, + 32); + GT_Values.RA.addMixerRecipe( + new ItemStack[] {BlackTea.get(1)}, + new FluidStack[] {FluidRegistry.getFluidStack("milk", 1000)}, + new ItemStack[] {MilkTea.get(1)}, + null, + 100, + 32); + GameRegistry.addSmelting(OolongTeaLeaf.get(1), OolongTea.get(1), 10); + GT_Values.RA.addMixerRecipe( + new ItemStack[] {GameRegistry.findItemStack("harvestcraft", "peppermintItem", 1)}, + new FluidStack[] {FluidRegistry.getFluidStack("water", 1000)}, + new ItemStack[] {PeppermintTea.get(1)}, + null, + 100, + 32); + GameRegistry.addSmelting(PuerhTeaLeaf.get(1), PuerhTea.get(1), 10); + GameRegistry.addSmelting(WhiteTeaLeaf.get(1), WhiteTea.get(1), 10); + GameRegistry.addSmelting(YellowTeaLeaf.get(1), YellowTea.get(1), 10); + } + } } diff --git a/src/main/java/kubatech/loaders/item/ItemProxy.java b/src/main/java/kubatech/loaders/item/ItemProxy.java index 67491a0ba8..03ea390f74 100644 --- a/src/main/java/kubatech/loaders/item/ItemProxy.java +++ b/src/main/java/kubatech/loaders/item/ItemProxy.java @@ -37,7 +37,7 @@ public class ItemProxy { private int itemID; public ItemProxy(String unlocalizedName, String texture) { - this.unlocalizedName = "item.kubaitem." + unlocalizedName; + this.unlocalizedName = "kubaitem." + unlocalizedName; texturepath = Tags.MODID + ":" + texture; } @@ -61,21 +61,20 @@ public class ItemProxy { return icon; } - public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {} + public void addInformation(ItemStack stack, EntityPlayer entity, List<String> tooltipList, boolean showDebugInfo) {} - public void onUpdate( - ItemStack p_77663_1_, World p_77663_2_, Entity p_77663_3_, int p_77663_4_, boolean p_77663_5_) {} + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) {} - public EnumAction getItemUseAction(ItemStack p_77661_1_) { + public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.none; } - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - return p_77659_1_; + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer entity) { + return stack; } - public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { - return p_77654_1_; + public ItemStack onEaten(ItemStack stack, World world, EntityPlayer entity) { + return stack; } public int getMaxItemUseDuration() { diff --git a/src/main/java/kubatech/loaders/item/KubaItems.java b/src/main/java/kubatech/loaders/item/KubaItems.java index fdc38ec0ba..17a97e3d70 100644 --- a/src/main/java/kubatech/loaders/item/KubaItems.java +++ b/src/main/java/kubatech/loaders/item/KubaItems.java @@ -105,9 +105,10 @@ public class KubaItems extends Item { return super.getUnlocalizedName(); } + @SuppressWarnings("unchecked") @Override public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) { - getItem(p_77624_1_).addInformation(p_77624_1_, p_77624_2_, p_77624_3_, p_77624_4_); + getItem(p_77624_1_).addInformation(p_77624_1_, p_77624_2_, (List<String>) p_77624_3_, p_77624_4_); } @Override @@ -132,6 +133,7 @@ public class KubaItems extends Item { return getItem(damage).getIcon(); } + @SuppressWarnings("unchecked") @Override public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) { for (int i = 0; i < items.size(); i++) p_150895_3_.add(new ItemStack(p_150895_1_, 1, i)); diff --git a/src/main/java/kubatech/loaders/item/items/Tea.java b/src/main/java/kubatech/loaders/item/items/Tea.java index d9f39bc06f..d5c1066af4 100644 --- a/src/main/java/kubatech/loaders/item/items/Tea.java +++ b/src/main/java/kubatech/loaders/item/items/Tea.java @@ -19,116 +19,44 @@ package kubatech.loaders.item.items; -import java.util.LinkedList; import java.util.List; -import kubatech.api.utils.ModUtils; -import kubatech.loaders.ItemLoader; import kubatech.loaders.item.ItemProxy; -import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.EntityClientPlayerMP; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.stats.Achievement; -import net.minecraft.util.ChatComponentText; -import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.StatCollector; import net.minecraft.world.World; -import net.minecraftforge.common.AchievementPage; public class Tea extends ItemProxy { - protected static TeaPage teapage; - protected static LinkedList<Achievement> achievements; - protected Achievement achievement; - private final String achievementname; + private final int heal; + private final float saturation; - public Tea(String unlocalizedName) { - super("teacollection." + unlocalizedName, "teacollection/" + unlocalizedName); - achievementname = "teacollection." + unlocalizedName; + public Tea(String unlocalizedName, int heal, float saturation) { + super("tea." + unlocalizedName, "tea/" + unlocalizedName); + this.heal = heal; + this.saturation = saturation; } - private static final int[][] achievement_poses = new int[][] { - {0, 0}, - {2, 0}, - {3, 1}, - {4, 2}, - {4, 4}, - {3, 5}, - {2, 6}, - {0, 6}, - {-1, 5}, - {-2, 4}, - {-2, 2}, - {-1, 1}, - {1, 3} - }; - @Override - public void ItemInit(int index) { - super.ItemInit(index); - if (teapage == null) { - teapage = new TeaPage(); - AchievementPage.registerAchievementPage(teapage); - achievements = teapage.getAchievementsOriginal(); - } - achievements.add( - achievement = new Achievement( - achievementname, - achievementname, - achievement_poses[index][0], - achievement_poses[index][1], - new ItemStack(ItemLoader.kubaitems, 1, index), - null) - .registerStat()); + public void addInformation(ItemStack stack, EntityPlayer entity, List<String> tooltipList, boolean showDebugInfo) { + tooltipList.add("Tea"); } @Override - public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) { - if (p_77624_1_.stackTagCompound != null - && p_77624_1_.stackTagCompound.hasKey("TeaOwner") - && !p_77624_1_ - .stackTagCompound - .getString("TeaOwner") - .equals(p_77624_2_.getUniqueID().toString())) { - p_77624_3_.add(EnumChatFormatting.GRAY + "" + EnumChatFormatting.BOLD + "" + EnumChatFormatting.ITALIC - + StatCollector.translateToLocal("item.notyours")); - return; - } - p_77624_3_.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("item.fromcollection")); - p_77624_3_.add(EnumChatFormatting.GRAY + "" + EnumChatFormatting.BOLD + "" + EnumChatFormatting.ITALIC + "" - + EnumChatFormatting.UNDERLINE + StatCollector.translateToLocal("item.teacollection")); - } - - @Override - public EnumAction getItemUseAction(ItemStack p_77661_1_) { + public EnumAction getItemUseAction(ItemStack stack) { return EnumAction.drink; } @Override - public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { - if (p_77659_1_.stackTagCompound == null || !p_77659_1_.stackTagCompound.hasKey("TeaOwner")) return p_77659_1_; - if (!p_77659_1_ - .stackTagCompound - .getString("TeaOwner") - .equals(p_77659_3_.getUniqueID().toString())) return p_77659_1_; - p_77659_3_.setItemInUse(p_77659_1_, 32); - return p_77659_1_; + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer entity) { + entity.setItemInUse(stack, getMaxItemUseDuration()); + return stack; } @Override - public ItemStack onEaten(ItemStack stack, World p_77654_2_, EntityPlayer p_77654_3_) { - if (p_77654_2_.isRemote) return stack; - if (!(p_77654_3_ instanceof EntityPlayerMP)) return stack; - if (stack.stackTagCompound == null || !stack.stackTagCompound.hasKey("TeaOwner")) return stack; - if (!stack.stackTagCompound - .getString("TeaOwner") - .equals(p_77654_3_.getUniqueID().toString())) return stack; - p_77654_3_.addChatComponentMessage(new ChatComponentText( - EnumChatFormatting.GREEN + StatCollector.translateToLocal("item.teacollection.mmm"))); - p_77654_3_.triggerAchievement(achievement); + public ItemStack onEaten(ItemStack stack, World world, EntityPlayer entity) { + if (!entity.capabilities.isCreativeMode) --stack.stackSize; + entity.getFoodStats().addStats(heal, saturation); + world.playSoundAtEntity(entity, "random.burp", 0.5F, world.rand.nextFloat() * 0.1F + 0.9F); return stack; } @@ -136,58 +64,4 @@ public class Tea extends ItemProxy { public int getMaxItemUseDuration() { return 32; } - - @Override - public String getDisplayName(ItemStack stack) { - if (!ModUtils.isClientSided) return super.getDisplayName(stack); - if (stack.stackTagCompound == null - || (!stack.stackTagCompound.hasKey("TeaOwner") - || stack.stackTagCompound - .getString("TeaOwner") - .equals(Minecraft.getMinecraft() - .thePlayer - .getUniqueID() - .toString()))) return super.getDisplayName(stack); - return EnumChatFormatting.GOLD + "" + EnumChatFormatting.BOLD + "" + EnumChatFormatting.ITALIC + "???????"; - } - - @Override - public void onUpdate( - ItemStack p_77663_1_, World p_77663_2_, Entity p_77663_3_, int p_77663_4_, boolean p_77663_5_) { - if (p_77663_2_.isRemote) return; - if (!(p_77663_3_ instanceof EntityPlayerMP)) return; - NBTTagCompound tag = p_77663_1_.stackTagCompound; - if (tag == null) tag = p_77663_1_.stackTagCompound = new NBTTagCompound(); - if (tag.hasKey("display")) tag.removeTag("display"); - if (tag.hasKey("TeaOwner")) return; - tag.setString("TeaOwner", p_77663_3_.getPersistentID().toString()); - } - - private static class TeaPage extends AchievementPage { - - public TeaPage() { - super("Tea"); - } - - LinkedList<Achievement> unlockedAchievements = new LinkedList<>(); - - @Override - public List<Achievement> getAchievements() { - if (!ModUtils.isClientSided) return super.getAchievements(); - - if (new Throwable().getStackTrace()[1].getMethodName().equals("isAchievementInPages")) - return super.getAchievements(); // 5HEAD FIX - - EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; - unlockedAchievements.clear(); - for (Achievement achievement : achievements) - if (player.getStatFileWriter().hasAchievementUnlocked(achievement)) - unlockedAchievements.add(achievement); - return unlockedAchievements; - } - - private LinkedList<Achievement> getAchievementsOriginal() { - return (LinkedList<Achievement>) super.getAchievements(); - } - } } diff --git a/src/main/java/kubatech/loaders/item/items/TeaCollection.java b/src/main/java/kubatech/loaders/item/items/TeaCollection.java new file mode 100644 index 0000000000..15e8565d3d --- /dev/null +++ b/src/main/java/kubatech/loaders/item/items/TeaCollection.java @@ -0,0 +1,191 @@ +/* + * KubaTech - Gregtech Addon + * Copyright (C) 2022 kuba6000 + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library. If not, see <https://www.gnu.org/licenses/>. + * + */ + +package kubatech.loaders.item.items; + +import java.util.LinkedList; +import java.util.List; +import kubatech.api.utils.ModUtils; +import kubatech.loaders.ItemLoader; +import kubatech.loaders.item.ItemProxy; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityClientPlayerMP; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.item.EnumAction; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.stats.Achievement; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; +import net.minecraftforge.common.AchievementPage; + +public class TeaCollection extends ItemProxy { + protected static TeaPage teapage; + protected static LinkedList<Achievement> achievements; + protected Achievement achievement; + private final String achievementname; + + public TeaCollection(String unlocalizedName) { + super("teacollection." + unlocalizedName, "tea/" + unlocalizedName); + achievementname = "teacollection." + unlocalizedName; + } + + private static final int[][] achievement_poses = new int[][] { + {0, 0}, + {2, 0}, + {3, 1}, + {4, 2}, + {4, 4}, + {3, 5}, + {2, 6}, + {0, 6}, + {-1, 5}, + {-2, 4}, + {-2, 2}, + {-1, 1}, + {1, 3} + }; + + @Override + public void ItemInit(int index) { + super.ItemInit(index); + if (teapage == null) { + teapage = new TeaPage(); + AchievementPage.registerAchievementPage(teapage); + achievements = teapage.getAchievementsOriginal(); + } + achievements.add( + achievement = new Achievement( + achievementname, + achievementname, + achievement_poses[index][0], + achievement_poses[index][1], + new ItemStack(ItemLoader.kubaitems, 1, index), + null) + .registerStat()); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer entity, List<String> tooltipList, boolean showDebugInfo) { + if (stack.stackTagCompound != null + && stack.stackTagCompound.hasKey("TeaOwner") + && !stack.stackTagCompound + .getString("TeaOwner") + .equals(entity.getUniqueID().toString())) { + tooltipList.add(EnumChatFormatting.GRAY + "" + EnumChatFormatting.BOLD + "" + EnumChatFormatting.ITALIC + + StatCollector.translateToLocal("kubaitem.notyours")); + return; + } + tooltipList.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("kubaitem.fromcollection")); + tooltipList.add(EnumChatFormatting.GRAY + "" + EnumChatFormatting.BOLD + "" + EnumChatFormatting.ITALIC + "" + + EnumChatFormatting.UNDERLINE + StatCollector.translateToLocal("kubaitem.teacollection")); + } + + @Override + public EnumAction getItemUseAction(ItemStack stack) { + return EnumAction.drink; + } + + @Override + public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { + if (p_77659_1_.stackTagCompound == null || !p_77659_1_.stackTagCompound.hasKey("TeaOwner")) return p_77659_1_; + if (!p_77659_1_ + .stackTagCompound + .getString("TeaOwner") + .equals(p_77659_3_.getUniqueID().toString())) return p_77659_1_; + p_77659_3_.setItemInUse(p_77659_1_, 32); + return p_77659_1_; + } + + @Override + public ItemStack onEaten(ItemStack stack, World world, EntityPlayer entity) { + if (world.isRemote) return stack; + if (!(entity instanceof EntityPlayerMP)) return stack; + if (stack.stackTagCompound == null || !stack.stackTagCompound.hasKey("TeaOwner")) return stack; + if (!stack.stackTagCompound + .getString("TeaOwner") + .equals(entity.getUniqueID().toString())) return stack; + entity.addChatComponentMessage(new ChatComponentText( + EnumChatFormatting.GREEN + StatCollector.translateToLocal("kubaitem.teacollection.mmm"))); + entity.triggerAchievement(achievement); + return stack; + } + + @Override + public int getMaxItemUseDuration() { + return 32; + } + + @Override + public String getDisplayName(ItemStack stack) { + if (!ModUtils.isClientSided) return super.getDisplayName(stack); + if (stack.stackTagCompound == null + || (!stack.stackTagCompound.hasKey("TeaOwner") + || stack.stackTagCompound + .getString("TeaOwner") + .equals(Minecraft.getMinecraft() + .thePlayer + .getUniqueID() + .toString()))) return super.getDisplayName(stack); + return EnumChatFormatting.GOLD + "" + EnumChatFormatting.BOLD + "" + EnumChatFormatting.ITALIC + "???????"; + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) { + if (world.isRemote) return; + if (!(entity instanceof EntityPlayerMP)) return; + NBTTagCompound tag = stack.stackTagCompound; + if (tag == null) tag = stack.stackTagCompound = new NBTTagCompound(); + if (tag.hasKey("display")) tag.removeTag("display"); + if (tag.hasKey("TeaOwner")) return; + tag.setString("TeaOwner", entity.getPersistentID().toString()); + } + + private static class TeaPage extends AchievementPage { + + public TeaPage() { + super("Tea"); + } + + LinkedList<Achievement> unlockedAchievements = new LinkedList<>(); + + @Override + public List<Achievement> getAchievements() { + if (!ModUtils.isClientSided) return super.getAchievements(); + + if (new Throwable().getStackTrace()[1].getMethodName().equals("isAchievementInPages")) + return super.getAchievements(); // 5HEAD FIX + + EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; + unlockedAchievements.clear(); + for (Achievement achievement : achievements) + if (player.getStatFileWriter().hasAchievementUnlocked(achievement)) + unlockedAchievements.add(achievement); + return unlockedAchievements; + } + + private LinkedList<Achievement> getAchievementsOriginal() { + return (LinkedList<Achievement>) super.getAchievements(); + } + } +} diff --git a/src/main/java/kubatech/loaders/item/items/TeaIngredient.java b/src/main/java/kubatech/loaders/item/items/TeaIngredient.java new file mode 100644 index 0000000000..8ba03c85fa --- /dev/null +++ b/src/main/java/kubatech/loaders/item/items/TeaIngredient.java @@ -0,0 +1,18 @@ +package kubatech.loaders.item.items; + +import java.util.List; +import kubatech.loaders.item.ItemProxy; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class TeaIngredient extends ItemProxy { + public TeaIngredient(String unlocalizedName) { + super("teaingredient." + unlocalizedName, "teaingredient/" + unlocalizedName); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer entity, List<String> tooltipList, boolean showDebugInfo) { + tooltipList.add(EnumChatFormatting.GRAY + "This is Tea ingredient"); + } +} diff --git a/src/main/java/kubatech/loaders/item/items/TeaUltimate.java b/src/main/java/kubatech/loaders/item/items/TeaUltimate.java index 879d3117ad..431feeb83f 100644 --- a/src/main/java/kubatech/loaders/item/items/TeaUltimate.java +++ b/src/main/java/kubatech/loaders/item/items/TeaUltimate.java @@ -26,7 +26,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; -public class TeaUltimate extends Tea { +public class TeaUltimate extends TeaCollection { public TeaUltimate() { super("ultimate_tea"); } diff --git a/src/main/java/kubatech/nei/NEI_Config.java b/src/main/java/kubatech/nei/NEI_Config.java index 1d0e51ddeb..bbce6fe649 100644 --- a/src/main/java/kubatech/nei/NEI_Config.java +++ b/src/main/java/kubatech/nei/NEI_Config.java @@ -33,19 +33,19 @@ public class NEI_Config implements IConfigureNEI { isAdded = false; new Mob_Handler(); isAdded = true; - API.hideItem(BlackTea.get(1)); - API.hideItem(ButterflyTea.get(1)); - API.hideItem(EarlGrayTea.get(1)); - API.hideItem(GreenTea.get(1)); - API.hideItem(LemonTea.get(1)); - API.hideItem(MilkTea.get(1)); - API.hideItem(OolongTea.get(1)); - API.hideItem(PeppermintTea.get(1)); - API.hideItem(PuerhTea.get(1)); - API.hideItem(RedTea.get(1)); - API.hideItem(WhiteTea.get(1)); - API.hideItem(YellowTea.get(1)); - API.hideItem(UltimateTea.get(1)); + API.hideItem(LegendaryBlackTea.get(1)); + API.hideItem(LegendaryButterflyTea.get(1)); + API.hideItem(LegendaryEarlGrayTea.get(1)); + API.hideItem(LegendaryGreenTea.get(1)); + API.hideItem(LegendaryLemonTea.get(1)); + API.hideItem(LegendaryMilkTea.get(1)); + API.hideItem(LegendaryOolongTea.get(1)); + API.hideItem(LegendaryPeppermintTea.get(1)); + API.hideItem(LegendaryPuerhTea.get(1)); + API.hideItem(LegendaryRedTea.get(1)); + API.hideItem(LegendaryWhiteTea.get(1)); + API.hideItem(LegendaryYellowTea.get(1)); + API.hideItem(LegendaryUltimateTea.get(1)); } @Override diff --git a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java index 270fd7ff9e..e136191be1 100644 --- a/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java +++ b/src/main/java/kubatech/tileentity/gregtech/multiblock/GT_MetaTileEntity_ExtremeExterminationChamber.java @@ -96,6 +96,7 @@ public class GT_MetaTileEntity_ExtremeExterminationChamber public static final HashMap<String, MobRecipeLoader.MobRecipe> MobNameToRecipeMap = new HashMap<>(); public final Random rand = new FastRandom(); + @SuppressWarnings("unused") public GT_MetaTileEntity_ExtremeExterminationChamber(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); } |