Added ability for custom blocks to drop a range of items. MOD BLOCK

FILES WILL NEED TO BE REDONE.
This commit is contained in:
GJ
2012-06-25 09:39:02 -04:00
parent d73521e0a0
commit eae665c1c5
7 changed files with 99 additions and 21 deletions

View File

@ -17,6 +17,7 @@ import com.gmail.nossr50.config.mods.CustomBlocksConfig;
import com.gmail.nossr50.datatypes.AbilityType;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.datatypes.mods.CustomBlock;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.runnables.GreenThumbTimer;
import com.gmail.nossr50.util.Misc;
@ -281,7 +282,19 @@ public class Herbalism {
default:
if (customPlant) {
Misc.dropItem(loc, is);
CustomBlock customBlock = ModChecks.getCustomBlock(block);
int minimumDropAmount = customBlock.getMinimumDropAmount();
int maximumDropAmount = customBlock.getMaximumDropAmount();
is = customBlock.getItemDrop();
if (minimumDropAmount != maximumDropAmount) {
Misc.dropItems(loc, is, minimumDropAmount);
Misc.randomDropItems(loc, is, 50, maximumDropAmount - minimumDropAmount);
}
else {
Misc.dropItems(loc, is, minimumDropAmount);
}
}
break;
}

View File

@ -15,6 +15,7 @@ import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.PlayerProfile;
import com.gmail.nossr50.datatypes.SkillType;
import com.gmail.nossr50.datatypes.mods.CustomBlock;
import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
import com.gmail.nossr50.spout.SpoutSounds;
import com.gmail.nossr50.util.Misc;
@ -196,8 +197,19 @@ public class Mining {
default:
if (ModChecks.isCustomMiningBlock(block)) {
CustomBlock customBlock = ModChecks.getCustomBlock(block);
int minimumDropAmount = customBlock.getMinimumDropAmount();
int maximumDropAmount = customBlock.getMaximumDropAmount();
item = ModChecks.getCustomBlock(block).getItemDrop();
Misc.dropItem(loc, item);
if (minimumDropAmount != maximumDropAmount) {
Misc.dropItems(loc, item, minimumDropAmount);
Misc.randomDropItems(loc, item, 50, maximumDropAmount - minimumDropAmount);
}
else {
Misc.dropItems(loc, item, minimumDropAmount);
}
}
break;
}

View File

@ -116,7 +116,18 @@ public class WoodCutting {
x.setData((byte) 0x0);
x.setType(Material.AIR);
Misc.dropItem(x.getLocation(), item);
int minimumDropAmount = block.getMinimumDropAmount();
int maximumDropAmount = block.getMaximumDropAmount();
item = block.getItemDrop();
if (minimumDropAmount != maximumDropAmount) {
Misc.dropItems(x.getLocation(), item, minimumDropAmount);
Misc.randomDropItems(x.getLocation(), item, 50, maximumDropAmount - minimumDropAmount);
}
else {
Misc.dropItems(x.getLocation(), item, minimumDropAmount);
}
}
else if (ModChecks.isCustomLeafBlock(x)) {
CustomBlock block = ModChecks.getCustomBlock(x);
@ -298,9 +309,20 @@ public class WoodCutting {
Location location;
if (configInstance.getBlockModsEnabled() && ModChecks.isCustomLogBlock(block)) {
item = ModChecks.getCustomBlock(block).getItemDrop();
CustomBlock customBlock = ModChecks.getCustomBlock(block);
int minimumDropAmount = customBlock.getMinimumDropAmount();
int maximumDropAmount = customBlock.getMaximumDropAmount();
item = customBlock.getItemDrop();
location = block.getLocation();
Misc.dropItem(location, item);
if (minimumDropAmount != maximumDropAmount) {
Misc.dropItems(location, item, minimumDropAmount);
Misc.randomDropItems(location, item, 50, maximumDropAmount - minimumDropAmount);
}
else {
Misc.dropItems(location, item, minimumDropAmount);
}
return;
}
else {