package ic2.api.tile; import java.util.Collections; import java.util.IdentityHashMap; import java.util.Set; import net.minecraft.block.Block; /** * Blocks on this whitelist will not resist an explosion but won't be destroyed. * * The explosion code by default ignores blocks which absorb more than 1000 explosion power to * prevent abusing personal safes, Trade-O-Mats and other blocks to serve as a cheap and * invulnerable reactor chambers. Said blocks will not shield the explosion and won't get * destroyed. */ public final class ExplosionWhitelist { /** * Add a block to the whitelist. * * @param block block to add */ public static void addWhitelistedBlock(Block block) { whitelist.add(block); } /** * Remove a block from the whitelist. * * @param block block to remove */ public static void removeWhitelistedBlock(Block block) { whitelist.remove(block); } /** * Check if a block is on the whitelist. * * @param block block to check if whitelisted * @return Whether the block is whitelisted */ public static boolean isBlockWhitelisted(Block block) { return whitelist.contains(block); } private static Set<Block> whitelist = Collections.newSetFromMap(new IdentityHashMap<Block, Boolean>()); }