package crazypants.enderio.machine; import java.util.List; import java.util.Locale; import net.minecraft.tileentity.TileEntity; import com.enderio.core.api.client.render.IWidgetIcon; import com.enderio.core.client.gui.button.CycleButton.ICycleEnum; import com.google.common.collect.Lists; import crazypants.enderio.EnderIO; import crazypants.enderio.gui.IconEIO; public enum RedstoneControlMode implements ICycleEnum { IGNORE(IconEIO.REDSTONE_MODE_ALWAYS), ON(IconEIO.REDSTONE_MODE_WITH_SIGNAL), OFF(IconEIO.REDSTONE_MODE_WITHOUT_SIGNAL), NEVER(IconEIO.REDSTONE_MODE_NEVER); private IWidgetIcon icon; RedstoneControlMode(IWidgetIcon icon) { this.icon = icon; } public String getTooltip() { return EnderIO.lang.localize("gui.tooltip.redstoneControlMode." + name().toLowerCase(Locale.US)); } @Override public IWidgetIcon getIcon() { return icon; } @Override public List<String> getTooltipLines() { return Lists.newArrayList(getTooltip()); } public static boolean isConditionMet(RedstoneControlMode redstoneControlMode, int powerLevel) { boolean redstoneCheckPassed = true; if(redstoneControlMode == RedstoneControlMode.NEVER) { redstoneCheckPassed = false; } else if(redstoneControlMode == RedstoneControlMode.ON) { if(powerLevel < 1) { redstoneCheckPassed = false; } } else if(redstoneControlMode == RedstoneControlMode.OFF) { if(powerLevel > 0) { redstoneCheckPassed = false; } } return redstoneCheckPassed; } public static boolean isConditionMet(RedstoneControlMode redstoneControlMode, TileEntity te) { return isConditionMet(redstoneControlMode, te.getWorldObj().getStrongestIndirectPower(te.xCoord, te.yCoord, te.zCoord)); } public RedstoneControlMode next() { int ord = ordinal(); if(ord == values().length - 1) { ord = 0; } else { ord++; } return values()[ord]; } public RedstoneControlMode previous() { int ord = ordinal(); ord--; if(ord < 0) { ord = values().length - 1; } return values()[ord]; } }