Jump to content

[1.7.2] How to make a block drop a random item on right click and it destroys


Recommended Posts

Posted

I have been wondering how to make a crate and on right click it drops a random item from my mod and the crate disapears? Please respond back. Thank you!

Posted

Well for the random items you should do something like:

 

int[] itemList = new int[20]; //amount of random items

itemList[0] = MainModClass.randomItem1;

itemList[1] = MainModClass.randomItem2;

itemList[2] = MainModClass.randomItem3;

etc..:

 

Then you would want a random thingy.

Random rand = new Random();

int randomInt = rand.nextInt(20); //amount of random items

 

Then in the getItemDropped() method you return:

 

itemList[randomInt];

 

So it would be:

public void getItemDropped(PARAMS HERE) {

return itemList[randomInt];

}

 

This SHOULD work, not 100% cause I didn't test it

 

 

 

Posted
  On 11/3/2014 at 6:14 PM, diesieben07 said:

a) Why are you using an int[]? Use an Item[] or better yet a List<Item>.

b) getItemDropped is for Blocks.

A) an int still works and you need it for the random generating part

B) he is using a block so the getItemDropped works.

 

If u think this is wrong post ur own code

 

 

Posted

Well... he's here to learn, not to copy-paste ready code..

 

Also, what are you talking about?

itemList should have been a List<Item>, or an item array.. whereas obviously for the random part you need the randomInt as an integer... you might have gotten that wrong..

I try my best, so apologies if I said something obviously stupid!

Posted
  On 11/3/2014 at 10:29 PM, Manslaughter777 said:

A) an int still works and you need it for the random generating part

thats NOT how you use an array :D

  Quote

B) he is using a block so the getItemDropped works.

OP said on right click.

 

Too the actual problem

  Quote

I have been wondering how to make a crate and on right click it drops a random item from my mod and the crate disapears? Please respond back. Thank you!

I guess the crate is a block?

 

There's the method

 public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_){}

you want to override in your Crate class,

There you can do your operations

I personally would create an Item Array (a list is probably somewhat smarter)

generate a random number

spawn a EntityItem in the world with yourItemArray[yourRandomNumber]

then say world.setBlockToAir(x, y, z);

and there you go

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

    • Item successfully registered, but there was a problem with the texture of the item, it did not insert and has just the wrong texture.     
    • Keep on using the original Launcher Run Vanilla 1.12.2 once and close the game Download Optifine and run optifine as installer (click on the optifine jar) Start the launcher and make sure the Optifine profile is selected - then test it again  
    • Hi everyone, I’m hoping to revisit an old version of Minecraft — specifically around Beta 1.7.3 — for nostalgia’s sake. I’ve heard you can do this through the official Minecraft Launcher, but I’m unsure how to do it safely without affecting my current installation or save files. Are there any compatibility issues I should watch out for when switching between versions? Would really appreciate any tips or advice from anyone who’s done this before! – Adam
    • hello! i was trying to recreate item-in-hand feature for my custom mob. i figured out that my mob needs a custom iteminhandlayer. i created it - but the main problem is.. well.. you can see all on screenshots any idea how i can fix that? is there any implemented method to render the item perfect to hand? public void render(@NotNull PoseStack pPoseStack, @NotNull MultiBufferSource pBufferSource, int pPackedLight, @NotNull TuneGolemRenderState pRenderState, float pYRot, float pXRot) { ItemStackRenderState item = pRenderState.heldItem; if (!item.isEmpty()) { pPoseStack.pushPose(); ModelPart leftArm = this.getParentModel().leftArm; pPoseStack.translate(0.35,0.5,-1.25); pPoseStack.mulPose(Axis.XP.rotationDegrees(180.0F)); pPoseStack.mulPose(Axis.YP.rotationDegrees(90.0F)); leftArm.translateAndRotate(pPoseStack); // pPoseStack.translate(0,0,0); leftArm.translateAndRotate(pPoseStack); if (TuneGolemRenderState.hornPlaying) { pPoseStack.translate(0, -0.5, 0.65); pPoseStack.scale(1.25F,1.25F,1.25F); } // Minecraft.getInstance().player.displayClientMessage(Component.literal(leftArm.xRot + " " + leftArm.yRot + " " + leftArm.zRot), true); item.render(pPoseStack, pBufferSource, pPackedLight, OverlayTexture.NO_OVERLAY); pPoseStack.popPose(); // -1.0F, -2.0F, -3.0F } }  
    • I checked for any driver updates, but no new updates were found
  • Topics

×
×
  • Create New...

Important Information

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