Added functionality to specify custom blocks that should not trigger

abilities.
This commit is contained in:
GJ 2012-06-27 14:46:31 -04:00
parent bdcc522897
commit ee2a5c199a
3 changed files with 30 additions and 7 deletions

View File

@ -30,6 +30,7 @@ public class CustomBlocksConfig extends ModConfigLoader{
public List<ItemStack> customOres = new ArrayList<ItemStack>();
public List<ItemStack> customLogs = new ArrayList<ItemStack>();
public List<ItemStack> customLeaves = new ArrayList<ItemStack>();
public List<ItemStack> customAbilityBlocks = new ArrayList<ItemStack>();
public List<ItemStack> customItems = new ArrayList<ItemStack>();
public List<CustomBlock> customBlocks = new ArrayList<CustomBlock>();
@ -46,6 +47,7 @@ public class CustomBlocksConfig extends ModConfigLoader{
loadBlocks("Herbalism", customHerbalismBlocks);
loadBlocks("Mining", customMiningBlocks);
loadBlocks("Woodcutting", customWoodcuttingBlocks);
loadBlocks("Ability_Blocks", customAbilityBlocks);
}
private void loadBlocks(String skillType, List<ItemStack> blockList) {
@ -66,20 +68,26 @@ public class CustomBlocksConfig extends ModConfigLoader{
int minimumDropAmount = config.getInt(skillType + "." + blockName + ".Min_Drop_Item_Amount", 1);
int maxiumDropAmount = config.getInt(skillType + "." + blockName + ".Max_Drop_Item_Amount", 1);
CustomBlock block;
ItemStack itemDrop;
ItemStack blockItem;
if (id == 0) {
plugin.getLogger().warning("Missing ID. This block will be skipped.");
continue;
}
if (skillType == "Ability_Blocks") {
blockItem = new ItemStack(id, 1, (short) 0, data);
blockList.add(blockItem);
continue;
}
if (dropItem && dropID == 0) {
plugin.getLogger().warning("Incomplete item drop information. This block will drop itself.");
dropItem = false;
}
CustomBlock block;
ItemStack itemDrop;
ItemStack blockItem;
if (dropItem) {
itemDrop = new ItemStack(dropID, 1, (short) 0, dropData);
}
@ -90,10 +98,10 @@ public class CustomBlocksConfig extends ModConfigLoader{
block = new CustomBlock(minimumDropAmount, maxiumDropAmount, itemDrop, tier, xp, data, id);
blockItem = new ItemStack(id, 1, (short) 0, data);
if (skillType.equals("Mining") && config.getBoolean(skillType + "." + blockName + ".Is_Ore")) {
if (skillType == "Mining" && config.getBoolean(skillType + "." + blockName + ".Is_Ore")) {
customOres.add(blockItem);
}
else if (skillType.equals("Woodcutting")) {
else if (skillType == "Woodcutting") {
if (config.getBoolean(skillType + "." + blockName + ".Is_Log")) {
customLogs.add(blockItem);
}

View File

@ -97,6 +97,9 @@ public class BlockChecks {
if (block.getTypeId() == Config.getInstance().getRepairAnvilId()) {
return false;
}
else if (customBlocksEnabled && CustomBlocksConfig.getInstance().customAbilityBlocks.contains(new ItemStack(block.getTypeId(), 1, (short) 0, block.getData()))) {
return false;
}
else {
return true;
}

View File

@ -94,4 +94,16 @@ Woodcutting:
Drop_Item_ID: 999
Drop_Item_Data_Value: 0
Min_Drop_Item_Amount: 1
Max_Drop_Item_Amount: 1
Max_Drop_Item_Amount: 1
#
# Settings for Custom Ability Blocks
# (These blocks don't trigger abilities)
###
Ability_Blocks:
Block_1:
ID: 999
Data_Value: 0
Block_2:
ID: 999
Data_Value: 0