UltraTechX Posted October 3, 2015 Posted October 3, 2015 I have these 3 json files to tell my block how to work with the given states: railControlBlock.json (blockstate): { "variants": { "normal": { "model": "generic:railControlBlock" }, "part=middle,shape=north_south": { "model": "generic:railControlBlock" }, "shape=ascending_east": { "model": "generic:railControlBlock", "y": 90 }, "shape=ascending_west": { "model": "generic:railControlBlock", "y": 90 }, "shape=ascending_north": { "model": "generic:railControlBlock" }, "shape=ascending_south": { "model": "generic:railControlBlock" }, "part=middle,shape=east_west": { "model": "generic:railControlBlock", "y": 90 }, "part=middle,shape=south_east": { "model": "generic:railControlBlock" }, "part=middle,shape=south_west": { "model": "generic:railControlBlock", "y": 90 }, "part=middle,shape=north_west": { "model": "generic:railControlBlock", "y": 180 }, "part=middle,shape=north_east": { "model": "generic:railControlBlock", "y": 270 } } } controlRail.json (block model): { "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", "textures": { "particle": "generic:blocks/railControlBlock", "0": "generic:blocks/railControlBlock" }, "elements": [ { "name": "rail bottom", "from": [ 0.0, 0.0, 13.0 ], "to": [ 16.0, 1.0, 15.0 ], "faces": { "north": { "texture": "#0", "uv": [ 11.0, 10.0, 12.0, 11.0 ] }, "east": { "texture": "#0", "uv": [ 11.0, 5.0, 13.0, 6.0 ] }, "south": { "texture": "#0", "uv": [ 12.0, 6.0, 13.0, 5.0 ] }, "west": { "texture": "#0", "uv": [ 13.0, 10.0, 11.0, 11.0 ] }, "up": { "texture": "#0", "uv": [ 11.0, 9.0, 13.0, 10.0 ] }, "down": { "texture": "#0", "uv": [ 11.0, 10.0, 13.0, 11.0 ] } } }, { "name": "rail bottom", "from": [ 0.0, 0.0, 9.0 ], "to": [ 16.0, 1.0, 11.0 ], "faces": { "north": { "texture": "#0", "uv": [ 11.0, 10.0, 12.0, 11.0 ] }, "east": { "texture": "#0", "uv": [ 11.0, 5.0, 13.0, 6.0 ] }, "south": { "texture": "#0", "uv": [ 12.0, 6.0, 13.0, 5.0 ] }, "west": { "texture": "#0", "uv": [ 13.0, 10.0, 11.0, 11.0 ] }, "up": { "texture": "#0", "uv": [ 11.0, 9.0, 13.0, 10.0 ] }, "down": { "texture": "#0", "uv": [ 11.0, 10.0, 13.0, 11.0 ] } } }, { "name": "rail bottom", "from": [ 0.0, 0.0, 5.0 ], "to": [ 16.0, 1.0, 7.0 ], "faces": { "north": { "texture": "#0", "uv": [ 11.0, 10.0, 12.0, 11.0 ] }, "east": { "texture": "#0", "uv": [ 11.0, 5.0, 13.0, 6.0 ] }, "south": { "texture": "#0", "uv": [ 12.0, 6.0, 13.0, 5.0 ] }, "west": { "texture": "#0", "uv": [ 13.0, 10.0, 11.0, 11.0 ] }, "up": { "texture": "#0", "uv": [ 11.0, 9.0, 13.0, 10.0 ] }, "down": { "texture": "#0", "uv": [ 11.0, 10.0, 13.0, 11.0 ] } } }, { "name": "rail bottom", "from": [ 0.0, 0.0, 1.0 ], "to": [ 16.0, 1.0, 3.0 ], "faces": { "north": { "texture": "#0", "uv": [ 11.0, 10.0, 12.0, 11.0 ] }, "east": { "texture": "#0", "uv": [ 11.0, 5.0, 13.0, 6.0 ] }, "south": { "texture": "#0", "uv": [ 12.0, 6.0, 13.0, 5.0 ] }, "west": { "texture": "#0", "uv": [ 13.0, 10.0, 11.0, 11.0 ] }, "up": { "texture": "#0", "uv": [ 11.0, 9.0, 13.0, 10.0 ] }, "down": { "texture": "#0", "uv": [ 11.0, 10.0, 13.0, 11.0 ] } } }, { "name": "Center Track", "from": [ 6.0, 1.0, 0.0 ], "to": [ 10.0, 2.0, 16.0 ], "faces": { "north": { "texture": "#0", "uv": [ 13.0, 6.0, 14.0, 7.0 ] }, "east": { "texture": "#0", "uv": [ 2.0, 8.0, 3.0, 9.0 ] }, "south": { "texture": "#0", "uv": [ 2.0, 8.0, 3.0, 9.0 ] }, "west": { "texture": "#0", "uv": [ 2.0, 5.0, 3.0, 6.0 ] }, "up": { "texture": "#0", "uv": [ 2.0, 0.0, 3.0, 16.0 ] }, "down": { "texture": "#0", "uv": [ 2.0, 0.0, 3.0, 16.0 ] } } } ] } controlRailBlock.json (block model pointer): { "parent": "generic:block/controlRail", "textures": { "rail": "generic:blocks/railControlBlock" } } any help? Thanks! Quote I'm working on something big! As long as there arent alot of big issues... [D
UltraTechX Posted October 3, 2015 Author Posted October 3, 2015 sorry about that, the problem is that no matter what I do, the texture comes up as the unknown purple checkerboard Quote I'm working on something big! As long as there arent alot of big issues... [D
coolAlias Posted October 3, 2015 Posted October 3, 2015 And what does your console log tell you? There should be a huge section from FML explaining which texture(s) it couldn't find. Compare that with your .json files and texture path locations. Quote http://i.imgur.com/NdrFdld.png[/img]
UltraTechX Posted October 3, 2015 Author Posted October 3, 2015 right now im just testing the north_south and east_west directions, so it should not be that the blockstates are missing Quote I'm working on something big! As long as there arent alot of big issues... [D
UltraTechX Posted October 3, 2015 Author Posted October 3, 2015 In case this helps here is the block class (enum is in the class as well): package tutorial.generic; import net.minecraft.block.Block; import net.minecraft.block.BlockRail; import net.minecraft.block.BlockRailBase; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; import net.minecraft.util.IStringSerializable; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class railControlBlock extends BlockRail implements ITileEntityProvider { public static final PropertyEnum SHAPE = PropertyEnum.create("shape", BlockRailBase.EnumRailDirection.class); public static final PropertyEnum PART = PropertyEnum.create("part", EnumPartType.class); private static String name = "railControlBlock"; public railControlBlock() { super(); GameRegistry.registerTileEntity(railControl.class, name); setDefaultState(this.blockState.getBaseState().withProperty(SHAPE, BlockRailBase.EnumRailDirection.NORTH_SOUTH).withProperty(PART, EnumPartType.MIDDLE)); GameRegistry.registerBlock(this, name); this.setCreativeTab(CreativeTabs.tabMisc); this.setUnlocalizedName(name); this.setHardness(2.0f); setBlockBounds(); this.setResistance(6.0f); this.setHarvestLevel("pickaxe", 2); this.isBlockContainer = true; } @Override public String toString() { return getName(); } @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new railControl(); } public static String getName(){ return name; } @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBox(World worldIn, BlockPos pos) { setBlockBoundsBasedOnState(worldIn, pos); return super.getSelectedBoundingBox(worldIn, pos); } public IProperty getShapeProperty() { return SHAPE; } public IBlockState getStateFromMeta(int meta) { return getDefaultState().withProperty(SHAPE, BlockRailBase.EnumRailDirection.byMetadata(meta)); } @Override public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos) { setBlockBounds(); } private void setBlockBounds() { setBlockBounds(0F, 0.0F, 0F, 1F, 0.125F, 1F); } public int getMetaFromState(IBlockState state) { return ((BlockRailBase.EnumRailDirection)state.getValue(SHAPE)).getMetadata(); } protected BlockState createBlockState() { return new BlockState(this, new IProperty[] { SHAPE, PART }); } public boolean isOpaqueCube() { return false; } /** * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) */ public boolean renderAsNormalBlock() { return false; } public int getRenderBlockPass() { return 1; } protected void onNeighborChangedInternal(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock) { //whenever the blocks around it change } public static enum EnumPartType implements IStringSerializable { MIDDLE("middle"), LEFT("left"), RIGHT("right"); private final String name; private EnumPartType(String name) { this.name = name; } public String toString() { return this.name; } public String getName() { return this.name; } } } Quote I'm working on something big! As long as there arent alot of big issues... [D
UltraTechX Posted October 4, 2015 Author Posted October 4, 2015 bump Quote I'm working on something big! As long as there arent alot of big issues... [D
larsgerrits Posted October 4, 2015 Posted October 4, 2015 On 10/3/2015 at 7:45 PM, coolAlias said: There should be a huge section from FML explaining which texture(s) it couldn't find. Compare that with your .json files and texture path locations. Quote Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
UltraTechX Posted October 4, 2015 Author Posted October 4, 2015 ok, here is all of the missing blockstates: [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=north_south not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=ascending_west not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=north_east not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=middle,shape=ascending_north not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=ascending_south not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=ascending_north not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=south_west not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=ascending_east not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=east_west not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=north_east not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=south_west not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=east_west not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=middle,shape=ascending_west not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=ascending_south not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=middle,shape=ascending_south not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=south_east not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=north_west not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=ascending_north not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=south_east not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=ascending_east not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=north_south not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=right,shape=ascending_west not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=middle,shape=ascending_east not found [07:52:27] [Client thread/ERROR] [FML]: Model definition for location generic:railControlBlock#part=left,shape=north_west not found here is the reason i think its not that some are missing, its because the following should be true: "part=middle,shape=north_south": { "model": "generic:railControlBlock" }, because of these lines in the block code that are run in the constructor: setDefaultState(this.blockState.getBaseState().withProperty(SHAPE, BlockRailBase.EnumRailDirection.NORTH_SOUTH).withProperty(PART, EnumPartType.MIDDLE)); Quote I'm working on something big! As long as there arent alot of big issues... [D
larsgerrits Posted October 4, 2015 Posted October 4, 2015 I think you need to have the states in you blockstates file in the same order as you register them in. Quote Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
Choonster Posted October 4, 2015 Posted October 4, 2015 If the model's shape is working, it's an issue with the texture being invalid or missing. If the block is appearing as a cube, it's an issue with the model being invalid or missing. Which is it? If you're using the vanilla blockstates format, you need to define the model for every possible combination of property values. The ones that are listed as missing are the ones you haven't defined a model for. You can also use Forge's blockstates format, which lets you specify how each value affects the model instead of defining the model for every combination of values. Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
UltraTechX Posted October 4, 2015 Author Posted October 4, 2015 something is different now, i added PART to everything that only had shape to get this code: package tutorial.generic; import net.minecraft.block.Block; import net.minecraft.block.BlockRail; import net.minecraft.block.BlockRailBase; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.BlockPos; import net.minecraft.util.IStringSerializable; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; public class railControlBlock extends BlockRail implements ITileEntityProvider { public static final PropertyEnum PART = PropertyEnum.create("part", EnumPartType.class); public static final PropertyEnum SHAPE = PropertyEnum.create("shape", BlockRailBase.EnumRailDirection.class); private static String name = "railControlBlock"; public railControlBlock(int pnum) { super(); GameRegistry.registerTileEntity(railControl.class, name); if(pnum == 0) { setDefaultState(this.blockState.getBaseState().withProperty(PART, EnumPartType.MIDDLE).withProperty(SHAPE, BlockRailBase.EnumRailDirection.NORTH_SOUTH)); }else if(pnum == 1){ setDefaultState(this.blockState.getBaseState().withProperty(PART, EnumPartType.LEFT).withProperty(SHAPE, BlockRailBase.EnumRailDirection.NORTH_SOUTH)); }else if(pnum == 2){ setDefaultState(this.blockState.getBaseState().withProperty(PART, EnumPartType.RIGHT).withProperty(SHAPE, BlockRailBase.EnumRailDirection.NORTH_SOUTH)); } GameRegistry.registerBlock(this, name); this.setCreativeTab(CreativeTabs.tabMisc); this.setUnlocalizedName(name); this.setHardness(2.0f); setBlockBounds(); this.setResistance(6.0f); this.setHarvestLevel("pickaxe", 2); this.isBlockContainer = true; } @Override public String toString() { return getName(); } @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new railControl(); } public static String getName(){ return name; } @SideOnly(Side.CLIENT) public AxisAlignedBB getSelectedBoundingBox(World worldIn, BlockPos pos) { setBlockBoundsBasedOnState(worldIn, pos); return super.getSelectedBoundingBox(worldIn, pos); } public IProperty getShapeProperty() { return SHAPE; } public IProperty getPartProperty() { return PART; } public IBlockState getStateFromMeta(int meta) { return getDefaultState().withProperty(PART, EnumPartType.byMetadata(meta)).withProperty(SHAPE, BlockRailBase.EnumRailDirection.byMetadata(meta)); } @Override public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos) { setBlockBounds(); } private void setBlockBounds() { setBlockBounds(0F, 0.0F, 0F, 1F, 0.125F, 1F); } public int getMetaFromState(IBlockState state) { return ((EnumPartType)state.getValue(PART)).getMetadata(); } protected BlockState createBlockState() { return new BlockState(this, new IProperty[] { PART, SHAPE }); } public boolean isOpaqueCube() { return false; } /** * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) */ public boolean renderAsNormalBlock() { return false; } public int getRenderBlockPass() { return 1; } protected void onNeighborChangedInternal(World worldIn, BlockPos pos, IBlockState state, Block neighborBlock) { //whenever the blocks around it change } public static enum EnumPartType implements IStringSerializable { MIDDLE(0, "middle"), LEFT(1, "left"), RIGHT(2, "right"); private static final EnumPartType[] META_LOOKUP = new EnumPartType[values().length]; private final int meta; private final String name; private EnumPartType(int meta, String name) { this.meta = meta; this.name = name; } public int getMetadata() { return this.meta; } public String toString() { return this.name; } public String getName() { return this.name; } public static EnumPartType byMetadata(int meta) { if (meta < 0 || meta >= META_LOOKUP.length) { meta = 0; } return META_LOOKUP[meta]; } static { EnumPartType[] var0 = values(); int var1 = var0.length; for (int var2 = 0; var2 < var1; ++var2) { EnumPartType var3 = var0[var2]; META_LOOKUP[var3.getMetadata()] = var3; } } } } but here is what made it work: i changed: public int getMetaFromState(IBlockState state) { return ((BlockRailBase.EnumRailDirection)state.getValue(SHAPE)).getMetadata(); } to: public int getMetaFromState(IBlockState state) { return ((EnumPartType)state.getValue(PART)).getMetadata(); } but now the block will not rotate anymore, how can I return both Blockstate's metadata? Quote I'm working on something big! As long as there arent alot of big issues... [D
GotoLink Posted October 4, 2015 Posted October 4, 2015 If you have 3 block instances, you don't need to have this PART property registered at any point. #getMetaFromState need to reflect #getStateFromMeta Note you use EnumRailDirection states. There are 10 of those, and you probably don't want all of them. Checkout those you don't need, like in BlockRailPowered. Quote
Choonster Posted October 4, 2015 Posted October 4, 2015 On 10/4/2015 at 5:50 PM, UltraTechX said: but now the block will not rotate anymore, how can I return both Blockstate's metadata? To store multiple values in your metadata, you need to use bitwise operations to combine the values into a single integer. The problem here is that metadata is restricted to 4 bits, but the 10 possible values of EnumRailDirection require 4 bits to store and the 3 possible values of EnumPartType require 2 bits to store. This means that you can't store both values in the metadata, you may need to store the PART property in your TileEntity instead. You can still have it as a property of the BlockState (and thus decide the model based on its value), just override Block#getActualState to return an IBlockState with the PART property's value retrieved from the TileEntity at the provided location. Look at BlockFlowerPot for an example of an enum property stored in a TileEntity instead of the metadata. Edit: I didn't realise you were using separate instances. Either use separate instances or store the PART property in the TileEntity . Like GotoLink said, there's no need to do both. Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
UltraTechX Posted October 4, 2015 Author Posted October 4, 2015 it started crashing after i added this to the blocks main class: @Override public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) /* */ { return state.withProperty(PART, this.part); } i dont know whats wrong now. Quote I'm working on something big! As long as there arent alot of big issues... [D
Choonster Posted October 4, 2015 Posted October 4, 2015 The crash report should tell you exactly what went wrong. If you can't figure it out, upload it to Gist and link it here. Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
UltraTechX Posted October 4, 2015 Author Posted October 4, 2015 it just says unexpected error when I break the block, here is the gist : https://gist.github.com/UltraTechX/ed19605d8b0b241ff1e7 Quote I'm working on something big! As long as there arent alot of big issues... [D
Choonster Posted October 4, 2015 Posted October 4, 2015 I meant post the crash report, though having the code on Gist makes it a bit easier to read. The exception type and stack trace should tell you what went wrong even if the message doesn't. Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
UltraTechX Posted October 4, 2015 Author Posted October 4, 2015 ok then, here is the crash report: [16:05:00] [Client thread/INFO] [sTDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:-1]: ---- Minecraft Crash Report ---- // Shall we play a game? Time: 10/4/15 4:05 PM Description: Unexpected error java.lang.NullPointerException: Unexpected error at net.minecraft.crash.CrashReportCategory.firstTwoElementsOfStackTraceMatch(Unknown Source) at net.minecraft.crash.CrashReport.makeCategoryDepth(Unknown Source) at net.minecraft.crash.CrashReport.makeCategory(Unknown Source) at net.minecraft.world.World.playAuxSFXAtEntity(Unknown Source) at net.minecraft.world.World.playAuxSFX(Unknown Source) at net.minecraft.client.multiplayer.PlayerControllerMP.onPlayerDestroyBlock(Unknown Source) at net.minecraft.client.multiplayer.PlayerControllerMP.func_178891_a(Unknown Source) at net.minecraft.client.multiplayer.PlayerControllerMP.func_180511_b(Unknown Source) at net.minecraft.client.Minecraft.clickMouse(Unknown Source) at net.minecraft.client.Minecraft.runTick(Unknown Source) at net.minecraft.client.Minecraft.runGameLoop(Unknown Source) at net.minecraft.client.Minecraft.run(Unknown Source) at net.minecraft.client.main.Main.main(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) 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(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) at GradleStart.main(Unknown Source) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at net.minecraft.crash.CrashReportCategory.firstTwoElementsOfStackTraceMatch(Unknown Source) at net.minecraft.crash.CrashReport.makeCategoryDepth(Unknown Source) at net.minecraft.crash.CrashReport.makeCategory(Unknown Source) at net.minecraft.world.World.playAuxSFXAtEntity(Unknown Source) at net.minecraft.world.World.playAuxSFX(Unknown Source) at net.minecraft.client.multiplayer.PlayerControllerMP.onPlayerDestroyBlock(Unknown Source) at net.minecraft.client.multiplayer.PlayerControllerMP.func_178891_a(Unknown Source) at net.minecraft.client.multiplayer.PlayerControllerMP.func_180511_b(Unknown Source) at net.minecraft.client.Minecraft.clickMouse(Unknown Source) -- Affected level -- Details: Level name: MpServer All players: 1 total; [EntityPlayerSP['Player640'/0, l='MpServer', x=-587.43, y=56.00, z=-574.99]] Chunk stats: MultiplayerChunkCache: 599, 599 Level seed: 0 Level generator: ID 01 - flat, ver 0. Features enabled: false Level generator options: Level spawn location: -586.00,4.00,-567.00 - World: (-586,4,-567), Chunk: (at 6,0,9 in -37,-36; contains blocks -592,0,-576 to -577,255,-561), Region: (-2,-2; contains chunks -64,-64 to -33,-33, blocks -1024,0,-1024 to -513,255,-513) Level time: 15612 game time, 15468 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: creative (ID 1). Hardcore: false. Cheats: false Forced entities: 1 total; [EntityPlayerSP['Player640'/0, l='MpServer', x=-587.43, y=56.00, z=-574.99]] Retry entities: 0 total; [] Server brand: fml,forge Server type: Integrated singleplayer server Stacktrace: at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(Unknown Source) at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Unknown Source) at net.minecraft.client.Minecraft.run(Unknown Source) at net.minecraft.client.main.Main.main(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) 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(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) at GradleStart.main(Unknown Source) -- System Details -- Details: Minecraft Version: 1.8 Operating System: Windows 8.1 (amd64) version 6.3 Java Version: 1.7.0_79, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 783627456 bytes (747 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP v9.10 FML v8.0.99.99 Minecraft Forge 11.14.3.1519 4 mods loaded, 4 mods active States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored UCHIJAAAA mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.8-11.14.3.1519.jar) UCHIJAAAA Forge{11.14.3.1519} [Minecraft Forge] (forgeSrc-1.8-11.14.3.1519.jar) UCHIJAAAA generic{0.0.0} [Generic Mod] (bin) Loaded coremods (and transformers): GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.13399 Compatibility Profile Context 15.200.1062.1004' Renderer: 'AMD Radeon HD 7800 Series' Launched Version: 1.8 LWJGL: 2.9.1 OpenGL: AMD Radeon HD 7800 Series GL version 4.5.13399 Compatibility Profile Context 15.200.1062.1004, ATI Technologies Inc. GL Caps: Using GL 1.3 multitexturing. Using GL 1.3 texture combiners. Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported. Shaders are available because OpenGL 2.1 is supported. VBOs are available because OpenGL 1.5 is supported. Using VBOs: No Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Packs: [] Current Language: English (US) Profiler Position: N/A (disabled) Quote I'm working on something big! As long as there arent alot of big issues... [D
Choonster Posted October 4, 2015 Posted October 4, 2015 RenderGlobal#playAusSFX (called from World#playAuxSFXAtEntity ) is throwing an exception, but a NullPointerException was thrown while generating the crash report. Put a breakpoint in the catch block of World#playAuxSFXAtEntity and run Minecraft in debug mode. When it hits the breakpoint, the throwable variable will contain the exception that was thrown. Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
UltraTechX Posted October 4, 2015 Author Posted October 4, 2015 On 10/4/2015 at 8:34 PM, Choonster said: RenderGlobal#playAusSFX (called from World#playAuxSFXAtEntity ) is throwing an exception, but a NullPointerException was thrown while generating the crash report. Put a breakpoint in the catch block of World#playAuxSFXAtEntity and run Minecraft in debug mode. When it hits the breakpoint, the throwable variable will contain the exception that was thrown. i dont use any SFX yet in the game, so I don't think that is the case Quote I'm working on something big! As long as there arent alot of big issues... [D
UltraTechX Posted October 4, 2015 Author Posted October 4, 2015 On 10/4/2015 at 8:40 PM, diesieben07 said: This is a bug with ForgeGradle actually because the code does not have line numbers. Change to the "bleeding edge" version in your build.gradle. Then run gradlew clean cleanCache and then gradlew setupDecompWorkspace again to fix it. whats the "bleeding edge" version of gradle and where can I find it? Quote I'm working on something big! As long as there arent alot of big issues... [D
Choonster Posted October 4, 2015 Posted October 4, 2015 On 10/4/2015 at 8:46 PM, UltraTechX said: i dont use any SFX yet in the game, so I don't think that is the case If you look at the stacktrace, it's being called from PlayerControllerMP#onPlayerDestroyBlock ; so it's likely the block's breaking sound that's causing the issue. Updating ForgeGradle or following my previous debugging instructions should provide further information as to what the issue is. Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
UltraTechX Posted October 4, 2015 Author Posted October 4, 2015 On 10/4/2015 at 8:49 PM, diesieben07 said: It's all explained in the build.gradle. you were right! Now the error changed to the line that i put in my block's class: Cannot set property PropertyEnum{name=part, clazz=class tutorial.generic.railControlBlock$EnumPartType, values=[middle, left, right]} to 0 on block generic:railControlBlock, it is not an allowed value here is the function that breaks it: @Override public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos){ return state.withProperty(PART, this.part); } Quote I'm working on something big! As long as there arent alot of big issues... [D
Choonster Posted October 4, 2015 Posted October 4, 2015 On 10/4/2015 at 9:10 PM, UltraTechX said: you were right! Now the error changed to the line that i put in my block's class: Cannot set property PropertyEnum{name=part, clazz=class tutorial.generic.railControlBlock$EnumPartType, values=[middle, left, right]} to 0 on block generic:railControlBlock, it is not an allowed value here is the function that breaks it: @Override public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos){ return state.withProperty(PART, this.part); } PART is a PropertyEnum of EnumPartType , but you're trying to assign an int value to it ( this.part ). Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
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.