From 50bd8514ee4ce9f371f37c1a22554c0cf7b77b2f Mon Sep 17 00:00:00 2001 From: Nick Date: Sat, 23 Jan 2016 00:32:10 -0800 Subject: [PATCH] Allow mods to blacklist their blocks from Green Grove --- changelog.txt | 1 + .../WayofTime/bloodmagic/api/BloodMagicAPI.java | 13 ++++++++++++- .../item/sigil/ItemSigilGreenGrove.java | 16 ++++++++++------ .../bloodmagic/ritual/RitualGreenGrove.java | 11 ++++++++--- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/changelog.txt b/changelog.txt index 6258e55d..60c8b7c4 100644 --- a/changelog.txt +++ b/changelog.txt @@ -6,6 +6,7 @@ Version 2.0.0-7 - Allow configuration of entity sacrificial values - [API] Allow setting of entity sacrificial values via API. Takes precedence over config values. - [API] Method to easily get instances of Items and Blocks +- [API] Allow mods to blacklist their blocks from the Green Grove ritual/sigil ------------------------------------------------------ Version 2.0.0-6 diff --git a/src/main/java/WayofTime/bloodmagic/api/BloodMagicAPI.java b/src/main/java/WayofTime/bloodmagic/api/BloodMagicAPI.java index 6e086d09..979fa916 100644 --- a/src/main/java/WayofTime/bloodmagic/api/BloodMagicAPI.java +++ b/src/main/java/WayofTime/bloodmagic/api/BloodMagicAPI.java @@ -20,9 +20,10 @@ public class BloodMagicAPI { @Getter private static final List teleposerBlacklist = new ArrayList(); - @Getter private static final Map entitySacrificeValues = new HashMap(); + @Getter + private static final ArrayList greenGroveBlacklist = new ArrayList(); @Getter @Setter @@ -159,4 +160,14 @@ public class BloodMagicAPI if (!entitySacrificeValues.containsKey(entityClassName)) entitySacrificeValues.put(entityClassName, sacrificeValue); } + + /** + * Blacklists a block from the Green Grove Ritual and Sigil. + * + * @param block - Block to blacklist + */ + public static void blacklistFromGreenGrove(Block block) { + if (!greenGroveBlacklist.contains(block)) + greenGroveBlacklist.add(block); + } } diff --git a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilGreenGrove.java b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilGreenGrove.java index 791beb7e..7cf23ed2 100644 --- a/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilGreenGrove.java +++ b/src/main/java/WayofTime/bloodmagic/item/sigil/ItemSigilGreenGrove.java @@ -1,5 +1,6 @@ package WayofTime.bloodmagic.item.sigil; +import WayofTime.bloodmagic.api.BloodMagicAPI; import WayofTime.bloodmagic.api.Constants; import net.minecraft.block.Block; import net.minecraft.block.IGrowable; @@ -49,15 +50,18 @@ public class ItemSigilGreenGrove extends ItemSigilToggleable BlockPos blockPos = new BlockPos(ix, iy, iz); Block block = worldIn.getBlockState(blockPos).getBlock(); - if (block instanceof IPlantable || block instanceof IGrowable) + if (!BloodMagicAPI.getGreenGroveBlacklist().contains(block)) { - if (worldIn.rand.nextInt(50) == 0) + if (block instanceof IPlantable || block instanceof IGrowable) { - IBlockState preBlockState = worldIn.getBlockState(blockPos); - block.updateTick(worldIn, blockPos, worldIn.getBlockState(blockPos), worldIn.rand); + if (worldIn.rand.nextInt(50) == 0) + { + IBlockState preBlockState = worldIn.getBlockState(blockPos); + block.updateTick(worldIn, blockPos, worldIn.getBlockState(blockPos), worldIn.rand); - if (!worldIn.getBlockState(blockPos).equals(preBlockState)) - worldIn.playAuxSFX(2005, blockPos, 0); + if (!worldIn.getBlockState(blockPos).equals(preBlockState)) + worldIn.playAuxSFX(2005, blockPos, 0); + } } } } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java index ef413644..8d738dc4 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.ritual; import java.util.ArrayList; import java.util.Random; +import WayofTime.bloodmagic.api.BloodMagicAPI; import net.minecraft.block.Block; import net.minecraft.block.IGrowable; import net.minecraft.block.state.IBlockState; @@ -50,10 +51,14 @@ public class RitualGreenGrove extends Ritual { IBlockState state = world.getBlockState(newPos); Block block = state.getBlock(); - if (block instanceof IPlantable || block instanceof IGrowable) + + if (BloodMagicAPI.getGreenGroveBlacklist().contains(block)) { - block.updateTick(world, newPos, state, new Random()); - totalGrowths++; + if (block instanceof IPlantable || block instanceof IGrowable) + { + block.updateTick(world, newPos, state, new Random()); + totalGrowths++; + } } if (totalGrowths >= maxGrowths)