mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-14 17:56:34 -04:00
Fixery for refactory.
This commit is contained in:
parent
f2e6cf1896
commit
5e313d4fe7
@ -17,8 +17,8 @@ import net.minecraftforge.fluids.IFluidHandler;
|
||||
* follows:
|
||||
* <ul>
|
||||
* <li>Tool</li>
|
||||
* <li><tt>containerCount</tt> hot-swappable components.</li>
|
||||
* <li><tt>inventorySize</tt> internal inventory slots.</li>
|
||||
* <li><tt>equipmentInventory.getSizeInventory</tt> hot-swappable components.</li>
|
||||
* <li><tt>mainInventory.getSizeInventory</tt> internal inventory slots.</li>
|
||||
* <li><tt>componentCount</tt> hard-wired components.</li>
|
||||
* </ul>
|
||||
* Note that there may be no hot-swappable (or even built-in) components or
|
||||
@ -28,26 +28,11 @@ import net.minecraftforge.fluids.IFluidHandler;
|
||||
* This interface is <em>not meant to be implemented</em>, just used.
|
||||
*/
|
||||
public interface Robot extends Agent, Environment, EnvironmentHost, Rotatable, Tiered, ISidedInventory, IFluidHandler {
|
||||
/**
|
||||
* The number of hot-swappable component slots in this robot.
|
||||
* <p/>
|
||||
* <em>Note</em>: this will always be three, regardless of the number of
|
||||
* installed containers. For unused slots the inventory will simply be
|
||||
* empty at that slot.
|
||||
*/
|
||||
int containerCount();
|
||||
|
||||
/**
|
||||
* The number of built-in components in this robot.
|
||||
*/
|
||||
int componentCount();
|
||||
|
||||
/**
|
||||
* The size of the internal inventory in this robot, excluding tool and
|
||||
* component slots.
|
||||
*/
|
||||
int inventorySize();
|
||||
|
||||
/**
|
||||
* Get the environment for the component in the specified slot.
|
||||
* <p/>
|
||||
|
@ -139,8 +139,10 @@ class Robot extends traits.Computer with traits.PowerInformation with IFluidHand
|
||||
|
||||
override def setSelectedSlot(index: Int): Unit = {
|
||||
selectedSlot = index max 0 min mainInventory.getSizeInventory - 1
|
||||
if (world != null) {
|
||||
ServerPacketSender.sendRobotSelectedSlotChange(this)
|
||||
}
|
||||
}
|
||||
|
||||
val tank = new internal.MultiTank {
|
||||
override def tankCount = Robot.this.tankCount
|
||||
@ -157,7 +159,7 @@ class Robot extends traits.Computer with traits.PowerInformation with IFluidHand
|
||||
|
||||
// Fixed number of containers (mostly due to GUI limitation, but also because
|
||||
// I find three to be a large enough number for sufficient flexibility).
|
||||
override def containerCount = 3
|
||||
def containerCount = 3
|
||||
|
||||
override def componentCount = info.components.length
|
||||
|
||||
|
@ -40,10 +40,16 @@ class RobotProxy(val robot: Robot) extends traits.Computer with traits.PowerInfo
|
||||
|
||||
override def tank = robot.tank
|
||||
|
||||
override def selectedSlot = robot.selectedSlot
|
||||
|
||||
override def setSelectedSlot(index: Int) = robot.setSelectedSlot(index)
|
||||
|
||||
override def selectedTank = robot.selectedTank
|
||||
|
||||
override def setSelectedTank(index: Int) = robot.setSelectedTank(index)
|
||||
|
||||
override def player() = robot.player()
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
override def connectComponents() {}
|
||||
@ -56,20 +62,12 @@ class RobotProxy(val robot: Robot) extends traits.Computer with traits.PowerInfo
|
||||
@SideOnly(Side.CLIENT)
|
||||
override def setRunning(value: Boolean) = robot.setRunning(value)
|
||||
|
||||
override def player() = robot.player()
|
||||
|
||||
override def containerCount = robot.containerCount
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
override def componentCount = robot.componentCount
|
||||
|
||||
override def inventorySize = robot.inventorySize
|
||||
|
||||
override def getComponentInSlot(index: Int) = robot.getComponentInSlot(index)
|
||||
|
||||
override def selectedSlot = robot.selectedSlot
|
||||
|
||||
override def selectedTank = robot.selectedTank
|
||||
|
||||
override def synchronizeSlot(slot: Int) = robot.synchronizeSlot(slot)
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
@ -188,6 +188,7 @@ class Machine(val host: MachineHost) extends prefab.ManagedEnvironment with mach
|
||||
|
||||
override def start(): Boolean = state.synchronized(state.top match {
|
||||
case Machine.State.Stopped =>
|
||||
onHostChanged()
|
||||
processAddedComponents()
|
||||
verifyComponents()
|
||||
if (!Settings.get.ignorePower && node.globalBuffer < cost) {
|
||||
|
@ -1,7 +1,6 @@
|
||||
package li.cil.oc.util
|
||||
|
||||
import li.cil.oc.api.internal.MultiTank
|
||||
import li.cil.oc.api.internal.Robot
|
||||
import li.cil.oc.api.machine.Arguments
|
||||
import net.minecraft.inventory.IInventory
|
||||
import net.minecraftforge.common.util.ForgeDirection
|
||||
@ -38,14 +37,6 @@ object ExtendedArguments {
|
||||
else default
|
||||
}
|
||||
|
||||
def checkSlot(robot: Robot, n: Int) = {
|
||||
val slot = args.checkInteger(n) - 1
|
||||
if (slot < 0 || slot >= robot.inventorySize) {
|
||||
throw new IllegalArgumentException("invalid slot")
|
||||
}
|
||||
slot + 1 + robot.containerCount
|
||||
}
|
||||
|
||||
def checkTank(multi: MultiTank, n: Int) = {
|
||||
val tank = args.checkInteger(n) - 1
|
||||
if (tank < 0 || tank >= multi.tankCount) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user