|
6 | 6 | import dan200.computercraft.api.peripheral.IComputerAccess;
|
7 | 7 | import dan200.computercraft.api.peripheral.IPeripheral;
|
8 | 8 | import li.cil.oc.api.Network;
|
| 9 | +import li.cil.oc.api.driver.DeviceInfo; |
9 | 10 | import li.cil.oc.api.network.BlacklistedPeripheral;
|
10 | 11 | import li.cil.oc.api.network.Environment;
|
11 | 12 | import li.cil.oc.api.network.Message;
|
|
23 | 24 | import pl.asie.computronics.api.multiperipheral.IMultiPeripheral;
|
24 | 25 | import pl.asie.computronics.cc.ISidedPeripheral;
|
25 | 26 | import pl.asie.computronics.reference.Mods;
|
| 27 | +import pl.asie.computronics.util.OCUtils; |
26 | 28 | import pl.asie.computronics.util.internal.IComputronicsPeripheral;
|
27 | 29 |
|
28 | 30 | import java.util.ArrayList;
|
| 31 | +import java.util.Map; |
29 | 32 |
|
30 | 33 | /**
|
31 | 34 | * @author CovertJaguar, Vexatos
|
32 | 35 | */
|
33 | 36 | @Optional.InterfaceList({
|
34 | 37 | @Optional.Interface(iface = "li.cil.oc.api.network.Environment", modid = Mods.OpenComputers),
|
35 | 38 | @Optional.Interface(iface = "li.cil.oc.api.network.SidedEnvironment", modid = Mods.OpenComputers),
|
| 39 | + @Optional.Interface(iface = "li.cil.oc.api.driver.DeviceInfo", modid = Mods.OpenComputers), |
36 | 40 | @Optional.Interface(iface = "li.cil.oc.api.network.BlacklistedPeripheral", modid = Mods.OpenComputers),
|
37 | 41 | @Optional.Interface(iface = "pl.asie.computronics.api.multiperipheral.IMultiPeripheral", modid = Mods.ComputerCraft)
|
38 | 42 | })
|
39 | 43 | public abstract class TileDigitalBoxBase extends TileBoxBase
|
40 |
| - implements Environment, SidedEnvironment, IMultiPeripheral, IComputronicsPeripheral, |
| 44 | + implements Environment, SidedEnvironment, DeviceInfo, IMultiPeripheral, IComputronicsPeripheral, |
41 | 45 | ISidedPeripheral, BlacklistedPeripheral {
|
42 | 46 |
|
43 | 47 | public TileDigitalBoxBase(String name) {
|
@@ -157,6 +161,23 @@ public void onMessage(Message message) {
|
157 | 161 |
|
158 | 162 | }
|
159 | 163 |
|
| 164 | + protected Map<String, String> deviceInfo; |
| 165 | + |
| 166 | + @Override |
| 167 | + @Optional.Method(modid = Mods.OpenComputers) |
| 168 | + public Map<String, String> getDeviceInfo() { |
| 169 | + if(deviceInfo == null) { |
| 170 | + OCUtils.Device device = deviceInfo(); |
| 171 | + if(device != null) { |
| 172 | + return deviceInfo = device.deviceInfo(); |
| 173 | + } |
| 174 | + } |
| 175 | + return deviceInfo; |
| 176 | + } |
| 177 | + |
| 178 | + @Optional.Method(modid = Mods.OpenComputers) |
| 179 | + protected abstract OCUtils.Device deviceInfo(); |
| 180 | + |
160 | 181 | @Override
|
161 | 182 | @Optional.Method(modid = Mods.OpenComputers)
|
162 | 183 | public Node sidedNode(ForgeDirection forgeDirection) {
|
|
0 commit comments