package joshie.progression.criteria.filters.block; import joshie.progression.api.ProgressionAPI; import joshie.progression.api.criteria.IField; import joshie.progression.api.criteria.ProgressionRule; import joshie.progression.api.special.DisplayMode; import joshie.progression.api.special.IInit; import joshie.progression.api.special.ISpecialFieldProvider; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import java.util.List; @ProgressionRule(name="blockStack", color=0xFF663300) public class FilterBlockStack extends FilterBaseBlock implements ISpecialFieldProvider, IInit { public ItemStack stack = new ItemStack(Blocks.ANVIL); public boolean matchState = true; private Block filterBlock = Blocks.ANVIL; private int filterMeta = 0; @Override public void init(boolean isClient) { try { filterBlock = getBlock(stack); filterMeta = filterBlock.getMetaFromState(filterBlock.getStateFromMeta((stack).getItemDamage())); } catch (Exception e) {} } @Override public ItemStack getRandom(EntityPlayer player) { return stack.copy(); } @Override public void addSpecialFields(List<IField> fields, DisplayMode mode) { if (mode == DisplayMode.EDIT) fields.add(ProgressionAPI.fields.getItem(this, "stack", 30, 35, 2.4F)); } @Override protected boolean matches(Block block, int meta) { if (block != filterBlock) return false; if (matchState && (meta != filterMeta)) return false; return true; } }