Jump to content

Exploding block without entities


freshhh

Recommended Posts

I want to make a block that when stepped on or right clicked it will explode instantly, however this block is a block and not an entity, and yet I have not found out how to create an explosion in a Block class. Could somebody help me out with this ? Will I have to make the block spawn an entity or is there another simpler way ?

Link to comment
Share on other sites

world.createExplosion(x,y,z, radius)

 

You will almost certainly have access to the world at the point in your block that you're trying to get this to happen.

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.

Link to comment
Share on other sites

world.createExplosion(x,y,z, radius)

 

You will almost certainly have access to the world at the point in your block that you're trying to get this to happen.

 

I tried but I cannot find such command.

 

public boolean onBlockActivated(World worldObj, int x, int y, int z, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9) {

}

 

Do you, or do you not, have a World as one of your parameters?

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.

Link to comment
Share on other sites

world.createExplosion(x,y,z, radius)

 

You will almost certainly have access to the world at the point in your block that you're trying to get this to happen.

 

I tried but I cannot find such command.

 

package mod.Archedeon;

import net.minecraft.block.Block;
import net.minecraft.world.demo.*;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.world.World;

public class DamagingBlock extends Block{
private String location;

public DamagingBlock(int id, Material material,String location) {
	super(id, material);

	this.location = location;
	setCreativeTab(CreativeTabs.tabBlock);
}

public void registerIcon(IconRegister iconReg){
	blockIcon = iconReg.registerIcon(location);
}
    public void onEntityWalking(World par1World, int par2, int par3, int par4, Entity par5Entity)
    {
        this.glow(par1World, par2, par3, par4);
        super.onEntityWalking(par1World, par2, par3, par4, par5Entity);
    }


}

 

here's the code, just for the record, I know this.glow should be changed but I thought I'd just change it back for now, this is actualy a set of code from the redstone Ore.

 

public boolean onBlockActivated(World worldObj, int x, int y, int z, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9) {

}

 

Do you, or do you not, have a World as one of your parameters?

Link to comment
Share on other sites

public void onEntityWalking(World par1World, int par2, int par3, int par4, Entity par5Entity)

    {

        this.glow(par1World, par2, par3, par4);

        super.onEntityWalking(par1World, par2, par3, par4, par5Entity);

    }

 

*Cough*

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.

Link to comment
Share on other sites

public void onEntityWalking(World par1World, int par2, int par3, int par4, Entity par5Entity)

    {

        this.glow(par1World, par2, par3, par4);

        super.onEntityWalking(par1World, par2, par3, par4, par5Entity);

    }

 

*Cough*

 

Oh wow, I'm retarded for not noticing lol, anyways thanks.

Link to comment
Share on other sites

Somehow after I resummed this project my parameters bugged, this is really weird as it worked before, I'm not sure if I editted something that I shouldn't have edited.

 

	public boolean onBlockActivated(World worldObj, int x, int y, int z, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9) {
	worldObj.createExplosion(worldObj, par2, par4, par6, par8, par9)
}

 

I get errors at par2 and par4, I'm unable to figure out how to solve this.

Link to comment
Share on other sites

Somehow after I resummed this project my parameters bugged, this is really weird as it worked before, I'm not sure if I editted something that I shouldn't have edited.

 

	public boolean onBlockActivated(World worldObj, int x, int y, int z, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9) {
	worldObj.createExplosion(worldObj, par2, par4, par6, par8, par9)
}

 

I get errors at par2 and par4, I'm unable to figure out how to solve this.

 

What are par2, and par4 supposed to do?

(Also, par6 is wrong for the same reason)

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.

Link to comment
Share on other sites

Well, I got this now :

	public boolean onBlockActivated(World worldObj, int posX, int posY, int posZ) {
	worldObj.createExplosion(this, posX, posY, posZ, 3F);
}

 

Excuse me if I am annoying to any of you, I'm new to modding and parameters always make me cry.

Link to comment
Share on other sites

  • 2 weeks later...
It just doesn't work for me.

 

yo fresh my mod doesnt work fix it!

 

no srly if you want us to help, explain whats happening, is there just straight up nothing happening.

