Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package crazypants.enderio.conduits.oc.conduit;
- import com.enderio.core.common.transform.SimpleMixin;
- import crazypants.enderio.base.conduit.IConduitBundle;
- import crazypants.enderio.conduits.conduit.TileConduitBundle;
- import li.cil.oc.api.network.Environment;
- import li.cil.oc.api.network.Message;
- import li.cil.oc.api.network.Node;
- import li.cil.oc.api.network.SidedEnvironment;
- import net.minecraft.util.EnumFacing;
- import net.minecraftforge.fml.common.Optional.Interface;
- import net.minecraftforge.fml.common.Optional.InterfaceList;
- import net.minecraftforge.fml.common.Optional.Method;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- @SimpleMixin(TileConduitBundle.class)
- @InterfaceList({
- @Interface(iface = "li.cil.oc.api.network.Environment", modid = "OpenComputersAPI|Network"),
- @Interface(iface = "li.cil.oc.api.network.SidedEnvironment", modid = "OpenComputersAPI|Network") })
- public interface OCMixin extends IConduitBundle, Environment, SidedEnvironment {
- // == Environment == //
- @Override
- @Method(modid = "OpenComputersAPI|Network")
- default Node node() {
- IOCConduit cond = getConduit(IOCConduit.class);
- if (cond != null) {
- return cond.node();
- } else {
- return null;
- }
- }
- @Override
- @Method(modid = "OpenComputersAPI|Network")
- default void onConnect(Node node) {
- IOCConduit cond = getConduit(IOCConduit.class);
- if (cond != null) {
- cond.onConnect(node);
- }
- }
- @Override
- @Method(modid = "OpenComputersAPI|Network")
- default void onDisconnect(Node node) {
- IOCConduit cond = getConduit(IOCConduit.class);
- if (cond != null) {
- cond.onDisconnect(node);
- }
- }
- @Override
- @Method(modid = "OpenComputersAPI|Network")
- default void onMessage(Message message) {
- IOCConduit cond = getConduit(IOCConduit.class);
- if (cond != null) {
- cond.onMessage(message);
- }
- }
- // == SidedEnvironment == //
- @Override
- @Method(modid = "OpenComputersAPI|Network")
- default Node sidedNode(EnumFacing side) {
- IOCConduit cond = getConduit(IOCConduit.class);
- if (cond != null) {
- return cond.sidedNode(side);
- } else {
- return null;
- }
- }
- @Override
- @Method(modid = "OpenComputersAPI|Network")
- @SideOnly(Side.CLIENT)
- default boolean canConnect(EnumFacing side) {
- IOCConduit cond = getConduit(IOCConduit.class);
- if (cond != null) {
- return cond.canConnect(side);
- } else {
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment