use of forestry.api.genetics.IFilterRuleType in project ForestryMC by ForestryMC.
the class RuleWidget method getToolTip.
@Override
public ToolTip getToolTip(int mouseX, int mouseY) {
IFilterLogic logic = gui.getLogic();
IFilterRuleType rule = logic.getRule(facing);
ToolTip tooltip = new ToolTip();
tooltip.add(getName(rule));
return tooltip;
}
use of forestry.api.genetics.IFilterRuleType in project ForestryMC by ForestryMC.
the class RuleWidget method draw.
@Override
public void draw(int startX, int startY) {
int x = xPos + startX;
int y = yPos + startY;
IFilterLogic logic = gui.getLogic();
IFilterRuleType rule = logic.getRule(facing);
draw(manager.gui, rule, x, y);
TextureManager textureManager = Minecraft.getMinecraft().getTextureManager();
if (this.gui.selection.isSame(this)) {
textureManager.bindTexture(SelectionWidget.TEXTURE);
gui.drawTexturedModalRect(x - 1, y - 1, 212, 0, 18, 18);
}
}
use of forestry.api.genetics.IFilterRuleType in project ForestryMC by ForestryMC.
the class FilterLogic method isValid.
public boolean isValid(EnumFacing facing, ItemStack itemStack, IFilterData filterData) {
IFilterRuleType rule = getRule(facing);
if (rule == DefaultFilterRuleType.CLOSED) {
return false;
}
if (rule == DefaultFilterRuleType.ITEM && !filterData.isPresent()) {
return true;
}
String requiredRoot = rule.getRootUID();
if (requiredRoot != null && (!filterData.isPresent() || !filterData.getRoot().getUID().equals(requiredRoot))) {
return false;
}
if (rule == DefaultFilterRuleType.ANYTHING || rule.isValid(itemStack, filterData)) {
if (filterData.isPresent()) {
IIndividual ind = filterData.getIndividual();
IGenome genome = ind.getGenome();
IAllele active = genome.getPrimary();
IAllele inactive = genome.getSecondary();
if (!isValidAllelePair(facing, active.getUID(), inactive.getUID())) {
return false;
}
}
return true;
}
return false;
}
use of forestry.api.genetics.IFilterRuleType in project ForestryMC by ForestryMC.
the class FilterRegistry method init.
public void init() {
List<IFilterRuleType> rules = new LinkedList<>();
rules.addAll(filterByName.values());
rules.sort(FILTER_COMPARATOR);
for (int i = 0; i < rules.size(); i++) {
IFilterRuleType rule = rules.get(i);
filterIDByName.put(rule.getUID(), i);
filterByID.put(i, rule);
}
}
Aggregations