mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-17 11:15:12 -04:00
Fixed memory slot checks.
Added creative tier case with all max-tier slots, closes #171. This case also generates an infinite amount of energy.
This commit is contained in:
parent
7c615026ac
commit
73cbe3127b
@ -9,6 +9,7 @@ oc:tile.Capacitor.name=Kondensator
|
||||
oc:tile.Case0.name=Computergehäuse (Stufe 1)
|
||||
oc:tile.Case1.name=Computergehäuse (Stufe 2)
|
||||
oc:tile.Case2.name=Computergehäuse (Stufe 3)
|
||||
oc:tile.Case3.name=Computergehäuse (Creative)
|
||||
oc:tile.Charger.name=Ladestation
|
||||
oc:tile.DiskDrive.name=Diskettenlaufwerk
|
||||
oc:tile.Keyboard.name=Tastatur
|
||||
|
@ -9,6 +9,7 @@ oc:tile.Capacitor.name=Capacitor
|
||||
oc:tile.Case0.name=Computer Case (Tier 1)
|
||||
oc:tile.Case1.name=Computer Case (Tier 2)
|
||||
oc:tile.Case2.name=Computer Case (Tier 3)
|
||||
oc:tile.Case3.name=Computer Case (Creative)
|
||||
oc:tile.Charger.name=Charger
|
||||
oc:tile.DiskDrive.name=Disk Drive
|
||||
oc:tile.Keyboard.name=Keyboard
|
||||
|
@ -18,7 +18,7 @@ object Blocks {
|
||||
var cable: Cable = _
|
||||
var capacitor: Capacitor = _
|
||||
var charger: Charger = _
|
||||
var case1, case2, case3: Case = _
|
||||
var case1, case2, case3, case4: Case = _
|
||||
var diskDrive: DiskDrive = _
|
||||
var keyboard: Keyboard = _
|
||||
var hologram: Hologram = _
|
||||
@ -103,6 +103,9 @@ object Blocks {
|
||||
hologram = Recipes.addBlockDelegate(new Hologram(blockSpecial), "hologram")
|
||||
wirelessRouter = Recipes.addBlockDelegate(new WirelessRouter(blockSimple), "wirelessRouter")
|
||||
|
||||
// v1.2.6
|
||||
case4 = new Case.TierCreative(blockSimpleWithRedstone)
|
||||
|
||||
// Initialize API.
|
||||
api.Blocks.AccessPoint = wirelessRouter.createItemStack()
|
||||
api.Blocks.Adapter = adapter.createItemStack()
|
||||
|
@ -21,7 +21,7 @@ abstract class Case(val parent: SimpleDelegator) extends RedstoneAware with Simp
|
||||
|
||||
def tier: Int
|
||||
|
||||
override def rarity = Array(EnumRarity.common, EnumRarity.uncommon, EnumRarity.rare).apply(tier)
|
||||
override def rarity = Array(EnumRarity.common, EnumRarity.uncommon, EnumRarity.rare, EnumRarity.epic).apply(tier)
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
override def color = Color.byTier(tier)
|
||||
@ -30,7 +30,8 @@ abstract class Case(val parent: SimpleDelegator) extends RedstoneAware with Simp
|
||||
val slots = tier match {
|
||||
case 0 => "2/1/1"
|
||||
case 1 => "2/2/2"
|
||||
case 2 => "3/2/3"
|
||||
case 2 | 3 => "3/2/3"
|
||||
case _ => "0/0/0"
|
||||
}
|
||||
tooltip.addAll(Tooltip.get("Case", slots))
|
||||
}
|
||||
@ -118,4 +119,8 @@ object Case {
|
||||
def tier = 2
|
||||
}
|
||||
|
||||
class TierCreative(parent: SimpleDelegator) extends Case(parent) {
|
||||
def tier = 3
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import li.cil.oc.common.tileentity
|
||||
import net.minecraft.entity.player.{EntityPlayer, InventoryPlayer}
|
||||
|
||||
class Case(playerInventory: InventoryPlayer, computer: tileentity.Case) extends Player(playerInventory, computer) {
|
||||
for (i <- 0 to (if (computer.tier == 2) 2 else 1)) {
|
||||
for (i <- 0 to (if (computer.tier >= 2) 2 else 1)) {
|
||||
addSlotToContainer(98, 16 + i * slotSize, api.driver.Slot.Card, computer.maxComponentTierForSlot(getInventory.size))
|
||||
}
|
||||
|
||||
@ -17,11 +17,11 @@ class Case(playerInventory: InventoryPlayer, computer: tileentity.Case) extends
|
||||
addSlotToContainer(142, 16 + i * slotSize, api.driver.Slot.HardDiskDrive, computer.maxComponentTierForSlot(getInventory.size))
|
||||
}
|
||||
|
||||
if (computer.tier == 2) {
|
||||
if (computer.tier >= 2) {
|
||||
addSlotToContainer(142, 16 + 2 * slotSize, api.driver.Slot.Disk)
|
||||
}
|
||||
|
||||
addSlotToContainer(120, 16, api.driver.Slot.Processor, computer.tier)
|
||||
addSlotToContainer(120, 16, api.driver.Slot.Processor, computer.maxComponentTierForSlot(getInventory.size))
|
||||
|
||||
if (computer.tier == 0) {
|
||||
addSlotToContainer(120, 16 + 2 * slotSize, api.driver.Slot.Memory, computer.maxComponentTierForSlot(getInventory.size))
|
||||
|
@ -52,10 +52,18 @@ class Case(var tier: Int, val isRemote: Boolean) extends traits.PowerAcceptor wi
|
||||
case _ => false
|
||||
}
|
||||
|
||||
override def updateEntity() {
|
||||
if (tier == 3 && isServer && world.getWorldTime % Settings.get.tickFrequency == 0) {
|
||||
// Creative case, make it generate power.
|
||||
node.asInstanceOf[Connector].changeBuffer(Double.PositiveInfinity)
|
||||
}
|
||||
super.updateEntity()
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
override def readFromNBT(nbt: NBTTagCompound) {
|
||||
tier = nbt.getByte(Settings.namespace + "tier") max 0 min 2
|
||||
tier = nbt.getByte(Settings.namespace + "tier") max 0 min 3
|
||||
color = Color.byTier(tier)
|
||||
super.readFromNBT(nbt)
|
||||
recomputeMaxComponents()
|
||||
@ -79,6 +87,7 @@ class Case(var tier: Int, val isRemote: Boolean) extends traits.PowerAcceptor wi
|
||||
case 0 => 6
|
||||
case 1 => 7
|
||||
case 2 => 9
|
||||
case 3 => 9
|
||||
case _ => 0
|
||||
}
|
||||
|
||||
@ -114,6 +123,16 @@ class Case(var tier: Int, val isRemote: Boolean) extends traits.PowerAcceptor wi
|
||||
case (7, Some(driver)) => driver.slot(stack) == Slot.Disk
|
||||
case (8, Some(driver)) => driver.slot(stack) == Slot.Processor && driver.tier(stack) <= maxComponentTierForSlot(slot)
|
||||
case _ => false // Invalid slot.
|
||||
|
||||
}
|
||||
case 3 => (slot, Registry.itemDriverFor(stack)) match {
|
||||
case (_, None) => false // Invalid item.
|
||||
case (0 | 1 | 2, Some(driver)) => driver.slot(stack) == Slot.Card
|
||||
case (3 | 4, Some(driver)) => driver.slot(stack) == Slot.Memory
|
||||
case (5 | 6, Some(driver)) => driver.slot(stack) == Slot.HardDiskDrive
|
||||
case (7, Some(driver)) => driver.slot(stack) == Slot.Disk
|
||||
case (8, Some(driver)) => driver.slot(stack) == Slot.Processor
|
||||
case _ => false // Invalid slot.
|
||||
}
|
||||
case _ => false
|
||||
}
|
||||
@ -139,6 +158,7 @@ class Case(var tier: Int, val isRemote: Boolean) extends traits.PowerAcceptor wi
|
||||
case 8 => 2
|
||||
case _ => -1 // Invalid slot.
|
||||
}
|
||||
case 3 => 2
|
||||
case _ => -1
|
||||
}
|
||||
}
|
@ -13,7 +13,7 @@ object Memory extends Item with driver.Memory {
|
||||
case _ => 0
|
||||
}
|
||||
|
||||
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.ram1, Items.ram2, Items.ram3, Items.ram4, Items.ram5)
|
||||
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.ram1, Items.ram2, Items.ram3, Items.ram4, Items.ram5, Items.ram6)
|
||||
|
||||
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = null
|
||||
|
||||
@ -21,7 +21,7 @@ object Memory extends Item with driver.Memory {
|
||||
|
||||
override def tier(stack: ItemStack) =
|
||||
Items.multi.subItem(stack) match {
|
||||
case Some(memory: item.Memory) => (memory.tier + 1) / 2
|
||||
case Some(memory: item.Memory) => memory.tier / 2
|
||||
case _ => 0
|
||||
}
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ object Color {
|
||||
"dyeOrange" -> Orange,
|
||||
"dyeWhite" -> White)
|
||||
|
||||
val byTier = Array(LightGray, Yellow, Cyan)
|
||||
val byTier = Array(LightGray, Yellow, Cyan, Magenta)
|
||||
|
||||
def isDye(stack: ItemStack) = byOreName.contains(OreDictionary.getOreName(OreDictionary.getOreID(stack)))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user