Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package bloodinterface.compatibility.lua.events;
- import bloodinterface.reference.ModList;
- import bloodinterface.tileentities.ComputerBaseTE;
- import cpw.mods.fml.common.Loader;
- import cpw.mods.fml.common.Optional;
- import dan200.computercraft.api.peripheral.IComputerAccess;
- import li.cil.oc.api.machine.Context;
- import li.cil.oc.api.network.Node;
- import net.minecraft.tileentity.TileEntity;
- public abstract class LuaEvent {
- String name;
- public LuaEvent(String name)
- {
- this.name = name;
- }
- public abstract boolean checkEvent(TileEntity te);
- public void announce(TileEntity te, Object... message)
- {
- if (!(te instanceof ComputerBaseTE)) return;
- ComputerBaseTE cTE = (ComputerBaseTE) te;
- if (Loader.isModLoaded(ModList.COMPUTERCRAFT))
- computerCraftAnnounce(cTE, message);
- if (Loader.isModLoaded(ModList.OPENCOMPUTERS))
- openComputersAnnounce(cTE, message);
- }
- @Optional.Method(modid = ModList.COMPUTERCRAFT)
- public void computerCraftAnnounce(ComputerBaseTE te, Object... message)
- {
- for (Object computer:te.getComputers())
- {
- ((IComputerAccess)computer).queueEvent(name,message);
- }
- }
- @Optional.Method(modid = ModList.OPENCOMPUTERS)
- public void openComputersAnnounce(ComputerBaseTE te, Object... message)
- {
- Node node = te.node();
- if (node!=null) ((Context)node).signal(name,message);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement