Jump to content

Recommended Posts

Posted

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?

Posted

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.

Posted

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.

Posted

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.

Posted

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.