diff --git a/MODSRC/vazkii/botania/client/lib/LibResources.java b/MODSRC/vazkii/botania/client/lib/LibResources.java index 32501d396..f0636cab0 100644 --- a/MODSRC/vazkii/botania/client/lib/LibResources.java +++ b/MODSRC/vazkii/botania/client/lib/LibResources.java @@ -33,6 +33,7 @@ public final class LibResources { public static final String ENTRY_FLOWERS = PREFIX_ENTRIES + "flowers.png"; public static final String ENTRY_APOTHECARY = PREFIX_ENTRIES + "apothecary.png"; public static final String ENTRY_PURE_DAISY = PREFIX_ENTRIES + "pureDaisy.png"; + public static final String ENTRY_SPREADER = PREFIX_ENTRIES + "spreader.png"; public static final String MODEL_ALTAR = PREFIX_MODEL + "altar.png"; public static final String MODEL_SPREADER = PREFIX_MODEL + "spreader.png"; diff --git a/MODSRC/vazkii/botania/common/block/ModBlocks.java b/MODSRC/vazkii/botania/common/block/ModBlocks.java index dc378058c..eedf9fd0e 100644 --- a/MODSRC/vazkii/botania/common/block/ModBlocks.java +++ b/MODSRC/vazkii/botania/common/block/ModBlocks.java @@ -52,9 +52,10 @@ public final class ModBlocks { for(int i = 0; i < 16; i++) OreDictionary.registerOre(LibOreDict.FLOWER[i], new ItemStack(flower.blockID, 1, i)); - OreDictionary.registerOre(LibBlockNames.LIVING_ROCK, livingrock); - OreDictionary.registerOre(LibBlockNames.LIVING_WOOD, livingwood); - + + OreDictionary.registerOre(LibOreDict.LIVING_ROCK, livingrock); + OreDictionary.registerOre(LibOreDict.LIVING_WOOD, livingwood); + initTileEntities(); } diff --git a/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java b/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java index 4a581e503..ff1815569 100644 --- a/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java +++ b/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java @@ -18,10 +18,12 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.IRecipe; +import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; import vazkii.botania.api.BotaniaAPI; import vazkii.botania.common.block.ModBlocks; +import vazkii.botania.common.item.ItemLens; import vazkii.botania.common.item.ItemTwigWand; import vazkii.botania.common.item.ModItems; import vazkii.botania.common.lib.LibOreDict; @@ -34,6 +36,10 @@ public final class ModCrafingRecipes { public static IRecipe recipePestleAndMortar; public static List recipesTwigWand; public static List recipesApothecary; + public static List recipesSpreader; + public static IRecipe recipeManaLens; + public static List recipesLensDying; + public static IRecipe recipeRainbowLens; public static void init() { // Lexicon Recipe @@ -77,6 +83,37 @@ public final class ModCrafingRecipes { 'C', "cobblestone"); recipesApothecary = BotaniaAPI.getLatestAddedRecipes(16); + // Mana Spreader Recipes + for(int i = 0; i < 16; i++) + addOreDictRecipe(new ItemStack(ModBlocks.spreader), + "WWW", "GP ", "WWW", + 'W', LibOreDict.LIVING_WOOD, + 'P', LibOreDict.PETAL[i], + 'G', "ingotGold"); + recipesSpreader = BotaniaAPI.getLatestAddedRecipes(16); + + // Mana Lens Recipe + addOreDictRecipe(new ItemStack(ModItems.lens), + " S ", "SGS", " S ", + 'S', LibOreDict.MANA_STEEL, + 'G', new ItemStack(Block.thinGlass)); + recipeManaLens = BotaniaAPI.getLatestAddedRecipe(); + + // Mana Lens Dying Recipes + for(int j = 0; j < 16; j++) + addShapelessOreDictRecipe(ItemLens.setLensColor(new ItemStack(ModItems.lens), j), new ItemStack(ModItems.lens), LibOreDict.DYE[j]); + recipesLensDying = BotaniaAPI.getLatestAddedRecipes(16); + + for(int i = 1; i < ItemLens.SUBTYPES; i++) + for(int j = 0; j < 16; j++) + addShapelessOreDictRecipe(ItemLens.setLensColor(new ItemStack(ModItems.lens, 1, i), j), new ItemStack(ModItems.lens, 1, i), LibOreDict.DYE[j]); + + // Rainbow Lens Recipe + addShapelessOreDictRecipe(ItemLens.setLensColor(new ItemStack(ModItems.lens), 16), new ItemStack(ModItems.lens), LibOreDict.MANA_PEARL); + recipeRainbowLens = BotaniaAPI.getLatestAddedRecipe(); + for(int i = 1; i < ItemLens.SUBTYPES; i++) + addShapelessOreDictRecipe(ItemLens.setLensColor(new ItemStack(ModItems.lens, 1, i), 16), new ItemStack(ModItems.lens, 1, i), LibOreDict.DYE[i]); + } private static void addOreDictRecipe(ItemStack output, Object... recipe) { diff --git a/MODSRC/vazkii/botania/common/item/ItemLens.java b/MODSRC/vazkii/botania/common/item/ItemLens.java index 915507afa..63900678f 100644 --- a/MODSRC/vazkii/botania/common/item/ItemLens.java +++ b/MODSRC/vazkii/botania/common/item/ItemLens.java @@ -47,7 +47,7 @@ public class ItemLens extends ItemMod implements ILens { public static Icon iconGlass; - final int subtypes = 9; + public static final int SUBTYPES = 9; Icon[] ringIcons; public ItemLens() { @@ -61,14 +61,14 @@ public class ItemLens extends ItemMod implements ILens { public void registerIcons(IconRegister par1IconRegister) { iconGlass = IconHelper.forName(par1IconRegister, "lensInside"); - ringIcons = new Icon[subtypes]; + ringIcons = new Icon[SUBTYPES]; for(int i = 0; i < ringIcons.length; i++) ringIcons[i] = IconHelper.forNameRaw(par1IconRegister, LibItemNames.LENS_NAMES[i]); } @Override public void getSubItems(int par1, CreativeTabs par2CreativeTabs, List par3List) { - for(int i = 0; i < subtypes; i++) { + for(int i = 0; i < SUBTYPES; i++) { for(int j = -1; j < 17; j++) { ItemStack stack = new ItemStack(par1, 1, i); setLensColor(stack, j); @@ -84,7 +84,7 @@ public class ItemLens extends ItemMod implements ILens { @Override public Icon getIconFromDamageForRenderPass(int par1, int par2) { - return par2 == 0 ? ringIcons[Math.min(subtypes - 1, par1)] : iconGlass; + return par2 == 0 ? ringIcons[Math.min(SUBTYPES - 1, par1)] : iconGlass; } @Override @@ -99,7 +99,7 @@ public class ItemLens extends ItemMod implements ILens { @Override public String getUnlocalizedName(ItemStack par1ItemStack) { - return "item." + LibItemNames.LENS_NAMES[Math.min(subtypes - 1, par1ItemStack.getItemDamage())]; + return "item." + LibItemNames.LENS_NAMES[Math.min(SUBTYPES - 1, par1ItemStack.getItemDamage())]; } @Override @@ -247,7 +247,8 @@ public class ItemLens extends ItemMod implements ILens { return ItemNBTHelper.getInt(stack, TAG_COLOR, -1); } - public void setLensColor(ItemStack stack, int color) { + public static ItemStack setLensColor(ItemStack stack, int color) { ItemNBTHelper.setInt(stack, TAG_COLOR, color); + return stack; } } diff --git a/MODSRC/vazkii/botania/common/lexicon/LexiconData.java b/MODSRC/vazkii/botania/common/lexicon/LexiconData.java index ae6b6ad58..2c3d620cb 100644 --- a/MODSRC/vazkii/botania/common/lexicon/LexiconData.java +++ b/MODSRC/vazkii/botania/common/lexicon/LexiconData.java @@ -16,14 +16,11 @@ import vazkii.botania.api.lexicon.LexiconCategory; import vazkii.botania.api.lexicon.LexiconEntry; import vazkii.botania.client.lib.LibResources; import vazkii.botania.common.crafting.ModCrafingRecipes; -import vazkii.botania.common.crafting.ModManaInfusionRecipes; import vazkii.botania.common.crafting.ModPetalRecipes; -import vazkii.botania.common.crafting.ModRuneRecipes; import vazkii.botania.common.lexicon.page.PageCraftingRecipe; import vazkii.botania.common.lexicon.page.PageImage; -import vazkii.botania.common.lexicon.page.PageManaInfusionRecipe; import vazkii.botania.common.lexicon.page.PagePetalRecipe; -import vazkii.botania.common.lexicon.page.PageRuneRecipe; +import vazkii.botania.common.lexicon.page.PageRecipe; import vazkii.botania.common.lexicon.page.PageText; import vazkii.botania.common.lib.LibLexicon; @@ -44,6 +41,7 @@ public final class LexiconData { public static LexiconEntry pureDaisy; public static LexiconEntry manaIntro; + public static LexiconEntry spreader; public static LexiconEntry pool; public static void init() { @@ -75,6 +73,9 @@ public final class LexiconData { manaIntro = new BLexiconEntry(LibLexicon.MANA_INTRO, categoryMana); manaIntro.setPriority().setLexiconPages(new PageText("0"), new PageText("1"), new PageText("2")); + spreader = new BLexiconEntry(LibLexicon.MANA_SPREADER, categoryMana); + spreader.setPriority().setLexiconPages(new PageText("0"), new PageImage("1", LibResources.ENTRY_SPREADER), new PageText("2"), new PageText("3"), new PageText("4"), new PageCraftingRecipe("5", ModCrafingRecipes.recipesSpreader), new PageText("6"), new PageCraftingRecipe("7", ModCrafingRecipes.recipeManaLens), new PageCraftingRecipe("8", ModCrafingRecipes.recipesLensDying), new PageCraftingRecipe("9", ModCrafingRecipes.recipeRainbowLens)); + // pool = new BLexiconEntry(LibLexicon.MANA_POOL, categoryMana); // pool.setPriority().setLexiconPages(new PageText("0"), new PageManaInfusionRecipe("1", ModManaInfusionRecipes.manaPetalRecipes), new PagePetalRecipe("2", ModPetalRecipes.pureDaisyRecipe), new PageRuneRecipe("3", ModRuneRecipes.recipeDebug)); } diff --git a/MODSRC/vazkii/botania/common/lib/LibLexicon.java b/MODSRC/vazkii/botania/common/lib/LibLexicon.java index b23f009e6..9a8304d91 100644 --- a/MODSRC/vazkii/botania/common/lib/LibLexicon.java +++ b/MODSRC/vazkii/botania/common/lib/LibLexicon.java @@ -30,6 +30,7 @@ public final class LibLexicon { public static final String BASICS_PURE_DAISY = "pureDaisy"; public static final String MANA_INTRO = "mIntro"; + public static final String MANA_SPREADER = "spreader"; public static final String MANA_POOL = "pool"; public static final String FFLOWER_INTRO = "fIntro"; diff --git a/MODSRC/vazkii/botania/common/lib/LibOreDict.java b/MODSRC/vazkii/botania/common/lib/LibOreDict.java index d40428d86..8bb04de8e 100644 --- a/MODSRC/vazkii/botania/common/lib/LibOreDict.java +++ b/MODSRC/vazkii/botania/common/lib/LibOreDict.java @@ -11,13 +11,13 @@ */ package vazkii.botania.common.lib; -public final class LibOreDict { +public final class LibOreDict { public static final String LEXICON = "lexicaBotania"; public static final String PESTLE_AND_MORTAR = "pestleAndMortar"; public static final String TWIG_WAND = "twigWand"; - public static final String LIVING_ROCK = "livingrock"; public static final String LIVING_WOOD = "livingwood"; + public static final String LIVING_ROCK = "livingrock"; public static final String MANA_STEEL = "ingotManasteel"; public static final String MANA_PEARL = "manaPearl"; public static final String MANA_DIAMOND = "manaDiamond"; diff --git a/resources/assets/botania/lang/en_US.lang b/resources/assets/botania/lang/en_US.lang index 49927c653..9029eedc4 100644 --- a/resources/assets/botania/lang/en_US.lang +++ b/resources/assets/botania/lang/en_US.lang @@ -210,6 +210,18 @@ botania.page.mIntro0=&4Mana&0 is an ethereal substance, in layman's terms, it's botania.page.mIntro1=In order to create &4Mana&0, one would require a set of &4Generating Flowers&0 (read the respective section). This &4Mana&0 can be dispersed utilizing &1Mana Spreaders&0 and stored in &1Mana Pools&0. &4Mana&0 can be used for a myriad of different things, for starters, it can be used for &4Functional Flowers&0 (read the respective section). botania.page.mIntro2=To get started with mastering the art of &4Mana&0, one would start by learning how to use &1Dayblooms&0, &1Mana Spreaders&0 and &1Mana Pools&0.
These form a basic infrastructure for mana, which can be used for all sorts of purposes. Have a read at the &4Functional Flora&0 and &4Magical Apparatus&0 sections of this Lexicon. +botania.entry.spreader=Mana Spreader +botania.page.spreader0=The &1Mana Spreader&0 is the most inportant component in manipulating &4Mana&0.
This is the block that allows &4Mana&0 to travel from point A to point B. When this block is placed on the ground, it'll face one of 6 basic directions. By shift-right clicking it with a &1Wand of the Forest&0, one can orient it to the opposite of where it was clicked. +botania.page.spreader1=Holding a &1Wand of the Forest&0 +botania.page.spreader2=The &1Mana Spreader&0 has a small internal buffer of &4Mana&0, which will get filled by nearby &4Generating Flowers&0. This buffer can be viewed by looking at the &1Spreader&0 with a &1Wand of the Forest&0, as demonstrated in the last page. Note that the block needs to be right clicked to get accurate and adequate values. +botania.page.spreader3=Holding a &1Wand of the Forest&0 displays a beam which shows where the spreader is pointing at. Hovering over it shows the target.
If the target of the spreader is a block that can contain mana, and isn't full, the spreader will fire a &4Mana Burst&0, which will travel to the target, and pass the mana along to it. +botania.page.spreader4=The spreader only fires one burst at once, it'll only fire another one when the last one hits the target.
Furthermore, the bursts also, after a small amount of time start suffering &4mana loss&0, this can be seen in the beam, as when this happens it becomes a lot thinner. +botania.page.spreader5=Crafting the &1Mana Spreader&0 +botania.page.spreader6=In order to upgrade the potencial of the spreader, once can apply &1Mana Lenses&0. The very basic mana lens does absolutely nothing.
Lenses can be &4dyed&0 all the 16 colors of the spectrum, or combined with a &1Mana Pearl&0 to create a &1Rainbow Lens&0, these will change the color of the burst. +botania.page.spreader7=The basic lens, it doesn't do anything... +botania.page.spreader8=&4Dying&0 lenses! +botania.page.spreader9=&1Rainbow Lens&0 all the way + # - FUNCTIONAL FLOWERS # - GENERATING FLOWERS \ No newline at end of file diff --git a/resources/assets/botania/textures/gui/entries/spreader.png b/resources/assets/botania/textures/gui/entries/spreader.png new file mode 100644 index 000000000..830ccdd0a Binary files /dev/null and b/resources/assets/botania/textures/gui/entries/spreader.png differ