/** * 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 @ [Jun 28, 2014, 6:43:33 PM (GMT)] */ package vazkii.botania.common.block.decor; import java.util.Random; import javax.annotation.Nonnull; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.block.statemap.StateMap; import net.minecraft.item.EnumDyeColor; import net.minecraft.item.Item; import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import vazkii.botania.api.state.BotaniaStateProps; import vazkii.botania.common.Botania; import vazkii.botania.common.block.BlockModFlower; import vazkii.botania.common.item.ModItems; import vazkii.botania.common.lib.LibBlockNames; public class BlockBuriedPetals extends BlockModFlower { private static final AxisAlignedBB AABB = new AxisAlignedBB(0, 0, 0, 1, 0.1, 1); public BlockBuriedPetals() { super(LibBlockNames.BURIED_PETALS); setLightLevel(0.25F); } @Nonnull @Override @SideOnly(Side.CLIENT) public Block.EnumOffsetType getOffsetType() { return Block.EnumOffsetType.NONE; } @Nonnull @Override public AxisAlignedBB getBoundingBox(IBlockState state, @Nonnull IBlockAccess world, @Nonnull BlockPos pos) { return AABB; } @SideOnly(Side.CLIENT) @Override public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rand) { EnumDyeColor color = state.getValue(BotaniaStateProps.COLOR); int hex = color.getMapColor().colorValue; int r = (hex & 0xFF0000) >> 16; int g = (hex & 0xFF00) >> 8; int b = hex & 0xFF; Botania.proxy.setSparkleFXNoClip(true); Botania.proxy.sparkleFX(pos.getX() + 0.3 + rand.nextFloat() * 0.5, pos.getY() + 0.1 + rand.nextFloat() * 0.1, pos.getZ() + 0.3 + rand.nextFloat() * 0.5, r / 255F, g / 255F, b / 255F, rand.nextFloat(), 5); Botania.proxy.setSparkleFXNoClip(false); } @Override public boolean registerInCreative() { return false; } @Nonnull @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { return ModItems.petal; } @Override public void registerItemForm() {} @Nonnull @Override public EnumBlockRenderType getRenderType(IBlockState state) { return EnumBlockRenderType.INVISIBLE; } @SideOnly(Side.CLIENT) @Override public final void registerModels() { ModelLoader.setCustomStateMapper(this, new StateMap.Builder().ignore(getTypeProperty()).build()); } }