mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-25 05:55:41 -04:00
Merge branch 'master' of https://github.com/MightyPirates/OpenComputers into MC1.7
Conflicts: src/main/scala/li/cil/oc/common/Proxy.scala
This commit is contained in:
commit
6da691b022
37
src/main/java/li/cil/oc/api/Blocks.java
Normal file
37
src/main/java/li/cil/oc/api/Blocks.java
Normal file
@ -0,0 +1,37 @@
|
||||
package li.cil.oc.api;
|
||||
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
/**
|
||||
* Item stacks for all blocks OpenComputers defines.
|
||||
* </p>
|
||||
* The underlying items of those are all of type {@link ItemBlock}, so you can
|
||||
* use that to get the block ID if required.
|
||||
*/
|
||||
public final class Blocks {
|
||||
public static ItemStack
|
||||
AccessPoint,
|
||||
Adapter,
|
||||
Cable,
|
||||
Capacitor,
|
||||
Charger,
|
||||
CaseTier1,
|
||||
CaseTier2,
|
||||
CaseTier3,
|
||||
DiskDrive,
|
||||
Keyboard,
|
||||
HologramProjector,
|
||||
PowerConverter,
|
||||
PowerDistributor,
|
||||
RedstoneIO,
|
||||
Robot,
|
||||
ScreenTier1,
|
||||
ScreenTier2,
|
||||
ScreenTier3,
|
||||
ServerRack,
|
||||
Switch;
|
||||
|
||||
private Blocks() {
|
||||
}
|
||||
}
|
15
src/main/java/li/cil/oc/api/CreativeTab.java
Normal file
15
src/main/java/li/cil/oc/api/CreativeTab.java
Normal file
@ -0,0 +1,15 @@
|
||||
package li.cil.oc.api;
|
||||
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
|
||||
/**
|
||||
* Allows access to the creative tab used by OpenComputers.
|
||||
*/
|
||||
public final class CreativeTab {
|
||||
/**
|
||||
* The creative tab used by OpenComputers.
|
||||
* <p/>
|
||||
* Changed to the actual tab if OC is present.
|
||||
*/
|
||||
public static CreativeTabs Instance = CreativeTabs.tabRedstone;
|
||||
}
|
60
src/main/java/li/cil/oc/api/Items.java
Normal file
60
src/main/java/li/cil/oc/api/Items.java
Normal file
@ -0,0 +1,60 @@
|
||||
package li.cil.oc.api;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
/**
|
||||
* Item stacks for all items OpenComputers defines.
|
||||
*/
|
||||
public final class Items {
|
||||
public static ItemStack
|
||||
AbstractBusCard,
|
||||
Acid,
|
||||
ALU,
|
||||
Analyzer,
|
||||
ButtonArrows,
|
||||
ButtonGroup,
|
||||
ButtonNumPad,
|
||||
CardBase,
|
||||
CircuitBoard,
|
||||
ControlUnit,
|
||||
CPUTier1,
|
||||
CPUTier2,
|
||||
CPUTier3,
|
||||
CuttingWire,
|
||||
DiskPlatter,
|
||||
FloppyDisk,
|
||||
GraphicsCardTier1,
|
||||
GraphicsCardTier2,
|
||||
GraphicsCardTier3,
|
||||
HardDiskTier2,
|
||||
HardDiskTier3,
|
||||
HardDriveTier1,
|
||||
InternetCard,
|
||||
IronNugget,
|
||||
MemoryTier1,
|
||||
MemoryTier2,
|
||||
MemoryTier3,
|
||||
MemoryTier4,
|
||||
MemoryTier5,
|
||||
MicrochipTier1,
|
||||
MicroChipTier2,
|
||||
MicroChipTier3,
|
||||
NetworkCard,
|
||||
PrintedCircuitBoard,
|
||||
RawCircuitBoard,
|
||||
RedstoneCard,
|
||||
ServerTier1,
|
||||
ServerTier2,
|
||||
ServerTier3,
|
||||
Terminal,
|
||||
Transistor,
|
||||
UpgradeCrafting,
|
||||
UpgradeGenerator,
|
||||
UpgradeNavigation,
|
||||
UpgradeSign,
|
||||
UpgradeSolarGenerator,
|
||||
WirelessNetworkCard;
|
||||
|
||||
private Items() {
|
||||
}
|
||||
}
|
@ -11,6 +11,10 @@ import java.util.Map;
|
||||
* Note that integer values fetched this way are actually double values that
|
||||
* have been truncated. So if a Lua program passes <tt>1.9</tt> and you do a
|
||||
* <tt>checkInteger</tt> you'll get a <tt>1</tt>.
|
||||
* <p/>
|
||||
* The indexes passed to the various functions start at zero, i.e. to get the
|
||||
* first argument you would use <tt>checkAny(0)</tt>. This is worth mentioning
|
||||
* because Lua starts its indexes at one.
|
||||
*/
|
||||
public interface Arguments extends Iterable<Object> {
|
||||
/**
|
||||
|
@ -20,6 +20,12 @@ import java.lang.annotation.Target;
|
||||
* <p/>
|
||||
* The method may return <tt>null</tt> in case it doesn't wish return anything,
|
||||
* which is functionally equivalent to returning an empty array.
|
||||
* <p/>
|
||||
* To raise an error from your callback, simply throw an exception. The
|
||||
* convention for Lua is to return (null, "reason") for 'soft' errors, i.e.
|
||||
* errors that are no fault of the caller. For example, passing invalid
|
||||
* arguments will generate an exception, requesting information and the lookup
|
||||
* of said information failing should not.
|
||||
*
|
||||
* @see Context
|
||||
* @see Arguments
|
||||
|
@ -108,6 +108,30 @@ object Blocks {
|
||||
hologram = Recipes.addBlockDelegate(new Hologram(blockSpecial), "hologram")
|
||||
wirelessRouter = Recipes.addBlockDelegate(new WirelessRouter(blockSimple), "wirelessRouter")
|
||||
|
||||
// Initialize API.
|
||||
api.Blocks.AccessPoint = wirelessRouter.createItemStack()
|
||||
api.Blocks.Adapter = adapter.createItemStack()
|
||||
api.Blocks.Cable = cable.createItemStack()
|
||||
api.Blocks.Capacitor = capacitor.createItemStack()
|
||||
api.Blocks.Charger = charger.createItemStack()
|
||||
api.Blocks.CaseTier1 = case1.createItemStack()
|
||||
api.Blocks.CaseTier2 = case2.createItemStack()
|
||||
api.Blocks.CaseTier3 = case3.createItemStack()
|
||||
api.Blocks.DiskDrive = diskDrive.createItemStack()
|
||||
api.Blocks.Keyboard = keyboard.createItemStack()
|
||||
api.Blocks.HologramProjector = hologram.createItemStack()
|
||||
api.Blocks.PowerConverter = powerConverter.createItemStack()
|
||||
api.Blocks.PowerDistributor = powerDistributor.createItemStack()
|
||||
api.Blocks.RedstoneIO = redstone.createItemStack()
|
||||
api.Blocks.Robot = robotProxy.createItemStack()
|
||||
api.Blocks.Switch = router.createItemStack()
|
||||
api.Blocks.ScreenTier1 = screen1.createItemStack()
|
||||
api.Blocks.ScreenTier2 = screen2.createItemStack()
|
||||
api.Blocks.ScreenTier3 = screen3.createItemStack()
|
||||
api.Blocks.ServerRack = serverRack.createItemStack()
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
register("oc:craftingCable", cable.createItemStack())
|
||||
register("oc:craftingCapacitor", capacitor.createItemStack())
|
||||
register("oc:craftingCaseTier1", case1.createItemStack())
|
||||
|
@ -138,6 +138,55 @@ object Items {
|
||||
server1 = Recipes.addItemDelegate(new item.Server(multi, 0), "server1")
|
||||
server2 = Recipes.addItemDelegate(new item.Server(multi, 1), "server2")
|
||||
|
||||
// Initialize API.
|
||||
api.Items.AbstractBusCard = abstractBus.createItemStack()
|
||||
api.Items.Acid = acid.createItemStack()
|
||||
api.Items.ALU = alu.createItemStack()
|
||||
api.Items.Analyzer = analyzer.createItemStack()
|
||||
api.Items.ButtonArrows = arrowKeys.createItemStack()
|
||||
api.Items.ButtonGroup = buttonGroup.createItemStack()
|
||||
api.Items.ButtonNumPad = numPad.createItemStack()
|
||||
api.Items.CardBase = card.createItemStack()
|
||||
api.Items.CircuitBoard = circuitBoard.createItemStack()
|
||||
api.Items.ControlUnit = cu.createItemStack()
|
||||
api.Items.CPUTier1 = cpu0.createItemStack()
|
||||
api.Items.CPUTier2 = cpu1.createItemStack()
|
||||
api.Items.CPUTier3 = cpu2.createItemStack()
|
||||
api.Items.CuttingWire = cuttingWire.createItemStack()
|
||||
api.Items.DiskPlatter = disk.createItemStack()
|
||||
api.Items.FloppyDisk = floppyDisk.createItemStack()
|
||||
api.Items.GraphicsCardTier1 = gpu1.createItemStack()
|
||||
api.Items.GraphicsCardTier2 = gpu2.createItemStack()
|
||||
api.Items.GraphicsCardTier3 = gpu3.createItemStack()
|
||||
api.Items.HardDiskTier2 = hdd1.createItemStack()
|
||||
api.Items.HardDiskTier3 = hdd2.createItemStack()
|
||||
api.Items.HardDriveTier1 = hdd3.createItemStack()
|
||||
api.Items.InternetCard = internet.createItemStack()
|
||||
api.Items.IronNugget = ironNugget.createItemStack()
|
||||
api.Items.MemoryTier1 = ram1.createItemStack()
|
||||
api.Items.MemoryTier2 = ram2.createItemStack()
|
||||
api.Items.MemoryTier3 = ram3.createItemStack()
|
||||
api.Items.MemoryTier4 = ram4.createItemStack()
|
||||
api.Items.MemoryTier5 = ram5.createItemStack()
|
||||
api.Items.MicrochipTier1 = chip1.createItemStack()
|
||||
api.Items.MicroChipTier2 = chip2.createItemStack()
|
||||
api.Items.MicroChipTier3 = chip3.createItemStack()
|
||||
api.Items.NetworkCard = lan.createItemStack()
|
||||
api.Items.PrintedCircuitBoard = pcb.createItemStack()
|
||||
api.Items.RawCircuitBoard = rawCircuitBoard.createItemStack()
|
||||
api.Items.RedstoneCard = rs.createItemStack()
|
||||
api.Items.ServerTier1 = server1.createItemStack()
|
||||
api.Items.ServerTier2 = server2.createItemStack()
|
||||
api.Items.ServerTier3 = server3.createItemStack()
|
||||
api.Items.Terminal = terminal.createItemStack()
|
||||
api.Items.Transistor = transistor.createItemStack()
|
||||
api.Items.UpgradeCrafting = upgradeCrafting.createItemStack()
|
||||
api.Items.UpgradeGenerator = upgradeGenerator.createItemStack()
|
||||
api.Items.UpgradeNavigation = upgradeNavigation.createItemStack()
|
||||
api.Items.UpgradeSign = upgradeSign.createItemStack()
|
||||
api.Items.UpgradeSolarGenerator = upgradeSolarGenerator.createItemStack()
|
||||
api.Items.WirelessNetworkCard = wlan.createItemStack()
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
registerExclusive("craftingPiston", new ItemStack(net.minecraft.init.Blocks.piston), new ItemStack(net.minecraft.init.Blocks.sticky_piston))
|
||||
|
@ -8,7 +8,6 @@ import li.cil.oc.common.asm.SimpleComponentTickHandler
|
||||
import li.cil.oc.server
|
||||
import li.cil.oc.server.component.machine
|
||||
import li.cil.oc.server.component.machine.{LuaJLuaArchitecture, NativeLuaArchitecture}
|
||||
import li.cil.oc.server.network.Network
|
||||
import li.cil.oc.server.{driver, fs, network}
|
||||
import li.cil.oc.util.{LuaStateFactory, WirelessNetwork}
|
||||
import net.minecraftforge.common.MinecraftForge
|
||||
@ -25,6 +24,7 @@ class Proxy {
|
||||
}
|
||||
*/
|
||||
|
||||
api.CreativeTab.Instance = CreativeTab
|
||||
api.Driver.instance = driver.Registry
|
||||
api.FileSystem.instance = fs.FileSystem
|
||||
api.Machine.instance = machine.Machine
|
||||
|
@ -280,7 +280,11 @@ class LuaJLuaArchitecture(machine: api.machine.Machine) extends LuaArchitecture(
|
||||
|
||||
computer.set("removeUser", (args: Varargs) => LuaValue.valueOf(machine.removeUser(args.checkjstring(1))))
|
||||
|
||||
computer.set("energy", (_: Varargs) => LuaValue.valueOf(node.globalBuffer))
|
||||
computer.set("energy", (_: Varargs) =>
|
||||
if (Settings.get.ignorePower)
|
||||
LuaValue.valueOf(Double.PositiveInfinity)
|
||||
else
|
||||
LuaValue.valueOf(node.globalBuffer))
|
||||
|
||||
computer.set("maxEnergy", (_: Varargs) => LuaValue.valueOf(node.globalBufferSize))
|
||||
|
||||
|
@ -5,6 +5,7 @@ import com.naef.jnlua._
|
||||
import java.io.{IOException, FileNotFoundException}
|
||||
import java.util.logging.Level
|
||||
import li.cil.oc.api.machine.{LimitReachedException, ExecutionResult}
|
||||
import li.cil.oc.api.network.ComponentConnector
|
||||
import li.cil.oc.util.ExtendedLuaState.extendLuaState
|
||||
import li.cil.oc.util.{GameTimeFormatter, LuaStateFactory}
|
||||
import li.cil.oc.{api, OpenComputers, server, Settings}
|
||||
@ -12,7 +13,6 @@ import net.minecraft.nbt.NBTTagCompound
|
||||
import scala.Some
|
||||
import scala.collection.convert.WrapAsScala._
|
||||
import scala.collection.mutable
|
||||
import li.cil.oc.api.network.ComponentConnector
|
||||
|
||||
class NativeLuaArchitecture(machine: api.machine.Machine) extends LuaArchitecture(machine) {
|
||||
private var lua: LuaState = null
|
||||
@ -369,7 +369,10 @@ class NativeLuaArchitecture(machine: api.machine.Machine) extends LuaArchitectur
|
||||
lua.setField(-2, "removeUser")
|
||||
|
||||
lua.pushScalaFunction(lua => {
|
||||
lua.pushNumber(node.globalBuffer)
|
||||
if (Settings.get.ignorePower)
|
||||
lua.pushNumber(Double.PositiveInfinity)
|
||||
else
|
||||
lua.pushNumber(node.globalBuffer)
|
||||
1
|
||||
})
|
||||
lua.setField(-2, "energy")
|
||||
|
Loading…
x
Reference in New Issue
Block a user