Get the Incense Plate working and doing stuff.

This commit is contained in:
Lizbeth Rika committed 2015-05-15 18:11:57 +01:00
1 parent fb044a5777
commit 4582ef720d
14 files changed
+475 -1

No files matched your search

@@ -58,6 +58,7 @@ import vazkii.botania.client.render.block.RenderCorporeaCrystalCube;
import vazkii.botania.client.render.block.RenderCorporeaIndex;
import vazkii.botania.client.render.block.RenderDoubleFlower;
import vazkii.botania.client.render.block.RenderFloatingFlower;
import vazkii.botania.client.render.block.RenderIncensePlate;
import vazkii.botania.client.render.block.RenderPool;
import vazkii.botania.client.render.block.RenderPump;
import vazkii.botania.client.render.block.RenderPylon;
@@ -83,6 +84,7 @@ import vazkii.botania.client.render.tile.RenderTileCorporeaCrystalCube;
import vazkii.botania.client.render.tile.RenderTileCorporeaIndex;
import vazkii.botania.client.render.tile.RenderTileEnchanter;
import vazkii.botania.client.render.tile.RenderTileFloatingFlower;
import vazkii.botania.client.render.tile.RenderTileIncensePlate;
import vazkii.botania.client.render.tile.RenderTilePool;
import vazkii.botania.client.render.tile.RenderTilePrism;
import vazkii.botania.client.render.tile.RenderTilePump;
@@ -102,6 +104,7 @@ import vazkii.botania.common.block.tile.TileBrewery;
import vazkii.botania.common.block.tile.TileEnchanter;
import vazkii.botania.common.block.tile.TileFloatingFlower;
import vazkii.botania.common.block.tile.TileFloatingSpecialFlower;
import vazkii.botania.common.block.tile.TileIncensePlate;
import vazkii.botania.common.block.tile.TilePylon;
import vazkii.botania.common.block.tile.TileRuneAltar;
import vazkii.botania.common.block.tile.TileSpawnerClaw;
@@ -183,6 +186,7 @@ public class ClientProxy extends CommonProxy {
LibRenderIDs.idPump = RenderingRegistry.getNextAvailableRenderId();
LibRenderIDs.idDoubleFlower = RenderingRegistry.getNextAvailableRenderId();
LibRenderIDs.idCorporeaCrystalCybe = RenderingRegistry.getNextAvailableRenderId();
LibRenderIDs.idIncensePlate = RenderingRegistry.getNextAvailableRenderId();
RenderingRegistry.registerBlockHandler(new RenderAltar());
RenderingRegistry.registerBlockHandler(new RenderSpecialFlower(LibRenderIDs.idSpecialFlower));
@@ -197,6 +201,7 @@ public class ClientProxy extends CommonProxy {
RenderingRegistry.registerBlockHandler(new RenderPump());
RenderingRegistry.registerBlockHandler(new RenderDoubleFlower());
RenderingRegistry.registerBlockHandler(new RenderCorporeaCrystalCube());
RenderingRegistry.registerBlockHandler(new RenderIncensePlate());
RenderTransparentItem renderTransparentItem = new RenderTransparentItem();
RenderFloatingFlowerItem renderFloatingFlower = new RenderFloatingFlowerItem();
@@ -232,6 +237,7 @@ public class ClientProxy extends CommonProxy {
ClientRegistry.bindTileEntitySpecialRenderer(TileCorporeaIndex.class, new RenderTileCorporeaIndex());
ClientRegistry.bindTileEntitySpecialRenderer(TilePump.class, new RenderTilePump());
ClientRegistry.bindTileEntitySpecialRenderer(TileCorporeaCrystalCube.class, new RenderTileCorporeaCrystalCube());
ClientRegistry.bindTileEntitySpecialRenderer(TileIncensePlate.class, new RenderTileIncensePlate());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySkull.class, new RenderTileSkullOverride());
@@ -25,5 +25,6 @@ public final class LibRenderIDs {
public static int idPump = -1;
public static int idDoubleFlower = -1;
public static int idCorporeaCrystalCybe = -1;
public static int idIncensePlate = -1;
}
@@ -111,6 +111,7 @@ public final class LibResources {
public static final String MODEL_MINI_ISLAND_SNOW = PREFIX_MODEL + "miniIslandSnow.png";
public static final String MODEL_PINK_WITHER = PREFIX_MODEL + "pinkWither.png";
public static final String MODEL_CRYSTAL_CUBE = PREFIX_MODEL + "crystalCube.png";
public static final String MODEL_INCENSE_PLATE = PREFIX_MODEL + "incensePlate.png";
public static final String MISC_PARTICLES = PREFIX_MISC + "particles.png";
public static final String MISC_WISP_LARGE = PREFIX_MISC + "wispLarge.png";
@@ -0,0 +1,44 @@
/**
* This class was created by <Vazkii>. 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 @ [May 15, 2015, 4:17:37 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 ModelIncensePlate extends ModelBase {
ModelRenderer Plate;
ModelRenderer High;
public ModelIncensePlate() {
textureWidth = 64;
textureHeight = 32;
Plate = new ModelRenderer(this, 0, 0);
Plate.addBox(0F, 0F, 0F, 12, 1, 4);
Plate.setRotationPoint(-6F, 23F, -2F);
Plate.setTextureSize(64, 32);
Plate.mirror = true;
High = new ModelRenderer(this, 0, 6);
High.addBox(0F, 0F, 0F, 3, 1, 4);
High.setRotationPoint(-6F, 22F, -2F);
High.setTextureSize(64, 32);
High.mirror = true;
}
public void render() {
float f5 = 1F / 16F;
Plate.render(f5);
High.render(f5);
}
}
@@ -0,0 +1,52 @@
/**
* This class was created by <Vazkii>. 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 @ [May 15, 2015, 5:59:56 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.RenderTilePool;
import vazkii.botania.common.block.tile.TileIncensePlate;
import vazkii.botania.common.block.tile.mana.TilePool;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
public class RenderIncensePlate implements ISimpleBlockRenderingHandler{
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) {
GL11.glPushMatrix();
GL11.glTranslatef(-0.5F, -0.1F, -0.5F);
GL11.glScalef(1.4F, 1.4F, 1.4F);
TileEntityRendererDispatcher.instance.renderTileEntityAt(new TileIncensePlate(), 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 int getRenderId() {
return LibRenderIDs.idIncensePlate;
}
@Override
public boolean shouldRender3DInInventory(int modelId) {
return true;
}
}
@@ -0,0 +1,98 @@
/**
* This class was created by <Vazkii>. 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 @ [May 15, 2015, 4:27:27 PM (GMT)]
*/
package vazkii.botania.client.render.tile;
import java.awt.Color;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import vazkii.botania.client.core.handler.ClientTickHandler;
import vazkii.botania.client.lib.LibRenderIDs;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.model.ModelIncensePlate;
import vazkii.botania.common.block.tile.TileIncensePlate;
import vazkii.botania.common.block.tile.corporea.TileCorporeaCrystalCube;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.ResourceLocation;
public class RenderTileIncensePlate extends TileEntitySpecialRenderer {
private static final float[] ROTATIONS = new float[] {
180F, 0F, 90F, 270F
};
ResourceLocation texture = new ResourceLocation(LibResources.MODEL_INCENSE_PLATE);
ModelIncensePlate model = new ModelIncensePlate();
@Override
public void renderTileEntityAt(TileEntity tileentity, double d0, double d1, double d2, float ticks) {
TileIncensePlate plate = (TileIncensePlate) tileentity;
int meta = plate.getWorldObj() != null ? plate.getBlockMetadata() : 0;
GL11.glPushMatrix();
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glColor4f(1F, 1F, 1F, 1F);
GL11.glTranslated(d0, d1, d2);
Minecraft.getMinecraft().renderEngine.bindTexture(texture);
GL11.glTranslatef(0.5F, 1.5F, 0.5F);
GL11.glScalef(1F, -1F, -1F);
GL11.glRotatef(ROTATIONS[Math.max(Math.min(ROTATIONS.length, meta - 2), 0)], 0F, 1F, 0F);
model.render();
GL11.glScalef(1F, -1F, -1F);
ItemStack stack = plate.getStackInSlot(0);
if(stack != null) {
GL11.glPushMatrix();
Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);
float s = 0.4F;
GL11.glTranslatef(0.1F, -1.45F, 0F);
GL11.glScalef(s, s, s);
GL11.glRotatef(180F, 0F, 1F, 0F);
int renderPass = 0;
do {
IIcon icon = stack.getItem().getIcon(stack, renderPass);
if(icon != null) {
Color color = new Color(stack.getItem().getColorFromItemStack(stack, renderPass));
GL11.glColor3ub((byte) color.getRed(), (byte) color.getGreen(), (byte) color.getBlue());
float f = icon.getMinU();
float f1 = icon.getMaxU();
float f2 = icon.getMinV();
float f3 = icon.getMaxV();
ItemRenderer.renderItemIn2D(Tessellator.instance, f1, f2, f, f3, icon.getIconWidth(), icon.getIconHeight(), 1F / 32F);
GL11.glColor3f(1F, 1F, 1F);
}
renderPass++;
} while(renderPass < stack.getItem().getRenderPasses(stack.getItemDamage()));
GL11.glPopMatrix();
}
GL11.glColor3f(1F, 1F, 1F);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
GL11.glPopMatrix();
}
}
@@ -0,0 +1,141 @@
/**
* This class was created by <Vazkii>. 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 @ [May 15, 2015, 4:07:09 PM (GMT)]
*/
package vazkii.botania.common.block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.common.util.RotationHelper;
import vazkii.botania.api.brew.Brew;
import vazkii.botania.api.internal.VanillaPacketDispatcher;
import vazkii.botania.client.lib.LibRenderIDs;
import vazkii.botania.common.block.tile.TileIncensePlate;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.item.brew.ItemIncenseStick;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockIncensePlate extends BlockModContainer {
private static final int[] META_ROTATIONS = new int[] { 2, 5, 3, 4 };
protected BlockIncensePlate() {
super(Material.wood);
setBlockName(LibBlockNames.INCENSE_PLATE);
setHardness(2.0F);
setStepSound(soundTypeWood);
setBlockBounds(true);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int s, float xs, float ys, float zs) {
TileIncensePlate plate = (TileIncensePlate) world.getTileEntity(x, y, z);
ItemStack stack = player.getCurrentEquippedItem();
ItemStack plateStack = plate.getStackInSlot(0);
boolean did = false;
if(world.isRemote)
return true;
if(plateStack == null && plate.isItemValidForSlot(0, stack)) {
plate.setInventorySlotContents(0, stack.copy());
stack.stackSize--;
did = true;
} else if(plateStack != null && !plate.burning) {
if(stack != null && stack.getItem() == Items.flint_and_steel) {
plate.burning = true;
Brew brew = ((ItemIncenseStick) ModItems.incenseStick).getBrew(plateStack);
plate.timeLeft = brew.getPotionEffects(plateStack).get(0).getDuration() * ItemIncenseStick.TIME_MULTIPLIER;
stack.damageItem(1, player);
did = true;
} else {
ItemStack addStack = plateStack.copy();
if(!player.inventory.addItemStackToInventory(addStack))
player.dropPlayerItemWithRandomChoice(addStack, false);
plate.setInventorySlotContents(0, null);
did = true;
}
}
if(did)
VanillaPacketDispatcher.dispatchTEToNearbyPlayers(plate);
return did;
}
@Override
public void onBlockPlacedBy(World p_149689_1_, int p_149689_2_, int p_149689_3_, int p_149689_4_, EntityLivingBase p_149689_5_, ItemStack p_149689_6_) {
int l = MathHelper.floor_double(p_149689_5_.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
p_149689_1_.setBlockMetadataWithNotify(p_149689_2_, p_149689_3_, p_149689_4_, META_ROTATIONS[l], 2);
}
@Override
public void setBlockBoundsBasedOnState(IBlockAccess w, int x, int y, int z) {
setBlockBounds(w.getBlockMetadata(x, y, z) < 4);
}
public void setBlockBounds(boolean horiz) {
float f = 1F / 16F;
float w = 12 * f;
float l = 4 * f;
float xs = (1F - w) / 2;
float zs = (1F - l) / 2;
if(horiz)
setBlockBounds(xs, 0F, zs, 1F - xs, f, 1f - zs);
else setBlockBounds(zs, 0F, xs, 1F - zs, f, 1f - xs);
}
@Override
public boolean rotateBlock(World worldObj, int x, int y, int z, ForgeDirection axis) {
return RotationHelper.rotateVanillaBlock(Blocks.furnace, worldObj, x, y, z, axis);
}
@Override
public void registerBlockIcons(IIconRegister par1IconRegister) {
// NO-OP
}
@Override
public IIcon getIcon(int p_149691_1_, int p_149691_2_) {
return ModBlocks.livingwood.getIcon(0, 0);
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public int getRenderType() {
return LibRenderIDs.idIncensePlate;
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
return new TileIncensePlate();
}
}
@@ -119,6 +119,7 @@ import vazkii.botania.common.block.tile.TileFakeAir;
import vazkii.botania.common.block.tile.TileFloatingFlower;
import vazkii.botania.common.block.tile.TileFloatingSpecialFlower;
import vazkii.botania.common.block.tile.TileForestEye;
import vazkii.botania.common.block.tile.TileIncensePlate;
import vazkii.botania.common.block.tile.TileManaBeacon;
import vazkii.botania.common.block.tile.TileManaFlame;
import vazkii.botania.common.block.tile.TileOpenCrate;
@@ -224,6 +225,7 @@ public final class ModBlocks {
public static Block blazeBlock;
public static Block corporeaInterceptor;
public static Block corporeaCrystalCube;
public static Block incensePlate;
public static void init() {
flower = new BlockModFlower();
@@ -294,6 +296,7 @@ public final class ModBlocks {
blazeBlock = new BlockBlaze();
corporeaInterceptor = new BlockCorporeaInterceptor();
corporeaCrystalCube = new BlockCorporeaCrystalCube();
incensePlate = new BlockIncensePlate();
ModFluffBlocks.init();
@@ -381,6 +384,7 @@ public final class ModBlocks {
registerTile(TileFakeAir.class, LibBlockNames.FAKE_AIR);
registerTile(TileCorporeaInterceptor.class, LibBlockNames.CORPOREA_INTERCEPTOR);
registerTile(TileCorporeaCrystalCube.class, LibBlockNames.CORPOREA_CRYSTAL_CUBE);
registerTile(TileIncensePlate.class, LibBlockNames.INCENSE_PLATE);
BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_PUREDAISY, SubTilePureDaisy.class);
BotaniaAPI.registerSubTile(LibBlockNames.SUBTILE_MANASTAR, SubTileManastar.class);
@@ -0,0 +1,124 @@
/**
* This class was created by <Vazkii>. 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 @ [May 15, 2015, 4:09:07 PM (GMT)]
*/
package vazkii.botania.common.block.tile;
import java.awt.Color;
import java.util.List;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.AxisAlignedBB;
import vazkii.botania.api.BotaniaAPI;
import vazkii.botania.api.brew.Brew;
import vazkii.botania.api.internal.VanillaPacketDispatcher;
import vazkii.botania.common.Botania;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.item.brew.ItemIncenseStick;
import vazkii.botania.common.lib.LibBlockNames;
public class TileIncensePlate extends TileSimpleInventory implements ISidedInventory {
private static final String TAG_TIME_LEFT = "timeLeft";
private static final String TAG_BURNING = "burning";
private static final int RANGE = 24;
public int timeLeft = 0;
public boolean burning = false;
@Override
public void updateEntity() {
ItemStack stack = getStackInSlot(0);
if(stack != null && burning) {
Brew brew = ((ItemIncenseStick) ModItems.incenseStick).getBrew(stack);
PotionEffect effect = brew.getPotionEffects(stack).get(0);
if(timeLeft > 0) {
timeLeft--;
if(!worldObj.isRemote) {
List<EntityPlayer> players = worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - RANGE, yCoord + 0.5 - RANGE, zCoord + 0.5 - RANGE, xCoord + 0.5 + RANGE, yCoord + 0.5 + RANGE, zCoord + 0.5 + RANGE));
for(EntityPlayer player : players) {
PotionEffect currentEffect = player.getActivePotionEffect(Potion.potionTypes[effect.getPotionID()]);
boolean nightVision = effect.getPotionID() == Potion.nightVision.id;
if(currentEffect == null || currentEffect.getDuration() < (nightVision ? 205 : 3)) {
PotionEffect applyEffect = new PotionEffect(effect.getPotionID(), nightVision ? 285 : 80, effect.getAmplifier(), true);
player.addPotionEffect(applyEffect);
}
}
if(worldObj.rand.nextInt(20) == 0)
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.1, zCoord + 0.5, "fire.fire", 0.1F, 1F);
} else {
double x = xCoord + 0.5;
double y = yCoord + 0.5;
double z = zCoord + 0.5;
Color color = new Color(brew.getColor(stack));
float r = color.getRed() / 255F;
float g = color.getGreen() / 255F;
float b = color.getBlue() / 255F;
Botania.proxy.wispFX(worldObj, x - (Math.random() - 0.5) * 0.2, y - (Math.random() - 0.5) * 0.2, z - (Math.random() - 0.5) * 0.2, r, g, b, 0.05F + (float) Math.random() * 0.02F, 0.005F - (float) Math.random() * 0.01F, 0.01F + (float) Math.random() * 0.005F, 0.005F - (float) Math.random() * 0.01F);
Botania.proxy.wispFX(worldObj, x - (Math.random() - 0.5) * 0.2, y - (Math.random() - 0.5) * 0.2, z - (Math.random() - 0.5) * 0.2, 0.2F, 0.2F, 0.2F, 0.05F + (float) Math.random() * 0.02F, 0.005F - (float) Math.random() * 0.01F, 0.01F + (float) Math.random() * 0.001F, 0.005F - (float) Math.random() * 0.01F);
}
} else {
setInventorySlotContents(0, null);
burning = false;
VanillaPacketDispatcher.dispatchTEToNearbyPlayers(this);
}
} else timeLeft = 0;
}
@Override
public int getSizeInventory() {
return 1;
}
@Override
public String getInventoryName() {
return LibBlockNames.INCENSE_PLATE;
}
@Override
public void writeCustomNBT(NBTTagCompound par1nbtTagCompound) {
super.writeCustomNBT(par1nbtTagCompound);
par1nbtTagCompound.setInteger(TAG_TIME_LEFT, timeLeft);
par1nbtTagCompound.setBoolean(TAG_BURNING, burning);
}
@Override
public void readCustomNBT(NBTTagCompound par1nbtTagCompound) {
super.readCustomNBT(par1nbtTagCompound);
timeLeft = par1nbtTagCompound.getInteger(TAG_TIME_LEFT);
burning = par1nbtTagCompound.getBoolean(TAG_BURNING);
}
@Override
public boolean isItemValidForSlot(int i, ItemStack itemstack) {
return itemstack != null && itemstack.getItem() == ModItems.incenseStick && ((ItemIncenseStick) ModItems.incenseStick).getBrew(itemstack) != BotaniaAPI.fallbackBrew;
}
@Override
public int[] getAccessibleSlotsFromSide(int side) {
return new int[] { 0 };
}
@Override
public boolean canInsertItem(int slot, ItemStack stack, int side) {
return isItemValidForSlot(slot, stack);
}
@Override
public boolean canExtractItem(int p_102008_1_, ItemStack p_102008_2_, int p_102008_3_) {
return false;
}
}
@@ -53,7 +53,7 @@ public class ModBrews {
waterBreathing = new BrewMod(LibBrewNames.WATER_BREATHING, 0x84A7CF, 4000, new PotionEffect(Potion.waterBreathing.id, 9600, 0));
invisibility = new BrewMod(LibBrewNames.INVISIBILITY, 0xAEAEAE, 8000, new PotionEffect(Potion.invisibility.id, 9600, 0));
nightVision = new BrewMod(LibBrewNames.NIGHT_VISION, 0x7C4BEB, 4000, new PotionEffect(Potion.nightVision.id, 9600, 0));
absorption = new BrewMod(LibBrewNames.ABSORPTION, 0xF2EB23, 7000, new PotionEffect(Potion.field_76444_x.id, 1800, 3)).setNotBloodPendantInfusable();
absorption = new BrewMod(LibBrewNames.ABSORPTION, 0xF2EB23, 7000, new PotionEffect(Potion.field_76444_x.id, 1800, 3)).setNotBloodPendantInfusable().setNotIncenseInfusable();
overload = new BrewMod(LibBrewNames.OVERLOAD, 0x232323, 12000, new PotionEffect(Potion.damageBoost.id, 1800, 3), new PotionEffect(Potion.moveSpeed.id, 1800, 2), new PotionEffect(Potion.weakness.id, 2400, 2), new PotionEffect(Potion.hunger.id, 200, 2));
soulCross = new BrewModPotion(LibBrewNames.SOUL_CROSS, 10000, new PotionEffect(ModPotions.soulCross.id, 1800, 0));
@@ -120,6 +120,7 @@ public final class BotaniaCreativeTab extends CreativeTabs {
addItem(ModItems.vial);
addItem(ModItems.brewVial);
addItem(ModItems.brewFlask);
addBlock(ModBlocks.incensePlate);
addItem(ModItems.incenseStick);
addItem(ModItems.bloodPendant);
addBlock(ModBlocks.pylon);
@@ -83,6 +83,7 @@ public final class LibBlockNames {
public static final String BLAZE_BLOCK = "blazeBlock";
public static final String CORPOREA_INTERCEPTOR = "corporeaInterceptor";
public static final String CORPOREA_CRYSTAL_CUBE = "corporeaCrystalCube";
public static final String INCENSE_PLATE = "incensePlate";
public static final String SUBTILE_PUREDAISY = "puredaisy";
public static final String SUBTILE_MANASTAR = "manastar";