Package crazypants.enderio.trigger

Source Code of crazypants.enderio.trigger.TriggerEnderIO

package crazypants.enderio.trigger;

import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraftforge.common.util.ForgeDirection;
import buildcraft.api.gates.ActionManager;
import buildcraft.api.gates.ITrigger;
import buildcraft.api.gates.ITriggerParameter;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import crazypants.enderio.machine.power.TileCapacitorBank;

public class TriggerEnderIO implements ITrigger {

  public static IIcon[] triggerIcons = new IIcon[5];
  public static String[] descriptions = new String[] { "Capacitor Bank has no energy stored", "Capacitor Bank has energy stored",
      "Capacitor Bank is full with energy", "Capacitor Bank is charging items", "Capacitor Bank finished charging items" };

  public String uniqueTag;

  public int triggerID;

  public TriggerEnderIO(String uniqueTag, int triggerID) {
    this.uniqueTag = uniqueTag;
    this.triggerID = triggerID;
    ActionManager.registerTrigger(this);
  }

  @Override
  public String getDescription() {
    return descriptions[triggerID];
  }

  //@Override
  public boolean isTriggerActive(ForgeDirection side, TileEntity tile, ITriggerParameter parameter) {
    if(tile instanceof TileCapacitorBank) {
      TileCapacitorBank capacitorBank = (TileCapacitorBank) tile;

      if(triggerID == 0) {
        return capacitorBank.getEnergyStored() == 0;
      }
      if(triggerID == 1) {
        return capacitorBank.getEnergyStored() != 0;
      }
      if(triggerID == 2) {
        return capacitorBank.getMaxEnergyStored() - capacitorBank.getEnergyStored() < 5;
      }
      if(triggerID == 3 || triggerID == 4) {
        ItemStack[] items = new ItemStack[capacitorBank.getSizeInventory()];
        for (int i = 0; i < items.length; i++) {
          items[i] = capacitorBank.getStackInSlot(i);
        }
        boolean capacitorBankEmpty = true;
        for (int i = 0; i < items.length; i++) {
          if(items[i] != null && items[i].getItem() instanceof IChargeableItem) {
            capacitorBankEmpty = false;
          }
        }
        if(capacitorBankEmpty) {
          return false;
        }
        boolean hasUnchargedItems = false;
        for (int i = 0; i < items.length; i++) {
          if(items[i] != null && items[i].getItem() instanceof IChargeableItem) {
            IChargeableItem item = (IChargeableItem) items[i].getItem();
            if(item.getEnergyStored(items[i]) < item.getMaxEnergyStored(items[i])) {
              hasUnchargedItems = true;
            }
          }
        }
        if(hasUnchargedItems && triggerID == 3) {
          return true;
        }
        if(!hasUnchargedItems && triggerID == 4) {
          return true;
        }
      }
    }
    return false;
  }

  @Override
  @SideOnly(Side.CLIENT)
  public IIcon getIcon() {
    return triggerIcons[triggerID];
  }

  @Override
  @SideOnly(Side.CLIENT)
  public void registerIcons(IIconRegister iconRegistry) {
    triggerIcons[0] = iconRegistry.registerIcon("enderio:triggers/noEnergy");
    triggerIcons[1] = iconRegistry.registerIcon("enderio:triggers/hasEnergy");
    triggerIcons[2] = iconRegistry.registerIcon("enderio:triggers/fullEnergy");
    triggerIcons[3] = iconRegistry.registerIcon("enderio:triggers/charging");
    triggerIcons[4] = iconRegistry.registerIcon("enderio:triggers/chargingDone");
  }

//  @Override
//  public int getLegacyId() {
//    return 0;
//  }

  @Override
  public String getUniqueTag() {
    return this.uniqueTag;
  }

  @Override
  public boolean hasParameter() {
    return false;
  }

  @Override
  public ITriggerParameter createParameter() {
    return null;
  }

  @Override
  public boolean requiresParameter() {
    return false;
  }
}
TOP

Related Classes of crazypants.enderio.trigger.TriggerEnderIO

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.