mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-18 11:48:02 -04:00
Fixed assembler breaking its own inventory. Also fixed Disassembler crashing on creative-tier components and a few more potential null stacks.
Fixes #2339. Fixes #2348.
This commit is contained in:
parent
20b59d6cd5
commit
a2791ae8a6
@ -191,7 +191,7 @@ object Items extends ItemAPI {
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
private def safeGetStack(name: String) = Option(get(name)).map(_.createItemStack(1)).orNull
|
||||
private def safeGetStack(name: String) = Option(get(name)).map(_.createItemStack(1)).getOrElse(ItemStack.EMPTY)
|
||||
|
||||
def createConfiguredDrone(): ItemStack = {
|
||||
val data = new DroneData()
|
||||
@ -212,7 +212,7 @@ object Items extends ItemAPI {
|
||||
safeGetStack(Constants.ItemName.CPUTier3),
|
||||
safeGetStack(Constants.ItemName.RAMTier6),
|
||||
safeGetStack(Constants.ItemName.RAMTier6)
|
||||
)
|
||||
).filter(!_.isEmpty)
|
||||
|
||||
data.createItemStack()
|
||||
}
|
||||
@ -232,7 +232,7 @@ object Items extends ItemAPI {
|
||||
safeGetStack(Constants.ItemName.CPUTier3),
|
||||
safeGetStack(Constants.ItemName.RAMTier6),
|
||||
safeGetStack(Constants.ItemName.RAMTier6)
|
||||
)
|
||||
).filter(!_.isEmpty)
|
||||
|
||||
data.createItemStack()
|
||||
}
|
||||
@ -268,12 +268,12 @@ object Items extends ItemAPI {
|
||||
safeGetStack(Constants.ItemName.LuaBios),
|
||||
safeGetStack(Constants.ItemName.OpenOS),
|
||||
safeGetStack(Constants.ItemName.HDDTier3)
|
||||
)
|
||||
).filter(!_.isEmpty)
|
||||
data.containers = Array(
|
||||
safeGetStack(Constants.ItemName.CardContainerTier3),
|
||||
safeGetStack(Constants.ItemName.UpgradeContainerTier3),
|
||||
safeGetStack(Constants.BlockName.DiskDrive)
|
||||
)
|
||||
).filter(!_.isEmpty)
|
||||
|
||||
data.createItemStack()
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ object AssemblerTemplates {
|
||||
def assemble(inventory: IInventory) = IMC.tryInvokeStatic(assembler, inventory)(null: Array[AnyRef]) match {
|
||||
case Array(stack: ItemStack, energy: java.lang.Number) => (stack, energy.doubleValue(): Double)
|
||||
case Array(stack: ItemStack) => (stack, 0.0)
|
||||
case _ => (null, 0.0)
|
||||
case _ => (ItemStack.EMPTY, 0.0)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -97,7 +97,7 @@ class Assembler extends traits.Environment with traits.PowerAcceptor with traits
|
||||
requiredEnergy = totalRequiredEnergy
|
||||
ServerPacketSender.sendRobotAssembling(this, assembling = true)
|
||||
|
||||
for (slot <- 0 until getSizeInventory) updateItems(slot, null)
|
||||
for (slot <- 0 until getSizeInventory) updateItems(slot, ItemStack.EMPTY)
|
||||
markDirty()
|
||||
|
||||
true
|
||||
|
@ -65,7 +65,7 @@ object ItemUtils {
|
||||
else Tier.None
|
||||
}
|
||||
|
||||
def caseNameWithTierSuffix(name: String, tier: Int): String = name + (if (tier == Tier.Four) "Creative" else (tier + 1).toString)
|
||||
def caseNameWithTierSuffix(name: String, tier: Int): String = name + (if (tier == Tier.Four) "creative" else (tier + 1).toString)
|
||||
|
||||
def loadTag(data: Array[Byte]): NBTTagCompound = {
|
||||
val bais = new ByteArrayInputStream(data)
|
||||
|
Loading…
x
Reference in New Issue
Block a user