diff --git a/src/main/java/li/cil/oc/api/API.java b/src/main/java/li/cil/oc/api/API.java new file mode 100644 index 000000000..b5df5fcd0 --- /dev/null +++ b/src/main/java/li/cil/oc/api/API.java @@ -0,0 +1,21 @@ +package li.cil.oc.api; + +import li.cil.oc.api.detail.*; + +/** + * Central reference for the API. + *

+ * Don't use this class directly, prefer using the other classes in this + * package instead. This class is initialized by OpenComputers in the + * pre-init phase, so it should not be used before the init phase. + */ +public class API { + public static final String ID_OWNER = "OpenComputers|Core"; + public static final String VERSION = "3.1.0"; + + public static DriverAPI driver = null; + public static FileSystemAPI fileSystem = null; + public static ItemAPI items = null; + public static MachineAPI machine = null; + public static NetworkAPI network = null; +} diff --git a/src/main/java/li/cil/oc/api/Driver.java b/src/main/java/li/cil/oc/api/Driver.java index f6cacedd1..44dca8bbf 100644 --- a/src/main/java/li/cil/oc/api/Driver.java +++ b/src/main/java/li/cil/oc/api/Driver.java @@ -1,6 +1,5 @@ package li.cil.oc.api; -import li.cil.oc.api.detail.DriverAPI; import li.cil.oc.api.driver.Block; import li.cil.oc.api.driver.Converter; import li.cil.oc.api.driver.EnvironmentHost; @@ -16,6 +15,10 @@ import net.minecraft.world.World; * block that should interact with the mod's component network it is enough to * have it implement {@link li.cil.oc.api.network.Environment} - no driver is * needed in that case. + *

