From ffba78011d2afbd293a5201c4f24cc2ee319eddd Mon Sep 17 00:00:00 2001 From: Vasco Lavos Date: Wed, 9 Jul 2014 01:00:53 +0100 Subject: [PATCH] Added Fancy floating flowers. --- .../client/core/proxy/ClientProxy.java | 6 + .../botania/client/lib/LibRenderIDs.java | 1 + .../botania/client/lib/LibResources.java | 1 + .../botania/client/model/ModelMiniIsland.java | 86 +++++++++++++ .../client/render/block/RenderMiniIsland.java | 57 +++++++++ .../render/tile/RenderTileMiniIsland.java | 80 ++++++++++++ .../botania/common/block/BlockMiniIsland.java | 119 ++++++++++++++++++ .../botania/common/block/ModBlocks.java | 4 + .../common/block/tile/TileMiniIsland.java | 23 ++++ .../common/core/BotaniaCreativeTab.java | 1 + .../common/crafting/ModCrafingRecipes.java | 10 ++ .../botania/common/lexicon/LexiconData.java | 2 +- .../botania/common/lib/LibBlockNames.java | 1 + resources/assets/botania/lang/en_US.lang | 19 ++- .../botania/textures/model/miniIsland.png | Bin 0 -> 4163 bytes 15 files changed, 408 insertions(+), 2 deletions(-) create mode 100644 MODSRC/vazkii/botania/client/model/ModelMiniIsland.java create mode 100644 MODSRC/vazkii/botania/client/render/block/RenderMiniIsland.java create mode 100644 MODSRC/vazkii/botania/client/render/tile/RenderTileMiniIsland.java create mode 100644 MODSRC/vazkii/botania/common/block/BlockMiniIsland.java create mode 100644 MODSRC/vazkii/botania/common/block/tile/TileMiniIsland.java create mode 100644 resources/assets/botania/textures/model/miniIsland.png diff --git a/MODSRC/vazkii/botania/client/core/proxy/ClientProxy.java b/MODSRC/vazkii/botania/client/core/proxy/ClientProxy.java index 83191e240..e6798e4ce 100644 --- a/MODSRC/vazkii/botania/client/core/proxy/ClientProxy.java +++ b/MODSRC/vazkii/botania/client/core/proxy/ClientProxy.java @@ -30,6 +30,7 @@ import vazkii.botania.client.gui.lexicon.GuiLexiconEntry; import vazkii.botania.client.gui.lexicon.GuiLexiconIndex; import vazkii.botania.client.lib.LibRenderIDs; import vazkii.botania.client.render.block.RenderAltar; +import vazkii.botania.client.render.block.RenderMiniIsland; import vazkii.botania.client.render.block.RenderPool; import vazkii.botania.client.render.block.RenderPylon; import vazkii.botania.client.render.block.RenderSpecialFlower; @@ -40,6 +41,7 @@ import vazkii.botania.client.render.item.RenderLexicon; import vazkii.botania.client.render.tile.RenderTileAlfPortal; import vazkii.botania.client.render.tile.RenderTileAltar; import vazkii.botania.client.render.tile.RenderTileEnchanter; +import vazkii.botania.client.render.tile.RenderTileMiniIsland; import vazkii.botania.client.render.tile.RenderTilePool; import vazkii.botania.client.render.tile.RenderTilePylon; import vazkii.botania.client.render.tile.RenderTileRuneAltar; @@ -47,6 +49,7 @@ import vazkii.botania.client.render.tile.RenderTileSpreader; import vazkii.botania.common.block.tile.TileAlfPortal; import vazkii.botania.common.block.tile.TileAltar; import vazkii.botania.common.block.tile.TileEnchanter; +import vazkii.botania.common.block.tile.TileMiniIsland; import vazkii.botania.common.block.tile.TilePylon; import vazkii.botania.common.block.tile.TileRuneAltar; import vazkii.botania.common.block.tile.mana.TilePool; @@ -87,12 +90,14 @@ public class ClientProxy extends CommonProxy { LibRenderIDs.idSpreader = RenderingRegistry.getNextAvailableRenderId(); LibRenderIDs.idPool = RenderingRegistry.getNextAvailableRenderId(); LibRenderIDs.idPylon = RenderingRegistry.getNextAvailableRenderId(); + LibRenderIDs.idMiniIsland = RenderingRegistry.getNextAvailableRenderId(); RenderingRegistry.registerBlockHandler(new RenderAltar()); RenderingRegistry.registerBlockHandler(new RenderSpecialFlower(LibRenderIDs.idSpecialFlower)); RenderingRegistry.registerBlockHandler(new RenderSpreader()); RenderingRegistry.registerBlockHandler(new RenderPool()); RenderingRegistry.registerBlockHandler(new RenderPylon()); + RenderingRegistry.registerBlockHandler(new RenderMiniIsland()); MinecraftForgeClient.registerItemRenderer(ModItems.lens, new RenderLens()); if(ConfigHandler.lexicon3dModel) @@ -105,6 +110,7 @@ public class ClientProxy extends CommonProxy { ClientRegistry.bindTileEntitySpecialRenderer(TilePylon.class, new RenderTilePylon()); ClientRegistry.bindTileEntitySpecialRenderer(TileEnchanter.class, new RenderTileEnchanter()); ClientRegistry.bindTileEntitySpecialRenderer(TileAlfPortal.class, new RenderTileAlfPortal()); + ClientRegistry.bindTileEntitySpecialRenderer(TileMiniIsland.class, new RenderTileMiniIsland()); RenderingRegistry.registerEntityRenderingHandler(EntityPixie.class, new RenderPixie()); RenderingRegistry.registerEntityRenderingHandler(EntityVineBall.class, new RenderSnowball(ModItems.vineBall)); diff --git a/MODSRC/vazkii/botania/client/lib/LibRenderIDs.java b/MODSRC/vazkii/botania/client/lib/LibRenderIDs.java index f98645cbd..30090ae7d 100644 --- a/MODSRC/vazkii/botania/client/lib/LibRenderIDs.java +++ b/MODSRC/vazkii/botania/client/lib/LibRenderIDs.java @@ -18,5 +18,6 @@ public final class LibRenderIDs { public static int idSpreader = -1; public static int idPool = -1; public static int idPylon = -1; + public static int idMiniIsland = -1; } diff --git a/MODSRC/vazkii/botania/client/lib/LibResources.java b/MODSRC/vazkii/botania/client/lib/LibResources.java index d562c1be3..4faf63d9d 100644 --- a/MODSRC/vazkii/botania/client/lib/LibResources.java +++ b/MODSRC/vazkii/botania/client/lib/LibResources.java @@ -71,6 +71,7 @@ public final class LibResources { public static final String MODEL_ELEMENTIUM_0 = PREFIX_MODEL + "elementium0.png"; public static final String MODEL_ELEMENTIUM_1 = PREFIX_MODEL + "elementium1.png"; public static final String MODEL_PIXIE = PREFIX_MODEL + "pixie.png"; + public static final String MODEL_MINI_ISLAND = PREFIX_MODEL + "miniIsland.png"; public static final String MODEL_CAPE = "/assets/botania/textures/model/cape.png"; diff --git a/MODSRC/vazkii/botania/client/model/ModelMiniIsland.java b/MODSRC/vazkii/botania/client/model/ModelMiniIsland.java new file mode 100644 index 000000000..482f53dc6 --- /dev/null +++ b/MODSRC/vazkii/botania/client/model/ModelMiniIsland.java @@ -0,0 +1,86 @@ +/** + * 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 a + * Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License + * (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB) + * + * File Created @ [Jul 8, 2014, 10:07:54 PM (GMT)] + */ +package vazkii.botania.client.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ModelMiniIsland extends ModelBase { + + ModelRenderer island; + + public ModelMiniIsland() { + textureWidth = 64; + textureHeight = 32; + + setTextureOffset("island.Shape0", 0, 0); + setTextureOffset("island.Shape1-1", 8, 0); + setTextureOffset("island.Shape1-2", 16, 0); + setTextureOffset("island.Shape1-3", 24, 0); + setTextureOffset("island.Shape1-4", 32, 0); + setTextureOffset("island.Shape2-1", 8, 6); + setTextureOffset("island.Shape2-2", 16, 6); + setTextureOffset("island.Shape2-3", 24, 6); + setTextureOffset("island.Shape2-4", 32, 6); + setTextureOffset("island.Shape2-5", 8, 11); + setTextureOffset("island.Shape2-6", 16, 11); + setTextureOffset("island.Shape2-7", 24, 11); + setTextureOffset("island.Shape2-8", 32, 11); + setTextureOffset("island.Shape3-1", 8, 16); + setTextureOffset("island.Shape3-2", 16, 16); + setTextureOffset("island.Shape3-3", 24, 16); + setTextureOffset("island.Shape3-4", 32, 16); + setTextureOffset("island.Shape3-5", 8, 20); + setTextureOffset("island.Shape3-6", 16, 20); + setTextureOffset("island.Shape3-7", 24, 20); + setTextureOffset("island.Shape3-8", 32, 20); + setTextureOffset("island.Shape4-1", 8, 24); + setTextureOffset("island.Shape4-2", 16, 24); + setTextureOffset("island.Shape4-3", 24, 24); + setTextureOffset("island.Shape4-4", 32, 24); + + island = new ModelRenderer(this, "island"); + island.setRotationPoint(0F, 16F, 0F); +// island.mirror = true; + island.addBox("Shape0", -1F, 0F, -1F, 2, 5, 2); + island.addBox("Shape1-1", -1F, 0F, -3F, 2, 4, 2); + island.addBox("Shape1-2", 1F, 0F, -1F, 2, 4, 2); + island.addBox("Shape1-3", -1F, 0F, 1F, 2, 4, 2); + island.addBox("Shape1-4", -3F, 0F, -1F, 2, 4, 2); + island.addBox("Shape2-1", -1F, 0F, -5F, 2, 3, 2); + island.addBox("Shape2-2", 3F, 0F, -1F, 2, 3, 2); + island.addBox("Shape2-3", -1F, 0F, 3F, 2, 3, 2); + island.addBox("Shape2-4", -5F, 0F, -1F, 2, 3, 2); + island.addBox("Shape2-5", 1F, 0F, -3F, 2, 3, 2); + island.addBox("Shape2-6", 1F, 0F, 1F, 2, 3, 2); + island.addBox("Shape2-7", -3F, 0F, 1F, 2, 3, 2); + island.addBox("Shape2-8", -3F, 0F, -3F, 2, 3, 2); + island.addBox("Shape3-1", 1F, 0F, -5F, 2, 2, 2); + island.addBox("Shape3-2", 3F, 0F, 1F, 2, 2, 2); + island.addBox("Shape3-3", -3F, 0F, 3F, 2, 2, 2); + island.addBox("Shape3-4", -5F, 0F, -3F, 2, 2, 2); + island.addBox("Shape3-5", 3F, 0F, -3F, 2, 2, 2); + island.addBox("Shape3-6", 1F, 0F, 3F, 2, 2, 2); + island.addBox("Shape3-7", -5F, 0F, 1F, 2, 2, 2); + island.addBox("Shape3-8", -3F, 0F, -5F, 2, 2, 2); + island.addBox("Shape4-1", 3F, 0F, -5F, 2, 1, 2); + island.addBox("Shape4-2", 3F, 0F, 3F, 2, 1, 2); + island.addBox("Shape4-3", -5F, 0F, 3F, 2, 1, 2); + island.addBox("Shape4-4", -5F, 0F, -5F, 2, 1, 2); + } + + public void render() { + island.render(1F / 16F); + } + +} diff --git a/MODSRC/vazkii/botania/client/render/block/RenderMiniIsland.java b/MODSRC/vazkii/botania/client/render/block/RenderMiniIsland.java new file mode 100644 index 000000000..62f21f50a --- /dev/null +++ b/MODSRC/vazkii/botania/client/render/block/RenderMiniIsland.java @@ -0,0 +1,57 @@ +/** + * 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 a + * Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License + * (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB) + * + * File Created @ [Jul 8, 2014, 11:05:38 PM (GMT)] + */ +package vazkii.botania.client.render.block; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.world.IBlockAccess; + +import org.lwjgl.opengl.GL11; + +import vazkii.botania.client.lib.LibRenderIDs; +import vazkii.botania.client.render.tile.RenderTileMiniIsland; +import vazkii.botania.client.render.tile.RenderTilePool; +import vazkii.botania.common.block.tile.TileMiniIsland; +import vazkii.botania.common.block.tile.mana.TilePool; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; + +public class RenderMiniIsland implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + GL11.glPushMatrix(); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + float s = 1.4F; + GL11.glScalef(s, s, s); + GL11.glRotatef(-5F, 1F, 0F, 0F); + RenderTileMiniIsland.forcedMetadata = metadata; + TileEntityRendererDispatcher.instance.renderTileEntityAt(new TileMiniIsland(), 0.0D, 0.0D, 0.0D, 0.0F); + GL11.glPopMatrix(); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return LibRenderIDs.idMiniIsland; + } + +} diff --git a/MODSRC/vazkii/botania/client/render/tile/RenderTileMiniIsland.java b/MODSRC/vazkii/botania/client/render/tile/RenderTileMiniIsland.java new file mode 100644 index 000000000..fd371b5e3 --- /dev/null +++ b/MODSRC/vazkii/botania/client/render/tile/RenderTileMiniIsland.java @@ -0,0 +1,80 @@ +/** + * 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 a + * Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License + * (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB) + * + * File Created @ [Jul 8, 2014, 10:58:46 PM (GMT)] + */ +package vazkii.botania.client.render.tile; + +import java.util.Random; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import vazkii.botania.client.lib.LibResources; +import vazkii.botania.client.model.ModelMiniIsland; +import vazkii.botania.common.block.BlockModFlower; + +public class RenderTileMiniIsland extends TileEntitySpecialRenderer { + + private static final ResourceLocation texture = new ResourceLocation(LibResources.MODEL_MINI_ISLAND); + private static final ModelMiniIsland model = new ModelMiniIsland(); + + public static int forcedMetadata = 0; + + @Override + public void renderTileEntityAt(TileEntity tile, double d0, double d1, double d2, float t) { + GL11.glPushMatrix(); + GL11.glColor4f(1F, 1F, 1F, 1F); + GL11.glTranslated(d0, d1, d2); + + int worldTime = (int) (tile.getWorldObj() == null ? 0 : tile.getWorldObj().getTotalWorldTime()); + if(tile.getWorldObj() != null) + worldTime += new Random(tile.xCoord ^ tile.yCoord ^ tile.zCoord).nextInt(360); + + GL11.glTranslatef(0.5F, 0F, 0.5F); + GL11.glRotatef(-((float) worldTime * 0.5F), 0F, 1F, 0F); + GL11.glTranslatef(-0.5F, 0F, -0.5F); + + if(tile.getWorldObj() != null) { + GL11.glTranslatef(0F, (float) Math.sin((double) worldTime * 0.05F) * 0.1F, 0F); + GL11.glRotatef(4F * (float) Math.sin((double) worldTime * 0.04F), 1F, 0F, 0F); + } + + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + GL11.glPushMatrix(); + GL11.glTranslatef(0.5F, 1.4F, 0.5F); + GL11.glScalef(1F, -1F, -1F); + model.render(); + GL11.glPopMatrix(); + + int meta = tile.getWorldObj() == null ? forcedMetadata : tile.getBlockMetadata(); + IIcon icon = BlockModFlower.icons[meta]; + Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationBlocksTexture); + float f = icon.getMinU(); + float f1 = icon.getMaxU(); + float f2 = icon.getMinV(); + float f3 = icon.getMaxV(); + GL11.glTranslatef(0.25F, 0.4F, 0.5F); + GL11.glScalef(0.5F, 0.5F, 0.5F); + ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 1F / 32F); + GL11.glColor3f(1F, 1F, 1F); + GL11.glPopMatrix(); + } + +} diff --git a/MODSRC/vazkii/botania/common/block/BlockMiniIsland.java b/MODSRC/vazkii/botania/common/block/BlockMiniIsland.java new file mode 100644 index 000000000..e13dbbe07 --- /dev/null +++ b/MODSRC/vazkii/botania/common/block/BlockMiniIsland.java @@ -0,0 +1,119 @@ +/** + * 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 a + * Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License + * (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB) + * + * File Created @ [Jul 8, 2014, 10:16:53 PM (GMT)] + */ +package vazkii.botania.common.block; + +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.passive.EntitySheep; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import vazkii.botania.api.lexicon.ILexiconable; +import vazkii.botania.api.lexicon.LexiconEntry; +import vazkii.botania.client.lib.LibRenderIDs; +import vazkii.botania.common.Botania; +import vazkii.botania.common.block.tile.TileMiniIsland; +import vazkii.botania.common.core.handler.ConfigHandler; +import vazkii.botania.common.item.block.ItemBlockWithMetadataAndName; +import vazkii.botania.common.lexicon.LexiconData; +import vazkii.botania.common.lib.LibBlockNames; +import cpw.mods.fml.common.registry.GameRegistry; + +public class BlockMiniIsland extends BlockModContainer implements ILexiconable { + + public BlockMiniIsland() { + super(Material.ground); + setBlockName(LibBlockNames.MINI_ISLAND); + setHardness(0.5F); + setStepSound(soundTypeGravel); + setTickRandomly(true); + setLightLevel(1F); + + float f = 0.1F; + setBlockBounds(f, f, f, 1F - f, 1F - f, 1F - f); + } + + @Override + protected boolean shouldRegisterInNameSet() { + return false; + } + + @Override + public Block setBlockName(String par1Str) { + GameRegistry.registerBlock(this, ItemBlockWithMetadataAndName.class, par1Str); + return super.setBlockName(par1Str); + } + + @Override + public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) { + int meta = par1World.getBlockMetadata(par2, par3, par4); + float[] color = EntitySheep.fleeceColorTable[meta]; + + if(par5Random.nextDouble() < ConfigHandler.flowerParticleFrequency) + Botania.proxy.sparkleFX(par1World, par2 + 0.3 + par5Random.nextFloat() * 0.5, par3 + 0.5 + par5Random.nextFloat() * 0.5, par4 + 0.3 + par5Random.nextFloat() * 0.5, color[0], color[1], color[2], par5Random.nextFloat(), 5); + } + + @Override + public void registerBlockIcons(IIconRegister par1IconRegister) { + // NO-OP + } + + @Override + public void getSubBlocks(Item par1, CreativeTabs par2, List par3) { + for(int i = 0; i < 16; i++) + par3.add(new ItemStack(par1, 1, i)); + } + + @Override + public int damageDropped(int par1) { + return par1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public IIcon getIcon(int par1, int par2) { + return Blocks.dirt.getIcon(par1, par2); + } + + @Override + public int getRenderType() { + return LibRenderIDs.idMiniIsland; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileMiniIsland(); + } + + @Override + public LexiconEntry getEntry(World world, int x, int y, int z, EntityPlayer player, ItemStack lexicon) { + return LexiconData.shinyFlowers; + } +} diff --git a/MODSRC/vazkii/botania/common/block/ModBlocks.java b/MODSRC/vazkii/botania/common/block/ModBlocks.java index b1fd646a3..a2cdc257b 100644 --- a/MODSRC/vazkii/botania/common/block/ModBlocks.java +++ b/MODSRC/vazkii/botania/common/block/ModBlocks.java @@ -82,6 +82,7 @@ import vazkii.botania.common.block.tile.TileBifrost; import vazkii.botania.common.block.tile.TileEnchanter; import vazkii.botania.common.block.tile.TileForestEye; import vazkii.botania.common.block.tile.TileManaBeacon; +import vazkii.botania.common.block.tile.TileMiniIsland; import vazkii.botania.common.block.tile.TileOpenCrate; import vazkii.botania.common.block.tile.TilePlatform; import vazkii.botania.common.block.tile.TilePylon; @@ -135,6 +136,7 @@ public final class ModBlocks { public static Block buriedPetals; public static Block prismarine; public static Block seaLamp; + public static Block miniIsland; public static Block livingwoodStairs; public static Block livingwoodSlab; @@ -224,6 +226,7 @@ public final class ModBlocks { buriedPetals = new BlockBuriedPetals(); prismarine = new BlockPrismarine(); seaLamp = new BlockSeaLamp(); + miniIsland = new BlockMiniIsland(); livingwoodStairs = new BlockLivingwoodStairs(); livingwoodSlab = new BlockLivingwoodSlab(false); @@ -360,6 +363,7 @@ public final class ModBlocks { registerTile(TilePlatform.class, LibBlockNames.PLATFORM); registerTile(TileAlfPortal.class, LibBlockNames.ALF_PORTAL); registerTile(TileBifrost.class, LibBlockNames.BIFROST); + registerTile(TileMiniIsland.class, LibBlockNames.MINI_ISLAND); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_PUREDAISY, SubTilePureDaisy.class); BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_MANASTAR, SubTileManastar.class); diff --git a/MODSRC/vazkii/botania/common/block/tile/TileMiniIsland.java b/MODSRC/vazkii/botania/common/block/tile/TileMiniIsland.java new file mode 100644 index 000000000..6adbf224a --- /dev/null +++ b/MODSRC/vazkii/botania/common/block/tile/TileMiniIsland.java @@ -0,0 +1,23 @@ +/** + * 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 a + * Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License + * (http://creativecommons.org/licenses/by-nc-sa/3.0/deed.en_GB) + * + * File Created @ [Jul 8, 2014, 10:17:28 PM (GMT)] + */ +package vazkii.botania.common.block.tile; + +import net.minecraft.tileentity.TileEntity; + +public class TileMiniIsland extends TileEntity { + + @Override + public boolean canUpdate() { + return false; + } + +} diff --git a/MODSRC/vazkii/botania/common/core/BotaniaCreativeTab.java b/MODSRC/vazkii/botania/common/core/BotaniaCreativeTab.java index 8b1665075..0d01ef0db 100644 --- a/MODSRC/vazkii/botania/common/core/BotaniaCreativeTab.java +++ b/MODSRC/vazkii/botania/common/core/BotaniaCreativeTab.java @@ -85,6 +85,7 @@ public final class BotaniaCreativeTab extends CreativeTabs { addBlock(ModBlocks.pylon); addBlock(ModBlocks.pistonRelay); addBlock(ModBlocks.shinyFlower); + addBlock(ModBlocks.miniIsland); addBlock(ModBlocks.unstableBlock); addBlock(ModBlocks.manaBeacon); addItem(ModItems.signalFlare); diff --git a/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java b/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java index beb7f1349..d45e24811 100644 --- a/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java +++ b/MODSRC/vazkii/botania/common/crafting/ModCrafingRecipes.java @@ -159,6 +159,7 @@ public final class ModCrafingRecipes { public static IRecipe recipeLensInfluence; public static IRecipe recipeLensWeight; public static IRecipe recipeLensPaint; + public static List recipesMiniIsland; public static void init() { // Lexicon Recipe @@ -959,6 +960,15 @@ public final class ModCrafingRecipes { 'L', new ItemStack(ModItems.lens)); recipeLensPaint = BotaniaAPI.getLatestAddedRecipe(); + // Mini Island Recipes + for(int i = 0; i < 16; i++) + GameRegistry.addRecipe(new ItemStack(ModBlocks.miniIsland, 1, i), + "F", "S", "D", + 'F', new ItemStack(ModBlocks.shinyFlower, 1, i), + 'S', new ItemStack(ModItems.grassSeeds), + 'D', new ItemStack(Blocks.dirt)); + recipesMiniIsland = BotaniaAPI.getLatestAddedRecipes(16); + // Mana and Terrasteel Block Recipes addOreDictRecipe(new ItemStack(ModBlocks.storage, 1, 0), "III", "III", "III", diff --git a/MODSRC/vazkii/botania/common/lexicon/LexiconData.java b/MODSRC/vazkii/botania/common/lexicon/LexiconData.java index 800f7e1e3..95918da87 100644 --- a/MODSRC/vazkii/botania/common/lexicon/LexiconData.java +++ b/MODSRC/vazkii/botania/common/lexicon/LexiconData.java @@ -518,7 +518,7 @@ public final class LexiconData { dispenserTweaks.setLexiconPages(new PageText("0")); shinyFlowers = new BLexiconEntry(LibLexicon.MISC_SHINY_FLOWERS, categoryMisc); - shinyFlowers.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCrafingRecipes.recipesShinyFlowers)); + shinyFlowers.setLexiconPages(new PageText("0"), new PageCraftingRecipe("1", ModCrafingRecipes.recipesShinyFlowers), new PageCraftingRecipe("2", ModCrafingRecipes.recipesMiniIsland)); prismarine = new BLexiconEntry(LibLexicon.MISC_PRISMARINE, categoryMisc); prismarine.setLexiconPages(new PageText("0"), new PageText("1"), new PageManaInfusionRecipe("2", ModManaAlchemyRecipes.prismarineRecipe), new PageCraftingRecipe("3", ModCrafingRecipes.recipePrismarine), new PageCraftingRecipe("4", ModCrafingRecipes.recipePrismarineBrick), new PageCraftingRecipe("5", ModCrafingRecipes.recipeDarkPrismarine), new PageCraftingRecipe("6", ModCrafingRecipes.recipeSeaLamp)); diff --git a/MODSRC/vazkii/botania/common/lib/LibBlockNames.java b/MODSRC/vazkii/botania/common/lib/LibBlockNames.java index 023a63a01..4e606f422 100644 --- a/MODSRC/vazkii/botania/common/lib/LibBlockNames.java +++ b/MODSRC/vazkii/botania/common/lib/LibBlockNames.java @@ -47,6 +47,7 @@ public final class LibBlockNames { public static final String BURIED_PETALS = "buriedPetals"; public static final String PRISMARINE = "prismarine"; public static final String SEA_LAMP = "seaLamp"; + public static final String MINI_ISLAND = "miniIsland"; public static final String SPECIAL_FLOWER_PREFIX = FLOWER + "."; diff --git a/resources/assets/botania/lang/en_US.lang b/resources/assets/botania/lang/en_US.lang index e2ecb0f1b..0545d4f96 100644 --- a/resources/assets/botania/lang/en_US.lang +++ b/resources/assets/botania/lang/en_US.lang @@ -315,6 +315,22 @@ tile.botania:prismarine1Slab.name=Prismarine Brick Slab tile.botania:prismarine2Stairs.name=Dark Prismarine Stairs tile.botania:prismarine2Slab.name=Dark Prismarine Slab tile.botania:seaLamp.name=Sea Lantern +tile.botania:miniIsland0.name=Floating White Flower +tile.botania:miniIsland1.name=Floating Orange Flower +tile.botania:miniIsland2.name=Floating Magenta Flower +tile.botania:miniIsland3.name=Floating Light Blue Flower +tile.botania:miniIsland4.name=Floating Yellow Flower +tile.botania:miniIsland5.name=Floating Lime Flower +tile.botania:miniIsland6.name=Floating Pink Flower +tile.botania:miniIsland7.name=Floating Gray Flower +tile.botania:miniIsland8.name=Floating Light Gray Flower +tile.botania:miniIsland9.name=Floating Cyan Flower +tile.botania:miniIsland10.name=Floating Purple Flower +tile.botania:miniIsland11.name=Floating Blue Flower +tile.botania:miniIsland12.name=Floating Brown Flower +tile.botania:miniIsland13.name=Floating Green Flower +tile.botania:miniIsland14.name=Floating Red Flower +tile.botania:miniIsland15.name=Floating Black Flower # FLOWER NAMES tile.botania:flower..name=Botania Flower @@ -1302,8 +1318,9 @@ botania.page.dispenserTweaks0=&1Dispensers&0, among their normal abilities, can # -- GLIMMERING FLOWERS botania.entry.shinyFlowers=Glimmering Flowers -botania.page.shinyFlowers0=By combining your typical &1Mystical Flowers&0 with some &1Glowstone Dust&0, you can make them sparkle even brighter, and emit actual physical light, of the same brightness as a &1Glowstone Block&0. +botania.page.shinyFlowers0=By combining your typical &1Mystical Flowers&0 with some &1Glowstone Dust&0, you can make them sparkle even brighter, and emit actual physical light, of the same brightness as a &1Glowstone Block&0.
With some &1Dirt&0 and &1Pasture Seeds&0 it's possible to turn them into a miniature floating island that will, not only emit light, but also look very fancy indeed. botania.page.shinyFlowers1=Pretty Pretty Shiny Shiny +botania.page.shinyFlowers2=Like Laputa but (a lot) tinier # -- PRISMARINE botania.entry.prismarine=Prismarine diff --git a/resources/assets/botania/textures/model/miniIsland.png b/resources/assets/botania/textures/model/miniIsland.png new file mode 100644 index 0000000000000000000000000000000000000000..85f6598f5e2f06ad05ba9a4ea599b0f20fdd37c0 GIT binary patch literal 4163 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 N002ovPDHLkV1iSt%qIW< literal 0 HcmV?d00001