From ab580ef5fa75bd699141db11e146be2be31bce91 Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Fri, 30 Jan 2015 14:35:06 +0000 Subject: [PATCH] Added the Spectrolus. --- .../common/block/BlockSpecialFlower.java | 1 + .../botania/common/block/ModBlocks.java | 2 + .../subtile/generating/SubTileSpectrolus.java | 108 ++++++++++++++++++ .../resources/assets/botania/lang/en_US.lang | 3 +- .../flowerRainbow.png => alt/spectrolus.png} | Bin .../botania/textures/blocks/spectrolus.png | Bin 0 -> 18884 bytes 6 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 src/main/java/vazkii/botania/common/block/subtile/generating/SubTileSpectrolus.java rename src/main/resources/assets/botania/textures/blocks/{unused/flowerRainbow.png => alt/spectrolus.png} (100%) create mode 100644 src/main/resources/assets/botania/textures/blocks/spectrolus.png diff --git a/src/main/java/vazkii/botania/common/block/BlockSpecialFlower.java b/src/main/java/vazkii/botania/common/block/BlockSpecialFlower.java index 477592c6f..451ad8cd2 100644 --- a/src/main/java/vazkii/botania/common/block/BlockSpecialFlower.java +++ b/src/main/java/vazkii/botania/common/block/BlockSpecialFlower.java @@ -71,6 +71,7 @@ public class BlockSpecialFlower extends BlockFlower implements ITileEntityProvid LibBlockNames.SUBTILE_KEKIMURUS, LibBlockNames.SUBTILE_GOURMARYLLIS, LibBlockNames.SUBTILE_NARSLIMMUS, + LibBlockNames.SUBTILE_SPECTROLUS, // Functional LibBlockNames.SUBTILE_JADED_AMARANTHUS, diff --git a/src/main/java/vazkii/botania/common/block/ModBlocks.java b/src/main/java/vazkii/botania/common/block/ModBlocks.java index 401bcac43..a2e0fe9dc 100644 --- a/src/main/java/vazkii/botania/common/block/ModBlocks.java +++ b/src/main/java/vazkii/botania/common/block/ModBlocks.java @@ -92,6 +92,7 @@ import vazkii.botania.common.block.subtile.generating.SubTileKekimurus; import vazkii.botania.common.block.subtile.generating.SubTileMunchdew; import vazkii.botania.common.block.subtile.generating.SubTileNarslimmus; import vazkii.botania.common.block.subtile.generating.SubTileNightshade; +import vazkii.botania.common.block.subtile.generating.SubTileSpectrolus; import vazkii.botania.common.block.subtile.generating.SubTileThermalily; import vazkii.botania.common.block.tile.TileAlfPortal; import vazkii.botania.common.block.tile.TileAltar; @@ -330,6 +331,7 @@ public final class ModBlocks { BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_KEKIMURUS, SubTileKekimurus.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_GOURMARYLLIS, SubTileGourmaryllis.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_NARSLIMMUS, SubTileNarslimmus.class); + BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_SPECTROLUS, SubTileSpectrolus.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_BELLETHORN, SubTileBellethorn.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_DREADTHORN, SubTileDreadthorn.class); diff --git a/src/main/java/vazkii/botania/common/block/subtile/generating/SubTileSpectrolus.java b/src/main/java/vazkii/botania/common/block/subtile/generating/SubTileSpectrolus.java new file mode 100644 index 000000000..7aea89ad0 --- /dev/null +++ b/src/main/java/vazkii/botania/common/block/subtile/generating/SubTileSpectrolus.java @@ -0,0 +1,108 @@ +/** + * This class was created by . It's distributed as + * part of the Botania Mod. Get the Source Code in github: + * https://github.com/Vazkii/Botania + * + * Botania is Open Source and distributed under the + * Botania License: http://botaniamod.net/license.php + * + * File Created @ [Jan 30, 2015, 1:37:26 PM (GMT)] + */ +package vazkii.botania.common.block.subtile.generating; + +import java.awt.Color; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import vazkii.botania.api.subtile.SubTileGenerating; + +public class SubTileSpectrolus extends SubTileGenerating { + + private static final String TAG_NEXT_COLOR = "nextColor"; + + int nextColor; + + @Override + public void onUpdate() { + super.onUpdate(); + + if(!supertile.getWorldObj().isRemote) { + int range = 1; + Item wool = Item.getItemFromBlock(Blocks.wool); + List items = supertile.getWorldObj().getEntitiesWithinAABB(EntityItem.class, AxisAlignedBB.getBoundingBox(supertile.xCoord - range, supertile.yCoord - range, supertile.zCoord - range, supertile.xCoord + range + 1, supertile.yCoord + range + 1, supertile.zCoord + range + 1)); + for(EntityItem item : items) { + ItemStack stack = item.getEntityItem(); + if(stack != null && stack.getItem() == wool) { + int meta = stack.getItemDamage(); + if(meta == nextColor) { + mana = Math.min(getMaxMana(), mana + 100); + nextColor = nextColor == 15 ? 0 : nextColor + 1; + + sync(); + } + item.setDead(); + } + } + } + } + + @Override + public int getMaxMana() { + return 2000; + } + + @Override + public int getColor() { + return Color.HSBtoRGB((float) ticksExisted / 100F, 1F, 1F); + } + + @Override + public void renderHUD(Minecraft mc, ScaledResolution res) { + super.renderHUD(mc, res); + + ItemStack stack = new ItemStack(Blocks.wool, 1, nextColor); + int color = getColor(); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + if(stack != null && stack.getItem() != null) { + String stackName = stack.getDisplayName(); + int width = 16 + mc.fontRenderer.getStringWidth(stackName) / 2; + int x = res.getScaledWidth() / 2 - width; + int y = res.getScaledHeight() / 2 + 30; + + mc.fontRenderer.drawStringWithShadow(stackName, x + 20, y + 5, color); + RenderHelper.enableGUIStandardItemLighting(); + RenderItem.getInstance().renderItemAndEffectIntoGUI(mc.fontRenderer, mc.renderEngine, stack, x, y); + RenderHelper.disableStandardItemLighting(); + } + + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + } + + @Override + public void writeToPacketNBT(NBTTagCompound cmp) { + super.writeToPacketNBT(cmp); + cmp.setInteger(TAG_NEXT_COLOR, nextColor); + } + + @Override + public void readFromPacketNBT(NBTTagCompound cmp) { + super.readFromPacketNBT(cmp); + nextColor = cmp.getInteger(TAG_NEXT_COLOR); + } + +} diff --git a/src/main/resources/assets/botania/lang/en_US.lang b/src/main/resources/assets/botania/lang/en_US.lang index 635bed684..20162a5c6 100644 --- a/src/main/resources/assets/botania/lang/en_US.lang +++ b/src/main/resources/assets/botania/lang/en_US.lang @@ -686,6 +686,8 @@ tile.botania:flower.gourmaryllis.name=Gourmaryllis tile.botania:flower.gourmaryllis.reference=Fuyukai Desu tile.botania:flower.narslimmus.name=Narslimmus tile.botania:flower.narslimmus.reference=What's this? It's all sticky +tile.botania:flower.spectrolus.name=Spectrolus +tile.botania:flower.spectrolus.reference=Profiting off Hate # - FUNCTIONAL tile.botania:flower.bellethorn.name=Bellethorne @@ -2168,4 +2170,3 @@ botania.page.tcIntegration6b=The official frowny face # -- BUILDCRAFT INTEGRATION botania.entry.bcIntegration=Buildcraft Integration botania.page.bcIntegration0=Recent advances in piping technology have allowed &1Gates&0 to get a feel of the &4Mana&0 around them. A &1Gate&0 can now sense whether a &4Mana&0 container is empty, full or if it contains any mana.
&1Gates&0 can also use the &1Mana Detector&0 trigger to detect if a mana is passing by the pipe block. In addition, they can also sense when a &1Runic Altar&0 is ready to create runes. - diff --git a/src/main/resources/assets/botania/textures/blocks/unused/flowerRainbow.png b/src/main/resources/assets/botania/textures/blocks/alt/spectrolus.png similarity index 100% rename from src/main/resources/assets/botania/textures/blocks/unused/flowerRainbow.png rename to src/main/resources/assets/botania/textures/blocks/alt/spectrolus.png diff --git a/src/main/resources/assets/botania/textures/blocks/spectrolus.png b/src/main/resources/assets/botania/textures/blocks/spectrolus.png new file mode 100644 index 0000000000000000000000000000000000000000..b2af5d27b70bd51b02a94f0e4dc7f530b0907fc1 GIT binary patch literal 18884 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