Skip to content

Commit

Permalink
Added OpenComputers integration for redstone-over-radio receiver/tran…
Browse files Browse the repository at this point in the history
…smitter
  • Loading branch information
Toshayo committed Mar 3, 2025
1 parent 1238933 commit d13d067
Showing 1 changed file with 35 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,17 +1,24 @@
package com.hbm.tileentity.network;

import com.hbm.handler.CompatHandler;
import com.hbm.interfaces.IControlReceiver;

import com.hbm.tileentity.TileEntityLoadedBase;
import com.hbm.util.BufferUtil;
import cpw.mods.fml.common.Optional;
import io.netty.buffer.ByteBuf;
import li.cil.oc.api.machine.Arguments;
import li.cil.oc.api.machine.Callback;
import li.cil.oc.api.machine.Context;
import li.cil.oc.api.network.SimpleComponent;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;

public class TileEntityRadioTorchBase extends TileEntityLoadedBase implements IControlReceiver {
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
public class TileEntityRadioTorchBase extends TileEntityLoadedBase implements IControlReceiver, SimpleComponent, CompatHandler.OCComponent {

/** channel we're broadcasting on/listening to */
public String channel = "";
Expand Down Expand Up @@ -103,4 +110,31 @@ public void receiveControl(NBTTagCompound data) {

this.markDirty();
}

@Override
@Optional.Method(modid = "OpenComputers")
public String getComponentName() {
return "radio_torch";
}

@Callback(direct = true, limit = 4, doc = "setChannle(channel: string) -- Set the channel the torch is listening/broadcasting to")
@Optional.Method(modid = "OpenComputers")
public Object[] setChannel(Context context, Arguments args) {
channel = args.checkString(0);
return new Object[] {};
}

@Callback(direct = true, limit = 4, doc = "setPolling(value: boolean) -- Switches state change mode to tick-based polling")
@Optional.Method(modid = "OpenComputers")
public Object[] setPolling(Context context, Arguments args) {
polling = args.checkBoolean(0);
return new Object[] {};
}

@Callback(direct = true, limit = 4, doc = "setCustomMap(value: boolean) -- Switches redstone passthrough to custom signal mapping")
@Optional.Method(modid = "OpenComputers")
public Object[] setCustomMap(Context context, Arguments args) {
customMap = args.checkBoolean(0);
return new Object[] {};
}
}

0 comments on commit d13d067

Please sign in to comment.