Posted January 19, 20169 yr I am making a mod and in this mod when it checks to teleport the player it was checking if the blocks that the player would tp were air. It worked fine in vanilla but once railcraft was added in my modpack the residual heat were keeping the player from spawning since they were not air. I am trying to find a way to see if the blocks in the teleport destination are soild, meaning any block the player can not walk through. I have tried isSolidCube and isOpaqueCube and both allowed the player to teleport into these blocks. I want things like water and air like blocks to allow the player to to but chests and glass and other solid blicks to prevent the teleport
January 19, 20169 yr I prefer to use the Material to check: if (!block.getMaterial().blocksMovement()) { // not a solid block, so go ahead and teleport if that's what you want } http://i.imgur.com/NdrFdld.png[/img]
January 19, 20169 yr Author Managed to get it to work running a test using if(world.getBlock(x,y,z).getCollisionBoundingBoxFromPool(world,x,y,z) == null){ //the block at x y z has no collision box }
January 19, 20169 yr Author Thanks for that tip. Since it requires less argumentsbit would be easier to use. Thanks. And i love your zss mod
January 19, 20169 yr Why not use Block#isBlockNormalCube() ? It checks Material#blocksMovement() and if the block is rendered like a normal block. 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/
January 19, 20169 yr Be careful with that one. I don't recall if it is that method or one that is named very similarly, but one of them is client-side-only. 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.
January 19, 20169 yr Your right, that method is client-side-only. Didn't even check for that one. You can always go with Block#isNormalCube(IBlockAccess,x,y,z) or one of the suggestions above. 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/
January 19, 20169 yr Your right, that method is client-side-only. Oh, I've been bit by that method at least twice. 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.
January 21, 20169 yr isNormalCube is a bad way to determine if a block is solid. Blocks like Fence would return false even though you would consider them to be solid. -Stu MCI Craft (Curse) | MCI Craft (Website)
January 21, 20169 yr You can also check if(world.getBlock(x, y, z) instanceof Blocks.air) because the residual heat from railcraft extends BlockAir.
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.