Posted May 31, 20169 yr 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; } }
May 31, 20169 yr Author I should have said this first but I tried using quantityDropped and if I put it to 7, it drops 7 different items rather than 7 diamonds?
May 31, 20169 yr Author @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?
May 31, 20169 yr Author Thanks for your help, I used a HarvestDropsEvent instead because I already knew how to use that, I just readjusted it to my needs.
May 31, 20169 yr 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.
May 31, 20169 yr Author 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)
May 31, 20169 yr 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.