From 02a5ca8de76c06a0752b814ed1178eb32fe925ce Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Mon, 16 Feb 2015 16:28:31 +0000 Subject: [PATCH] Added a new Ender Artefacts category. --- .../java/vazkii/botania/api/BotaniaAPI.java | 1 + .../common/crafting/ModCraftingRecipes.java | 14 ++- .../vazkii/botania/common/item/ModItems.java | 1 + .../item/material/ItemManaResource.java | 37 +++++- .../botania/common/lexicon/LexiconData.java | 79 ++++++------ .../botania/common/lib/LibItemNames.java | 3 +- .../vazkii/botania/common/lib/LibLexicon.java | 17 +-- .../vazkii/botania/common/lib/LibOreDict.java | 1 + .../resources/assets/botania/lang/en_US.lang | 115 ++++++++++-------- .../botania/textures/gui/categories/ender.png | Bin 0 -> 19718 bytes .../items/{unused => }/enderAirBottle.png | Bin 11 files changed, 164 insertions(+), 104 deletions(-) create mode 100644 src/main/resources/assets/botania/textures/gui/categories/ender.png rename src/main/resources/assets/botania/textures/items/{unused => }/enderAirBottle.png (100%) diff --git a/src/main/java/vazkii/botania/api/BotaniaAPI.java b/src/main/java/vazkii/botania/api/BotaniaAPI.java index 2c3d592b4..8f69af8a4 100644 --- a/src/main/java/vazkii/botania/api/BotaniaAPI.java +++ b/src/main/java/vazkii/botania/api/BotaniaAPI.java @@ -93,6 +93,7 @@ public final class BotaniaAPI { public static LexiconCategory categoryDevices; public static LexiconCategory categoryTools; public static LexiconCategory categoryBaubles; + public static LexiconCategory categoryEnder; public static LexiconCategory categoryAlfhomancy; public static LexiconCategory categoryMisc; diff --git a/src/main/java/vazkii/botania/common/crafting/ModCraftingRecipes.java b/src/main/java/vazkii/botania/common/crafting/ModCraftingRecipes.java index cd9a5077e..c35f2c95d 100644 --- a/src/main/java/vazkii/botania/common/crafting/ModCraftingRecipes.java +++ b/src/main/java/vazkii/botania/common/crafting/ModCraftingRecipes.java @@ -750,10 +750,11 @@ public final class ModCraftingRecipes { // Flugel Tiara Recipe addOreDictRecipe(new ItemStack(ModItems.flightTiara), - "LLL", "ILI", "FIF", + "LLL", "ILI", "FEF", 'L', LibOreDict.LIFE_ESSENCE, 'I', LibOreDict.ELEMENTIUM, - 'F', new ItemStack(Items.feather)); + 'F', new ItemStack(Items.feather), + 'E', LibOreDict.ENDER_AIR_BOTTLE); recipeFlightTiara = BotaniaAPI.getLatestAddedRecipe(); // Glimmering Flowers Recipes @@ -1086,11 +1087,12 @@ public final class ModCraftingRecipes { // Life Imbuer Recipe addOreDictRecipe(new ItemStack(ModBlocks.spawnerClaw), - "BSB", "PMP", "P P", + "BSB", "PMP", "PEP", 'B', new ItemStack(Items.blaze_rod), 'S', LibOreDict.ELEMENTIUM, 'P', new ItemStack(ModBlocks.prismarine, 1, 2), - 'M', new ItemStack(ModBlocks.storage)); + 'M', new ItemStack(ModBlocks.storage), + 'E', LibOreDict.ENDER_AIR_BOTTLE); recipeSpawnerClaw = BotaniaAPI.getLatestAddedRecipe(); // Crafty Crate Recipe @@ -1304,10 +1306,10 @@ public final class ModCraftingRecipes { recipeTerraPlate = BotaniaAPI.getLatestAddedRecipe(); // Red String Recipe - addShapelessOreDictRecipe(new ItemStack(ModItems.manaResource, 1, 12), new ItemStack(Items.string), new ItemStack(Blocks.redstone_block), LibOreDict.PIXIE_DUST); + addShapelessOreDictRecipe(new ItemStack(ModItems.manaResource, 1, 12), new ItemStack(Items.string), new ItemStack(Blocks.redstone_block), LibOreDict.PIXIE_DUST, LibOreDict.ENDER_AIR_BOTTLE); recipeRedString = BotaniaAPI.getLatestAddedRecipe(); // Are you in a pinch? - addShapelessOreDictRecipe(new ItemStack(ModItems.manaResource, 1, 12), new ItemStack(Items.string), new ItemStack(Blocks.redstone_block), LibOreDict.PIXIE_DUST, new ItemStack(Blocks.pumpkin)); + addShapelessOreDictRecipe(new ItemStack(ModItems.manaResource, 1, 12), new ItemStack(Items.string), new ItemStack(Blocks.redstone_block), LibOreDict.PIXIE_DUST, LibOreDict.ENDER_AIR_BOTTLE, new ItemStack(Blocks.pumpkin)); // Red String Container Recipe addOreDictRecipe(new ItemStack(ModBlocks.redStringContainer), diff --git a/src/main/java/vazkii/botania/common/item/ModItems.java b/src/main/java/vazkii/botania/common/item/ModItems.java index d9c0f082e..279badd58 100644 --- a/src/main/java/vazkii/botania/common/item/ModItems.java +++ b/src/main/java/vazkii/botania/common/item/ModItems.java @@ -336,6 +336,7 @@ public final class ModItems { OreDictionary.registerOre(LibOreDict.RED_STRING, new ItemStack(manaResource, 1, 12)); OreDictionary.registerOre(LibOreDict.DREAMWOOD_TWIG, new ItemStack(manaResource, 1, 13)); OreDictionary.registerOre(LibOreDict.GAIA_INGOT, new ItemStack(manaResource, 1, 14)); + OreDictionary.registerOre(LibOreDict.ENDER_AIR_BOTTLE, new ItemStack(manaResource, 1, 15)); OreDictionary.registerOre(LibOreDict.VIAL, new ItemStack(vial, 1, 0)); OreDictionary.registerOre(LibOreDict.FLASK, new ItemStack(vial, 1, 1)); diff --git a/src/main/java/vazkii/botania/common/item/material/ItemManaResource.java b/src/main/java/vazkii/botania/common/item/material/ItemManaResource.java index 5eaaa6813..292ca54a8 100644 --- a/src/main/java/vazkii/botania/common/item/material/ItemManaResource.java +++ b/src/main/java/vazkii/botania/common/item/material/ItemManaResource.java @@ -17,12 +17,16 @@ import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; import net.minecraft.util.IIcon; import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; import vazkii.botania.api.recipe.IElvenItem; import vazkii.botania.api.recipe.IFlowerComponent; import vazkii.botania.client.core.helper.IconHelper; @@ -31,17 +35,44 @@ import vazkii.botania.common.achievement.IPickupAchievement; import vazkii.botania.common.achievement.ModAchievements; import vazkii.botania.common.entity.EntityDoppleganger; import vazkii.botania.common.item.ItemMod; +import vazkii.botania.common.item.ModItems; import vazkii.botania.common.lib.LibItemNames; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class ItemManaResource extends ItemMod implements IFlowerComponent, IElvenItem, IPickupAchievement { - final int types = 15; + final int types = 16; IIcon[] icons; public ItemManaResource() { super(); setUnlocalizedName(LibItemNames.MANA_RESOURCE); setHasSubtypes(true); + MinecraftForge.EVENT_BUS.register(this); + } + + @SubscribeEvent + public void onPlayerInteract(PlayerInteractEvent event) { + boolean rightEvent = event.action == Action.RIGHT_CLICK_AIR; + ItemStack stack = event.entityPlayer.getCurrentEquippedItem(); + boolean correctStack = stack != null && stack.getItem() == Items.glass_bottle; + boolean ender = event.world.provider.dimensionId == 1; + + if(rightEvent && correctStack && ender) { + ItemStack stack1 = new ItemStack(this, 1, 15); + if(!event.entityPlayer.inventory.addItemStackToInventory(stack1)) + event.entityPlayer.dropPlayerItemWithRandomChoice(stack1, true); + + stack.stackSize--; + if(stack.stackSize == 0) + event.entityPlayer.inventory.setInventorySlotContents(event.entityPlayer.inventory.currentItem, null); + + if(event.world.isRemote) + event.entityPlayer.swingItem(); + else event.world.playSoundAtEntity(event.entityPlayer, "random.pop", 0.5F, 1F); + } } @Override @@ -53,12 +84,14 @@ public class ItemManaResource extends ItemMod implements IFlowerComponent, IElve } @Override + @SideOnly(Side.CLIENT) public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List par3List) { for(int i = 0; i < types; i++) par3List.add(new ItemStack(par1, 1, i)); } @Override + @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister par1IconRegister) { icons = new IIcon[types]; for(int i = 0; i < icons.length; i++) @@ -66,6 +99,7 @@ public class ItemManaResource extends ItemMod implements IFlowerComponent, IElve } @Override + @SideOnly(Side.CLIENT) public int getColorFromItemStack(ItemStack par1ItemStack, int par2) { if(par1ItemStack.getItemDamage() == 5 || par1ItemStack.getItemDamage() == 14) return Color.HSBtoRGB(Botania.proxy.getWorldElapsedTicks() * 2 % 360 / 360F, 0.25F, 1F); @@ -79,6 +113,7 @@ public class ItemManaResource extends ItemMod implements IFlowerComponent, IElve } @Override + @SideOnly(Side.CLIENT) public IIcon getIconFromDamage(int par1) { return icons[Math.min(icons.length - 1, par1)]; } diff --git a/src/main/java/vazkii/botania/common/lexicon/LexiconData.java b/src/main/java/vazkii/botania/common/lexicon/LexiconData.java index 24d129b77..3b1512553 100644 --- a/src/main/java/vazkii/botania/common/lexicon/LexiconData.java +++ b/src/main/java/vazkii/botania/common/lexicon/LexiconData.java @@ -112,7 +112,6 @@ public final class LexiconData { public static LexiconEntry narslimmus; public static LexiconEntry spectrolus; - public static LexiconEntry pistonRelay; public static LexiconEntry pylon; public static LexiconEntry manaEnchanting; public static LexiconEntry turntable; @@ -124,13 +123,10 @@ public final class LexiconData { public static LexiconEntry conjurationCatalyst; public static LexiconEntry spectralPlatform; public static LexiconEntry gatherDrum; - public static LexiconEntry spawnerClaw; public static LexiconEntry craftCrate; - public static LexiconEntry enderEyeBlock; public static LexiconEntry brewery; public static LexiconEntry flasks; public static LexiconEntry complexBrews; - public static LexiconEntry redString; public static LexiconEntry manaBlaster; public static LexiconEntry grassSeeds; @@ -141,7 +137,6 @@ public final class LexiconData { public static LexiconEntry grassHorn; public static LexiconEntry terraBlade; public static LexiconEntry terraPick; - public static LexiconEntry enderDagger; public static LexiconEntry waterRod; public static LexiconEntry elfGear; public static LexiconEntry openBucket; @@ -153,7 +148,6 @@ public final class LexiconData { public static LexiconEntry laputaShard; public static LexiconEntry virus; public static LexiconEntry skyDirtRod; - public static LexiconEntry enderHand; public static LexiconEntry glassPick; public static LexiconEntry diviningRod; public static LexiconEntry gravityRod; @@ -167,7 +161,16 @@ public final class LexiconData { public static LexiconEntry spellCloth; public static LexiconEntry thornChakram; public static LexiconEntry overgrowthSeed; - + + public static LexiconEntry enderAir; + public static LexiconEntry enderEyeBlock; + public static LexiconEntry pistonRelay; + public static LexiconEntry enderHand; + public static LexiconEntry enderDagger; + public static LexiconEntry spawnerClaw; + public static LexiconEntry redString; + public static LexiconEntry flightTiara; + public static LexiconEntry baublesIntro; public static LexiconEntry tinyPlanet; public static LexiconEntry manaRing; @@ -181,7 +184,6 @@ public final class LexiconData { public static LexiconEntry miningRing; public static LexiconEntry magnetRing; public static LexiconEntry divaCharm; - public static LexiconEntry flightTiara; public static LexiconEntry pixieRing; public static LexiconEntry superTravelBelt; public static LexiconEntry reachRing; @@ -218,8 +220,9 @@ public final class LexiconData { BotaniaAPI.addCategory(BotaniaAPI.categoryGenerationFlowers = new BLexiconCategory(LibLexicon.CATEGORY_GENERATION_FLOWERS, 5)); BotaniaAPI.addCategory(BotaniaAPI.categoryFunctionalFlowers = new BLexiconCategory(LibLexicon.CATEGORY_FUNCTIONAL_FLOWERS, 5)); BotaniaAPI.addCategory(BotaniaAPI.categoryDevices = new BLexiconCategory(LibLexicon.CATEGORY_DEVICES, 5)); - BotaniaAPI.addCategory(BotaniaAPI.categoryTools = new BLexiconCategory(LibLexicon.CATEGORY_TOOLS, 0)); + BotaniaAPI.addCategory(BotaniaAPI.categoryTools = new BLexiconCategory(LibLexicon.CATEGORY_TOOLS, 5)); BotaniaAPI.addCategory(BotaniaAPI.categoryBaubles = new BLexiconCategory(LibLexicon.CATEGORY_BAUBLES, 5)); + BotaniaAPI.addCategory(BotaniaAPI.categoryEnder = new BLexiconCategory(LibLexicon.CATEGORY_ENDER, 5)); BotaniaAPI.addCategory(BotaniaAPI.categoryAlfhomancy = new BLexiconCategory(LibLexicon.CATEGORY_ALFHOMANCY, 5)); BotaniaAPI.addCategory(BotaniaAPI.categoryMisc = new BLexiconCategory(LibLexicon.CATEGORY_MISC, 0)); @@ -230,6 +233,7 @@ public final class LexiconData { LexiconCategory categoryDevices = BotaniaAPI.categoryDevices; LexiconCategory categoryTools = BotaniaAPI.categoryTools; LexiconCategory categoryBaubles = BotaniaAPI.categoryBaubles; + LexiconCategory categoryEnder = BotaniaAPI.categoryEnder; LexiconCategory categoryAlfhomancy = BotaniaAPI.categoryAlfhomancy; LexiconCategory categoryMisc = BotaniaAPI.categoryMisc; @@ -453,9 +457,6 @@ public final class LexiconData { spectrolus.setLexiconPages(new PageText("0"), new PageText("1"), new PagePetalRecipe("2", ModPetalRecipes.spectrolusRecipe)); // DEVICES ENTRIES - pistonRelay = new BLexiconEntry(LibLexicon.DEVICE_PISTON_RELAY, categoryDevices); - pistonRelay.setLexiconPages(new PageText("0"), new PageText("1"), new PageManaInfusionRecipe("2", ModManaInfusionRecipes.pistonRelayRecipe)); - pylon = new BLexiconEntry(LibLexicon.DEVICE_PYLON, categoryDevices); pylon.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipePylon)); @@ -500,15 +501,9 @@ public final class LexiconData { gatherDrum = new ALexiconEntry(LibLexicon.DEVICE_GATHER_DRUM, categoryDevices); gatherDrum.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeGatherDrum)); - spawnerClaw = new ALexiconEntry(LibLexicon.DEVICE_SPAWNER_CLAW, categoryDevices); - spawnerClaw.setLexiconPages(new PageText("0"), new PageText("1"), new PageCraftingRecipe("2", ModCraftingRecipes.recipeSpawnerClaw)); - craftCrate = new ALexiconEntry(LibLexicon.DEVICE_CRAFT_CRATE, categoryDevices); craftCrate.setLexiconPages(new PageText("0"), new PageText("1"), new PageCraftingRecipe("2", ModCraftingRecipes.recipePlaceholder), new PageText("3"), new PageText("4"), new PageText("7"), new PageImage("5", LibResources.ENTRY_CRAFT_CRATE), new PageCraftingRecipe("6", ModCraftingRecipes.recipeCraftCrate), new PageText("8"), new PageCraftingRecipe("9", ModCraftingRecipes.recipesPatterns)); - enderEyeBlock = new BLexiconEntry(LibLexicon.DEVICE_ENDER_EYE_BLOCK, categoryDevices); - enderEyeBlock.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeEnderEyeBlock)); - brewery = new BLexiconEntry(LibLexicon.DEVICE_BREWERY, categoryDevices); brewery.setLexiconPages(new PageText("0"), new PageText("1"), new PageCraftingRecipe("2", ModCraftingRecipes.recipeBrewery), new PageCraftingRecipe("3", ModCraftingRecipes.recipeVial), new PageText("4"), new PageBrew(ModBrewRecipes.speedBrew, "5a", "5b"), new PageBrew(ModBrewRecipes.strengthBrew, "6a", "6b"), @@ -528,14 +523,6 @@ public final class LexiconData { new PageBrew(ModBrewRecipes.featherFeetBrew, "3a", "3b"), new PageBrew(ModBrewRecipes.emptinessBrew, "4a", "4b"), new PageBrew(ModBrewRecipes.bloodthirstBrew, "5a", "5b"), new PageBrew(ModBrewRecipes.allureBrew, "6a", "6b")); - redString = new ALexiconEntry(LibLexicon.DEVICE_RED_STRING, categoryDevices); - redString.setLexiconPages(new PageText("0"), new PageText("1"), new PageCraftingRecipe("2", ModCraftingRecipes.recipeRedString), - new PageText("3"), new PageCraftingRecipe("4", ModCraftingRecipes.recipeRedStringContainer), - new PageText("5"), new PageCraftingRecipe("6", ModCraftingRecipes.recipeRedStringDispenser), - new PageText("7"), new PageCraftingRecipe("8", ModCraftingRecipes.recipeRedStringFertilizer), - new PageText("9"), new PageCraftingRecipe("10", ModCraftingRecipes.recipeRedStringComparator), - new PageText("11"), new PageCraftingRecipe("12", ModCraftingRecipes.recipeRedStringRelay)); - // TOOLS ENTRIES manaBlaster = new BLexiconEntry(LibLexicon.TOOL_MANA_BLASTER, categoryTools); manaBlaster.setLexiconPages(new PageText("0"), new PageText("1"), new PageText("2"), new PageCraftingRecipe("3", ModCraftingRecipes.recipeManaBlaster)); @@ -566,9 +553,6 @@ public final class LexiconData { terraPick = new BLexiconEntry(LibLexicon.TOOL_TERRA_PICK, categoryTools); terraPick.setLexiconPages(new PageText("0"), new PageText("1"), new PageText("2"), new PageText("3"), new PageText("4"), new PageCraftingRecipe("5", ModCraftingRecipes.recipeTerraPick)); - enderDagger = new BLexiconEntry(LibLexicon.TOOL_ENDER_DAGGER, categoryTools); - enderDagger.setLexiconPages(new PageText("0"), new PageText("1"), new PageCraftingRecipe("2", ModCraftingRecipes.recipeEnderDagger)); - waterRod = new BLexiconEntry(LibLexicon.TOOL_WATER_ROD, categoryTools); waterRod.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeWaterRod)); @@ -604,9 +588,6 @@ public final class LexiconData { skyDirtRod = new ALexiconEntry(LibLexicon.TOOL_SKY_DIRT_ROD, categoryTools); skyDirtRod.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeSkyDirtRod)); - enderHand = new BLexiconEntry(LibLexicon.TOOL_ENDER_HAND, categoryTools); - enderHand.setLexiconPages(new PageText(ConfigHandler.enderPickpocketEnabled ? "0" : "0a"), new PageCraftingRecipe(ConfigHandler.enderPickpocketEnabled ? "1" : "1a", ModCraftingRecipes.recipeEnderHand)); - glassPick = new BLexiconEntry(LibLexicon.TOOL_GLASS_PICK, categoryTools); glassPick.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeGlassPick)); @@ -646,6 +627,37 @@ public final class LexiconData { overgrowthSeed = new BLexiconEntry(LibLexicon.TOOL_OVERGROWTH_SEED, categoryTools); overgrowthSeed.setLexiconPages(new PageText("0")); + // ENDER ENTRIES + enderAir = new BLexiconEntry(LibLexicon.ENDER_AIR, categoryEnder); + enderAir.setPriority().setLexiconPages(new PageText("0")); + LexiconRecipeMappings.map(new ItemStack(ModItems.manaResource, 1, 15), enderAir, 0); + + enderEyeBlock = new BLexiconEntry(LibLexicon.ENDER_ENDER_EYE_BLOCK, categoryEnder); + enderEyeBlock.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeEnderEyeBlock)); + + pistonRelay = new BLexiconEntry(LibLexicon.ENDER_PISTON_RELAY, categoryEnder); + pistonRelay.setLexiconPages(new PageText("0"), new PageText("1"), new PageManaInfusionRecipe("2", ModManaInfusionRecipes.pistonRelayRecipe)); + + enderHand = new BLexiconEntry(LibLexicon.ENDER_ENDER_HAND, categoryEnder); + enderHand.setLexiconPages(new PageText(ConfigHandler.enderPickpocketEnabled ? "0" : "0a"), new PageCraftingRecipe(ConfigHandler.enderPickpocketEnabled ? "1" : "1a", ModCraftingRecipes.recipeEnderHand)); + + enderDagger = new BLexiconEntry(LibLexicon.ENDER_ENDER_DAGGER, categoryEnder); + enderDagger.setLexiconPages(new PageText("0"), new PageText("1"), new PageCraftingRecipe("2", ModCraftingRecipes.recipeEnderDagger)); + + spawnerClaw = new ALexiconEntry(LibLexicon.ENDER_SPAWNER_CLAW, categoryEnder); + spawnerClaw.setLexiconPages(new PageText("0"), new PageText("1"), new PageCraftingRecipe("2", ModCraftingRecipes.recipeSpawnerClaw)); + + redString = new ALexiconEntry(LibLexicon.ENDER_RED_STRING, categoryEnder); + redString.setLexiconPages(new PageText("0"), new PageText("1"), new PageCraftingRecipe("2", ModCraftingRecipes.recipeRedString), + new PageText("3"), new PageCraftingRecipe("4", ModCraftingRecipes.recipeRedStringContainer), + new PageText("5"), new PageCraftingRecipe("6", ModCraftingRecipes.recipeRedStringDispenser), + new PageText("7"), new PageCraftingRecipe("8", ModCraftingRecipes.recipeRedStringFertilizer), + new PageText("9"), new PageCraftingRecipe("10", ModCraftingRecipes.recipeRedStringComparator), + new PageText("11"), new PageCraftingRecipe("12", ModCraftingRecipes.recipeRedStringRelay)); + + flightTiara = new ALexiconEntry(LibLexicon.ENDER_FLIGHT_TIARA, categoryEnder); + flightTiara.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeFlightTiara), new PageText("2"), new PageCraftingRecipe("3", ModCraftingRecipes.recipesWings)); + // BAUBLES ENTRIES baublesIntro = new BLexiconEntry(LibLexicon.BAUBLE_INTRO, categoryBaubles); baublesIntro.setPriority().setLexiconPages(new PageText("0"), new PageImage("1", LibResources.ENTRY_BAUBLES), new PageText("2")); @@ -686,9 +698,6 @@ public final class LexiconData { divaCharm = new ALexiconEntry(LibLexicon.BAUBLE_DIVA_CHARM, categoryBaubles); divaCharm.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeDivaCharm)); - flightTiara = new ALexiconEntry(LibLexicon.BAUBLE_FLIGHT_TIARA, categoryBaubles); - flightTiara.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipeFlightTiara), new PageText("2"), new PageCraftingRecipe("3", ModCraftingRecipes.recipesWings)); - pixieRing = new ALexiconEntry(LibLexicon.BAUBLE_PIXIE_RING, categoryBaubles); pixieRing.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCraftingRecipes.recipePixieRing)); diff --git a/src/main/java/vazkii/botania/common/lib/LibItemNames.java b/src/main/java/vazkii/botania/common/lib/LibItemNames.java index 45d5c3955..3dd783715 100644 --- a/src/main/java/vazkii/botania/common/lib/LibItemNames.java +++ b/src/main/java/vazkii/botania/common/lib/LibItemNames.java @@ -159,6 +159,7 @@ public final class LibItemNames { "placeholder", "redString", "dreamwoodTwig", - "gaiaIngot" + "gaiaIngot", + "enderAirBottle" }; } diff --git a/src/main/java/vazkii/botania/common/lib/LibLexicon.java b/src/main/java/vazkii/botania/common/lib/LibLexicon.java index 04effdc98..17a262f02 100644 --- a/src/main/java/vazkii/botania/common/lib/LibLexicon.java +++ b/src/main/java/vazkii/botania/common/lib/LibLexicon.java @@ -21,6 +21,7 @@ public final class LibLexicon { public static final String CATEGORY_DEVICES = "devices"; public static final String CATEGORY_TOOLS = "tools"; public static final String CATEGORY_BAUBLES = "baubles"; + public static final String CATEGORY_ENDER = "ender"; public static final String CATEGORY_ALFHOMANCY = "alfhomancy"; public static final String CATEGORY_MISC = "misc"; @@ -93,7 +94,6 @@ public final class LibLexicon { public static final String GFLOWER_NARSLIMMUS = "narslimmus"; public static final String GFLOWER_SPECTROLUS = "spectrolus"; - public static final String DEVICE_PISTON_RELAY = "pistonRelay"; public static final String DEVICE_PYLON = "pylon"; public static final String DEVICE_MANA_ENCHANTING = "manaEnchanting"; public static final String DEVICE_TURNTABLE = "turntable"; @@ -105,13 +105,10 @@ public final class LibLexicon { public static final String DEVICE_MANA_CONJURATION = "manaConjuration"; public static final String DEVICE_SPECTRAL_PLATFORM = "spectralPlatform"; public static final String DEVICE_GATHER_DRUM = "gatherDrum"; - public static final String DEVICE_SPAWNER_CLAW = "spawnerClaw"; public static final String DEVICE_CRAFT_CRATE = "craftCrate"; - public static final String DEVICE_ENDER_EYE_BLOCK = "enderEyeBlock"; public static final String DEVICE_BREWERY = "brewery"; public static final String DEVICE_FLASKS = "flasks"; public static final String DEVICE_COMPLEX_BREWS = "complexBrews"; - public static final String DEVICE_RED_STRING = "redString"; public static final String TOOL_MANA_BLASTER = "manaBlaster"; public static final String TOOL_GRASS_SEEDS = "grassSeeds"; @@ -122,7 +119,6 @@ public final class LibLexicon { public static final String TOOL_GRASS_HORN = "grassHorn"; public static final String TOOL_TERRA_SWORD = "terraSword"; public static final String TOOL_TERRA_PICK = "terraPick"; - public static final String TOOL_ENDER_DAGGER = "enderDagger"; public static final String TOOL_WATER_ROD = "waterRod"; public static final String TOOL_ELF_GEAR = "elfGear"; public static final String TOOL_OPEN_BUCKET = "openBucket"; @@ -134,7 +130,6 @@ public final class LibLexicon { public static final String TOOL_LAPUTA_SHARD = "laputaShard"; public static final String TOOL_VIRUS = "virus"; public static final String TOOL_SKY_DIRT_ROD = "skyDirtRod"; - public static final String TOOL_ENDER_HAND = "enderHand"; public static final String TOOL_GLASS_PICK = "glassPick"; public static final String TOOL_DIVINING_ROD = "diviningRod"; public static final String TOOL_GRAVITY_ROD = "gravityRod"; @@ -149,6 +144,15 @@ public final class LibLexicon { public static final String TOOL_THORN_CHAKRAM = "thornChakram"; public static final String TOOL_OVERGROWTH_SEED = "overgrowthSeed"; + public static final String ENDER_AIR = "enderAir"; + public static final String ENDER_ENDER_EYE_BLOCK = "enderEyeBlock"; + public static final String ENDER_PISTON_RELAY = "pistonRelay"; + public static final String ENDER_ENDER_HAND = "enderHand"; + public static final String ENDER_ENDER_DAGGER = "enderDagger"; + public static final String ENDER_SPAWNER_CLAW = "spawnerClaw"; + public static final String ENDER_RED_STRING = "redString"; + public static final String ENDER_FLIGHT_TIARA = "flightTiara"; + public static final String BAUBLE_INTRO = "bIntro"; public static final String BAUBLE_TINY_PLANET = "tinyPlanet"; public static final String BAUBLE_MANA_RING = "manaRing"; @@ -162,7 +166,6 @@ public final class LibLexicon { public static final String BAUBLE_MINING_RING = "miningRing"; public static final String BAUBLE_MAGNET_RING = "magnetRing"; public static final String BAUBLE_DIVA_CHARM = "divaCharm"; - public static final String BAUBLE_FLIGHT_TIARA = "flightTiara"; public static final String BAUBLE_PIXIE_RING = "pixieRing"; public static final String BAUBLE_SUPER_TRAVEL_BELT = "superTravelBelt"; public static final String BAUBLE_REACH_RING = "reachRing"; diff --git a/src/main/java/vazkii/botania/common/lib/LibOreDict.java b/src/main/java/vazkii/botania/common/lib/LibOreDict.java index bc04d4bbe..a2ff840b6 100644 --- a/src/main/java/vazkii/botania/common/lib/LibOreDict.java +++ b/src/main/java/vazkii/botania/common/lib/LibOreDict.java @@ -33,6 +33,7 @@ public final class LibOreDict { public static final String RED_STRING = "bRedString"; public static final String DREAMWOOD_TWIG = "dreamwoodTwig"; public static final String GAIA_INGOT = "gaiaIngot"; + public static final String ENDER_AIR_BOTTLE = "bEnderAirBottle"; public static final String VIAL = "bVial"; public static final String FLASK = "bFlask"; diff --git a/src/main/resources/assets/botania/lang/en_US.lang b/src/main/resources/assets/botania/lang/en_US.lang index cb80dce66..56852f1d7 100644 --- a/src/main/resources/assets/botania/lang/en_US.lang +++ b/src/main/resources/assets/botania/lang/en_US.lang @@ -1024,6 +1024,7 @@ item.botania:ancientWill4.name=Will of Verac item.botania:ancientWill5.name=Will of Karil item.botania:corporeaSpark0.name=Corporea Spark item.botania:corporeaSpark1.name=Master Corporea Spark +item.botania:enderAirBottle.name=Ender Air Bottle # BREW NAMES botania.brew.fallback=Fallback @@ -1067,6 +1068,7 @@ botania.category.generationFlowers=Generating Flora botania.category.devices=Natural Apparatus botania.category.tools=Mystical Items botania.category.baubles=Baubles and Acessories +botania.category.ender=Ender Artefacts botania.category.alfhomancy=Alfhomancy botania.category.misc=Miscellaneous @@ -1524,12 +1526,6 @@ botania.page.spectrolus1=While it consumes all &1Wool&0 around, it'll only creat botania.page.spectrolus2=&oTaste the Rainbow&r. # - MAGICAL APPARATUS -# -- FORCE RELAY -botania.entry.pistonRelay=Force Relay -botania.page.pistonRelay0=It seems that infusing &1Pistons&0 with &4Mana&0 results in some interesting adverse effects.
This block tears the fabric of space, relaying any piston force applied to it to the block it's bound to. -botania.page.pistonRelay1=To bind it to a block, right click it with a &1Wand of the Forest&0, and right click on the block you want to bind it to.
Furthermore, this block is highly unstable, and may create uncanny effects, care is to be taken, it is also resistant to glue, both in pulling and pushing. This allows for a "frame" like setup. -botania.page.pistonRelay2=Infusing a &1Piston&0 with &4Mana&0. - # -- MANA PYLON botania.entry.pylon=Mana Pylon botania.page.pylon0=A &1Mana Pylon&0 is a structure that can pull energies from the earth and use them to power enchanting processes.
For one, setting one adjusted to an &1Enchanting Table&0 as if it was a &1Bookshelf&0 will drastically increase the power it can convey, just 2 of these are enough for it to reach &4Level 30&0. @@ -1684,12 +1680,6 @@ botania.entry.gatherDrum=Drum of the Gathering botania.page.gatherDrum0=The &1Drum of the Gathering&0 is, in short terms, a &1Drum of the Wild&0 for livestock.
When a &4Mana Burst&0 collides with it, it'll shear any &4Sheep&0 around with grown fleece. Any &4Cows&0, with &1Empty Buckets&0 below them will have their milk transfered to the buckets. botania.page.gatherDrum1=Tap your lands -# -- LIFE IMBUER -botania.entry.spawnerClaw=Life Imbuer -botania.page.spawnerClaw0=&1Monster Spawners&0 are an interesting bunch. They have the ability to bring out life from thin air, but somehow, this only manifests when there's a player nearby.
This, of course, tends to be a rather limiting factor in the onslaught of any creatures that they can create. -botania.page.spawnerClaw1=By placing a &1Life Imbuer&0 on top of a &1Monster Spawner&0 and giving it a rather decent chunk of &4Mana&0 through a &1Mana Spreader&0, when there aren't any players in the nearby vicinity, the &4Mana&0 will power the spawner, just as if there were players around. -botania.page.spawnerClaw2=Something something shadow dragon - # -- CRAFTY CRATE botania.entry.craftCrate=Crafty Crate botania.page.craftCrate0=As the name suggests, the &1Crafty Crate&0 is a counterpart to the &1Open Crate&0 with the ability to assemble items into other items similarly to a &1Crafting Table&0.
Like a &1Crafting Table&0, it has a 9 slot inventory, which can be filled with items in the pattern of a recipe. @@ -1703,27 +1693,6 @@ botania.page.craftCrate6=Made in Portugal botania.page.craftCrate8=The &1Crafty Crate&0 can also be augmented with patterns. A pattern locks specific slots in the recipe, disallowing items from going into those slots and making them count as if there were placeholders there.
There's only a few basic patterns, which can be applied by right clicking on the crate (this doesn't consume them). botania.page.craftCrate9=9 different patterns -# -- ENDER OVERSEER -botania.entry.enderEyeBlock=Ender Overseer -botania.page.enderEyeBlock0=The eyes of an &4Enderman&0 have an interesting sensitivity to being watched. A block out of these will simply output a &4redstone signal&0 if a player within a 64 block radius is looking directly at it.
Of course, wearing a &1Pumpkin&0 negates this effect. -botania.page.enderEyeBlock1=MY BRAND - -# -- RED STRING -botania.entry.redString=Red String -botania.page.redString0=Lore says the Gods tie a red string around the ankles of people who are supposed to affect each others lives. This led inventors to come up with a way of connecting blocks over the air, called, of course, &1Red String&0. Blocks created with this exquisite material can face in all 6 basic directions and bind to the first available and compatible block they can find, given a range. -botania.page.redString1=Each &4Red Stringed&0 block has a different criteria to what it'll bind to, but the distance in which they'll bind stays constant between the variations. The string can be viewed, if a block is bound, by holding a &1Wand of the Forest&0.
Blocks being in the way will not break the connection. Lastly, &1Red String&0 blocks can't be chained. -botania.page.redString2=Are you in a pinch? -botania.page.redString3=Starting off, the &1Red Stringed Container&0 will bind to any inventory (&1Chests&0, &1Furnaces&0, &1Hoppers&0, etc), items can be put into it using &1Hoppers&0 or any other means of insertion. The items will end up in the block it's bound to, and will enter from the same side as they were put on the &1Red Stringed Container&0 itself. -botania.page.redString4=The &1Red Stringed Container&0. -botania.page.redString5=The &1Red Stringed Dispenser&0 can be bound to &1Dispensers&0 or &1Droppers&0, it functions similarly to the &1Red Stringed Container&0 where items can also be placed in the bound block through it. When a redstone signal is given to it, the &1Dispenser&0 or &1Dropper&0 in the end will fire. -botania.page.redString6=The &1Red Stringed Dispenser&0. -botania.page.redString7=The &1Red Stringed Nutrifier&0 can be bound to any block that can be fertilized with &1Bone Meal&0. Using &1Bone Meal&0 on the block will fertilize the bound block instead. -botania.page.redString8=The &1Red Stringed Nutrifier&0. -botania.page.redString9=The &1Red Stringed Comparator&0 can be bound to any block whose status can be read with a &1Container&0, such as &1Chests&0, &1Mana Pools&0, &1Runic Altars&0, etc. Placing a &1Comparator&0 pointing outwards of this block will send the signal equal to the signal a &1Comparator&0 would send on the bound block. -botania.page.redString10=The &1Red Stringed Comparator&0. -botania.page.redString11=Lastly, the &1Red Stringed Spoofer&0 is an interesting one. Any flower with an effect can be placed on it. The block will bind to any flowers or mushrooms. While there's a flower on top of the block, that flower will not do anything, but the bound block will take all of that flower's properties and work as if it was the flower itself. -botania.page.redString12=The &1Red Stringed Spoofer&0. - # - MYSTICAL INSTRUMENTS # -- MANA BLASTER botania.entry.manaBlaster=Mana Blaster @@ -1793,12 +1762,6 @@ botania.page.terraPick3=While the tool is active, it enables it to break blocks botania.page.terraPick4=Lastly, the tool takes damage for every single block broken, so a good supply of &4Mana&0 in the wielder's inventory is a must for the higher ranks, as the tool does function like normal &1Manasteel Tools&0, in which it'll use &4Mana&0 instead of actually taking damage, given it's made of &1Terrasteel&0.
It also won't despawn like regular dropped items. botania.page.terraPick5=WE'RE MINING IN THE DATABASE WOW WOW -# -- SOULSCRIBE -botania.entry.enderDagger=Soulscribe -botania.page.enderDagger0=Those &4Endermen&0. They're the second more pesky thing since &4Creepers&0. I swear, the person who came up with them must have taken a &onotch&r too much of their drink.
However, by infusing a standard dagger with some of their energy, one can create the &1Soulscribe&0, a dagger that tears through &1Endermen&0 as if they were butter. -botania.page.enderDagger1=Due of the type of infusion, though, the dagger only lasts for a few kills, and the energy that radiates from it prevents the &1Manasteel&0 from gathering &4Mana&0 to avoid damage, like typical tools would. Still, all in the name of killing those monsters. -botania.page.enderDagger2=Strike my Soul - # -- ROD OF THE SEAS botania.entry.waterRod=Rod of the Seas botania.page.waterRod0=Similarly to its land counterpart, the &1Rod of the Seas&0 will, at the cost of some &4Mana&0, place down a &1Water&0 block wherever it's used on. Furthermore, it can also be used to refill a &1Petal Apothecary&0. @@ -1874,13 +1837,6 @@ botania.entry.skyDirtRod=Rod of the Highlands botania.page.skyDirtRod0=While the &1Rod of the Lands&0 is all well and good, being able to place &1Dirt&0 without something to hold it would be great.
The &1Rod of the Highlands&0 does just that, while maintaining the original power of the &1Rod of the Lands&0, it can also place &1Dirt&0 in mid air, for an increased &4Mana&0 cost. botania.page.skyDirtRod1=Dirty Stick mk2 -# -- HAND OF ENDER -botania.entry.enderHand=Hand of Ender -botania.page.enderHand0=The &1Hand of Ender&0 allows the user to access the interdimensional ender field, on other words, their &1Ender Chest&0 inventory. This can be done anywhere by right clicking with the hand at the cost of some &4Mana&0.
Using the hand on another player will open up &otheir&r inventory instead, at a lot higher &4Mana&0 cost. -botania.page.enderHand0a=The &1Hand of Ender&0 allows the user to access the interdimensional ender field, on other words, their &1Ender Chest&0 inventory. This can be done anywhere by right clicking with the hand at the cost of some &4Mana&0. -botania.page.enderHand1=Zezima hates him! -botania.page.enderHand1a=It's like the 4G of Ender Chests - # -- VITREOUS PICKAXE botania.entry.glassPick=Vitreous Pickaxe botania.page.glassPick0=Placing down &1Glass&0 and having to break it again can be a heartbreaking experience. Luckily, by creating a &1Vitreous Pickaxe&0, one can gather the &1Glass&0 back by mining it with the pick, it's like cheap &4Silk Touch&0 for glass! @@ -1949,7 +1905,65 @@ botania.page.thornChakram1=Spores and stingers botania.entry.overgrowthSeed=Overgrowth Seed botania.page.overgrowthSeed0=An &1Overgrowth Seed&0 is an elusive item, which can be used to enchant a piece of &1Grass&0, via right clicking on it in the world, creating &1Enchanted Soil&0. Flowers that are rooted on this &1Enchanted Soil&0 will function at double the normal speed.
There's one problem, though. No known method of creating these exists, but they have been spotted in ancient structures and the like. -# - BAUBLES +# - ENDER ARTEFACTS +# -- EXTRACTING ENDER AIR +botania.entry.enderAir=Extracting Ender Air +botania.page.enderAir0=The air present in the void of the &1End&0 seems to have some mutating properties. Right clicking with an empty &1Glass Bottle&0 while in the &1End&0 will capture some of that air, which can then later be tossed similarly to a splash potion, turning nearby &1Stone&0 on the landing point into &1End Stone&0. + +# -- ENDER OVERSEER +botania.entry.enderEyeBlock=Ender Overseer +botania.page.enderEyeBlock0=The eyes of an &4Enderman&0 have an interesting sensitivity to being watched. A block out of these will simply output a &4redstone signal&0 if a player within a 64 block radius is looking directly at it.
Of course, wearing a &1Pumpkin&0 negates this effect. +botania.page.enderEyeBlock1=MY BRAND + +# -- FORCE RELAY +botania.entry.pistonRelay=Force Relay +botania.page.pistonRelay0=It seems that infusing &1Pistons&0 with &4Mana&0 results in some interesting adverse effects.
This block tears the fabric of space, relaying any piston force applied to it to the block it's bound to. +botania.page.pistonRelay1=To bind it to a block, right click it with a &1Wand of the Forest&0, and right click on the block you want to bind it to.
Furthermore, this block is highly unstable, and may create uncanny effects, care is to be taken, it is also resistant to glue, both in pulling and pushing. This allows for a "frame" like setup. +botania.page.pistonRelay2=Infusing a &1Piston&0 with &4Mana&0. + +# -- HAND OF ENDER +botania.entry.enderHand=Hand of Ender +botania.page.enderHand0=The &1Hand of Ender&0 allows the user to access the interdimensional ender field, on other words, their &1Ender Chest&0 inventory. This can be done anywhere by right clicking with the hand at the cost of some &4Mana&0.
Using the hand on another player will open up &otheir&r inventory instead, at a lot higher &4Mana&0 cost. +botania.page.enderHand0a=The &1Hand of Ender&0 allows the user to access the interdimensional ender field, on other words, their &1Ender Chest&0 inventory. This can be done anywhere by right clicking with the hand at the cost of some &4Mana&0. +botania.page.enderHand1=Zezima hates him! +botania.page.enderHand1a=It's like the 4G of Ender Chests + +# -- SOULSCRIBE +botania.entry.enderDagger=Soulscribe +botania.page.enderDagger0=Those &4Endermen&0. They're the second more pesky thing since &4Creepers&0. I swear, the person who came up with them must have taken a &onotch&r too much of their drink.
However, by infusing a standard dagger with some of their energy, one can create the &1Soulscribe&0, a dagger that tears through &1Endermen&0 as if they were butter. +botania.page.enderDagger1=Due of the type of infusion, though, the dagger only lasts for a few kills, and the energy that radiates from it prevents the &1Manasteel&0 from gathering &4Mana&0 to avoid damage, like typical tools would. Still, all in the name of killing those monsters. +botania.page.enderDagger2=Strike my Soul + +# -- LIFE IMBUER +botania.entry.spawnerClaw=Life Imbuer +botania.page.spawnerClaw0=&1Monster Spawners&0 are an interesting bunch. They have the ability to bring out life from thin air, but somehow, this only manifests when there's a player nearby.
This, of course, tends to be a rather limiting factor in the onslaught of any creatures that they can create. +botania.page.spawnerClaw1=By placing a &1Life Imbuer&0 on top of a &1Monster Spawner&0 and giving it a rather decent chunk of &4Mana&0 through a &1Mana Spreader&0, when there aren't any players in the nearby vicinity, the &4Mana&0 will power the spawner, just as if there were players around. +botania.page.spawnerClaw2=Something something shadow dragon + +# -- RED STRING +botania.entry.redString=Red String +botania.page.redString0=Lore says the Gods tie a red string around the ankles of people who are supposed to affect each others lives. This led inventors to come up with a way of connecting blocks over the air, called, of course, &1Red String&0. Blocks created with this exquisite material can face in all 6 basic directions and bind to the first available and compatible block they can find, given a range. +botania.page.redString1=Each &4Red Stringed&0 block has a different criteria to what it'll bind to, but the distance in which they'll bind stays constant between the variations. The string can be viewed, if a block is bound, by holding a &1Wand of the Forest&0.
Blocks being in the way will not break the connection. Lastly, &1Red String&0 blocks can't be chained. +botania.page.redString2=Are you in a pinch? +botania.page.redString3=Starting off, the &1Red Stringed Container&0 will bind to any inventory (&1Chests&0, &1Furnaces&0, &1Hoppers&0, etc), items can be put into it using &1Hoppers&0 or any other means of insertion. The items will end up in the block it's bound to, and will enter from the same side as they were put on the &1Red Stringed Container&0 itself. +botania.page.redString4=The &1Red Stringed Container&0. +botania.page.redString5=The &1Red Stringed Dispenser&0 can be bound to &1Dispensers&0 or &1Droppers&0, it functions similarly to the &1Red Stringed Container&0 where items can also be placed in the bound block through it. When a redstone signal is given to it, the &1Dispenser&0 or &1Dropper&0 in the end will fire. +botania.page.redString6=The &1Red Stringed Dispenser&0. +botania.page.redString7=The &1Red Stringed Nutrifier&0 can be bound to any block that can be fertilized with &1Bone Meal&0. Using &1Bone Meal&0 on the block will fertilize the bound block instead. +botania.page.redString8=The &1Red Stringed Nutrifier&0. +botania.page.redString9=The &1Red Stringed Comparator&0 can be bound to any block whose status can be read with a &1Container&0, such as &1Chests&0, &1Mana Pools&0, &1Runic Altars&0, etc. Placing a &1Comparator&0 pointing outwards of this block will send the signal equal to the signal a &1Comparator&0 would send on the bound block. +botania.page.redString10=The &1Red Stringed Comparator&0. +botania.page.redString11=Lastly, the &1Red Stringed Spoofer&0 is an interesting one. Any flower with an effect can be placed on it. The block will bind to any flowers or mushrooms. While there's a flower on top of the block, that flower will not do anything, but the bound block will take all of that flower's properties and work as if it was the flower itself. +botania.page.redString12=The &1Red Stringed Spoofer&0. + +# -- FLUGEL TIARA +botania.entry.flightTiara=Flügel Tiara +botania.page.flightTiara0=The &4Flügel&0 were once a dominant species in the lands, now they're but a race past extinct, once created as godslayers, who possessed the ability of flight.
The usage of &1Gaia Spirits&0 allows for a small replica of their power, in the form of the &1Flügel Tiara&0, which, at the cost of &4Mana&0 allows for flight. +botania.page.flightTiara1=Forty thousand books from another world +botania.page.flightTiara2=Combining the Tiara with a variety of Quartz species allows for it to create various different kinds of aesthetic wings, one for each style of quartz.
The recipes for the various types of quartz can be found in the &4Decorative Blocks&0 entry under &4Misclaneous&0, &1Elven Quartz&0 is acquired by trading &1Nether Quartz&0 with the elves. +botania.page.flightTiara3=Adding Wings (they can be swapped any time) + +# - BAUBLES AND ACESSORIES # -- AN INTRODUCTION TO BAUBLES botania.entry.bIntro=An Introduction to Baubles botania.page.bIntro0=&4Baubles&0, also commonly referred to as &4Trinkets&0 or &4Charms&0 are pieces of equipment which offer all sorts of different effects, when worn.
To equip them, one can press the &4B&0 (configurable) key. There's four slots, one &4Amulet&0 slot, two &4Ring&0 slots and one &4Belt&0 slot. @@ -2024,13 +2038,6 @@ botania.entry.divaCharm=Charm of the Diva botania.page.divaCharm0=The &1Charm of the Diva&0 blesses the wearer with the ability to have any attacked mob follow the attacker's will, and, case there are any nearby enemies, go after them instead. This process, of course, requires a bit of &4Mana&0 from the wearer's inventory in order to function. botania.page.divaCharm1=You shall not disrespect Big Sister -# -- FLUGEL TIARA -botania.entry.flightTiara=Flügel Tiara -botania.page.flightTiara0=The &4Flügel&0 were once a dominant species in the lands, now they're but a race past extinct, once created as godslayers, who possessed the ability of flight.
The usage of &1Gaia Spirits&0 allows for a small replica of their power, in the form of the &1Flügel Tiara&0, which, at the cost of &4Mana&0 allows for flight. -botania.page.flightTiara1=Forty thousand books from another world -botania.page.flightTiara2=Combining the Tiara with a variety of Quartz species allows for it to create various different kinds of aesthetic wings, one for each style of quartz.
The recipes for the various types of quartz can be found in the &4Decorative Blocks&0 entry under &4Misclaneous&0, &1Elven Quartz&0 is acquired by trading &1Nether Quartz&0 with the elves. -botania.page.flightTiara3=Adding Wings (they can be swapped any time) - # -- GREAT FAIRY RING botania.entry.pixieRing=Great Fairy Ring botania.page.pixieRing0=This ring works alongside the &1Elementium Armor&0, insight in the powers of it is advised before using this ring. When worn, the &1Great Fairy Ring&0 will increase the chance for a &4Pixie&0 to spawn when the wearer is hit, this still holds true case no &1Elementium Armor&0 is equipped. diff --git a/src/main/resources/assets/botania/textures/gui/categories/ender.png b/src/main/resources/assets/botania/textures/gui/categories/ender.png new file mode 100644 index 0000000000000000000000000000000000000000..10812e05cc99755eeeceb25d68141e2eabb83c7b GIT binary patch literal 19718 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/botania/textures/items/unused/enderAirBottle.png b/src/main/resources/assets/botania/textures/items/enderAirBottle.png similarity index 100% rename from src/main/resources/assets/botania/textures/items/unused/enderAirBottle.png rename to src/main/resources/assets/botania/textures/items/enderAirBottle.png