Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.mrcyberdragon.lightthenight.blocks;
- import com.mrcyberdragon.lightthenight.Main;
- import com.mrcyberdragon.lightthenight.init.ModBlocks;
- import com.mrcyberdragon.lightthenight.init.ModItems;
- import com.mrcyberdragon.lightthenight.util.IHasModel;
- import net.minecraft.block.BlockLeaves;
- import net.minecraft.block.BlockPlanks;
- import net.minecraft.block.SoundType;
- import net.minecraft.block.properties.IProperty;
- import net.minecraft.block.state.BlockStateContainer;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.creativetab.CreativeTabs;
- import net.minecraft.init.Blocks;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemBlock;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.BlockRenderLayer;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.EnumParticleTypes;
- import net.minecraft.util.NonNullList;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.IBlockAccess;
- import net.minecraft.world.World;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- import javax.annotation.Nonnull;
- import java.util.List;
- import java.util.Random;
- public class BlockGlowingLeaves extends BlockLeaves implements IHasModel {
- protected boolean leavesFancy;
- public BlockGlowingLeaves(String name){
- super();
- this.setTickRandomly(true);
- setUnlocalizedName(name);
- setRegistryName(name);
- setCreativeTab(CreativeTabs.DECORATIONS);
- this.setLightLevel(0.7F);
- this.setHardness(0.2F);
- this.setLightOpacity(1);
- this.setSoundType(SoundType.PLANT);
- setDefaultState(this.blockState.getBaseState().withProperty(CHECK_DECAY, Boolean.valueOf(true)).withProperty(DECAYABLE, Boolean.valueOf(true)));
- ModBlocks.BLOCKS.add(this);
- ModItems.ITEMS.add(new ItemBlock(this).setRegistryName(this.getRegistryName()));
- }
- @Override
- public void registerModels() {
- Main.proxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory");
- }
- protected BlockStateContainer createBlockState(){
- return new BlockStateContainer(this, new IProperty[]{DECAYABLE,CHECK_DECAY});
- }
- @Override
- public Item getItemDropped(IBlockState state, Random rand, int fortune)
- {
- return Item.getItemFromBlock(ModBlocks.GLOWING_SAPLING);
- }
- @Override
- public void getSubBlocks(CreativeTabs itemIn, NonNullList<ItemStack> items)
- {
- items.add(new ItemStack(this));
- }
- @Override
- public int getMetaFromState(IBlockState state)
- {
- int i = 0;
- if (!state.getValue(DECAYABLE).booleanValue())
- {
- i |= 4;
- }
- if (state.getValue(CHECK_DECAY).booleanValue())
- {
- i |= 8;
- }
- return i;
- }
- @Override
- public int getFlammability(IBlockAccess world, BlockPos pos, EnumFacing face) {
- return 60;
- }
- @Override
- public boolean isFlammable(IBlockAccess world, BlockPos pos, EnumFacing face) {
- return true;
- }
- @Override
- public int getFireSpreadSpeed(IBlockAccess world, BlockPos pos, EnumFacing face) {
- return 30;
- }
- @Override
- public IBlockState getStateFromMeta(int meta)
- {
- return getDefaultState().withProperty(DECAYABLE, Boolean.valueOf((meta & 4) == 0)).withProperty(CHECK_DECAY, Boolean.valueOf((meta & 8) > 0));
- }
- @Override
- protected ItemStack getSilkTouchDrop(IBlockState state)
- {
- return new ItemStack(Item.getItemFromBlock(this), 1);
- }
- @Override
- public int damageDropped(IBlockState state)
- {
- return 0;
- }
- protected void dropApple(World worldIn, BlockPos pos, IBlockState state, int chance)
- {
- return;
- }
- protected int getSaplingDropChance(IBlockState state)
- {
- return 20;
- }
- public BlockPlanks.EnumType getWoodType(int meta){ return null; }
- @Nonnull
- @Override
- public NonNullList<ItemStack> onSheared(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
- {
- return NonNullList.withSize(1, new ItemStack(this,1));
- }
- @SideOnly(Side.CLIENT)
- @Override
- public void setGraphicsLevel(boolean fancy)
- {
- this.leavesFancy = fancy;
- }
- @SideOnly(Side.CLIENT)
- @Override
- public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
- {
- return !this.leavesFancy && blockAccess.getBlockState(pos.offset(side)).getBlock() == this ? false : super.shouldSideBeRendered(blockState, blockAccess, pos, side);
- }
- @SideOnly(Side.CLIENT)
- @Override
- public BlockRenderLayer getBlockLayer()
- {
- return this.leavesFancy ? BlockRenderLayer.CUTOUT_MIPPED : BlockRenderLayer.SOLID;
- }
- @Override
- public boolean isOpaqueCube(IBlockState state)
- {
- return !this.leavesFancy;
- }
- @Override
- public boolean causesSuffocation(IBlockState state)
- {
- return false;
- }
- @SideOnly(Side.CLIENT)
- public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand){
- double e0 = rand.nextInt(10)/10.0D;
- double e1 = rand.nextInt(10)/10.0D;
- double e2 = rand.nextInt(2)/10.0D;
- double d0 = (double)pos.getX() + e0;
- double d1 = (double)pos.getY();
- double d2 = (double)pos.getZ() + e1;
- double d3 = -e2;
- if(rand.nextInt(20)==1)worldIn.spawnParticle(EnumParticleTypes.END_ROD, d0, d1, d2, 0, d3, 0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement