Posted August 3, 201312 yr Hello ^__^ I want to make a BlockShrub folder with different drops If i have a blackberry and blueberry Shrub the one drops blackberrys the other blueberrys u know what i mean? LG Tsiumi
August 3, 201312 yr Author Here is my code: public ArrayList<ItemStack> getBlockDropped(World world, int x, int y, int z, int metadata, int fortune) { ArrayList<ItemStack> ret = new ArrayList<ItemStack>(); for(int i = 0; 0 < world.rand.nextInt(3); i++) ret.add(new ItemStack(GW2.garlic, 1, damageDropped(metadata))); for(int i = 0; 0 < world.rand.nextInt(3); i++) ret.add(new ItemStack(GW2.vanillaBean, 1, damageDropped(metadata))); for(int i = 0; 0 < world.rand.nextInt(3); i++) ret.add(new ItemStack(GW2.oreganoLeaf, 1, damageDropped(metadata))); for(int i = 0; 0 < world.rand.nextInt(3); i++) ret.add(new ItemStack(GW2.bayLeaf, 1, damageDropped(metadata))); return ret; But the Items drops at the same time i want one Item drops with a chance like Gravel but with the same chance and 4 Items!
August 3, 201312 yr Author Not every time.... like Gravel sometimes it drops gravel sometimes it drops flint!
August 3, 201312 yr Now, this probably won't work, because I'm tired and to be perfectly honest don't want to sit and test it all evening, but try this: public int idDropped(int par1, Random rand, int par2){ if(par2 > 3){ par2 = 3; } if((40 - par2 * 3) == 0){ return Item.diamond.itemID; } if((40 - par2 * 3) == 10){ return Item.ingotGold.itemID; } if((40 - par2 * 3) == 20){ return Item.ingotIron.itemID; } else return this.blockID; } Obviously, changing the items being dropped. If anyone with a more inclination and knowledge has any better (or working, accordingly) ideas, please correct me.
August 3, 201312 yr Okay. Try changing else return this.blockID to else return rand.nextint(40 - par2 * 3) == 30 ? this.blockID;
August 3, 201312 yr Author It says a error: else return rand.nextint(40 - par2 * 3) == 30 ? this.blockID;
August 3, 201312 yr Or even change: public int idDropped(int par1, Random rand, int par2){ if(par2 > 3){ par2 = 3; } if((40 - par2 * 3) == 0){ return Item.diamond.itemID; } if((40 - par2 * 3) == 10){ return Item.ingotGold.itemID; } if((40 - par2 * 3) == 20){ return Item.ingotIron.itemID; } else return this.blockID; } to: public int idDropped(intpar1, Random rand, int par2) { if(par2 > 3){ par2 = 3; } if((40 - par2 * 3) == 0{ return Item.diamond.itemID; } if((40 - par2 * 3) == 10 { return Item.ingotGold.itemID; } else return random.nextint(40 - par2 * 3) == 30 ? Item.ingotIron.itemID : Item.stick.itemID; }
August 3, 201312 yr Author 2 Errors: public int idDropped(int par1, Random rand, int par2) { if(par2 > 3){ par2 = 3; } if((40 - par2 * 3) == 0{ return Item.diamond.itemID; } if((40 - par2 * 3) == 10 { return Item.ingotGold.itemID; } else return rand.nextInt(40 - par2 * 3) == 30 ? Item.ingotIron.itemID : Item.stick.itemID; }
August 3, 201312 yr Author It's only drop the Items/Blocks in: else return rand.nextInt(40 - par2 * 3) == 30 ? Item.ingotIron.itemID : Item.stick.itemID; } Need help D:
August 4, 201312 yr As far as i can understand from what you want, is that you want 1 block (that has 2 varieties) to drop different items according to their variety. And you want them to drop random quantities aswell? I have made a file which is used for about 20 different blocks and for everyblock it drops the right one, so i used: @Override public int idDropped(int par1, Random random, int par2) { return this.blockID { if you even wanted random quanities you could use this method: @Override public int quantityDropped(Random par1random) { return par1random.nextInt(5); } I am the creator of the Soul Forest Mod : http://www.planetminecraft.com/mod/151-soul-forest-10-ores-vines-dimension-mobs-and-more/
August 5, 201312 yr Author I mean... The block have 4 drops, but if i destroy the block its drop 1 item.... like gravel if i destroy gravel its drop gravel or flint.... but i want it with 4 items and the same chance
August 5, 201312 yr public static int[] drops = new int[]{id1,id2,id3,id4}; @Override public int idDropped(int par1, Random random, int par2) { return this.drops[random.nextInt(drops.length)]; } Replace id1,id2 etc, with the id you want.
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.