i noticed that my version of "onBlockActivate" has way more parameter. maybe its just cuz they changed it (im still in 151) but i doubt thats the case

is there any error coming up.

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Link to comment
Share on other sites

because for me in my block class

 

@Override
public boolean onBlockActivated(World world, int x, int y, int z,
		EntityPlayer player, int a, float b, float c, float d) {
	world.createExplosion(null, x, y, z, 5, true);
	return true;
}

 

this works perfectly

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Link to comment
Share on other sites

Whoops, a line break f*cked up my parsing of a code segment.  Ignore this.

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.

Link to comment
Share on other sites

Thanks, this all works now and I managed to remove teh block after an explosion, my next question was ? What's the line to spawn a certain block on that place ? Can't seem to find such command to be honest.

 

you mean world.setBlock(...) ?

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.

Link to comment
Share on other sites

Thanks, this all works now and I managed to remove teh block after an explosion, my next question was ? What's the line to spawn a certain block on that place ? Can't seem to find such command to be honest.

 

you mean world.setBlock(...) ?

 

Yup, this worked - thanks alot man!

Link to comment
Share on other sites

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • They were already updated, and just to double check I even did a cleanup and fresh update from that same page. I'm quite sure drivers are not the problem here. 
    • i tried downloading the drivers but it says no AMD graphics hardware has been detected    
    • Update your AMD/ATI drivers - get the drivers from their website - do not update via system  
    • As the title says i keep on crashing on forge 1.20.1 even without any mods downloaded, i have the latest drivers (nvidia) and vanilla minecraft works perfectly fine for me logs: https://pastebin.com/5UR01yG9
    • Hello everyone, I'm making this post to seek help for my modded block, It's a special block called FrozenBlock supposed to take the place of an old block, then after a set amount of ticks, it's supposed to revert its Block State, Entity, data... to the old block like this :  The problem I have is that the system breaks when handling multi blocks (I tried some fix but none of them worked) :  The bug I have identified is that the function "setOldBlockFields" in the item's "setFrozenBlock" function gets called once for the 1st block of multiblock getting frozen (as it should), but gets called a second time BEFORE creating the first FrozenBlock with the data of the 1st block, hence giving the same data to the two FrozenBlock :   Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=head] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@73681674 BlockEntityData : id:"minecraft:bed",x:3,y:-60,z:-6} Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=3, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=2, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} here is the code inside my custom "freeze" item :    @Override     public @NotNull InteractionResult useOn(@NotNull UseOnContext pContext) {         if (!pContext.getLevel().isClientSide() && pContext.getHand() == InteractionHand.MAIN_HAND) {             BlockPos blockPos = pContext.getClickedPos();             BlockPos secondBlockPos = getMultiblockPos(blockPos, pContext.getLevel().getBlockState(blockPos));             if (secondBlockPos != null) {                 createFrozenBlock(pContext, secondBlockPos);             }             createFrozenBlock(pContext, blockPos);             return InteractionResult.SUCCESS;         }         return super.useOn(pContext);     }     public static void createFrozenBlock(UseOnContext pContext, BlockPos blockPos) {         BlockState oldState = pContext.getLevel().getBlockState(blockPos);         BlockEntity oldBlockEntity = oldState.hasBlockEntity() ? pContext.getLevel().getBlockEntity(blockPos) : null;         CompoundTag oldBlockEntityData = oldState.hasBlockEntity() ? oldBlockEntity.serializeNBT() : null;         if (oldBlockEntity != null) {             pContext.getLevel().removeBlockEntity(blockPos);         }         BlockState FrozenBlock = setFrozenBlock(oldState, oldBlockEntity, oldBlockEntityData);         pContext.getLevel().setBlockAndUpdate(blockPos, FrozenBlock);     }     public static BlockState setFrozenBlock(BlockState blockState, @Nullable BlockEntity blockEntity, @Nullable CompoundTag blockEntityData) {         BlockState FrozenBlock = BlockRegister.FROZEN_BLOCK.get().defaultBlockState();         ((FrozenBlock) FrozenBlock.getBlock()).setOldBlockFields(blockState, blockEntity, blockEntityData);         return FrozenBlock;     }  
  • Topics

×
×
  • Create New...

Important Information

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