diff options
Diffstat (limited to 'src/Java/binnie/core/triggers/ActionProvider.java')
-rw-r--r-- | src/Java/binnie/core/triggers/ActionProvider.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Java/binnie/core/triggers/ActionProvider.java b/src/Java/binnie/core/triggers/ActionProvider.java new file mode 100644 index 0000000000..1fa519dc6c --- /dev/null +++ b/src/Java/binnie/core/triggers/ActionProvider.java @@ -0,0 +1,38 @@ +package binnie.core.triggers; + +import binnie.core.machines.component.IBuildcraft.ActionProvider; +import buildcraft.api.statements.IActionExternal; +import buildcraft.api.statements.IActionInternal; +import buildcraft.api.statements.IActionProvider; +import buildcraft.api.statements.IStatementContainer; +import cpw.mods.fml.common.Optional.Method; +import java.util.Collection; +import java.util.LinkedList; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +class ActionProvider + implements IActionProvider +{ + @Optional.Method(modid="BuildCraft|Silicon") + public Collection<IActionInternal> getInternalActions(IStatementContainer container) + { + return null; + } + + @Optional.Method(modid="BuildCraft|Silicon") + public Collection<IActionExternal> getExternalActions(ForgeDirection side, TileEntity tile) + { + LinkedList<IActionExternal> list = new LinkedList(); + if ((tile instanceof IBuildcraft.ActionProvider)) { + ((IBuildcraft.ActionProvider)tile).getActions(list); + } + LinkedList<IActionExternal> list2 = new LinkedList(); + for (IActionExternal action : list2) { + if ((action != null) && (action.getUniqueTag() != null)) { + list.add(action); + } + } + return list2; + } +} |