+ * Note that these methods should not be called in the pre-init phase, + * since the {@link li.cil.oc.api.API#driver} may not have been initialized + * at that time. Only start calling these methods in the init phase or later. * * @see Network * @see Block @@ -35,8 +38,8 @@ public final class Driver { * @param driver the driver to register. */ public static void add(final Block driver) { - if (instance != null) - instance.add(driver); + if (API.driver != null) + API.driver.add(driver); } /** @@ -51,8 +54,8 @@ public final class Driver { * @param driver the driver to register. */ public static void add(final Item driver) { - if (instance != null) - instance.add(driver); + if (API.driver != null) + API.driver.add(driver); } /** @@ -67,8 +70,8 @@ public final class Driver { * @param converter the converter to register. */ public static void add(final Converter converter) { - if (instance != null) - instance.add(converter); + if (API.driver != null) + API.driver.add(converter); } /** @@ -87,8 +90,8 @@ public final class Driver { * @return a driver for the block, or null if there is none. */ public static Block driverFor(World world, int x, int y, int z) { - if (instance != null) - return instance.driverFor(world, x, y, z); + if (API.driver != null) + return API.driver.driverFor(world, x, y, z); return null; } @@ -104,8 +107,8 @@ public final class Driver { * @return a driver for the item, or null if there is none. */ public static Item driverFor(ItemStack stack, Class host) { - if (instance != null) - return instance.driverFor(stack, host); + if (API.driver != null) + return API.driver.driverFor(stack, host); return null; } @@ -123,8 +126,8 @@ public final class Driver { * @return a driver for the item, or null if there is none. */ public static Item driverFor(ItemStack stack) { - if (instance != null) - return instance.driverFor(stack); + if (API.driver != null) + return API.driver.driverFor(stack); return null; } @@ -132,6 +135,4 @@ public final class Driver { private Driver() { } - - public static DriverAPI instance = null; } \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/FileSystem.java b/src/main/java/li/cil/oc/api/FileSystem.java index d177a38f5..b9170805b 100644 --- a/src/main/java/li/cil/oc/api/FileSystem.java +++ b/src/main/java/li/cil/oc/api/FileSystem.java @@ -1,6 +1,5 @@ package li.cil.oc.api; -import li.cil.oc.api.detail.FileSystemAPI; import li.cil.oc.api.driver.EnvironmentHost; import li.cil.oc.api.fs.Label; import li.cil.oc.api.network.ManagedEnvironment; @@ -18,8 +17,8 @@ import li.cil.oc.api.network.ManagedEnvironment; * and set the visibility to the desired value. *

* Note that these methods should not be called in the pre-init phase, - * since the {@link #instance} may not have been initialized at that time. Only - * start calling these methods in the init phase or later. + * since the {@link li.cil.oc.api.API#fileSystem} may not have been initialized + * at that time. Only start calling these methods in the init phase or later. */ public final class FileSystem { /** @@ -44,8 +43,8 @@ public final class FileSystem { * @return a file system wrapping the specified folder. */ public static li.cil.oc.api.fs.FileSystem fromClass(final Class clazz, final String domain, final String root) { - if (instance != null) - return instance.fromClass(clazz, domain, root); + if (API.fileSystem != null) + return API.fileSystem.fromClass(clazz, domain, root); return null; } @@ -73,8 +72,8 @@ public final class FileSystem { * @return a file system wrapping the specified folder. */ public static li.cil.oc.api.fs.FileSystem fromSaveDirectory(final String root, final long capacity, final boolean buffered) { - if (instance != null) - return instance.fromSaveDirectory(root, capacity, buffered); + if (API.fileSystem != null) + return API.fileSystem.fromSaveDirectory(root, capacity, buffered); return null; } @@ -103,8 +102,8 @@ public final class FileSystem { * @return a file system residing in memory. */ public static li.cil.oc.api.fs.FileSystem fromMemory(final long capacity) { - if (instance != null) - return instance.fromMemory(capacity); + if (API.fileSystem != null) + return API.fileSystem.fromMemory(capacity); return null; } @@ -121,8 +120,8 @@ public final class FileSystem { * @return a file system wrapping the specified mount. */ public static li.cil.oc.api.fs.FileSystem fromComputerCraft(final Object mount) { - if (instance != null) - return instance.fromComputerCraft(mount); + if (API.fileSystem != null) + return API.fileSystem.fromComputerCraft(mount); return null; } @@ -153,8 +152,8 @@ public final class FileSystem { * @return the network node wrapping the file system. */ public static ManagedEnvironment asManagedEnvironment(final li.cil.oc.api.fs.FileSystem fileSystem, final Label label, final EnvironmentHost host, final String accessSound) { - if (instance != null) - return instance.asManagedEnvironment(fileSystem, label, host, accessSound); + if (API.fileSystem != null) + return API.fileSystem.asManagedEnvironment(fileSystem, label, host, accessSound); return null; } @@ -172,8 +171,8 @@ public final class FileSystem { * @return the network node wrapping the file system. */ public static ManagedEnvironment asManagedEnvironment(final li.cil.oc.api.fs.FileSystem fileSystem, final String label, final EnvironmentHost host, final String accessSound) { - if (instance != null) - return instance.asManagedEnvironment(fileSystem, label, host, accessSound); + if (API.fileSystem != null) + return API.fileSystem.asManagedEnvironment(fileSystem, label, host, accessSound); return null; } @@ -186,8 +185,8 @@ public final class FileSystem { * @return the network node wrapping the file system. */ public static ManagedEnvironment asManagedEnvironment(final li.cil.oc.api.fs.FileSystem fileSystem, final Label label) { - if (instance != null) - return instance.asManagedEnvironment(fileSystem, label); + if (API.fileSystem != null) + return API.fileSystem.asManagedEnvironment(fileSystem, label); return null; } @@ -200,8 +199,8 @@ public final class FileSystem { * @return the network node wrapping the file system. */ public static ManagedEnvironment asManagedEnvironment(final li.cil.oc.api.fs.FileSystem fileSystem, final String label) { - if (instance != null) - return instance.asManagedEnvironment(fileSystem, label); + if (API.fileSystem != null) + return API.fileSystem.asManagedEnvironment(fileSystem, label); return null; } @@ -214,8 +213,8 @@ public final class FileSystem { * @return the network node wrapping the file system. */ public static ManagedEnvironment asManagedEnvironment(final li.cil.oc.api.fs.FileSystem fileSystem) { - if (instance != null) - return instance.asManagedEnvironment(fileSystem); + if (API.fileSystem != null) + return API.fileSystem.asManagedEnvironment(fileSystem); return null; } @@ -223,6 +222,4 @@ public final class FileSystem { private FileSystem() { } - - public static FileSystemAPI instance = null; } \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/Items.java b/src/main/java/li/cil/oc/api/Items.java index c996ba536..a10182d6c 100644 --- a/src/main/java/li/cil/oc/api/Items.java +++ b/src/main/java/li/cil/oc/api/Items.java @@ -1,6 +1,5 @@ package li.cil.oc.api; -import li.cil.oc.api.detail.ItemAPI; import li.cil.oc.api.detail.ItemInfo; import net.minecraft.item.ItemStack; @@ -16,14 +15,18 @@ public final class Items { * object can be used to retrieve both the block and item instance of the * item, if available. It can also be used to create a new item stack of * the item. + *

+ * Note that these methods should not be called in the pre-init phase, + * since the {@link li.cil.oc.api.API#items} may not have been initialized + * at that time. Only start calling these methods in the init phase or later. * * @param name the name of the item to get the descriptor for. * @return the descriptor for the item with the specified name, or * null if there is no such item. */ public static ItemInfo get(String name) { - if (instance != null) - return instance.get(name); + if (API.items != null) + return API.items.get(name); return null; } @@ -36,8 +39,8 @@ public final class Items { * if the stack is not a valid OpenComputers item or block. */ public static ItemInfo get(ItemStack stack) { - if (instance != null) - return instance.get(stack); + if (API.items != null) + return API.items.get(stack); return null; } @@ -45,6 +48,4 @@ public final class Items { private Items() { } - - public static ItemAPI instance = null; } diff --git a/src/main/java/li/cil/oc/api/Machine.java b/src/main/java/li/cil/oc/api/Machine.java index 28ce4e81e..2fe890980 100644 --- a/src/main/java/li/cil/oc/api/Machine.java +++ b/src/main/java/li/cil/oc/api/Machine.java @@ -1,6 +1,5 @@ package li.cil.oc.api; -import li.cil.oc.api.detail.MachineAPI; import li.cil.oc.api.machine.Architecture; import li.cil.oc.api.machine.MachineHost; @@ -18,8 +17,8 @@ import java.util.Collections; * convenience feature to make architectures usable via the built-in CPUs. *

* Note that these methods should not be called in the pre-init phase, - * since the {@link #instance} may not have been initialized at that time. Only - * start calling these methods in the init phase or later. + * since the {@link li.cil.oc.api.API#machine} may not have been initialized + * at that time. Only start calling these methods in the init phase or later. */ public final class Machine { /** @@ -32,16 +31,16 @@ public final class Machine { * @param architecture the architecture to register. */ public static void add(Class architecture) { - if (instance != null) - instance.add(architecture); + if (API.machine != null) + API.machine.add(architecture); } /** * A list of all registered architectures. */ public static Iterable> architectures() { - if (instance != null) - return instance.architectures(); + if (API.machine != null) + return API.machine.architectures(); return Collections.emptyList(); } @@ -55,8 +54,8 @@ public final class Machine { * @return the newly created machine. */ public static li.cil.oc.api.machine.Machine create(MachineHost host) { - if (instance != null) - return instance.create(host); + if (API.machine != null) + return API.machine.create(host); return null; } @@ -65,8 +64,6 @@ public final class Machine { private Machine() { } - public static MachineAPI instance = null; - /** * The built-in Lua architecture. This will be set to the native Lua * implementation when possible, to the LuaJ fallback, otherwise. diff --git a/src/main/java/li/cil/oc/api/Network.java b/src/main/java/li/cil/oc/api/Network.java index e93e2d1a3..ce7d6d05d 100644 --- a/src/main/java/li/cil/oc/api/Network.java +++ b/src/main/java/li/cil/oc/api/Network.java @@ -1,7 +1,6 @@ package li.cil.oc.api; import li.cil.oc.api.detail.Builder; -import li.cil.oc.api.detail.NetworkAPI; import li.cil.oc.api.network.*; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -21,8 +20,8 @@ import net.minecraft.tileentity.TileEntity; * logic lies - since user code only runs on the server. *

* Note that these methods should not be called in the pre-init phase, - * since the {@link #instance} may not have been initialized at that time. Only - * start calling these methods in the init phase or later. + * since the {@link li.cil.oc.api.API#network} may not have been initialized + * at that time. Only start calling these methods in the init phase or later. */ public final class Network { /** @@ -41,8 +40,8 @@ public final class Network { * @param tileEntity the tile entity to initialize. */ public static void joinOrCreateNetwork(final TileEntity tileEntity) { - if (instance != null) - instance.joinOrCreateNetwork(tileEntity); + if (API.network != null) + API.network.joinOrCreateNetwork(tileEntity); } /** @@ -56,8 +55,8 @@ public final class Network { * @throws IllegalArgumentException if the node already is in a network. */ public static void joinNewNetwork(final Node node) { - if (instance != null) - instance.joinNewNetwork(node); + if (API.network != null) + API.network.joinNewNetwork(node); } // ----------------------------------------------------------------------- // @@ -76,8 +75,8 @@ public final class Network { * @param endpoint the endpoint to register with the network. */ public static void joinWirelessNetwork(final WirelessEndpoint endpoint) { - if (instance != null) - instance.joinWirelessNetwork(endpoint); + if (API.network != null) + API.network.joinWirelessNetwork(endpoint); } /** @@ -92,8 +91,8 @@ public final class Network { * @param endpoint the endpoint for which to update the position. */ public static void updateWirelessNetwork(final WirelessEndpoint endpoint) { - if (instance != null) - instance.updateWirelessNetwork(endpoint); + if (API.network != null) + API.network.updateWirelessNetwork(endpoint); } /** @@ -107,8 +106,8 @@ public final class Network { * @param endpoint the endpoint to remove from the wireless network. */ public static void leaveWirelessNetwork(final WirelessEndpoint endpoint) { - if (instance != null) - instance.leaveWirelessNetwork(endpoint); + if (API.network != null) + API.network.leaveWirelessNetwork(endpoint); } /** @@ -125,8 +124,8 @@ public final class Network { * @param packet the packet to send. */ public static void sendWirelessPacket(final WirelessEndpoint source, final double strength, final Packet packet) { - if (instance != null) - instance.sendWirelessPacket(source, strength, packet); + if (API.network != null) + API.network.sendWirelessPacket(source, strength, packet); } // ----------------------------------------------------------------------- // @@ -169,8 +168,8 @@ public final class Network { * @return a new node builder. */ public static Builder.NodeBuilder newNode(final Environment host, final Visibility reachability) { - if (instance != null) - return instance.newNode(host, reachability); + if (API.network != null) + return API.network.newNode(host, reachability); return null; } @@ -190,8 +189,8 @@ public final class Network { * @return the new packet. */ public static Packet newPacket(final String source, final String destination, final int port, final Object[] data) { - if (instance != null) - return instance.newPacket(source, destination, port, data); + if (API.network != null) + return API.network.newPacket(source, destination, port, data); return null; } @@ -202,8 +201,8 @@ public final class Network { * @return the loaded packet. */ public static Packet newPacket(final NBTTagCompound nbt) { - if (instance != null) - return instance.newPacket(nbt); + if (API.network != null) + return API.network.newPacket(nbt); return null; } @@ -211,6 +210,4 @@ public final class Network { private Network() { } - - public static NetworkAPI instance = null; } diff --git a/src/main/java/li/cil/oc/api/README.md b/src/main/java/li/cil/oc/api/README.md index b029667e1..f6a454afa 100644 --- a/src/main/java/li/cil/oc/api/README.md +++ b/src/main/java/li/cil/oc/api/README.md @@ -35,9 +35,9 @@ More control ------------ If you really need more control over how how your tile entity interacts with OpenComputer's internal network, you will have to implement the `Environment` interface on your tile entity. There's a basic implementation in the prefab package, named `TileEntityEnvironment`. Doing so will give you access to the `Node` that connects to the component network, and you must take care of the construction of the node itself (using the factory method in `api.Network`). This allows you to make the node a `Connector` node, which will allow you to draw internal power from OpenComputers or feed energy into it. You will also be able to send messages over the component network, see the `send...` methods in the `Node` interface. See the documentation on those interfaces to get a better idea on how they work together. -Making a thrid-party block available as component / peripheral +Making a third-party block available as component / peripheral -------------------------------------------------------------- -Blocks from other mods, i.e. blocks where you have no control over the tile entity implementation, can be accessed using the Adapter block as long as there is a driver available that supports the block. If there are multiple drivers they are automatically merged. Please see the [OpenComponents][] project for examples, and consider contributing any block drivers you write to it. Thank you. +Blocks from other mods, i.e. blocks where you have no control over the tile entity implementation, can be accessed using the Adapter block as long as there is a driver available that supports the block. If there are multiple drivers they are automatically merged. Please see the [integration][] package for examples, and consider contributing any block drivers you write. Thank you! Making items available as components ------------------------------------ @@ -82,4 +82,4 @@ public class TileEntityWithFileSystem extends TileEntityEnvironment { ``` -[OpenComponents]: https://github.com/MightyPirates/OpenComponents \ No newline at end of file +[integration]: https://github.com/MightyPirates/OpenComputers/tree/master-MC1.7.10/src/main/scala/li/cil/oc/integration \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/component/package-info.java b/src/main/java/li/cil/oc/api/component/package-info.java index b17baf887..615dd621d 100644 --- a/src/main/java/li/cil/oc/api/component/package-info.java +++ b/src/main/java/li/cil/oc/api/component/package-info.java @@ -6,7 +6,9 @@ * mod itself. */ @cpw.mods.fml.common.API( - owner = "OpenComputers|Core", + owner = API.ID_OWNER, provides = "OpenComputersAPI|Component", - apiVersion = "3.0.1") -package li.cil.oc.api.component; \ No newline at end of file + apiVersion = API.VERSION) +package li.cil.oc.api.component; + +import li.cil.oc.api.API; \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/driver/item/package-info.java b/src/main/java/li/cil/oc/api/driver/item/package-info.java index 4381f3819..6c2d9fc02 100644 --- a/src/main/java/li/cil/oc/api/driver/item/package-info.java +++ b/src/main/java/li/cil/oc/api/driver/item/package-info.java @@ -5,7 +5,9 @@ * that is without creating an actual environment. */ @cpw.mods.fml.common.API( - owner = "OpenComputers|Core", + owner = API.ID_OWNER, provides = "OpenComputersAPI|Driver|Item", - apiVersion = "3.0.1") -package li.cil.oc.api.driver.item; \ No newline at end of file + apiVersion = API.VERSION) +package li.cil.oc.api.driver.item; + +import li.cil.oc.api.API; \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/driver/package-info.java b/src/main/java/li/cil/oc/api/driver/package-info.java index 41f4ee60b..168e5d364 100644 --- a/src/main/java/li/cil/oc/api/driver/package-info.java +++ b/src/main/java/li/cil/oc/api/driver/package-info.java @@ -5,7 +5,9 @@ * which is mostly used to make components wrapping them available to computers. */ @cpw.mods.fml.common.API( - owner = "OpenComputers|Core", + owner = API.ID_OWNER, provides = "OpenComputersAPI|Driver", - apiVersion = "3.0.1") -package li.cil.oc.api.driver; \ No newline at end of file + apiVersion = API.VERSION) +package li.cil.oc.api.driver; + +import li.cil.oc.api.API; \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/event/package-info.java b/src/main/java/li/cil/oc/api/event/package-info.java index 786326fdb..04a5d19ec 100644 --- a/src/main/java/li/cil/oc/api/event/package-info.java +++ b/src/main/java/li/cil/oc/api/event/package-info.java @@ -3,7 +3,9 @@ * of its functionality. */ @cpw.mods.fml.common.API( - owner = "OpenComputers|Core", + owner = API.ID_OWNER, provides = "OpenComputersAPI|Event", - apiVersion = "3.0.1") -package li.cil.oc.api.event; \ No newline at end of file + apiVersion = API.VERSION) +package li.cil.oc.api.event; + +import li.cil.oc.api.API; \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/fs/package-info.java b/src/main/java/li/cil/oc/api/fs/package-info.java index dbbc673cb..394969fb7 100644 --- a/src/main/java/li/cil/oc/api/fs/package-info.java +++ b/src/main/java/li/cil/oc/api/fs/package-info.java @@ -14,7 +14,9 @@ * from computers). */ @cpw.mods.fml.common.API( - owner = "OpenComputers|Core", + owner = API.ID_OWNER, provides = "OpenComputersAPI|FileSystem", - apiVersion = "3.0.1") -package li.cil.oc.api.fs; \ No newline at end of file + apiVersion = API.VERSION) +package li.cil.oc.api.fs; + +import li.cil.oc.api.API; \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/internal/package-info.java b/src/main/java/li/cil/oc/api/internal/package-info.java index bdcdaa0f4..769993c1b 100644 --- a/src/main/java/li/cil/oc/api/internal/package-info.java +++ b/src/main/java/li/cil/oc/api/internal/package-info.java @@ -14,7 +14,9 @@ * be assignable to one of the interfaces in this package). */ @cpw.mods.fml.common.API( - owner = "OpenComputers|Core", + owner = API.ID_OWNER, provides = "OpenComputersAPI|Internal", - apiVersion = "3.0.1") -package li.cil.oc.api.internal; \ No newline at end of file + apiVersion = API.VERSION) +package li.cil.oc.api.internal; + +import li.cil.oc.api.API; \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/machine/package-info.java b/src/main/java/li/cil/oc/api/machine/package-info.java index 99f5168ef..e9dfb589b 100644 --- a/src/main/java/li/cil/oc/api/machine/package-info.java +++ b/src/main/java/li/cil/oc/api/machine/package-info.java @@ -17,7 +17,9 @@ * fashion, such as {@link li.cil.oc.api.internal.Robot}. */ @cpw.mods.fml.common.API( - owner = "OpenComputers|Core", + owner = API.ID_OWNER, provides = "OpenComputersAPI|Machine", - apiVersion = "3.0.1") -package li.cil.oc.api.machine; \ No newline at end of file + apiVersion = API.VERSION) +package li.cil.oc.api.machine; + +import li.cil.oc.api.API; \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/network/package-info.java b/src/main/java/li/cil/oc/api/network/package-info.java index 7f12b31f0..ef7ae77ed 100644 --- a/src/main/java/li/cil/oc/api/network/package-info.java +++ b/src/main/java/li/cil/oc/api/network/package-info.java @@ -5,7 +5,9 @@ * all of OpenComputers' components, including blocks and items alike. */ @cpw.mods.fml.common.API( - owner = "OpenComputers|Core", + owner = API.ID_OWNER, provides = "OpenComputersAPI|Network", - apiVersion = "3.0.1") -package li.cil.oc.api.network; \ No newline at end of file + apiVersion = API.VERSION) +package li.cil.oc.api.network; + +import li.cil.oc.api.API; \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/package-info.java b/src/main/java/li/cil/oc/api/package-info.java index 36f3d5d77..94fc3bdc2 100644 --- a/src/main/java/li/cil/oc/api/package-info.java +++ b/src/main/java/li/cil/oc/api/package-info.java @@ -35,7 +35,7 @@ * */ @cpw.mods.fml.common.API( - owner = "OpenComputers|Core", + owner = API.ID_OWNER, provides = "OpenComputersAPI|Core", - apiVersion = "3.0.1") + apiVersion = API.VERSION) package li.cil.oc.api; \ No newline at end of file diff --git a/src/main/java/li/cil/oc/api/prefab/package-info.java b/src/main/java/li/cil/oc/api/prefab/package-info.java index 228efcffd..ba933b12c 100644 --- a/src/main/java/li/cil/oc/api/prefab/package-info.java +++ b/src/main/java/li/cil/oc/api/prefab/package-info.java @@ -8,7 +8,9 @@ * with your mod! */ @cpw.mods.fml.common.API( - owner = "OpenComputers|Core", + owner = API.ID_OWNER, provides = "OpenComputersAPI|Prefab", - apiVersion = "3.0.1") -package li.cil.oc.api.prefab; \ No newline at end of file + apiVersion = API.VERSION) +package li.cil.oc.api.prefab; + +import li.cil.oc.api.API; \ No newline at end of file diff --git a/src/main/scala/li/cil/oc/common/Proxy.scala b/src/main/scala/li/cil/oc/common/Proxy.scala index 1fafea4fb..cde56600a 100644 --- a/src/main/scala/li/cil/oc/common/Proxy.scala +++ b/src/main/scala/li/cil/oc/common/Proxy.scala @@ -9,7 +9,6 @@ import li.cil.oc.common.init.Items import li.cil.oc.common.recipe.Recipes import li.cil.oc.integration.Mods import li.cil.oc.server._ -import li.cil.oc.server.machine import li.cil.oc.server.machine.luac.NativeLuaArchitecture import li.cil.oc.server.machine.luaj.LuaJLuaArchitecture import li.cil.oc.util.LuaStateFactory @@ -42,15 +41,15 @@ class Proxy { OpenComputers.log.info("Initializing OpenComputers API.") api.CreativeTab.instance = CreativeTab - api.Driver.instance = driver.Registry - api.FileSystem.instance = fs.FileSystem - api.Items.instance = Items - api.Machine.instance = machine.Machine + api.API.driver = driver.Registry + api.API.fileSystem = fs.FileSystem + api.API.items = Items + api.API.machine = machine.Machine api.Machine.LuaArchitecture = if (LuaStateFactory.isAvailable && !Settings.get.forceLuaJ) classOf[NativeLuaArchitecture] else classOf[LuaJLuaArchitecture] api.Machine.add(api.Machine.LuaArchitecture) - api.Network.instance = network.Network + api.API.network = network.Network } def init(e: FMLInitializationEvent) { diff --git a/src/main/scala/li/cil/oc/common/block/DelegatorConverter.scala b/src/main/scala/li/cil/oc/common/block/DelegatorConverter.scala index 6719464aa..dede0815b 100644 --- a/src/main/scala/li/cil/oc/common/block/DelegatorConverter.scala +++ b/src/main/scala/li/cil/oc/common/block/DelegatorConverter.scala @@ -2,6 +2,7 @@ package li.cil.oc.common.block import li.cil.oc.api import li.cil.oc.common.tileentity +import li.cil.oc.integration.util.NEI import net.minecraft.block.Block import net.minecraft.block.material.Material import net.minecraft.entity.Entity @@ -13,6 +14,8 @@ import net.minecraft.tileentity.TileEntity import net.minecraft.world.World class DelegatorConverter extends Block(Material.rock) { + NEI.hide(this) + override def hasTileEntity(metadata: Int) = true // We don't have to register this tile entity because it'll vanish immediately anyway, so @@ -23,6 +26,8 @@ class DelegatorConverter extends Block(Material.rock) { object DelegatorConverter { class Item(block: Block) extends ItemBlock(block) { + override def getItemStackDisplayName(stack: ItemStack) = "Pick me up to fix me!" + override def onUpdate(stack: ItemStack, world: World, entity: Entity, slot: Int, selected: Boolean) { entity match { case player: EntityPlayer => DelegatorConverter.convert(stack, this) match {