mirror of
https://github.com/GTNewHorizons/EnderIO.git
synced 2026-10-26 14:24:40 +00:00
#171 Merged new triggers implemented by domi1819
This commit is contained in:
1 parent
b0b020c65b
commit
442ed463c9
6 files changed
+139
-107
No files matched your search
@@ -57,7 +57,7 @@ import crazypants.enderio.material.ItemMaterial;
|
||||
import crazypants.enderio.material.ItemPowderIngot;
|
||||
import crazypants.enderio.material.ItemYetaWrench;
|
||||
import crazypants.enderio.material.MaterialRecipes;
|
||||
import crazypants.enderio.trigger.TriggerEnergyStorage;
|
||||
import crazypants.enderio.trigger.TriggerEnderIO;
|
||||
import crazypants.enderio.trigger.TriggerProviderEIO;
|
||||
|
||||
@Mod(name = "EnderIO", modid = "EnderIO", version = "0.2.4b", dependencies = "required-after:Forge@[9.10.0.800,)")
|
||||
@@ -117,7 +117,11 @@ public class EnderIO {
|
||||
public static ItemYetaWrench itemYetaWench;
|
||||
public static ItemMJReader itemMJReader;
|
||||
|
||||
public static ITrigger triggerNoEnergy, triggerHasEnergy, triggerFullEnergy;
|
||||
public static ITrigger triggerNoEnergy;
|
||||
public static ITrigger triggerHasEnergy;
|
||||
public static ITrigger triggerFullEnergy;
|
||||
public static ITrigger triggerIsCharging;
|
||||
public static ITrigger triggerFinishedCharging;
|
||||
|
||||
@EventHandler
|
||||
public void preInit(FMLPreInitializationEvent event) {
|
||||
@@ -198,9 +202,11 @@ public class EnderIO {
|
||||
ConduitRecipes.addRecipes();
|
||||
MachineRecipes.addRecipes();
|
||||
|
||||
triggerNoEnergy = new TriggerEnergyStorage("enderIO.trigger.noEnergy");
|
||||
triggerHasEnergy = new TriggerEnergyStorage("enderIO.trigger.hasEnergy");
|
||||
triggerFullEnergy = new TriggerEnergyStorage("enderIO.trigger.fullEnergy");
|
||||
triggerNoEnergy = new TriggerEnderIO("enderIO.trigger.noEnergy", 0);
|
||||
triggerHasEnergy = new TriggerEnderIO("enderIO.trigger.hasEnergy", 1);
|
||||
triggerFullEnergy = new TriggerEnderIO("enderIO.trigger.fullEnergy", 2);
|
||||
triggerIsCharging = new TriggerEnderIO("enderIO.trigger.isCharging", 3);
|
||||
triggerFinishedCharging = new TriggerEnderIO("enderIO.trigger.finishedCharging", 4);
|
||||
|
||||
ActionManager.registerTriggerProvider(new TriggerProviderEIO());
|
||||
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
package crazypants.enderio.trigger;
|
||||
|
||||
import thermalexpansion.api.item.IChargeableItem;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.machine.power.TileCapacitorBank;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import buildcraft.api.gates.ActionManager;
|
||||
import buildcraft.api.gates.ITrigger;
|
||||
import buildcraft.api.gates.ITriggerParameter;
|
||||
|
||||
public class TriggerEnderIO implements ITrigger {
|
||||
|
||||
public static Icon[] triggerIcons = new Icon[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 up 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.getEnergyStored() == capacitorBank.getMaxEnergyStored();
|
||||
}
|
||||
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 Icon getIcon() {
|
||||
return triggerIcons[triggerID];
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IconRegister 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;
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
package crazypants.enderio.trigger;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.machine.power.TileCapacitorBank;
|
||||
import net.minecraft.client.renderer.texture.IconRegister;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.Icon;
|
||||
import net.minecraftforge.common.ForgeDirection;
|
||||
import buildcraft.api.gates.ActionManager;
|
||||
import buildcraft.api.gates.ITrigger;
|
||||
import buildcraft.api.gates.ITriggerParameter;
|
||||
|
||||
public class TriggerEnergyStorage implements ITrigger
|
||||
{
|
||||
public static Icon[] triggerIcons = new Icon[3];
|
||||
|
||||
public String uniqueTag;
|
||||
|
||||
public TriggerEnergyStorage(String uniqueTag)
|
||||
{
|
||||
this.uniqueTag = uniqueTag;
|
||||
ActionManager.registerTrigger(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription()
|
||||
{
|
||||
if (uniqueTag == "enderIO.trigger.noEnergy") return "Capacitor Bank has no energy stored";
|
||||
if (uniqueTag == "enderIO.trigger.hasEnergy") return "Capacitor Bank has energy stored";
|
||||
if (uniqueTag == "enderIO.trigger.fullEnergy") return "Capacitor Bank is full with energy";
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isTriggerActive(ForgeDirection side, TileEntity tile, ITriggerParameter parameter)
|
||||
{
|
||||
if (tile instanceof TileCapacitorBank)
|
||||
{
|
||||
TileCapacitorBank capacitorBank = (TileCapacitorBank) tile;
|
||||
|
||||
if (uniqueTag == "enderIO.trigger.noEnergy") return capacitorBank.getEnergyStored() == 0;
|
||||
if (uniqueTag == "enderIO.trigger.hasEnergy") return capacitorBank.getEnergyStored() != 0;
|
||||
if (uniqueTag == "enderIO.trigger.fullEnergy") return capacitorBank.getEnergyStored() == capacitorBank.getMaxEnergyStored();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public Icon getIcon()
|
||||
{
|
||||
if (uniqueTag == "enderIO.trigger.noEnergy") return triggerIcons[0];
|
||||
if (uniqueTag == "enderIO.trigger.hasEnergy") return triggerIcons[1];
|
||||
if (uniqueTag == "enderIO.trigger.fullEnergy") return triggerIcons[2];
|
||||
return triggerIcons[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IconRegister iconRegistry)
|
||||
{
|
||||
triggerIcons[0] = iconRegistry.registerIcon("enderio:triggers/noEnergy");
|
||||
triggerIcons[1] = iconRegistry.registerIcon("enderio:triggers/hasEnergy");
|
||||
triggerIcons[2] = iconRegistry.registerIcon("enderio:triggers/fullEnergy");
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
}
|
||||
@@ -12,31 +12,29 @@ import buildcraft.api.gates.ITrigger;
|
||||
import buildcraft.api.gates.ITriggerProvider;
|
||||
import buildcraft.api.transport.IPipe;
|
||||
|
||||
public class TriggerProviderEIO implements ITriggerProvider
|
||||
{
|
||||
public class TriggerProviderEIO implements ITriggerProvider {
|
||||
|
||||
@Override
|
||||
public LinkedList<ITrigger> getNeighborTriggers(Block block, TileEntity tile)
|
||||
{
|
||||
if (tile instanceof IOverrideDefaultTriggers)
|
||||
{
|
||||
public LinkedList<ITrigger> getNeighborTriggers(Block block, TileEntity tile) {
|
||||
if (tile instanceof IOverrideDefaultTriggers) {
|
||||
return ((IOverrideDefaultTriggers) tile).getTriggers();
|
||||
}
|
||||
|
||||
LinkedList<ITrigger> triggers = new LinkedList<ITrigger>();
|
||||
|
||||
if (tile instanceof TileCapacitorBank)
|
||||
{
|
||||
if (tile instanceof TileCapacitorBank) {
|
||||
triggers.add(EnderIO.triggerNoEnergy);
|
||||
triggers.add(EnderIO.triggerHasEnergy);
|
||||
triggers.add(EnderIO.triggerFullEnergy);
|
||||
triggers.add(EnderIO.triggerIsCharging);
|
||||
triggers.add(EnderIO.triggerFinishedCharging);
|
||||
}
|
||||
|
||||
return triggers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkedList<ITrigger> getPipeTriggers(IPipe pipe)
|
||||
{
|
||||
public LinkedList<ITrigger> getPipeTriggers(IPipe pipe) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 427 B |
Binary file not shown.
|
After Width: | Height: | Size: 447 B |
Reference in new issue
Block a user