Jump to content

Recommended Posts

Posted

This code makes it drop different item depending on the random number generated, which is half of what I want, the other half would be making the item it drops be more than if it's stack size is more than one, for example when it drops a diamond I want it to drop 1-5 diamonds and not just one diamond?

 

public Item getItemDropped(IBlockState state, Random random, int fortune) {

	int Chance = random.nextInt(7) + 1;
	if (Chance == 1) {
		return Items.bread;
		}
		else if (Chance == 2) {
		return Items.gold_ingot;
		}
		else if (Chance == 3) {
		return Items.ender_pearl;
		}
		else if (Chance == 4) {
		return Items.diamond;
		}
		else if (Chance == 5) {
		return Items.blaze_rod;
		}
		else if (Chance == 6) {
		return Item.getItemFromBlock(ModBlocks.adjustable_light_block_full);
		}
		else if (Chance == 7) {
		return Item.getItemFromBlock(ModBlocks.ancient_brick_block);
		}
		else {
		return null;
		}
	}

Posted

@Override
public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {
	Random random = new Random();
	int Chance = random.nextInt(4);
	if (Chance == 1) {
		return (List<ItemStack>) Items.arrow;
		}
		else if (Chance == 2) {
		return (List<ItemStack>) Items.apple;
		}
		else{
		return null;
	}
}

 

Okay I did this now but how do I add the drop quantity for each individual item, and also is my current code correct?

 

Posted

The problem is that events should be used to alter vanilla/other things.

When you have access to your own class you should utilize it.

 

There is always only one optimized algorithm, all other are bad ones.

 

In this case you should be using getDrops.

 

List list = new List(); // +generics
list.add(item);
return list;

1.7.10 is no longer supported by forge, you are on your own.

Posted

Okay thanks but with the list, what would I do to make it the item, the quantity and also the chance of getting that single item? For example:

 

Diamonds, 1 (amount), (20% chance of dropping)

 

Bread, 5 (amount), 50% (chance of dropping)

 

Redstone, 3-7 (amount), 30% (chance of dropping)

 

 

 

 

Posted

I belive list is of List<ItemStack>. Simply put new ItemStacks with stackSized fitting your needs.

 

As to chances - use Random class.

Generate nextDouble() and for e.g 20% do double < 0.2, for next 40% do 0.2 <= double < 0.6, etc.

1.7.10 is no longer supported by forge, you are on your own.

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.