Advertisement
Guest User

Untitled

a guest
Nov 15th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.48 KB | None | 0 0
  1. package bloodinterface.compatibility.lua.events;
  2.  
  3. import bloodinterface.reference.ModList;
  4. import bloodinterface.tileentities.ComputerBaseTE;
  5. import cpw.mods.fml.common.Loader;
  6. import cpw.mods.fml.common.Optional;
  7. import dan200.computercraft.api.peripheral.IComputerAccess;
  8. import li.cil.oc.api.machine.Context;
  9. import li.cil.oc.api.network.Node;
  10. import net.minecraft.tileentity.TileEntity;
  11.  
  12. public abstract class LuaEvent {
  13.  
  14.     String name;
  15.  
  16.     public LuaEvent(String name)
  17.     {
  18.         this.name = name;
  19.     }
  20.  
  21.     public abstract boolean checkEvent(TileEntity te);
  22.  
  23.     public void announce(TileEntity te, Object... message)
  24.     {
  25.         if (!(te instanceof ComputerBaseTE)) return;
  26.         ComputerBaseTE cTE = (ComputerBaseTE) te;
  27.         if (Loader.isModLoaded(ModList.COMPUTERCRAFT))
  28.             computerCraftAnnounce(cTE, message);
  29.         if (Loader.isModLoaded(ModList.OPENCOMPUTERS))
  30.             openComputersAnnounce(cTE, message);
  31.     }
  32.  
  33.     @Optional.Method(modid = ModList.COMPUTERCRAFT)
  34.     public void computerCraftAnnounce(ComputerBaseTE te, Object... message)
  35.     {
  36.         for (Object computer:te.getComputers())
  37.         {
  38.             ((IComputerAccess)computer).queueEvent(name,message);
  39.         }
  40.     }
  41.  
  42.     @Optional.Method(modid = ModList.OPENCOMPUTERS)
  43.     public void openComputersAnnounce(ComputerBaseTE te, Object... message)
  44.     {
  45.         Node node = te.node();
  46.         if (node!=null) ((Context)node).signal(name,message);
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement