Changed Blast Mining & Mining to use the same drop function.

This commit is contained in:
GJ 2012-03-05 23:29:05 -05:00
parent 36a706b7b6
commit e1644d3c08
2 changed files with 51 additions and 94 deletions

View File

@ -22,7 +22,6 @@ import java.util.List;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityExplodeEvent;
@ -37,56 +36,6 @@ import com.gmail.nossr50.datatypes.SkillType;
public class BlastMining{ public class BlastMining{
public static void explosionBlockDrops(Block block, Location loc)
{
int id = block.getTypeId();
ItemStack item = new ItemStack(id, 1);
switch (id){
//GLOWSTONE
case 89:
item = new ItemStack(348, 1);
m.mcDropItems(loc, item, 2);
m.mcRandomDropItems(loc, item, 50, 2);
break;
//REDSTONE
case 73:
item = new ItemStack(331, 1);
m.mcDropItems(loc, item, 4);
m.mcRandomDropItem(loc, item, 50);
break;
case 74:
item = new ItemStack(331, 1);
m.mcDropItems(loc, item, 4);
m.mcRandomDropItem(loc, item, 50);
break;
//LAPIS
case 21:
item = new ItemStack(351, 1, (byte)0,(byte)0x4);
m.mcDropItems(loc, item, 4);
m.mcRandomDropItems(loc, item, 50, 4);
break;
//DIAMOND
case 56:
item = new ItemStack(264, 1);
m.mcDropItem(loc, item);
break;
//STONE
case 1:
item = new ItemStack(4, 1);
m.mcDropItem(loc, item);
break;
//COAL
case 16:
item = new ItemStack(263, 1);
m.mcDropItem(loc, item);
break;
default:
m.mcDropItem(loc, item);
break;
}
}
public static List<Block> explosionYields(List<Block> ores, List<Block> debris, float yield, float oreBonus, float debrisReduction, Location location, int extraDrops) public static List<Block> explosionYields(List<Block> ores, List<Block> debris, float yield, float oreBonus, float debrisReduction, Location location, int extraDrops)
{ {
Iterator<Block> iterator2 = ores.iterator(); Iterator<Block> iterator2 = ores.iterator();
@ -97,13 +46,17 @@ public class BlastMining{
if((float)Math.random() < (yield + oreBonus)) if((float)Math.random() < (yield + oreBonus))
{ {
blocksDropped.add(temp); blocksDropped.add(temp);
explosionBlockDrops(temp, location); Mining.miningDrops(temp);
if(extraDrops == 2) if(extraDrops == 2)
{
blocksDropped.add(temp); blocksDropped.add(temp);
explosionBlockDrops(temp, location); Mining.miningDrops(temp);
}
if(extraDrops == 3) if(extraDrops == 3)
{
blocksDropped.add(temp); blocksDropped.add(temp);
explosionBlockDrops(temp, location); Mining.miningDrops(temp);
}
} }
} }
@ -114,7 +67,7 @@ public class BlastMining{
{ {
Block temp = iterator3.next(); Block temp = iterator3.next();
if((float)Math.random() < (yield - debrisReduction)) if((float)Math.random() < (yield - debrisReduction))
explosionBlockDrops(temp, location); Mining.miningDrops(temp);
} }
} }
return blocksDropped; return blocksDropped;

View File

@ -38,23 +38,21 @@ import com.gmail.nossr50.datatypes.SkillType;
public class Mining public class Mining
{ {
public static void blockProcSimulate(Block block, Player player) public static void miningDrops(Block block)
{ {
Location loc = block.getLocation(); Location loc = block.getLocation();
Material type = block.getType(); Material type = block.getType();
ItemStack item = new ItemStack(type, 1); ItemStack item = new ItemStack(type, 1);
//Drop natural block with Silk Touch switch (type)
if(player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH)){ {
case COAL_ORE:
item = new ItemStack(Material.COAL, 1, (byte)0, (byte)0x0);
m.mcDropItem(loc, item);
break;
case DIAMOND_ORE:
item = new ItemStack(Material.DIAMOND, 1);
m.mcDropItem(loc, item); m.mcDropItem(loc, item);
return;
}
switch (type){
case GLOWSTONE:
item = new ItemStack(Material.GLOWSTONE_DUST, 1);
m.mcDropItems(loc, item, 2);
m.mcRandomDropItems(loc, item, 50, 2);
break; break;
case GLOWING_REDSTONE_ORE: case GLOWING_REDSTONE_ORE:
case REDSTONE_ORE: case REDSTONE_ORE:
@ -62,29 +60,35 @@ public class Mining
m.mcDropItems(loc, item, 4); m.mcDropItems(loc, item, 4);
m.mcRandomDropItem(loc, item, 50); m.mcRandomDropItem(loc, item, 50);
break; break;
case GLOWSTONE:
item = new ItemStack(Material.GLOWSTONE_DUST, 1);
m.mcDropItems(loc, item, 2);
m.mcRandomDropItems(loc, item, 50, 2);
break;
case LAPIS_ORE: case LAPIS_ORE:
item = new ItemStack(Material.INK_SACK, 1, (byte)0, (byte)0x4); item = new ItemStack(Material.INK_SACK, 1, (byte)0, (byte)0x4);
m.mcDropItems(loc, item, 4); m.mcDropItems(loc, item, 4);
m.mcRandomDropItems(loc, item, 50, 4); m.mcRandomDropItems(loc, item, 50, 4);
break; break;
case DIAMOND_ORE:
item = new ItemStack(Material.DIAMOND, 1);
m.mcDropItem(loc, item);
break;
case STONE: case STONE:
item = new ItemStack(Material.COBBLESTONE, 1); item = new ItemStack(Material.COBBLESTONE, 1);
m.mcDropItem(loc, item); m.mcDropItem(loc, item);
break; break;
case COAL_ORE:
item = new ItemStack(Material.COAL, 1, (byte)0, (byte)0x0);
m.mcDropItem(loc, item);
break;
default: default:
m.mcDropItem(loc, item); m.mcDropItem(loc, item);
break; break;
} }
} }
public static void blockProcSimulate(Block block, Player player)
{
//Drop natural block with Silk Touch
if(player.getItemInHand().containsEnchantment(Enchantment.SILK_TOUCH))
m.mcDropItem(block.getLocation(), new ItemStack(block.getType(), 1));
else
miningDrops(block);
}
public static void blockProcCheck(Block block, Player player) public static void blockProcCheck(Block block, Player player)
{ {
int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.MINING); int skillLevel = Users.getProfile(player).getSkillLevel(SkillType.MINING);