From 7db084e12e1781c049140fbef38c9be5b2196635 Mon Sep 17 00:00:00 2001 From: Fenn Date: Tue, 4 Mar 2014 19:37:32 +0000 Subject: [PATCH 1/2] Added in Hydroangeas --- .../common/block/BlockSpecialFlower.java | 11 +- .../botania/common/block/BlockSpreader.java | 6 +- .../botania/common/block/ModBlocks.java | 2 + .../block/multipart/MultipartHandler.java | 5 +- .../generating/SubTileHydroangeas.java | 121 ++++++++++++++++++ .../common/crafting/ModPetalRecipes.java | 3 + .../botania/common/lexicon/LexiconData.java | 4 + .../botania/common/lib/LibBlockNames.java | 1 + .../vazkii/botania/common/lib/LibLexicon.java | 1 + resources/assets/botania/lang/en_US.lang | 6 + .../botania/textures/blocks/hydroangeas.png | Bin 0 -> 558 bytes 11 files changed, 147 insertions(+), 13 deletions(-) create mode 100644 MODSRC/vazkii/botania/common/block/subtile/generating/SubTileHydroangeas.java create mode 100644 resources/assets/botania/textures/blocks/hydroangeas.png diff --git a/MODSRC/vazkii/botania/common/block/BlockSpecialFlower.java b/MODSRC/vazkii/botania/common/block/BlockSpecialFlower.java index 50e7884bc..b33ef9385 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,6 +51,7 @@ public class BlockSpecialFlower extends BlockFlower implements ITileEntityProvid // Generating LibBlockNames.SUBTILE_DAYBLOOM, LibBlockNames.SUBTILE_ENDOFLAME, + LibBlockNames.SUBTILE_HYDROANGEAS, // Functional LibBlockNames.SUBTILE_JADED_AMARANTHUS, 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..839932487 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 { @@ -29,7 +27,8 @@ public final class MultipartHandler { } private static void registerMultipart(Block block, int meta) { - MicroMaterialRegistry.registerMaterial(new BlockMicroMaterial(block, meta), block.getUnlocalizedName() + (meta == 0 ? "" : "_" + meta)); + //MicroMaterialRegistry.registerMaterial(new BlockMicroMaterial(block, meta), block.getUnlocalizedName() + (meta == 0 ? "" : "_" + meta)); + //TODO remember to uncomment } } \ 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..0757c12f7 --- /dev/null +++ b/MODSRC/vazkii/botania/common/block/subtile/generating/SubTileHydroangeas.java @@ -0,0 +1,121 @@ +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 0000000000000000000000000000000000000000..9fcc39487bd99c03ac8e75e8577e755101b64ccb GIT binary patch literal 558 zcmV+}0@3}6P)VGd000McNliru-U9>^0uJZQXw(1z0lP^= zK~y-)rIRse6Hyq)fA2MyM`D{Mb+|ye!P`p>=vpL@#X;&EaH*TOWe{~Q7Nm@h}+QwpZvKlvz9sW}2h`;wU7JM!0+131%_y4tz`y#@z=tV?QOLzvo;Vs@nuhr)h#0-S8F39~pSn`@%v)%BO>M*^Ubeuv%fo=!nLJ>GiwSOS#1y6$)tVV0`pSH-=p zW&P`D#D1+OT7I>Vb*vrW-0pYJrONCSt&Il&Xsu_S)mKGr@;h%oB>B>dPf32Q!TmSO wN%7rh@BcFtv%a%INayBA7v|Wn^~AKg->|(i84w<9EdT%j07*qoM6N<$g4f&qrT_o{ literal 0 HcmV?d00001 From 545e68126f930577f3ef1d4eb0b2e7960bf83d7d Mon Sep 17 00:00:00 2001 From: Fenn Date: Tue, 4 Mar 2014 20:14:34 +0000 Subject: [PATCH 2/2] Fixed my derp and Vazkii being picky --- .../common/block/BlockSpecialFlower.java | 3 +- .../block/multipart/MultipartHandler.java | 4 +- .../generating/SubTileHydroangeas.java | 51 ++++++++----------- 3 files changed, 25 insertions(+), 33 deletions(-) diff --git a/MODSRC/vazkii/botania/common/block/BlockSpecialFlower.java b/MODSRC/vazkii/botania/common/block/BlockSpecialFlower.java index b33ef9385..4a0062f20 100644 --- a/MODSRC/vazkii/botania/common/block/BlockSpecialFlower.java +++ b/MODSRC/vazkii/botania/common/block/BlockSpecialFlower.java @@ -51,13 +51,14 @@ public class BlockSpecialFlower extends BlockFlower implements ITileEntityProvid // Generating LibBlockNames.SUBTILE_DAYBLOOM, LibBlockNames.SUBTILE_ENDOFLAME, - LibBlockNames.SUBTILE_HYDROANGEAS, + 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/multipart/MultipartHandler.java b/MODSRC/vazkii/botania/common/block/multipart/MultipartHandler.java index 839932487..37303a755 100644 --- a/MODSRC/vazkii/botania/common/block/multipart/MultipartHandler.java +++ b/MODSRC/vazkii/botania/common/block/multipart/MultipartHandler.java @@ -27,8 +27,8 @@ public final class MultipartHandler { } private static void registerMultipart(Block block, int meta) { - //MicroMaterialRegistry.registerMaterial(new BlockMicroMaterial(block, meta), block.getUnlocalizedName() + (meta == 0 ? "" : "_" + meta)); - //TODO remember to uncomment + 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 index 0757c12f7..779cc5bb7 100644 --- a/MODSRC/vazkii/botania/common/block/subtile/generating/SubTileHydroangeas.java +++ b/MODSRC/vazkii/botania/common/block/subtile/generating/SubTileHydroangeas.java @@ -8,34 +8,32 @@ import vazkii.botania.common.Botania; import vazkii.botania.common.block.subtile.SubTileGenerating; import vazkii.botania.common.lexicon.LexiconData; -public class SubTileHydroangeas extends SubTileGenerating -{ +public class SubTileHydroangeas extends SubTileGenerating { private static final String TAG_BURN_TIME = "burnTime"; int burnTime = 0; int currentTime = 0; @Override - public void onUpdate() - { + 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) - { + 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++; @@ -62,20 +60,17 @@ public class SubTileHydroangeas extends SubTileGenerating @Override - public int getMaxMana() - { + public int getMaxMana() { return 150; } @Override - public int getValueForPassiveGeneration() - { + public int getValueForPassiveGeneration(){ return 2; } @Override - public int getColor() - { + public int getColor(){ if (burnTime > 0) return 0x532FE0; else @@ -90,30 +85,26 @@ public class SubTileHydroangeas extends SubTileGenerating } @Override - public void writeToPacketNBT(NBTTagCompound cmp) - { + public void writeToPacketNBT(NBTTagCompound cmp){ super.writeToPacketNBT(cmp); cmp.setInteger(TAG_BURN_TIME, burnTime); } @Override - public void readFromPacketNBT(NBTTagCompound cmp) - { + public void readFromPacketNBT(NBTTagCompound cmp){ super.readFromPacketNBT(cmp); burnTime = cmp.getInteger(TAG_BURN_TIME); } @Override - public boolean canGeneratePassively() - { + public boolean canGeneratePassively(){ return burnTime > 0; } @Override - public int getDelayBetweenPassiveGeneration() - { + public int getDelayBetweenPassiveGeneration(){ return 2; }