mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-13 17:28:52 -04:00
Cleaned up a bit.
This commit is contained in:
parent
f6f97e0d3f
commit
0224fa262d
@ -1,7 +1,7 @@
|
|||||||
package li.cil.oc.client.gui
|
package li.cil.oc.client.gui
|
||||||
|
|
||||||
import li.cil.oc.client.Textures
|
import li.cil.oc.client.Textures
|
||||||
import li.cil.oc.common.Tier
|
import li.cil.oc.common
|
||||||
import li.cil.oc.common.container.{ComponentSlot, Player}
|
import li.cil.oc.common.container.{ComponentSlot, Player}
|
||||||
import li.cil.oc.util.RenderState
|
import li.cil.oc.util.RenderState
|
||||||
import li.cil.oc.util.mods.NEI
|
import li.cil.oc.util.mods.NEI
|
||||||
@ -40,7 +40,7 @@ abstract class DynamicGuiContainer(container: Container) extends CustomGuiContai
|
|||||||
|
|
||||||
override def drawSlotInventory(slot: Slot) {
|
override def drawSlotInventory(slot: Slot) {
|
||||||
slot match {
|
slot match {
|
||||||
case component: ComponentSlot if component.tier == Tier.None => // Ignore.
|
case component: ComponentSlot if component.tier == common.Tier.None || component.slot == common.Slot.None => // Ignore.
|
||||||
case _ =>
|
case _ =>
|
||||||
if (!isInPlayerInventory(slot)) {
|
if (!isInPlayerInventory(slot)) {
|
||||||
GL11.glDisable(GL11.GL_DEPTH_TEST)
|
GL11.glDisable(GL11.GL_DEPTH_TEST)
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package li.cil.oc.common
|
package li.cil.oc.common
|
||||||
|
|
||||||
|
import li.cil.oc.api
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
|
||||||
object Slot {
|
object Slot {
|
||||||
val None = "none"
|
val None = "none"
|
||||||
|
|
||||||
@ -15,7 +18,7 @@ object Slot {
|
|||||||
|
|
||||||
val All = Array(Card, ComponentBus, Container, CPU, Floppy, HDD, Memory, Tool, Upgrade)
|
val All = Array(Card, ComponentBus, Container, CPU, Floppy, HDD, Memory, Tool, Upgrade)
|
||||||
|
|
||||||
def fromApi(slotType: li.cil.oc.api.driver.Slot) = slotType match {
|
def apply(driver: api.driver.Item, stack: ItemStack, f: Option[ItemStack => api.driver.Slot] = scala.None) = f.getOrElse(driver.slot _)(stack) match {
|
||||||
case li.cil.oc.api.driver.Slot.Card => Card
|
case li.cil.oc.api.driver.Slot.Card => Card
|
||||||
case li.cil.oc.api.driver.Slot.Disk => Floppy
|
case li.cil.oc.api.driver.Slot.Disk => Floppy
|
||||||
case li.cil.oc.api.driver.Slot.HardDiskDrive => HDD
|
case li.cil.oc.api.driver.Slot.HardDiskDrive => HDD
|
||||||
@ -24,6 +27,9 @@ object Slot {
|
|||||||
case li.cil.oc.api.driver.Slot.Tool => Tool
|
case li.cil.oc.api.driver.Slot.Tool => Tool
|
||||||
case li.cil.oc.api.driver.Slot.Upgrade => Upgrade
|
case li.cil.oc.api.driver.Slot.Upgrade => Upgrade
|
||||||
case li.cil.oc.api.driver.Slot.UpgradeContainer => Container
|
case li.cil.oc.api.driver.Slot.UpgradeContainer => Container
|
||||||
case _ => None
|
case _ =>
|
||||||
|
val descriptor = api.Items.get(stack)
|
||||||
|
if (descriptor == api.Items.get("componentBus1") || descriptor == api.Items.get("componentBus2") || descriptor == api.Items.get("componentBus3")) ComponentBus
|
||||||
|
else None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package li.cil.oc.common.container
|
package li.cil.oc.common.container
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
import cpw.mods.fml.relauncher.{Side, SideOnly}
|
||||||
import li.cil.oc.common.Tier
|
import li.cil.oc.common
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.inventory.Slot
|
import net.minecraft.inventory.Slot
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
@ -21,7 +21,7 @@ trait ComponentSlot extends Slot {
|
|||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
override def func_111238_b() = tier != Tier.None && super.func_111238_b()
|
override def func_111238_b() = slot != common.Slot.None && tier != common.Tier.None && super.func_111238_b()
|
||||||
|
|
||||||
override def isItemValid(stack: ItemStack) = inventory.isItemValidForSlot(getSlotIndex, stack)
|
override def isItemValid(stack: ItemStack) = inventory.isItemValidForSlot(getSlotIndex, stack)
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package li.cil.oc.common.inventory
|
package li.cil.oc.common.inventory
|
||||||
|
|
||||||
import li.cil.oc.api.{Driver, Items}
|
import li.cil.oc.api.Driver
|
||||||
import li.cil.oc.common.{InventorySlots, Slot}
|
import li.cil.oc.common.{InventorySlots, Slot}
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
@ -19,14 +19,6 @@ trait ServerInventory extends ItemStackInventory {
|
|||||||
override def isItemValidForSlot(slot: Int, stack: ItemStack) =
|
override def isItemValidForSlot(slot: Int, stack: ItemStack) =
|
||||||
Option(Driver.driverFor(stack)).fold(false)(driver => {
|
Option(Driver.driverFor(stack)).fold(false)(driver => {
|
||||||
val provided = InventorySlots.server(tier)(slot)
|
val provided = InventorySlots.server(tier)(slot)
|
||||||
// TODO remove special code in 1.4 when slot type API changes.
|
Slot(driver, stack) == provided.slot && driver.tier(stack) <= provided.tier
|
||||||
val requiredSlot = Slot.fromApi(driver.slot(stack))
|
|
||||||
val isComponentBus = provided.slot == Slot.ComponentBus && {
|
|
||||||
val descriptor = Items.get(stack)
|
|
||||||
descriptor == Items.get("componentBus1") ||
|
|
||||||
descriptor == Items.get("componentBus2") ||
|
|
||||||
descriptor == Items.get("componentBus3")
|
|
||||||
}
|
|
||||||
(requiredSlot == provided.slot || isComponentBus) && driver.tier(stack) <= provided.tier
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -60,17 +60,15 @@ object AssemblerTemplates {
|
|||||||
def validate(inventory: IInventory, slot: Int, stack: ItemStack) = validator match {
|
def validate(inventory: IInventory, slot: Int, stack: ItemStack) = validator match {
|
||||||
case Some(method) => tryInvokeStatic(method, inventory, slot.underlying(), stack)(false)
|
case Some(method) => tryInvokeStatic(method, inventory, slot.underlying(), stack)(false)
|
||||||
case _ => Option(api.Driver.driverFor(stack)) match {
|
case _ => Option(api.Driver.driverFor(stack)) match {
|
||||||
case Some(driver) => validateInternal(stack, driver) && Slot.fromApi(driver.slot(stack)) == kind
|
case Some(driver) => Slot(driver, stack) == kind && driver.tier(stack) <= tier
|
||||||
case _ => false
|
case _ => false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected def validateInternal(stack: ItemStack, driver: api.driver.Item) = driver.tier(stack) <= tier
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private def parseSlot(kindOverride: Option[String] = None)(nbt: NBTTagCompound) = {
|
private def parseSlot(kindOverride: Option[String] = None)(nbt: NBTTagCompound) = {
|
||||||
val kind = kindOverride.getOrElse(if (nbt.hasKey("type")) nbt.getString("type") else Slot.None)
|
val kind = kindOverride.getOrElse(if (nbt.hasKey("type")) nbt.getString("type") else Slot.None)
|
||||||
val tier = if (nbt.hasKey("tier")) nbt.getInteger("tier") else Tier.None
|
val tier = if (nbt.hasKey("tier")) nbt.getInteger("tier") else Tier.Any
|
||||||
val validator = if (nbt.hasKey("validator")) Option(getStaticMethod(nbt.getString("validator"), classOf[ItemStack], classOf[Int], classOf[ItemStack])) else None
|
val validator = if (nbt.hasKey("validator")) Option(getStaticMethod(nbt.getString("validator"), classOf[ItemStack], classOf[Int], classOf[ItemStack])) else None
|
||||||
new Slot(kind, tier, validator)
|
new Slot(kind, tier, validator)
|
||||||
}
|
}
|
||||||
|
@ -251,7 +251,7 @@ object RobotTemplate {
|
|||||||
})
|
})
|
||||||
|
|
||||||
private def hasFileSystem(inventory: IInventory) = exists(inventory, stack => Option(api.Driver.driverFor(stack)) match {
|
private def hasFileSystem(inventory: IInventory) = exists(inventory, stack => Option(api.Driver.driverFor(stack)) match {
|
||||||
case Some(driver) => Slot.fromApi(driver.slot(stack)) == Slot.Floppy || Slot.fromApi(driver.slot(stack)) == Slot.HDD
|
case Some(driver) => Slot(driver, stack) == Slot.Floppy || Slot(driver, stack) == Slot.HDD
|
||||||
case _ => false
|
case _ => false
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ class Case(var tier: Int) extends traits.PowerAcceptor with traits.Computer with
|
|||||||
|
|
||||||
def hasCPU = items.exists {
|
def hasCPU = items.exists {
|
||||||
case Some(stack) => Option(Driver.driverFor(stack)) match {
|
case Some(stack) => Option(Driver.driverFor(stack)) match {
|
||||||
case Some(driver) => Slot.fromApi(driver.slot(stack)) == Slot.CPU
|
case Some(driver) => Slot(driver, stack) == Slot.CPU
|
||||||
case _ => false
|
case _ => false
|
||||||
}
|
}
|
||||||
case _ => false
|
case _ => false
|
||||||
@ -125,6 +125,6 @@ class Case(var tier: Int) extends traits.PowerAcceptor with traits.Computer with
|
|||||||
override def isItemValidForSlot(slot: Int, stack: ItemStack) =
|
override def isItemValidForSlot(slot: Int, stack: ItemStack) =
|
||||||
Option(Driver.driverFor(stack)).fold(false)(driver => {
|
Option(Driver.driverFor(stack)).fold(false)(driver => {
|
||||||
val provided = InventorySlots.computer(tier)(slot)
|
val provided = InventorySlots.computer(tier)(slot)
|
||||||
Slot.fromApi(driver.slot(stack)) == provided.slot && driver.tier(stack) <= provided.tier
|
Slot(driver, stack) == provided.slot && driver.tier(stack) <= provided.tier
|
||||||
})
|
})
|
||||||
}
|
}
|
@ -29,7 +29,7 @@ class DiskDrive extends traits.Environment with traits.ComponentInventory with t
|
|||||||
override def getSizeInventory = 1
|
override def getSizeInventory = 1
|
||||||
|
|
||||||
override def isItemValidForSlot(slot: Int, stack: ItemStack) = (slot, Option(Driver.driverFor(stack))) match {
|
override def isItemValidForSlot(slot: Int, stack: ItemStack) = (slot, Option(Driver.driverFor(stack))) match {
|
||||||
case (0, Some(driver)) => Slot.fromApi(driver.slot(stack)) == Slot.Floppy
|
case (0, Some(driver)) => Slot(driver, stack) == Slot.Floppy
|
||||||
case _ => false
|
case _ => false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -492,7 +492,7 @@ class Robot extends traits.Computer with traits.PowerInformation with api.machin
|
|||||||
def containerSlotType(slot: Int) = if (containerSlots contains slot) {
|
def containerSlotType(slot: Int) = if (containerSlots contains slot) {
|
||||||
val stack = info.containers(slot - 1)
|
val stack = info.containers(slot - 1)
|
||||||
Option(Driver.driverFor(stack)) match {
|
Option(Driver.driverFor(stack)) match {
|
||||||
case Some(driver: api.driver.UpgradeContainer) => Slot.fromApi(driver.providedSlot(stack))
|
case Some(driver: api.driver.UpgradeContainer) => Slot(driver, stack, Some(driver.providedSlot))
|
||||||
case _ => Slot.None
|
case _ => Slot.None
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -515,7 +515,7 @@ class Robot extends traits.Computer with traits.PowerInformation with api.machin
|
|||||||
|
|
||||||
def isFloppySlot(slot: Int) = isComponentSlot(slot) && (Option(getStackInSlot(slot)) match {
|
def isFloppySlot(slot: Int) = isComponentSlot(slot) && (Option(getStackInSlot(slot)) match {
|
||||||
case Some(stack) => Option(Driver.driverFor(stack)) match {
|
case Some(stack) => Option(Driver.driverFor(stack)) match {
|
||||||
case Some(driver) => Slot.fromApi(driver.slot(stack)) == Slot.Floppy
|
case Some(driver) => Slot(driver, stack) == Slot.Floppy
|
||||||
case _ => false
|
case _ => false
|
||||||
}
|
}
|
||||||
case _ => false
|
case _ => false
|
||||||
@ -622,7 +622,7 @@ class Robot extends traits.Computer with traits.PowerInformation with api.machin
|
|||||||
// logic making the differentiation of assembler and containers generic.
|
// logic making the differentiation of assembler and containers generic.
|
||||||
driver != server.driver.item.Screen &&
|
driver != server.driver.item.Screen &&
|
||||||
driver != server.driver.item.Keyboard &&
|
driver != server.driver.item.Keyboard &&
|
||||||
Slot.fromApi(driver.slot(stack)) == containerSlotType(i) &&
|
Slot(driver, stack) == containerSlotType(i) &&
|
||||||
driver.tier(stack) <= containerSlotTier(i)
|
driver.tier(stack) <= containerSlotTier(i)
|
||||||
case (i, _) if isInventorySlot(i) => true // Normal inventory.
|
case (i, _) if isInventorySlot(i) => true // Normal inventory.
|
||||||
case _ => false // Invalid slot.
|
case _ => false // Invalid slot.
|
||||||
|
@ -157,14 +157,14 @@ class Switch extends traits.Hub with traits.NotAnalyzable with IPeripheral with
|
|||||||
|
|
||||||
private def updateLimits(slot: Int, stack: ItemStack) {
|
private def updateLimits(slot: Int, stack: ItemStack) {
|
||||||
Driver.driverFor(stack) match {
|
Driver.driverFor(stack) match {
|
||||||
case driver if Slot.fromApi(driver.slot(stack)) == Slot.CPU =>
|
case driver if Slot(driver, stack) == Slot.CPU =>
|
||||||
relayDelay = math.max(1, relayBaseDelay - ((driver.tier(stack) + 1) * relayDelayPerUpgrade))
|
relayDelay = math.max(1, relayBaseDelay - ((driver.tier(stack) + 1) * relayDelayPerUpgrade))
|
||||||
case driver if Slot.fromApi(driver.slot(stack)) == Slot.Memory =>
|
case driver if Slot(driver, stack) == Slot.Memory =>
|
||||||
relayAmount = math.max(1, relayBaseAmount + (Items.multi.subItem(stack) match {
|
relayAmount = math.max(1, relayBaseAmount + (Items.multi.subItem(stack) match {
|
||||||
case Some(ram: item.Memory) => (ram.tier + 1) * relayAmountPerUpgrade
|
case Some(ram: item.Memory) => (ram.tier + 1) * relayAmountPerUpgrade
|
||||||
case _ => (driver.tier(stack) + 1) * (relayAmountPerUpgrade * 2)
|
case _ => (driver.tier(stack) + 1) * (relayAmountPerUpgrade * 2)
|
||||||
}))
|
}))
|
||||||
case driver if Slot.fromApi(driver.slot(stack)) == Slot.HDD =>
|
case driver if Slot(driver, stack) == Slot.HDD =>
|
||||||
maxQueueSize = math.max(1, queueBaseSize + (driver.tier(stack) + 1) * queueSizePerUpgrade)
|
maxQueueSize = math.max(1, queueBaseSize + (driver.tier(stack) + 1) * queueSizePerUpgrade)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -172,9 +172,9 @@ class Switch extends traits.Hub with traits.NotAnalyzable with IPeripheral with
|
|||||||
override protected def onItemRemoved(slot: Int, stack: ItemStack) {
|
override protected def onItemRemoved(slot: Int, stack: ItemStack) {
|
||||||
super.onItemRemoved(slot, stack)
|
super.onItemRemoved(slot, stack)
|
||||||
Driver.driverFor(stack) match {
|
Driver.driverFor(stack) match {
|
||||||
case driver if Slot.fromApi(driver.slot(stack)) == Slot.CPU => relayDelay = relayBaseDelay
|
case driver if Slot(driver, stack) == Slot.CPU => relayDelay = relayBaseDelay
|
||||||
case driver if Slot.fromApi(driver.slot(stack)) == Slot.Memory => relayAmount = relayBaseAmount
|
case driver if Slot(driver, stack) == Slot.Memory => relayAmount = relayBaseAmount
|
||||||
case driver if Slot.fromApi(driver.slot(stack)) == Slot.HDD => maxQueueSize = queueBaseSize
|
case driver if Slot(driver, stack) == Slot.HDD => maxQueueSize = queueBaseSize
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ class Switch extends traits.Hub with traits.NotAnalyzable with IPeripheral with
|
|||||||
override def isItemValidForSlot(slot: Int, stack: ItemStack) =
|
override def isItemValidForSlot(slot: Int, stack: ItemStack) =
|
||||||
Option(Driver.driverFor(stack)).fold(false)(driver => {
|
Option(Driver.driverFor(stack)).fold(false)(driver => {
|
||||||
val provided = InventorySlots.switch(slot)
|
val provided = InventorySlots.switch(slot)
|
||||||
Slot.fromApi(driver.slot(stack)) == provided.slot && driver.tier(stack) <= provided.tier
|
Slot(driver, stack) == provided.slot && driver.tier(stack) <= provided.tier
|
||||||
})
|
})
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
@ -58,7 +58,7 @@ class Server(val rack: tileentity.ServerRack, val number: Int) extends Owner {
|
|||||||
|
|
||||||
def hasCPU = inventory.items.exists {
|
def hasCPU = inventory.items.exists {
|
||||||
case Some(stack) => Option(Driver.driverFor(stack)) match {
|
case Some(stack) => Option(Driver.driverFor(stack)) match {
|
||||||
case Some(driver) => Slot.fromApi(driver.slot(stack)) == Slot.CPU
|
case Some(driver) => Slot(driver, stack) == Slot.CPU
|
||||||
case _ => false
|
case _ => false
|
||||||
}
|
}
|
||||||
case _ => false
|
case _ => false
|
||||||
|
Loading…
x
Reference in New Issue
Block a user