Posted October 13, 20169 yr So i made glass slabs wich are working fine except for the drops. I know (think) i can set the quantitydropped to 0, so there will be no drops at all. So i use the cansilkharvest() to be able to get the slab with silktouch. At this point everything works fine. But if i mine the double slab nothing drops. Ofcourse i have to define it somewhere somehow, but i don't know it. In 1.7.10 i used this method: @Override protected ItemStack createStackedBlock(int par1) { int drops=0; if (this.isdouble==true){ drops=2; } if (this.isdouble==false){ drops=1 ; } return new ItemStack(slab, drops, par1 & 7); } Alot has changed since 1.7.10 and don't know an alternative for 1.10.2 This is my BlockGlassBlockSlab.class: public abstract class BlockGlassBlockSlab1 extends BlockSlab implements IMetaBlockName{ public static final PropertyEnum TYPE = PropertyEnum.create("type", BlockGlassBlockSlab1.EnumType.class); public BlockGlassBlockSlab1(String unlocalname, String registryname) { super(Material.GLASS); setUnlocalizedName(unlocalname); setRegistryName(registryname); useNeighborBrightness = true; setHardness(0.3F); //setResistance(10.0F); setSoundType(SoundType.GLASS); setCreativeTab(Tem.blockstab); IBlockState state = this.blockState.getBaseState(); state.withProperty(TYPE, EnumType.WHITE); if(!this.isDouble()){ state.withProperty(HALF, EnumBlockHalf.BOTTOM); } setDefaultState(state); } @Override public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isRemote) { BlockBeacon.updateColorAsync(worldIn, pos); } } @Override public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isRemote) { BlockBeacon.updateColorAsync(worldIn, pos); } } @Override protected boolean canSilkHarvest() { return true; } @Override public boolean isFullCube(IBlockState state) { return false; } @Override @SideOnly(Side.CLIENT) public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.TRANSLUCENT; } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Item.getItemFromBlock(ModBlocks.glassslab1); } @Override public int quantityDropped(Random random) { return 0;//this.isDouble() ? 2 : 1; } @Override public int damageDropped (IBlockState state){ return ((BlockGlassBlockSlab1.EnumType) state.getValue(TYPE)).getID(); } @Override public String getUnlocalizedName(int meta){ return this.getUnlocalizedName() + "_" + EnumType.values()[meta]; } @Override public Comparable<?> getTypeForItem(ItemStack stack) { // TODO Auto-generated method stub return BlockGlassBlockSlab1.EnumType.byMetadata(stack.getMetadata() & 7); } @Override public IProperty<?> getVariantProperty(){ return TYPE; } @Override public final IBlockState getStateFromMeta (int meta){ IBlockState blockstate = this.getDefaultState(); blockstate = blockstate.withProperty(TYPE,BlockGlassBlockSlab1.EnumType.byMetadata(meta & 7)); if(!this.isDouble()){ blockstate = blockstate.withProperty(HALF, (meta & 8 ) == 8 ? EnumBlockHalf.BOTTOM : EnumBlockHalf.TOP); } return blockstate; } @Override public final int getMetaFromState(IBlockState state){ int meta = ((BlockGlassBlockSlab1.EnumType) state.getValue(TYPE)).getID(); if (!this.isDouble() && state.getValue(HALF) == EnumBlockHalf.TOP){ meta |=8; } return meta; } @Override protected final BlockStateContainer createBlockState(){ if (this.isDouble()){ return new BlockStateContainer(this, getVariantProperty()); } else { return new BlockStateContainer(this, getVariantProperty(), HALF); } } @Override public void getSubBlocks(Item itemIn, CreativeTabs tab, List list) { for (EnumType t : EnumType.values()) list.add(new ItemStack(itemIn, 1, t.ordinal())); } @Override public String getSpecialName(ItemStack stack) { return EnumType.values()[stack.getItemDamage()].name().toLowerCase(); } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { return getItem(world, pos, state); } public enum EnumType implements IStringSerializable{ WHITE(0, "white"), ORANGE(1, "orange"), MAGENTA(2, "magenta"), LIGHTBLUE(3, "light_blue"), YELLOW(4, "yellow"), LIME(5, "lime"), PINK(6, "pink"), GRAY(7, "gray"); //SILVER(8, "silver"), CYAN(9, "cyan"), PURPLE(10, "purple"), BLUE(11, "blue"), BROWN(12, "brown"), GREEN(13, "green"), RED(14, "red"), BLACK(15, "black"); private static final BlockGlassBlockSlab1.EnumType[] META_LOOKUP = new BlockGlassBlockSlab1.EnumType[values().length]; private int ID; private String name; private EnumType(int ID, String name) { this.ID = ID; this.name = name; } @Override public String getName() { return name; } public int getID() { return ID; } @Override public String toString() { return getName(); } public static BlockGlassBlockSlab1.EnumType byMetadata(int meta) { if (meta < 0 || meta >= META_LOOKUP.length) { meta = 0; } return META_LOOKUP[meta]; } static { for (BlockGlassBlockSlab1.EnumType types : values()) { META_LOOKUP[types.getID()] = types; } } } } Here is my current slab class: public abstract class BlockGlassBlockSlab1 extends BlockSlab implements IMetaBlockName{ public static final PropertyEnum TYPE = PropertyEnum.create("type", BlockGlassBlockSlab1.EnumType.class); public BlockGlassBlockSlab1(String unlocalname, String registryname) { super(Material.GLASS); setUnlocalizedName(unlocalname); setRegistryName(registryname); useNeighborBrightness = true; setHardness(0.3F); //setResistance(10.0F); setSoundType(SoundType.GLASS); setCreativeTab(Tem.blockstab); IBlockState state = this.blockState.getBaseState(); state.withProperty(TYPE, EnumType.WHITE); if(!this.isDouble()){ state.withProperty(HALF, EnumBlockHalf.BOTTOM); } setDefaultState(state); } @Override public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isRemote) { BlockBeacon.updateColorAsync(worldIn, pos); } } @Override public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isRemote) { BlockBeacon.updateColorAsync(worldIn, pos); } } @Override protected boolean canSilkHarvest() { return true; } @Override public boolean isOpaqueCube(IBlockState state) { return false; } @Override public boolean isFullCube(IBlockState state) { return false; } @Override @SideOnly(Side.CLIENT) public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.TRANSLUCENT; } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Item.getItemFromBlock(ModBlocks.glassslab1); } @Override protected ItemStack createStackedBlock(IBlockState state){ int type = ((BlockGlassBlockSlab1.EnumType) state.getValue(TYPE)).getID(); int drops =0; if(this.isDouble()){drops=2;} else {drops=1;} return new ItemStack(ModBlocks.glassslab1,drops,type); } @Override public int quantityDropped(Random random) { return 0;//this.isDouble() ? 2 : 1; } @Override public int damageDropped (IBlockState state){ return ((BlockGlassBlockSlab1.EnumType) state.getValue(TYPE)).getID(); } @Override public String getUnlocalizedName(int meta){ return this.getUnlocalizedName() + "_" + EnumType.values()[meta]; } @Override public Comparable<?> getTypeForItem(ItemStack stack) { // TODO Auto-generated method stub return BlockGlassBlockSlab1.EnumType.byMetadata(stack.getMetadata() & 7); } @Override public IProperty<?> getVariantProperty(){ return TYPE; } @Override public final IBlockState getStateFromMeta (int meta){ IBlockState blockstate = this.getDefaultState(); blockstate = blockstate.withProperty(TYPE,BlockGlassBlockSlab1.EnumType.byMetadata(meta & 7)); if(!this.isDouble()){ blockstate = blockstate.withProperty(HALF, (meta & 8 ) == 8 ? EnumBlockHalf.BOTTOM : EnumBlockHalf.TOP); } return blockstate; } @Override public final int getMetaFromState(IBlockState state){ int meta = ((BlockGlassBlockSlab1.EnumType) state.getValue(TYPE)).getID(); if (!this.isDouble() && state.getValue(HALF) == EnumBlockHalf.TOP){ meta |=8; } return meta; } @Override protected final BlockStateContainer createBlockState(){ if (this.isDouble()){ return new BlockStateContainer(this, getVariantProperty()); } else { return new BlockStateContainer(this, getVariantProperty(), HALF); } } @Override public void getSubBlocks(Item itemIn, CreativeTabs tab, List list) { for (EnumType t : EnumType.values()) list.add(new ItemStack(itemIn, 1, t.ordinal())); } @Override public String getSpecialName(ItemStack stack) { return EnumType.values()[stack.getItemDamage()].name().toLowerCase(); } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { return getItem(world, pos, state); } public enum EnumType implements IStringSerializable{ WHITE(0, "white"), ORANGE(1, "orange"), MAGENTA(2, "magenta"), LIGHTBLUE(3, "light_blue"), YELLOW(4, "yellow"), LIME(5, "lime"), PINK(6, "pink"), GRAY(7, "gray"); //SILVER(8, "silver"), CYAN(9, "cyan"), PURPLE(10, "purple"), BLUE(11, "blue"), BROWN(12, "brown"), GREEN(13, "green"), RED(14, "red"), BLACK(15, "black"); private static final BlockGlassBlockSlab1.EnumType[] META_LOOKUP = new BlockGlassBlockSlab1.EnumType[values().length]; private int ID; private String name; private EnumType(int ID, String name) { this.ID = ID; this.name = name; } @Override public String getName() { return name; } public int getID() { return ID; } @Override public String toString() { return getName(); } public static BlockGlassBlockSlab1.EnumType byMetadata(int meta) { if (meta < 0 || meta >= META_LOOKUP.length) { meta = 0; } return META_LOOKUP[meta]; } static { for (BlockGlassBlockSlab1.EnumType types : values()) { META_LOOKUP[types.getID()] = types; } } } } Try out my new Modpack for MC 1.15.2 https://www.curseforge.com/minecraft/modpacks/terran-civilization
October 13, 20169 yr Override protected ItemStack createStackedBlock(IBlockState state) 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.
October 13, 20169 yr Author Ok thank you that fixed it. How do i prevent that you look thrue the world? Do i need to override this method: public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) I think i do, because it only checks for this == Blocks.GLASS || this == Blocks.STAINED_GLASS this is how it looks like: @SideOnly(Side.CLIENT) public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side) { IBlockState iblockstate = blockAccess.getBlockState(pos.offset(side)); Block block = iblockstate.getBlock(); if (this == Blocks.GLASS || this == Blocks.STAINED_GLASS) { if (blockState != iblockstate) { return true; } if (block == this) { return false; } } return !this.ignoreSimilarity && block == this ? false : super.shouldSideBeRendered(blockState, blockAccess, pos, side); } and this line looks like this: return !this.ignoreSimilarity && block == this ? false : super.shouldSideBeRendered(blockState, blockAccess, pos, side); Try out my new Modpack for MC 1.15.2 https://www.curseforge.com/minecraft/modpacks/terran-civilization
October 13, 20169 yr @Override @SideOnly(Side.CLIENT) public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.CUTOUT; } Use CUTOUT or TRANSLUCENT as appropriate. 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.
October 13, 20169 yr Author @Override @SideOnly(Side.CLIENT) public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.CUTOUT; } Use CUTOUT or TRANSLUCENT as appropriate. I already implemented that but this do something else. I Need something that prevents seeing thru the blocks. The block beneath the glassslab has no texture. Try out my new Modpack for MC 1.15.2 https://www.curseforge.com/minecraft/modpacks/terran-civilization
October 13, 20169 yr @Override public boolean isOpaqueCube(IBlockState state) { return false; } @Override public boolean isFullCube(IBlockState state) { return false; } @Override @SideOnly(Side.CLIENT) public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.CUTOUT; } 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.
October 13, 20169 yr Author Yeah i already tried this before but it gave me a crash, so i thought i did it wrong. So here is the crash: [22:11:38] [Client thread/FATAL]: Reported exception thrown! net.minecraft.util.ReportedException: Tesselating block model at net.minecraft.client.renderer.BlockRendererDispatcher.renderBlock(BlockRendererDispatcher.java:96) ~[blockRendererDispatcher.class:?] at net.minecraft.client.renderer.chunk.RenderChunk.rebuildChunk(RenderChunk.java:199) ~[RenderChunk.class:?] at net.minecraft.client.renderer.chunk.ChunkRenderWorker.processTask(ChunkRenderWorker.java:122) ~[ChunkRenderWorker.class:?] at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher.updateChunkNow(ChunkRenderDispatcher.java:171) ~[ChunkRenderDispatcher.class:?] at net.minecraft.client.renderer.RenderGlobal.setupTerrain(RenderGlobal.java:977) ~[RenderGlobal.class:?] at net.minecraft.client.renderer.EntityRenderer.renderWorldPass(EntityRenderer.java:1339) ~[EntityRenderer.class:?] at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1282) ~[EntityRenderer.class:?] at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1091) ~[EntityRenderer.class:?] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1139) ~[Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:406) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_73] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_73] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_73] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_73] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_73] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_73] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_73] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_73] at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?] at GradleStart.main(GradleStart.java:26) [start/:?] Caused by: java.lang.IllegalArgumentException: Cannot get property PropertyEnum{name=half, clazz=class net.minecraft.block.BlockSlab$EnumBlockHalf, values=[top, bottom]} as it does not exist in BlockStateContainer{block=tem:glassdoubleslab1, properties=[type]} at net.minecraft.block.state.BlockStateContainer$StateImplementation.getValue(BlockStateContainer.java:196) ~[blockStateContainer$StateImplementation.class:?] at net.minecraft.block.BlockSlab.doesSideBlockRendering(BlockSlab.java:68) ~[blockSlab.class:?] at net.minecraft.block.state.BlockStateContainer$StateImplementation.doesSideBlockRendering(BlockStateContainer.java:513) ~[blockStateContainer$StateImplementation.class:?] at net.minecraft.block.Block.shouldSideBeRendered(Block.java:543) ~[block.class:?] at net.minecraft.block.state.BlockStateContainer$StateImplementation.shouldSideBeRendered(BlockStateContainer.java:428) ~[blockStateContainer$StateImplementation.class:?] at net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer.render(ForgeBlockModelRenderer.java:132) ~[ForgeBlockModelRenderer.class:?] at net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer.renderModelSmooth(ForgeBlockModelRenderer.java:103) ~[ForgeBlockModelRenderer.class:?] at net.minecraft.client.renderer.BlockModelRenderer.renderModel(BlockModelRenderer.java:46) ~[blockModelRenderer.class:?] at net.minecraft.client.renderer.BlockModelRenderer.renderModel(BlockModelRenderer.java:37) ~[blockModelRenderer.class:?] at net.minecraft.client.renderer.BlockRendererDispatcher.renderBlock(BlockRendererDispatcher.java:81) ~[blockRendererDispatcher.class:?] ... 22 more [22:11:38] [Client thread/INFO] [sTDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:649]: ---- Minecraft Crash Report ---- // I'm sorry, Dave. Time: 13-10-16 22:11 Description: Tesselating block model java.lang.IllegalArgumentException: Cannot get property PropertyEnum{name=half, clazz=class net.minecraft.block.BlockSlab$EnumBlockHalf, values=[top, bottom]} as it does not exist in BlockStateContainer{block=tem:glassdoubleslab1, properties=[type]} at net.minecraft.block.state.BlockStateContainer$StateImplementation.getValue(BlockStateContainer.java:196) at net.minecraft.block.BlockSlab.doesSideBlockRendering(BlockSlab.java:68) at net.minecraft.block.state.BlockStateContainer$StateImplementation.doesSideBlockRendering(BlockStateContainer.java:513) at net.minecraft.block.Block.shouldSideBeRendered(Block.java:543) at net.minecraft.block.state.BlockStateContainer$StateImplementation.shouldSideBeRendered(BlockStateContainer.java:428) at net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer.render(ForgeBlockModelRenderer.java:132) at net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer.renderModelSmooth(ForgeBlockModelRenderer.java:103) at net.minecraft.client.renderer.BlockModelRenderer.renderModel(BlockModelRenderer.java:46) at net.minecraft.client.renderer.BlockModelRenderer.renderModel(BlockModelRenderer.java:37) at net.minecraft.client.renderer.BlockRendererDispatcher.renderBlock(BlockRendererDispatcher.java:81) at net.minecraft.client.renderer.chunk.RenderChunk.rebuildChunk(RenderChunk.java:199) at net.minecraft.client.renderer.chunk.ChunkRenderWorker.processTask(ChunkRenderWorker.java:122) at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher.updateChunkNow(ChunkRenderDispatcher.java:171) at net.minecraft.client.renderer.RenderGlobal.setupTerrain(RenderGlobal.java:977) at net.minecraft.client.renderer.EntityRenderer.renderWorldPass(EntityRenderer.java:1339) at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1282) at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1091) at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1139) at net.minecraft.client.Minecraft.run(Minecraft.java:406) at net.minecraft.client.main.Main.main(Main.java:118) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) at GradleStart.main(GradleStart.java:26) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Client thread Stacktrace: at net.minecraft.block.state.BlockStateContainer$StateImplementation.getValue(BlockStateContainer.java:196) at net.minecraft.block.BlockSlab.doesSideBlockRendering(BlockSlab.java:68) at net.minecraft.block.state.BlockStateContainer$StateImplementation.doesSideBlockRendering(BlockStateContainer.java:513) at net.minecraft.block.Block.shouldSideBeRendered(Block.java:543) at net.minecraft.block.state.BlockStateContainer$StateImplementation.shouldSideBeRendered(BlockStateContainer.java:428) at net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer.render(ForgeBlockModelRenderer.java:132) at net.minecraftforge.client.model.pipeline.ForgeBlockModelRenderer.renderModelSmooth(ForgeBlockModelRenderer.java:103) -- Block model being tesselated -- Details: Block: minecraft:grass[snowy=false] Block location: World: (-226,71,216), Chunk: (at 14,4,8 in -15,13; contains blocks -240,0,208 to -225,255,223), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Using AO: true Stacktrace: at net.minecraft.client.renderer.BlockModelRenderer.renderModel(BlockModelRenderer.java:46) at net.minecraft.client.renderer.BlockModelRenderer.renderModel(BlockModelRenderer.java:37) -- Block being tesselated -- Details: Block type: ID #2 (tile.grass // net.minecraft.block.BlockGrass) Block data value: 0 / 0x0 / 0b0000 Block location: World: (-226,71,216), Chunk: (at 14,4,8 in -15,13; contains blocks -240,0,208 to -225,255,223), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Stacktrace: at net.minecraft.client.renderer.BlockRendererDispatcher.renderBlock(BlockRendererDispatcher.java:81) at net.minecraft.client.renderer.chunk.RenderChunk.rebuildChunk(RenderChunk.java:199) at net.minecraft.client.renderer.chunk.ChunkRenderWorker.processTask(ChunkRenderWorker.java:122) at net.minecraft.client.renderer.chunk.ChunkRenderDispatcher.updateChunkNow(ChunkRenderDispatcher.java:171) at net.minecraft.client.renderer.RenderGlobal.setupTerrain(RenderGlobal.java:977) at net.minecraft.client.renderer.EntityRenderer.renderWorldPass(EntityRenderer.java:1339) at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1282) -- Affected level -- Details: Level name: MpServer All players: 1 total; [EntityPlayerSP['Player387'/408, l='MpServer', x=-224,53, y=72,00, z=214,76]] Chunk stats: MultiplayerChunkCache: 596, 596 Level seed: 0 Level generator: ID 00 - default, ver 1. Features enabled: false Level generator options: Level spawn location: World: (-188,64,256), Chunk: (at 4,4,0 in -12,16; contains blocks -192,0,256 to -177,255,271), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Level time: 70693 game time, 11486 day time Level dimension: 0 Level storage version: 0x00000 - Unknown? Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Forced entities: 141 total; [EntityItem['item.item.egg'/256, l='MpServer', x=-168,35, y=90,00, z=266,66], EntityZombie['Zombie'/257, l='MpServer', x=-163,81, y=42,00, z=277,57], EntityChicken['Chicken'/258, l='MpServer', x=-166,12, y=87,00, z=286,51], EntityChicken['Chicken'/261, l='MpServer', x=-160,59, y=87,00, z=289,17], EntityPig['Pig'/270, l='MpServer', x=-159,24, y=72,00, z=150,56], EntityPig['Pig'/271, l='MpServer', x=-157,17, y=71,00, z=164,33], EntityEnderman['Enderman'/272, l='MpServer', x=-149,50, y=33,00, z=177,50], EntityEnderman['Enderman'/273, l='MpServer', x=-149,50, y=33,00, z=177,50], EntityBat['Bat'/274, l='MpServer', x=-148,70, y=51,10, z=248,70], EntityBat['Bat'/275, l='MpServer', x=-154,76, y=45,10, z=272,25], EntityChicken['Chicken'/276, l='MpServer', x=-153,49, y=90,00, z=292,15], EntityPig['Pig'/55, l='MpServer', x=-301,52, y=68,00, z=135,72], EntityPig['Pig'/68, l='MpServer', x=-303,53, y=67,00, z=151,29], EntityPig['Pig'/69, l='MpServer', x=-300,86, y=65,00, z=167,49], EntityChicken['Chicken'/71, l='MpServer', x=-303,19, y=65,00, z=174,59], EntityPig['Pig'/74, l='MpServer', x=-302,50, y=65,00, z=168,75], EntityChicken['Chicken'/75, l='MpServer', x=-288,10, y=71,00, z=166,37], EntityChicken['Chicken'/76, l='MpServer', x=-290,74, y=65,00, z=191,23], EntityChicken['Chicken'/78, l='MpServer', x=-289,44, y=68,00, z=196,10], EntityCreeper['Creeper'/79, l='MpServer', x=-299,50, y=23,00, z=238,50], EntitySkeleton['Skeleton'/80, l='MpServer', x=-290,50, y=47,00, z=276,50], EntitySkeleton['Skeleton'/81, l='MpServer', x=-291,50, y=47,00, z=280,50], EntityZombie['Zombie'/82, l='MpServer', x=-291,51, y=49,00, z=272,77], EntitySkeleton['Skeleton'/89, l='MpServer', x=-277,50, y=28,00, z=147,50], EntitySkeleton['Skeleton'/90, l='MpServer', x=-277,50, y=28,00, z=147,50], EntityItem['item.item.egg'/91, l='MpServer', x=-284,53, y=67,00, z=163,60], EntityChicken['Chicken'/92, l='MpServer', x=-283,80, y=70,00, z=173,50], EntityChicken['Chicken'/94, l='MpServer', x=-274,52, y=71,00, z=177,19], EntityChicken['Chicken'/95, l='MpServer', x=-279,75, y=65,00, z=199,49], EntityItem['item.item.egg'/96, l='MpServer', x=-282,90, y=64,00, z=197,78], EntityChicken['Chicken'/97, l='MpServer', x=-284,50, y=67,00, z=192,43], EntityCreeper['Creeper'/98, l='MpServer', x=-286,50, y=49,00, z=273,50], EntityZombie['entity.Zombie.name'/99, l='MpServer', x=-273,77, y=62,00, z=282,50], EntityZombie['Zombie'/100, l='MpServer', x=-279,70, y=63,00, z=282,30], EntityPig['Pig'/102, l='MpServer', x=-277,48, y=72,00, z=292,73], EntityChicken['Chicken'/109, l='MpServer', x=-267,20, y=69,00, z=163,52], EntityChicken['Chicken'/110, l='MpServer', x=-262,79, y=70,00, z=171,50], EntityItem['item.item.egg'/111, l='MpServer', x=-266,13, y=68,00, z=168,74], EntityItem['item.item.egg'/112, l='MpServer', x=-267,45, y=68,00, z=164,44], EntityChicken['Chicken'/113, l='MpServer', x=-268,79, y=69,00, z=161,44], EntityCreeper['Creeper'/114, l='MpServer', x=-261,82, y=48,00, z=183,58], EntityWitch['Witch'/115, l='MpServer', x=-258,28, y=48,00, z=231,98], EntitySkeleton['Skeleton'/116, l='MpServer', x=-268,21, y=61,00, z=234,50], EntityItem['item.item.egg'/117, l='MpServer', x=-259,59, y=74,00, z=237,88], EntityZombie['Zombie'/118, l='MpServer', x=-264,50, y=21,00, z=255,81], EntityChicken['Chicken'/119, l='MpServer', x=-258,50, y=81,00, z=244,13], EntityCreeper['Creeper'/120, l='MpServer', x=-261,81, y=18,00, z=266,69], EntityCreeper['Creeper'/122, l='MpServer', x=-264,54, y=18,00, z=284,34], EntityCreeper['Creeper'/123, l='MpServer', x=-271,17, y=32,00, z=277,32], EntityCreeper['Creeper'/124, l='MpServer', x=-266,50, y=37,00, z=289,50], EntityCreeper['Creeper'/125, l='MpServer', x=-266,50, y=37,00, z=290,50], EntityCreeper['Creeper'/126, l='MpServer', x=-271,46, y=60,00, z=292,20], EntityCreeper['Creeper'/136, l='MpServer', x=-253,50, y=49,00, z=141,50], EntityCreeper['Creeper'/138, l='MpServer', x=-253,50, y=20,00, z=191,50], EntityBat['Bat'/139, l='MpServer', x=-249,51, y=49,10, z=183,61], EntityPig['Pig'/140, l='MpServer', x=-245,50, y=71,00, z=183,04], EntitySkeleton['Skeleton'/141, l='MpServer', x=-248,50, y=15,00, z=213,50], EntityBat['Bat'/142, l='MpServer', x=-246,75, y=40,10, z=219,25], EntityCreeper['Creeper'/143, l='MpServer', x=-253,50, y=27,00, z=278,22], EntityBat['Bat'/144, l='MpServer', x=-253,47, y=21,10, z=285,27], EntitySkeleton['Skeleton'/145, l='MpServer', x=-249,50, y=28,00, z=274,27], EntityZombie['Zombie'/146, l='MpServer', x=-253,77, y=58,00, z=275,51], EntityZombie['Zombie'/147, l='MpServer', x=-251,73, y=57,00, z=274,50], EntityPig['Pig'/159, l='MpServer', x=-225,32, y=71,00, z=142,55], EntityPig['Pig'/160, l='MpServer', x=-232,71, y=71,00, z=154,20], EntityPig['Pig'/161, l='MpServer', x=-229,56, y=61,00, z=167,43], EntityPig['Pig'/162, l='MpServer', x=-233,21, y=61,00, z=169,51], EntityPig['Pig'/163, l='MpServer', x=-237,26, y=70,00, z=173,50], EntityItem['item.item.egg'/164, l='MpServer', x=-229,83, y=70,00, z=168,93], EntityChicken['Chicken'/165, l='MpServer', x=-230,61, y=70,00, z=172,85], EntitySkeleton['Skeleton'/166, l='MpServer', x=-232,95, y=14,00, z=247,57], EntitySpider['Spider'/167, l='MpServer', x=-230,24, y=16,00, z=248,30], EntityZombie['Zombie'/168, l='MpServer', x=-224,49, y=14,00, z=258,81], EntityBat['Bat'/169, l='MpServer', x=-229,20, y=32,07, z=262,03], EntityBat['Bat'/180, l='MpServer', x=-209,40, y=44,10, z=190,75], EntityWolf['Wolf'/181, l='MpServer', x=-213,63, y=70,00, z=178,50], EntityVillager['Villager'/182, l='MpServer', x=-220,54, y=72,94, z=207,74], EntityItem['item.item.egg'/183, l='MpServer', x=-214,48, y=73,50, z=203,13], EntityChicken['Chicken'/184, l='MpServer', x=-223,90, y=72,00, z=214,15], EntityCreeper['Creeper'/185, l='MpServer', x=-210,28, y=63,00, z=234,53], EntityCreeper['Creeper'/186, l='MpServer', x=-219,30, y=68,00, z=239,30], EntityBat['Bat'/187, l='MpServer', x=-211,25, y=19,10, z=272,68], EntityBat['Bat'/188, l='MpServer', x=-222,75, y=33,10, z=257,75], EntityPig['Pig'/192, l='MpServer', x=-201,30, y=70,00, z=137,50], EntityZombie['Zombie'/193, l='MpServer', x=-197,77, y=16,18, z=146,28], EntityPig['Pig'/194, l='MpServer', x=-190,79, y=70,00, z=145,72], EntitySkeleton['Skeleton'/195, l='MpServer', x=-195,50, y=48,00, z=162,50], EntityChicken['Chicken'/196, l='MpServer', x=-194,77, y=74,00, z=169,52], EntityChicken['Chicken'/197, l='MpServer', x=-199,57, y=73,00, z=166,81], EntityItem['item.item.egg'/198, l='MpServer', x=-192,58, y=73,00, z=162,13], EntityItem['item.item.egg'/199, l='MpServer', x=-197,79, y=73,00, z=161,37], EntityBat['Bat'/200, l='MpServer', x=-198,92, y=44,12, z=183,56], EntityBat['Bat'/201, l='MpServer', x=-204,25, y=43,10, z=194,25], EntitySkeleton['Skeleton'/202, l='MpServer', x=-207,70, y=72,00, z=198,70], EntityVillager['Villager'/203, l='MpServer', x=-194,45, y=74,00, z=201,74], EntityWolf['Wolf'/204, l='MpServer', x=-207,58, y=72,00, z=203,44], EntityChicken['Chicken'/205, l='MpServer', x=-203,72, y=71,94, z=206,64], EntityCreeper['Creeper'/206, l='MpServer', x=-207,31, y=60,00, z=212,73], EntitySquid['Squid'/207, l='MpServer', x=-202,40, y=60,00, z=212,40], EntitySquid['Squid'/208, l='MpServer', x=-203,04, y=61,79, z=212,96], EntitySquid['Squid'/209, l='MpServer', x=-203,84, y=65,67, z=214,12], EntityVillager['Villager'/210, l='MpServer', x=-192,08, y=72,50, z=217,70], EntityPlayerSP['Player387'/408, l='MpServer', x=-224,53, y=72,00, z=214,76], EntitySquid['Squid'/212, l='MpServer', x=-202,83, y=65,69, z=211,70], EntityVillager['Villager'/213, l='MpServer', x=-199,19, y=71,94, z=211,97], EntityVillager['Villager'/214, l='MpServer', x=-200,65, y=71,00, z=210,50], EntityVillager['Villager'/215, l='MpServer', x=-198,31, y=71,94, z=211,86], EntitySquid['Squid'/216, l='MpServer', x=-203,98, y=65,61, z=213,14], EntitySquid['Squid'/217, l='MpServer', x=-202,40, y=64,82, z=212,04], EntityVillager['Villager'/218, l='MpServer', x=-192,53, y=72,00, z=217,07], EntityCreeper['Creeper'/219, l='MpServer', x=-203,50, y=27,00, z=231,50], EntityPig['Pig'/224, l='MpServer', x=-176,76, y=68,00, z=135,19], EntityZombie['Zombie'/226, l='MpServer', x=-180,76, y=15,00, z=138,50], EntitySkeleton['Skeleton'/227, l='MpServer', x=-177,50, y=21,00, z=156,50], EntityCreeper['Creeper'/228, l='MpServer', x=-178,50, y=21,00, z=153,50], EntitySkeleton['Skeleton'/229, l='MpServer', x=-176,24, y=21,00, z=158,47], EntityBat['Bat'/230, l='MpServer', x=-177,50, y=22,10, z=157,54], EntityWolf['Wolf'/231, l='MpServer', x=-188,43, y=73,00, z=158,52], EntityZombie['Zombie'/232, l='MpServer', x=-191,62, y=15,00, z=161,95], EntityEnderman['Enderman'/233, l='MpServer', x=-186,62, y=18,00, z=167,51], EntityChicken['Chicken'/234, l='MpServer', x=-181,16, y=73,00, z=161,38], EntityVillager['Villager'/235, l='MpServer', x=-185,29, y=77,00, z=194,33], EntitySkeleton['Skeleton'/236, l='MpServer', x=-184,50, y=17,00, z=216,50], EntitySkeleton['Skeleton'/237, l='MpServer', x=-180,50, y=17,00, z=218,50], EntitySkeleton['Skeleton'/238, l='MpServer', x=-179,50, y=17,00, z=218,50], EntityPig['Pig'/239, l='MpServer', x=-177,24, y=76,00, z=212,08], EntityVillager['Villager'/240, l='MpServer', x=-188,49, y=72,00, z=219,41], EntityVillager['Villager'/241, l='MpServer', x=-189,50, y=72,00, z=219,29], EntityPig['Pig'/242, l='MpServer', x=-177,28, y=75,00, z=214,48], EntityVillager['Villager'/243, l='MpServer', x=-179,48, y=73,94, z=217,45], EntityZombie['Zombie'/244, l='MpServer', x=-179,23, y=16,21, z=227,50], EntityZombie['Zombie'/245, l='MpServer', x=-187,56, y=46,00, z=253,76], EntityItem['item.item.egg'/246, l='MpServer', x=-182,89, y=72,00, z=244,93], EntityWolf['Wolf'/248, l='MpServer', x=-168,72, y=70,00, z=140,55], EntityWolf['Wolf'/249, l='MpServer', x=-169,70, y=68,00, z=136,70], EntityCreeper['Creeper'/250, l='MpServer', x=-175,91, y=21,00, z=157,45], EntityWolf['Wolf'/251, l='MpServer', x=-175,58, y=73,00, z=157,53], EntityWolf['Wolf'/252, l='MpServer', x=-166,54, y=78,00, z=192,56], EntityCreeper['Creeper'/253, l='MpServer', x=-175,50, y=16,00, z=227,50], EntityChicken['Chicken'/254, l='MpServer', x=-173,83, y=70,00, z=237,51], EntityChicken['Chicken'/255, l='MpServer', x=-169,22, y=90,00, z=266,49]] Retry entities: 0 total; [] Server brand: fml,forge Server type: Integrated singleplayer server Stacktrace: at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:451) at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2779) at net.minecraft.client.Minecraft.run(Minecraft.java:427) at net.minecraft.client.main.Main.main(Main.java:118) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) at GradleStart.main(GradleStart.java:26) Why do i get this btw: Caused by: java.lang.IllegalArgumentException: Cannot get property PropertyEnum{name=half, clazz=class net.minecraft.block.BlockSlab$EnumBlockHalf, values=[top, bottom]} as it does not exist in BlockStateContainer{block=tem:glassdoubleslab1, properties=[type]} I know this does not exist, there is no need of it either, but why is it looking for it? Try out my new Modpack for MC 1.15.2 https://www.curseforge.com/minecraft/modpacks/terran-civilization
October 14, 20169 yr Author I think the main cause is this error: Reported exception thrown! net.minecraft.util.ReportedException: Tesselating block model Can anyone help me? here my class: public abstract class BlockGlassBlockSlab1 extends BlockSlab implements IMetaBlockName{ public static final PropertyEnum TYPE = PropertyEnum.create("type", BlockGlassBlockSlab1.EnumType.class); public BlockGlassBlockSlab1(String unlocalname, String registryname) { super(Material.GLASS); setUnlocalizedName(unlocalname); setRegistryName(registryname); useNeighborBrightness = true; setHardness(0.3F); //setResistance(10.0F); setSoundType(SoundType.GLASS); setCreativeTab(Tem.blockstab); IBlockState state = this.blockState.getBaseState(); state.withProperty(TYPE, EnumType.WHITE); if(!this.isDouble()){ state.withProperty(HALF, EnumBlockHalf.BOTTOM); } setDefaultState(state); } @Override public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isRemote) { BlockBeacon.updateColorAsync(worldIn, pos); } } @Override public void breakBlock(World worldIn, BlockPos pos, IBlockState state) { if (!worldIn.isRemote) { BlockBeacon.updateColorAsync(worldIn, pos); } } @Override protected boolean canSilkHarvest() { return true; } @Override public boolean isOpaqueCube(IBlockState state) { return false; } @Override public boolean isFullCube(IBlockState state) { return this.isDouble(); } @Override @SideOnly(Side.CLIENT) public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.TRANSLUCENT; } @Override public Item getItemDropped(IBlockState state, Random rand, int fortune) { return Item.getItemFromBlock(ModBlocks.glassslab1); } @Override protected ItemStack createStackedBlock(IBlockState state){ int type = ((BlockGlassBlockSlab1.EnumType) state.getValue(TYPE)).getID(); int drops =0; if(this.isDouble()){drops=2;} else {drops=1;} return new ItemStack(ModBlocks.glassslab1,drops,type); } @Override public int quantityDropped(Random random) { return 0;//this.isDouble() ? 2 : 1; } @Override public int damageDropped (IBlockState state){ return ((BlockGlassBlockSlab1.EnumType) state.getValue(TYPE)).getID(); } @Override public String getUnlocalizedName(int meta){ return this.getUnlocalizedName() + "_" + EnumType.values()[meta]; } @Override public Comparable<?> getTypeForItem(ItemStack stack) { // TODO Auto-generated method stub return BlockGlassBlockSlab1.EnumType.byMetadata(stack.getMetadata() & 7); } @Override public IProperty<?> getVariantProperty(){ return TYPE; } @Override public final IBlockState getStateFromMeta (int meta){ IBlockState blockstate = this.getDefaultState(); blockstate = blockstate.withProperty(TYPE,BlockGlassBlockSlab1.EnumType.byMetadata(meta & 7)); if(!this.isDouble()){ blockstate = blockstate.withProperty(HALF, (meta & 8 ) == 8 ? EnumBlockHalf.BOTTOM : EnumBlockHalf.TOP); } return blockstate; } @Override public final int getMetaFromState(IBlockState state){ int meta = ((BlockGlassBlockSlab1.EnumType) state.getValue(TYPE)).getID(); if (!this.isDouble() && state.getValue(HALF) == EnumBlockHalf.TOP){ meta |=8; } return meta; } @Override protected final BlockStateContainer createBlockState(){ if (this.isDouble()){ return new BlockStateContainer(this, getVariantProperty()); } else { return new BlockStateContainer(this, getVariantProperty(), HALF); } } @Override public void getSubBlocks(Item itemIn, CreativeTabs tab, List list) { for (EnumType t : EnumType.values()) list.add(new ItemStack(itemIn, 1, t.ordinal())); } @Override public String getSpecialName(ItemStack stack) { return EnumType.values()[stack.getItemDamage()].name().toLowerCase(); } @Override public ItemStack getPickBlock(IBlockState state, RayTraceResult target, World world, BlockPos pos, EntityPlayer player) { return getItem(world, pos, state); } public enum EnumType implements IStringSerializable{ WHITE(0, "white"), ORANGE(1, "orange"), MAGENTA(2, "magenta"), LIGHTBLUE(3, "light_blue"), YELLOW(4, "yellow"), LIME(5, "lime"), PINK(6, "pink"), GRAY(7, "gray"); //SILVER(8, "silver"), CYAN(9, "cyan"), PURPLE(10, "purple"), BLUE(11, "blue"), BROWN(12, "brown"), GREEN(13, "green"), RED(14, "red"), BLACK(15, "black"); private static final BlockGlassBlockSlab1.EnumType[] META_LOOKUP = new BlockGlassBlockSlab1.EnumType[values().length]; private int ID; private String name; private EnumType(int ID, String name) { this.ID = ID; this.name = name; } @Override public String getName() { return name; } public int getID() { return ID; } @Override public String toString() { return getName(); } public static BlockGlassBlockSlab1.EnumType byMetadata(int meta) { if (meta < 0 || meta >= META_LOOKUP.length) { meta = 0; } return META_LOOKUP[meta]; } static { for (BlockGlassBlockSlab1.EnumType types : values()) { META_LOOKUP[types.getID()] = types; } } } } I also keep having this problem: Try out my new Modpack for MC 1.15.2 https://www.curseforge.com/minecraft/modpacks/terran-civilization
October 14, 20169 yr Author I found a solution for this crash. I have been searching the web and found the solution in this post: http://www.minecraftforge.net/forum/index.php?topic=39109.0 Here is what i added for 1.10.2 in my glassslabblock class: @Override public boolean doesSideBlockRendering(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing face) { if(this.blockState.getBaseState().getMaterial().equals(Material.GLASS)) return Blocks.GLASS.doesSideBlockRendering(state, world, pos, face); else return super.doesSideBlockRendering(state, world, pos, face); } I didn't knew it had to be implented because in the class BlockBreakable it isn't there. Try out my new Modpack for MC 1.15.2 https://www.curseforge.com/minecraft/modpacks/terran-civilization
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.