diff --git a/MODSRC/vazkii/botania/common/block/BlockSpecialFlower.java b/MODSRC/vazkii/botania/common/block/BlockSpecialFlower.java index 50e7884bc..4a0062f20 100644 --- a/MODSRC/vazkii/botania/common/block/BlockSpecialFlower.java +++ b/MODSRC/vazkii/botania/common/block/BlockSpecialFlower.java @@ -11,12 +11,7 @@ */ package vazkii.botania.common.block; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; - +import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.BlockFlower; import net.minecraft.block.ITileEntityProvider; @@ -43,7 +38,8 @@ import vazkii.botania.common.core.BotaniaCreativeTab; import vazkii.botania.common.item.block.ItemBlockSpecialFlower; import vazkii.botania.common.lib.LibBlockIDs; import vazkii.botania.common.lib.LibBlockNames; -import cpw.mods.fml.common.registry.GameRegistry; + +import java.util.*; public class BlockSpecialFlower extends BlockFlower implements ITileEntityProvider, ISpecialFlower, IWandable, ILexiconable, IWandHUD { @@ -55,12 +51,14 @@ public class BlockSpecialFlower extends BlockFlower implements ITileEntityProvid // Generating LibBlockNames.SUBTILE_DAYBLOOM, LibBlockNames.SUBTILE_ENDOFLAME, + LibBlockNames.SUBTILE_HYDROANGEAS, // Functional LibBlockNames.SUBTILE_JADED_AMARANTHUS, LibBlockNames.SUBTILE_BELLETHORN, LibBlockNames.SUBTILE_HEISEI_DREAM, LibBlockNames.SUBTILE_TIGERSEYE, + }; protected BlockSpecialFlower() { diff --git a/MODSRC/vazkii/botania/common/block/BlockSpreader.java b/MODSRC/vazkii/botania/common/block/BlockSpreader.java index 86e4a72a1..dccae7905 100644 --- a/MODSRC/vazkii/botania/common/block/BlockSpreader.java +++ b/MODSRC/vazkii/botania/common/block/BlockSpreader.java @@ -11,8 +11,6 @@ */ package vazkii.botania.common.block; -import java.util.Random; - import net.minecraft.block.BlockPistonBase; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; @@ -38,6 +36,8 @@ import vazkii.botania.common.lexicon.LexiconData; import vazkii.botania.common.lib.LibBlockIDs; import vazkii.botania.common.lib.LibBlockNames; +import java.util.Random; + public class BlockSpreader extends BlockModContainer implements IWandable, IWandHUD, ILexiconable { Random random; @@ -55,7 +55,7 @@ public class BlockSpreader extends BlockModContainer implements IWandable, IWand public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack) { int orientation = BlockPistonBase.determineOrientation(par1World, par2, par3, par4, par5EntityLivingBase); TileSpreader spreader = (TileSpreader) par1World.getBlockTileEntity(par2, par3, par4); - System.out.println(orientation); + //System.out.println(orientation); switch(orientation) { case 0: diff --git a/MODSRC/vazkii/botania/common/block/ModBlocks.java b/MODSRC/vazkii/botania/common/block/ModBlocks.java index 7e5ff1515..0f8be9f48 100644 --- a/MODSRC/vazkii/botania/common/block/ModBlocks.java +++ b/MODSRC/vazkii/botania/common/block/ModBlocks.java @@ -22,6 +22,7 @@ import vazkii.botania.common.block.subtile.functional.SubTileJadedAmaranthus; import vazkii.botania.common.block.subtile.functional.SubTileTigerseye; import vazkii.botania.common.block.subtile.generating.SubTileDaybloom; import vazkii.botania.common.block.subtile.generating.SubTileEndoflame; +import vazkii.botania.common.block.subtile.generating.SubTileHydroangeas; import vazkii.botania.common.block.tile.TileAltar; import vazkii.botania.common.block.tile.TileDistributor; import vazkii.botania.common.block.tile.TileManaBeacon; @@ -90,6 +91,7 @@ public final class ModBlocks { BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_DAYBLOOM, SubTileDaybloom.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_ENDOFLAME, SubTileEndoflame.class); + BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_HYDROANGEAS, SubTileHydroangeas.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_BELLETHORN, SubTileBellethorn.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_HEISEI_DREAM, SubTileHeiseiDream.class); diff --git a/MODSRC/vazkii/botania/common/block/multipart/MultipartHandler.java b/MODSRC/vazkii/botania/common/block/multipart/MultipartHandler.java index 61352c7f4..37303a755 100644 --- a/MODSRC/vazkii/botania/common/block/multipart/MultipartHandler.java +++ b/MODSRC/vazkii/botania/common/block/multipart/MultipartHandler.java @@ -13,8 +13,6 @@ package vazkii.botania.common.block.multipart; import net.minecraft.block.Block; import vazkii.botania.common.block.ModBlocks; -import codechicken.microblock.BlockMicroMaterial; -import codechicken.microblock.MicroMaterialRegistry; public final class MultipartHandler { @@ -30,6 +28,7 @@ public final class MultipartHandler { private static void registerMultipart(Block block, int meta) { MicroMaterialRegistry.registerMaterial(new BlockMicroMaterial(block, meta), block.getUnlocalizedName() + (meta == 0 ? "" : "_" + meta)); + } } \ No newline at end of file diff --git a/MODSRC/vazkii/botania/common/block/subtile/generating/SubTileHydroangeas.java b/MODSRC/vazkii/botania/common/block/subtile/generating/SubTileHydroangeas.java new file mode 100644 index 000000000..779cc5bb7 --- /dev/null +++ b/MODSRC/vazkii/botania/common/block/subtile/generating/SubTileHydroangeas.java @@ -0,0 +1,112 @@ +package vazkii.botania.common.block.subtile.generating; + +import cpw.mods.fml.common.network.PacketDispatcher; +import net.minecraft.block.Block; +import net.minecraft.nbt.NBTTagCompound; +import vazkii.botania.api.lexicon.LexiconEntry; +import vazkii.botania.common.Botania; +import vazkii.botania.common.block.subtile.SubTileGenerating; +import vazkii.botania.common.lexicon.LexiconData; + +public class SubTileHydroangeas extends SubTileGenerating { + + private static final String TAG_BURN_TIME = "burnTime"; + int burnTime = 0; + int currentTime = 0; + + @Override + public void onUpdate(){ + super.onUpdate(); + + int range = 1; + + boolean didSomething = false; + + if (burnTime == 0) { + + if (supertile.worldObj.getWorldTime() % 40L == 0) { + + if (mana < getMaxMana() && !supertile.worldObj.isRemote) { + + for (int i = -range; i <= range; i++) { + + for (int j = -range; j <= range; j++) { + + if (supertile.worldObj.getBlockId(supertile.xCoord + i, supertile.yCoord, supertile.zCoord + j) == Block.waterStill.blockID && supertile.worldObj.getBlockMetadata(supertile.xCoord + i, supertile.yCoord, supertile.zCoord + j) == 0) { + + supertile.worldObj.setBlockToAir(supertile.xCoord + i, supertile.yCoord, supertile.zCoord + j); + didSomething = true; + burnTime++; + + break; + + } + } + } + + } + + if (didSomething) + PacketDispatcher.sendPacketToAllInDimension(supertile.getDescriptionPacket(), supertile.worldObj.provider.dimensionId); + } + } else + { + if (supertile.worldObj.rand.nextInt(8) == 0) + Botania.proxy.wispFX(supertile.worldObj, supertile.xCoord + 0.55 + Math.random() * 0.2 - 0.1, supertile.yCoord + 0.55 + Math.random() * 0.2 - 0.1, supertile.zCoord + 0.5, 0.7F, 0.05F, 0.05F, (float) Math.random() / 6, (float) -Math.random() / 60); + burnTime--; + } + + } + + + @Override + public int getMaxMana() { + return 150; + } + + @Override + public int getValueForPassiveGeneration(){ + return 2; + } + + @Override + public int getColor(){ + if (burnTime > 0) + return 0x532FE0; + else + return 0xA62997; + + } + + @Override + public LexiconEntry getEntry() + { + return LexiconData.hydroangeas; + } + + @Override + public void writeToPacketNBT(NBTTagCompound cmp){ + super.writeToPacketNBT(cmp); + + cmp.setInteger(TAG_BURN_TIME, burnTime); + } + + @Override + public void readFromPacketNBT(NBTTagCompound cmp){ + super.readFromPacketNBT(cmp); + + burnTime = cmp.getInteger(TAG_BURN_TIME); + } + + @Override + public boolean canGeneratePassively(){ + return burnTime > 0; + } + + @Override + public int getDelayBetweenPassiveGeneration(){ + return 2; + } + + +} diff --git a/MODSRC/vazkii/botania/common/crafting/ModPetalRecipes.java b/MODSRC/vazkii/botania/common/crafting/ModPetalRecipes.java index 41c103ade..1869c7921 100644 --- a/MODSRC/vazkii/botania/common/crafting/ModPetalRecipes.java +++ b/MODSRC/vazkii/botania/common/crafting/ModPetalRecipes.java @@ -32,16 +32,19 @@ public final class ModPetalRecipes { public static RecipePetals bellethorneRecipe; public static RecipePetals heiseiDreamRecipe; public static RecipePetals tigerseyeRecipe; + public static RecipePetals hydroangeasRecipe; public static void init() { pureDaisyRecipe = BotaniaAPI.registerPetalRecipe(ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_PUREDAISY), white, white, white, white); daybloomRecipe = BotaniaAPI.registerPetalRecipe(ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_DAYBLOOM), yellow, yellow, orange, lightBlue); endoflameRecipe = BotaniaAPI.registerPetalRecipe(ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_ENDOFLAME), brown, red, redMana, brownMana, lightGray); + hydroangeasRecipe = BotaniaAPI.registerPetalRecipe(ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_HYDROANGEAS), blue, blue, pink, blue); jadedAmaranthusRecipe = BotaniaAPI.registerPetalRecipe(ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_JADED_AMARANTHUS), purpleMana, purpleMana, lime, purple, green); bellethorneRecipe = BotaniaAPI.registerPetalRecipe(ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_BELLETHORN), redMana, redMana, cyan, cyan, red); heiseiDreamRecipe = BotaniaAPI.registerPetalRecipe(ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_HEISEI_DREAM), purpleMana, pinkMana, magentaMana, purple, pink, magenta, runeWrath); tigerseyeRecipe = BotaniaAPI.registerPetalRecipe(ItemBlockSpecialFlower.ofType(LibBlockNames.SUBTILE_TIGERSEYE), yellow, brownMana, orangeMana, lime, runeAutumn); + } } diff --git a/MODSRC/vazkii/botania/common/lexicon/LexiconData.java b/MODSRC/vazkii/botania/common/lexicon/LexiconData.java index 5bd799af4..1298e4ccb 100644 --- a/MODSRC/vazkii/botania/common/lexicon/LexiconData.java +++ b/MODSRC/vazkii/botania/common/lexicon/LexiconData.java @@ -66,6 +66,7 @@ public final class LexiconData { public static LexiconEntry generatingIntro; public static LexiconEntry daybloom; public static LexiconEntry endoflame; + public static LexiconEntry hydroangeas; public static LexiconEntry pistonRelay; public static LexiconEntry pylon; @@ -166,6 +167,9 @@ public final class LexiconData { endoflame = new BLexiconEntry(LibLexicon.GFLOWER_ENDOFLAME, categoryGenerationFlowers); endoflame.setLexiconPages(new PageText("0"), new PagePetalRecipe("1", ModPetalRecipes.endoflameRecipe)); + hydroangeas = new BLexiconEntry(LibLexicon.GFLOWER_HYDROANGEAS, categoryGenerationFlowers); + hydroangeas.setLexiconPages(new PageText("0"), new PagePetalRecipe("1", ModPetalRecipes.hydroangeasRecipe)); + // DEVICES ENTRIES pistonRelay = new BLexiconEntry(LibLexicon.DEVICE_PISTON_RELAY, categoryDevices); pistonRelay.setLexiconPages(new PageText("0"), new PageText("1"), new PageManaInfusionRecipe("2", ModManaInfusionRecipes.pistonRelayRecipe)); diff --git a/MODSRC/vazkii/botania/common/lib/LibBlockNames.java b/MODSRC/vazkii/botania/common/lib/LibBlockNames.java index 6508d074e..33d7a9e8c 100644 --- a/MODSRC/vazkii/botania/common/lib/LibBlockNames.java +++ b/MODSRC/vazkii/botania/common/lib/LibBlockNames.java @@ -35,6 +35,7 @@ public final class LibBlockNames { public static final String SUBTILE_DAYBLOOM = "daybloom"; public static final String SUBTILE_ENDOFLAME = "endoflame"; + public static final String SUBTILE_HYDROANGEAS = "hydroangeas"; public static final String SUBTILE_BELLETHORN = "bellethorn"; public static final String SUBTILE_HEISEI_DREAM = "heiseiDream"; diff --git a/MODSRC/vazkii/botania/common/lib/LibLexicon.java b/MODSRC/vazkii/botania/common/lib/LibLexicon.java index 01d02d7d6..0557a7955 100644 --- a/MODSRC/vazkii/botania/common/lib/LibLexicon.java +++ b/MODSRC/vazkii/botania/common/lib/LibLexicon.java @@ -52,6 +52,7 @@ public final class LibLexicon { public static final String GFLOWER_INTRO = "gIntro"; public static final String GFLOWER_DAYBLOOM = "daybloom"; public static final String GFLOWER_ENDOFLAME = "endoflame"; + public static final String GFLOWER_HYDROANGEAS = "hydroangeas"; public static final String DEVICE_PISTON_RELAY = "pistonRelay"; public static final String DEVICE_PYLON = "pylon"; diff --git a/resources/assets/botania/lang/en_US.lang b/resources/assets/botania/lang/en_US.lang index b2fc190be..2665c222e 100644 --- a/resources/assets/botania/lang/en_US.lang +++ b/resources/assets/botania/lang/en_US.lang @@ -105,6 +105,7 @@ tile.botania:flower.puredaisy.name=Pure Daisy # - GENERATING tile.botania:flower.daybloom.name=Daybloom tile.botania:flower.endoflame.name=Endoflame +tile.botania:flower.hydroangeas.name=Hydroangeas # - FUNCTIONAL tile.botania:flower.bellethorn.name=Bellethorne @@ -384,6 +385,11 @@ botania.entry.endoflame=Endoflame botania.page.endoflame0=While the &1Daybloom&0 is all well and good, a botanist requires more effective means of generating &4Mana&0.
The &1Endoflame&0 does that exactly, it will absorb any combustible items or blocks dropped on the nearby vacinity (albeit only one at a time) and burn through them to passively generate mana while the fuel lasts. botania.page.endoflame1=&oNot nitor&r. +# -- Hydroangeas +botania.entry.hydroangeas=Hydroangeas +botania.page.hydroangeas0=While you can generate easy &4Mana&0 with the &1Daybloom&0, sometimes you need to create more energy without using any fuels...
The &1Hydroangeas&0 will devour adjacent water sources to create mana, it does have a cooldown timer though, so power can not be generated instantly. +botania.page.hydroangeas1=&oAquatic Power&r. + # - MAGICAL APPARATUS # -- FORCE RELAY botania.entry.pistonRelay=Force Relay diff --git a/resources/assets/botania/textures/blocks/hydroangeas.png b/resources/assets/botania/textures/blocks/hydroangeas.png new file mode 100644 index 000000000..9fcc39487 Binary files /dev/null and b/resources/assets/botania/textures/blocks/hydroangeas.png differ