Romptroll Posted November 24, 2017 Share Posted November 24, 2017 (edited) Edited November 26, 2017 by Romptroll Quote Link to comment Share on other sites More sharing options...
Draco18s Posted November 24, 2017 Share Posted November 24, 2017 Look at the vanilla leaves classes. You may even want to just extend BlockLeavesBase. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given. Link to comment Share on other sites More sharing options...
Romptroll Posted November 24, 2017 Author Share Posted November 24, 2017 9 minutes ago, Draco18s said: Look at the vanilla leaves classes. You may even want to just extend BlockLeavesBase. I have already done that but to no help? Quote Link to comment Share on other sites More sharing options...
Draco18s Posted November 24, 2017 Share Posted November 24, 2017 Have you looked at shouldSideBeRendered()? Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given. Link to comment Share on other sites More sharing options...
Romptroll Posted November 25, 2017 Author Share Posted November 25, 2017 12 hours ago, Draco18s said: Have you looked at shouldSideBeRendered()? Yes i have looked at should shouldSideBeRendered() Quote Link to comment Share on other sites More sharing options...
Romptroll Posted November 25, 2017 Author Share Posted November 25, 2017 Help anybody? Quote Link to comment Share on other sites More sharing options...
Romptroll Posted November 26, 2017 Author Share Posted November 26, 2017 sry im new to the forums Quote Link to comment Share on other sites More sharing options...
Romptroll Posted November 26, 2017 Author Share Posted November 26, 2017 package romptroll.twot.objects.blocks; import java.util.List; import java.util.Random; import javax.annotation.Nonnull; import javax.annotation.Nullable; import com.google.common.base.Predicate; import romptroll.twot.TwoTMod; import romptroll.twot.init.BlockInit; import romptroll.twot.init.ItemInit; import romptroll.twot.objects.blocks.item.ItemBlockVariants; import romptroll.twot.util.handlers.EnumHandler; import romptroll.twot.util.interfaces.IHasModel; import romptroll.twot.util.interfaces.IMetaName; import net.minecraft.block.Block; import net.minecraft.block.BlockLeaves; import net.minecraft.block.BlockPlanks.EnumType; import net.minecraft.block.SoundType; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; 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.ItemStack; import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; 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; public class BlockLeaf extends BlockLeaves implements IMetaName, IHasModel { protected boolean leavesFancy; public static final PropertyEnum<EnumHandler.EnumType> VARIANT = PropertyEnum.<EnumHandler.EnumType>create("variant", EnumHandler.EnumType.class, new Predicate<EnumHandler.EnumType>() { public boolean apply(@Nullable EnumHandler.EnumType apply) { return apply.getMeta() < 2; } }); private String name; public BlockLeaf(String name) { setUnlocalizedName(name); setRegistryName(name); setSoundType(SoundType.PLANT); setDefaultState(this.blockState.getBaseState().withProperty(VARIANT, EnumHandler.EnumType.GREEN_OAK).withProperty(CHECK_DECAY, Boolean.valueOf(true)).withProperty(DECAYABLE, Boolean.valueOf(true))); setCreativeTab(TwoTMod.TWOTTAB); this.name = name; BlockInit.BLOCKS.add(this); ItemInit.ITEMS.add(new ItemBlockVariants(this).setRegistryName(this.getRegistryName())); } @Override public void updateTick(World worldIn, @Nonnull BlockPos pos, @Nonnull IBlockState state, Random rand) { super.updateTick(worldIn, pos, state, rand); } @Override public IBlockState getStateFromMeta(int meta) { return this.getDefaultState().withProperty(VARIANT, EnumHandler.EnumType.byMetadata(meta % 2)); } @Override public int getMetaFromState(IBlockState state) { int i = ((EnumHandler.EnumType)state.getValue(VARIANT)).getMeta(); if(!((Boolean)state.getValue(DECAYABLE)).booleanValue()) { i |= 2; } if(!((Boolean)state.getValue(CHECK_DECAY)).booleanValue()) { i |= 4; } return i; } @Override public void getSubBlocks(CreativeTabs itemIn, NonNullList<ItemStack> items) { for(EnumHandler.EnumType customblockplanks$enumtype : EnumHandler.EnumType.values()) { items.add(new ItemStack(this, 1, customblockplanks$enumtype.getMeta())); } } @Override protected ItemStack getSilkTouchDrop(IBlockState state) { return new ItemStack(Item.getItemFromBlock(this), 1, ((EnumHandler.EnumType)state.getValue(VARIANT)).getMeta()); } @Override public int damageDropped(IBlockState state) { return ((EnumHandler.EnumType)state.getValue(VARIANT)).getMeta(); } @Override public String getSpecialName(ItemStack stack) { return EnumHandler.EnumType.values()[stack.getItemDamage()].getName(); } @Override protected void dropApple(World worldIn, BlockPos pos, IBlockState state, int chance) {return;} @Override protected int getSaplingDropChance(IBlockState state) {return 30;} @Override public EnumType getWoodType(int meta) {return null;} @Override public List<ItemStack> onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune) { return NonNullList.withSize(1, new ItemStack(this, 1, world.getBlockState(pos).getValue(VARIANT).getMeta())); } @Override protected BlockStateContainer createBlockState() { return new BlockStateContainer(this, new IProperty[] {VARIANT,DECAYABLE,CHECK_DECAY}); } @SideOnly(Side.CLIENT) public void setGraphicsLevel(boolean fancy) { this.leavesFancy = fancy; } @Override public boolean isOpaqueCube(IBlockState state) { return Blocks.LEAVES.isOpaqueCube(state); } @Nonnull @SideOnly(Side.CLIENT) @Override public BlockRenderLayer getBlockLayer() { return Blocks.LEAVES.getBlockLayer(); } @Override public boolean shouldSideBeRendered(@Nonnull IBlockState blockState, @Nonnull IBlockAccess blockAccess, @Nonnull BlockPos pos, @Nonnull EnumFacing side) { this.leavesFancy = !Blocks.LEAVES.isOpaqueCube(blockState); return super.shouldSideBeRendered(blockState, blockAccess, pos, side); } public boolean causesSuffocation(IBlockState state) { return false; } @Override public void registerModels() { for(int i = 0; i < EnumHandler.EnumType.values().length; i++) { TwoTMod.proxy.registerVariantRenderer(Item.getItemFromBlock(this), i, "leaves_" + EnumHandler.EnumType.values()[i].getName(), "inventory"); } } @Override public boolean isLeaves(IBlockState state, IBlockAccess world, BlockPos pos) { return true; } } Quote Link to comment Share on other sites More sharing options...
ArmamentHaki Posted November 26, 2017 Share Posted November 26, 2017 (edited) Try to return "shouldSideBeRendered()" true or test if it does return true. Also, setGraphicsLevel() changes leavesFancy, and I think that Minecraft normally renders the leaves transparent if it is true Edited November 26, 2017 by ArmamentHaki 1 Quote Link to comment Share on other sites More sharing options...
Romptroll Posted November 26, 2017 Author Share Posted November 26, 2017 2 hours ago, ArmamentHaki said: Try to return "shouldSideBeRendered()" true or test if it does return true. Also, setGraphicsLevel() changes leavesFancy, and I think that Minecraft normally renders the leaves transparent if it is true Thanks it now works! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.