Posted July 7, 20169 yr I want to make a block that instantly killes you, this is what I have done so far: public class ModDeathBlock extends Block { public ModDeathBlock(Material materialIn) { super(materialIn, MapColor.RED); this.setHarvestLevel("pickaxe", 2); this.setSoundType(SoundType.STONE); } @Override public void onEntityWalk(World worldIn, BlockPos pos, Entity entityIn) { if (entityIn instanceof EntityLivingBase) { entityIn.attackEntityFrom(ModElements.death_block, 100000000 * 100000000); if(entityIn.isSneaking()){ entityIn.attackEntityFrom(ModElements.death_block, 100000000 * 100000000); } } } } The problem is that entitys/players don't take any damages when sneaking or touching it from the side, how should I fix it? http://i.imgur.com/J4rrGt6.png[/img] [Creator of mcrafterzz mod]
July 7, 20169 yr Maybe Block#onEntityCollidedWithBlock? I've never tried anything like what you're doing, but it might be worth looking into!
July 7, 20169 yr When I have done this previously, I had to shrink the collision box fractionally, as the collision wouldn't register unless the entity was inside the block space. I am not sure if this has been changed or if it is still the case. I am also unsure how that would work with the new model system, as the last time I did it was around 1.3, so I could easily have the textures remain the full block, but the collision fractionally smaller.
July 7, 20169 yr Author I could maybe change the collision box to 0.9999999999999 or something. I'll test it now http://i.imgur.com/J4rrGt6.png[/img] [Creator of mcrafterzz mod]
July 7, 20169 yr Author I didn't work so well. S = Stone, D = Death block: SDS When running over it the player doesn't sink down on the death block before it's already over, so if this should work perfectly then I need a new sollution. http://i.imgur.com/J4rrGt6.png[/img] [Creator of mcrafterzz mod]
July 7, 20169 yr Does it has to be a full block the one that kills you? Can't it just be a platform smaller, like the pressure plates? If you need a full block, I would think on creating an invisible block above the one and make that one the block that kills you, but not sure if that could be easily implemented. Also... Have you take a look at the code on the Ice Blocks? Those are full blocks and affect players above them right? Maybe there is something there that can be used.
July 7, 20169 yr Author I'll take a look on ice blocks thank you http://i.imgur.com/J4rrGt6.png[/img] [Creator of mcrafterzz mod]
July 7, 20169 yr Author Unfortunely ice just sets a slippery value, so I don't think that code would be usefull. http://i.imgur.com/J4rrGt6.png[/img] [Creator of mcrafterzz mod]
July 7, 20169 yr Give the block a bounding box smaller than a full block by storing the AxisAlignedBB in a static final field and overriding Block#getCollisionBoundingBox to return it. You can then override Block#onEntityCollidedWithBlock to damage the colliding entity. The bounding box is unrelated to the model, so your block can still look like a full cube. 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.
July 7, 20169 yr Two things: 1) 0.999999999 is not small enough. You need 0.999 iirc 2) while sprinting a single block will not always catch onWalkedOn(), you can verify this with redstone 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.
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.