Coloring tooltips of devices according to their tier now (robots, mcus, drones).

Added creative drone and mcu case.
Added preconfigured robot, mcu and drone to creative tab (mcu and drone still need a programmed EEPROM to be put in).
This commit is contained in:
Florian Nücke 2015-01-11 16:01:35 +01:00
parent b13f319018
commit 7bbed622f9
26 changed files with 248 additions and 37 deletions

Binary file not shown.

View File

@ -57,6 +57,7 @@ item.oc.Disk.name=Disk Platter
item.oc.Drone.name=Drone
item.oc.DroneCase0.name=Drone Case (Tier 1)
item.oc.DroneCase1.name=Drone Case (Tier 2)
item.oc.DroneCase3.name=Drone Case (Creative)
item.oc.eeprom.name=EEPROM
item.oc.FloppyDisk.name=Floppy Disk
item.oc.GraphicsCard0.name=Graphics Card (Tier 1)
@ -80,6 +81,7 @@ item.oc.Microchip1.name=Microchip (Tier 2)
item.oc.Microchip2.name=Microchip (Tier 3)
item.oc.MicrocontrollerCase0.name=Microcontroller Case (Tier 1)
item.oc.MicrocontrollerCase1.name=Microcontroller Case (Tier 2)
item.oc.MicrocontrollerCase3.name=Microcontroller Case (Creative)
item.oc.NetworkCard.name=Network Card
item.oc.NumPad.name=Numeric Keypad
item.oc.Present.name=A little something...

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

View File

@ -11,10 +11,10 @@ import li.cil.oc.common.tileentity
import li.cil.oc.integration.util.Wrench
import li.cil.oc.util.BlockPosition
import li.cil.oc.util.Color
import li.cil.oc.util.Rarity
import li.cil.oc.util.Tooltip
import net.minecraft.client.renderer.texture.IIconRegister
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.EnumRarity
import net.minecraft.item.ItemStack
import net.minecraft.util.IIcon
import net.minecraft.world.IBlockAccess
@ -56,7 +56,7 @@ class Case(val tier: Int) extends RedstoneAware with traits.PowerAcceptor with t
// ----------------------------------------------------------------------- //
override def rarity = Array(EnumRarity.common, EnumRarity.uncommon, EnumRarity.rare, EnumRarity.epic).apply(tier)
override def rarity(stack: ItemStack) = Rarity.byTier(tier)
override protected def tooltipBody(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
tooltip.addAll(Tooltip.get(getClass.getSimpleName, slots))

View File

@ -5,9 +5,9 @@ import java.util
import cpw.mods.fml.relauncher.Side
import cpw.mods.fml.relauncher.SideOnly
import li.cil.oc.common.tileentity
import li.cil.oc.util.Rarity
import li.cil.oc.util.Tooltip
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.EnumRarity
import net.minecraft.item.ItemStack
import net.minecraft.world.IBlockAccess
import net.minecraft.world.World
@ -37,7 +37,7 @@ class Hologram(val tier: Int) extends SimpleBlock with traits.SpecialBlock {
// ----------------------------------------------------------------------- //
override def rarity = Array(EnumRarity.uncommon, EnumRarity.rare).apply(tier)
override def rarity(stack: ItemStack) = Rarity.byTier(tier)
override protected def tooltipBody(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
tooltip.addAll(Tooltip.get(getClass.getSimpleName + tier))

View File

@ -42,7 +42,7 @@ class Item(value: Block) extends ItemBlock(value) {
}
override def getRarity(stack: ItemStack) = block match {
case simple: SimpleBlock => simple.rarity
case simple: SimpleBlock => simple.rarity(stack)
case _ => EnumRarity.common
}

View File

@ -10,6 +10,7 @@ import li.cil.oc.integration.util.NEI
import li.cil.oc.integration.util.Wrench
import li.cil.oc.util.BlockPosition
import li.cil.oc.util.ItemUtils
import li.cil.oc.util.Rarity
import net.minecraft.entity.EntityLivingBase
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.ItemStack
@ -55,6 +56,11 @@ class Microcontroller extends RedstoneAware with traits.PowerAcceptor with trait
}
}
override def rarity(stack: ItemStack) = {
val data = new ItemUtils.MicrocontrollerData(stack)
Rarity.byTier(data.tier)
}
// ----------------------------------------------------------------------- //
override def energyThroughput = Settings.get.caseRate(Tier.One)

View File

@ -8,9 +8,11 @@ import li.cil.oc.Settings
import li.cil.oc.api
import li.cil.oc.common.tileentity
import li.cil.oc.integration.util.NEI
import li.cil.oc.util.ItemUtils
import li.cil.oc.util.Rarity
import net.minecraft.client.renderer.texture.IIconRegister
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.EnumRarity
import net.minecraft.item.ItemStack
import net.minecraft.util.IIcon
import net.minecraft.util.MovingObjectPosition
import net.minecraft.world.IBlockAccess
@ -47,7 +49,10 @@ class RobotAfterimage extends SimpleBlock with traits.SpecialBlock {
// ----------------------------------------------------------------------- //
override def rarity = EnumRarity.epic
override def rarity(stack: ItemStack) = {
val data = new ItemUtils.RobotData(stack)
Rarity.byTier(data.tier)
}
// ----------------------------------------------------------------------- //

View File

@ -14,12 +14,12 @@ import li.cil.oc.integration.util.NEI
import li.cil.oc.server.PacketSender
import li.cil.oc.server.component.robot
import li.cil.oc.util.ItemUtils
import li.cil.oc.util.Rarity
import li.cil.oc.util.Tooltip
import net.minecraft.client.renderer.texture.IIconRegister
import net.minecraft.entity.Entity
import net.minecraft.entity.EntityLivingBase
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.EnumRarity
import net.minecraft.item.ItemStack
import net.minecraft.util.AxisAlignedBB
import net.minecraft.util.IIcon
@ -65,7 +65,10 @@ class RobotProxy extends RedstoneAware with traits.SpecialBlock with traits.Stat
// ----------------------------------------------------------------------- //
override def rarity = EnumRarity.epic
override def rarity(stack: ItemStack) = {
val data = new ItemUtils.RobotData(stack)
Rarity.byTier(data.tier)
}
override protected def tooltipHead(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
super.tooltipHead(metadata, stack, player, tooltip, advanced)

View File

@ -9,16 +9,12 @@ import li.cil.oc.Settings
import li.cil.oc.common.GuiType
import li.cil.oc.common.tileentity
import li.cil.oc.integration.util.Wrench
import li.cil.oc.util.BlockPosition
import li.cil.oc.util.Color
import li.cil.oc.util.PackedColor
import li.cil.oc.util.Tooltip
import li.cil.oc.util._
import net.minecraft.client.renderer.texture.IIconRegister
import net.minecraft.entity.Entity
import net.minecraft.entity.EntityLivingBase
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.entity.projectile.EntityArrow
import net.minecraft.item.EnumRarity
import net.minecraft.item.ItemStack
import net.minecraft.util.IIcon
import net.minecraft.world.IBlockAccess
@ -33,7 +29,7 @@ class Screen(val tier: Int) extends RedstoneAware {
// ----------------------------------------------------------------------- //
override def rarity = Array(EnumRarity.common, EnumRarity.uncommon, EnumRarity.rare).apply(tier)
override def rarity(stack: ItemStack) = Rarity.byTier(tier)
override protected def tooltipBody(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
val (w, h) = Settings.screenResolutionsByTier(tier)

View File

@ -97,7 +97,7 @@ class SimpleBlock(material: Material = Material.iron) extends Block(material) {
// ItemBlock
// ----------------------------------------------------------------------- //
def rarity = EnumRarity.common
def rarity(stack: ItemStack) = EnumRarity.common
@SideOnly(Side.CLIENT)
def addInformation(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: java.util.List[String], advanced: Boolean) {

View File

@ -15,6 +15,7 @@ import li.cil.oc.common.item.UpgradeLeash
import li.cil.oc.common.recipe.Recipes
import li.cil.oc.integration.Mods
import li.cil.oc.util.Color
import li.cil.oc.util.ItemUtils
import net.minecraft.block.Block
import net.minecraft.creativetab.CreativeTabs
import net.minecraft.entity.player.EntityPlayer
@ -139,6 +140,98 @@ object Items extends ItemAPI {
stack
}
def createConfiguredDrone() = {
val data = new ItemUtils.MicrocontrollerData()
data.tier = Tier.Four
data.storedEnergy = Settings.get.bufferDrone.toInt
data.components = Array(
get("inventoryUpgrade").createItemStack(1),
get("inventoryUpgrade").createItemStack(1),
get("inventoryControllerUpgrade").createItemStack(1),
get("tankUpgrade").createItemStack(1),
get("tankControllerUpgrade").createItemStack(1),
get("wlanCard").createItemStack(1),
get("cpu3").createItemStack(1),
get("ram6").createItemStack(1),
get("ram6").createItemStack(1)
)
val stack = get("drone").createItemStack(1)
data.save(stack)
stack
}
def createConfiguredMicrocontroller() = {
val data = new ItemUtils.MicrocontrollerData()
data.tier = Tier.Four
data.storedEnergy = Settings.get.bufferMicrocontroller.toInt
data.components = Array(
get("signUpgrade").createItemStack(1),
get("pistonUpgrade").createItemStack(1),
get("redstoneCard2").createItemStack(1),
get("wlanCard").createItemStack(1),
get("cpu3").createItemStack(1),
get("ram6").createItemStack(1),
get("ram6").createItemStack(1)
)
val stack = get("microcontroller").createItemStack(1)
data.save(stack)
stack
}
def createConfiguredRobot() = {
val data = new ItemUtils.RobotData()
data.name = "Creatix"
data.tier = Tier.Four
data.robotEnergy = Settings.get.bufferRobot.toInt
data.totalEnergy = data.robotEnergy
data.components = Array(
get("screen1").createItemStack(1),
get("keyboard").createItemStack(1),
get("inventoryUpgrade").createItemStack(1),
get("inventoryUpgrade").createItemStack(1),
get("inventoryUpgrade").createItemStack(1),
get("inventoryUpgrade").createItemStack(1),
get("inventoryControllerUpgrade").createItemStack(1),
get("tankUpgrade").createItemStack(1),
get("tankControllerUpgrade").createItemStack(1),
get("craftingUpgrade").createItemStack(1),
get("graphicsCard3").createItemStack(1),
get("redstoneCard2").createItemStack(1),
get("wlanCard").createItemStack(1),
get("internetCard").createItemStack(1),
get("cpu3").createItemStack(1),
get("ram6").createItemStack(1),
get("ram6").createItemStack(1),
createLuaBios(),
createOpenOS(),
get("hdd3").createItemStack(1)
)
data.containers = Array(
get("cardContainer3").createItemStack(1),
get("upgradeContainer3").createItemStack(1),
get("upgradeContainer3").createItemStack(1)
)
val stack = get("robot").createItemStack(1)
data.save(stack)
stack
}
// ----------------------------------------------------------------------- //
var multi: item.Delegator = _
@ -149,13 +242,20 @@ object Items extends ItemAPI {
def init() {
multi = new item.Delegator() {
lazy val configuredItems = Array(
createOpenOS(),
createLuaBios(),
createConfiguredDrone(),
createConfiguredMicrocontroller(),
createConfiguredRobot()
)
override def getSubItems(item: Item, tab: CreativeTabs, list: java.util.List[_]) {
// Workaround for MC's untyped lists...
def add[T](list: java.util.List[T], value: Any) = list.add(value.asInstanceOf[T])
super.getSubItems(item, tab, list)
Loot.worldDisks.values.foreach(entry => add(list, entry._1))
add(list, createOpenOS())
add(list, createLuaBios())
configuredItems.foreach(add(list, _))
}
}
@ -323,5 +423,9 @@ object Items extends ItemAPI {
if (Mods.Galacticraft.isAvailable) {
Recipes.addMultiItem(worldSensorCard, "worldSensorCard", "oc:worldSensorCard")
}
// 1.4.4
registerItem(new item.MicrocontrollerCase(multi, Tier.Four), "microcontrollerCaseCreative")
registerItem(new item.DroneCase(multi, Tier.Four), "droneCaseCreative")
}
}

View File

@ -60,15 +60,13 @@ trait Delegate {
// ----------------------------------------------------------------------- //
def rarity = Rarity.byTier(tierFromDriver)
def rarity(stack: ItemStack) = Rarity.byTier(tierFromDriver(stack))
protected def tierFromDriver = {
val stack = createItemStack()
protected def tierFromDriver(stack: ItemStack) =
api.Driver.driverFor(stack) match {
case driver: api.driver.Item => driver.tier(stack)
case _ => 0
}
}
def color(stack: ItemStack, pass: Int) = 0xFFFFFF

View File

@ -83,7 +83,7 @@ class Delegator extends Item {
override def isBookEnchantable(itemA: ItemStack, itemB: ItemStack): Boolean = false
override def getRarity(stack: ItemStack) = subItem(stack) match {
case Some(subItem) => subItem.rarity
case Some(subItem) => subItem.rarity(stack)
case _ => EnumRarity.common
}

View File

@ -9,6 +9,7 @@ import li.cil.oc.common.entity
import li.cil.oc.integration.util.NEI
import li.cil.oc.util.BlockPosition
import li.cil.oc.util.ItemUtils
import li.cil.oc.util.Rarity
import net.minecraft.entity.player.EntityPlayer
import net.minecraft.item.ItemStack
@ -24,6 +25,11 @@ class Drone(val parent: Delegator) extends Delegate {
}
}
override def rarity(stack: ItemStack) = {
val data = new ItemUtils.MicrocontrollerData(stack)
Rarity.byTier(data.tier)
}
override def onItemUse(stack: ItemStack, player: EntityPlayer, position: BlockPosition, side: Int, hitX: Float, hitY: Float, hitZ: Float) = {
val world = position.world.get
if (!world.isRemote) {

View File

@ -1,9 +1,11 @@
package li.cil.oc.common.item
import net.minecraft.item.ItemStack
class DroneCase(val parent: Delegator, val tier: Int) extends Delegate with ItemTier {
override val unlocalizedName = super.unlocalizedName + tier
override protected def tierFromDriver = tier
override protected def tierFromDriver(stack: ItemStack) = tier
override protected def tooltipName = Option(super.unlocalizedName)
}

View File

@ -14,7 +14,7 @@ trait ItemTier extends Delegate {
override def tooltipLines(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
super.tooltipLines(stack, player, tooltip, advanced)
if (advanced) {
tooltip.add(Localization.Tooltip.Tier(tierFromDriver + 1))
tooltip.add(Localization.Tooltip.Tier(tierFromDriver(stack) + 1))
}
}
}

View File

@ -1,11 +1,12 @@
package li.cil.oc.common.item
import li.cil.oc.util.Rarity
import net.minecraft.item.ItemStack
class Microchip(val parent: Delegator, val tier: Int) extends Delegate {
override val unlocalizedName = super.unlocalizedName + tier
override protected def tooltipName = Option(super.unlocalizedName)
override def rarity = Rarity.byTier(tier)
override def rarity(stack: ItemStack) = Rarity.byTier(tier)
}

View File

@ -1,9 +1,11 @@
package li.cil.oc.common.item
import net.minecraft.item.ItemStack
class MicrocontrollerCase(val parent: Delegator, val tier: Int) extends Delegate with ItemTier {
override val unlocalizedName = super.unlocalizedName + tier
override protected def tierFromDriver = tier
override protected def tierFromDriver(stack: ItemStack) = tier
override protected def tooltipName = Option(super.unlocalizedName)
}

View File

@ -23,7 +23,7 @@ class Server(val parent: Delegator, val tier: Int) extends Delegate {
override protected def tooltipData = Seq(Settings.get.terminalsPerTier(math.min(Tier.Three, tier)))
override def rarity = Rarity.byTier(tier)
override def rarity(stack: ItemStack) = Rarity.byTier(tier)
override def maxStackSize = 1

View File

@ -15,7 +15,7 @@ class UpgradeDatabase(val parent: Delegator, val tier: Int) extends Delegate wit
override protected def tooltipData = Seq(Settings.get.databaseEntriesPerTier(tier))
override def rarity = Rarity.byTier(tier)
override def rarity(stack: ItemStack) = Rarity.byTier(tier)
override def onItemRightClick(stack: ItemStack, world: World, player: EntityPlayer) = {
if (!player.isSneaking) {

View File

@ -23,6 +23,8 @@ object DroneTemplate extends Template {
def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get("droneCase2")
def selectTierCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get("droneCaseCreative")
def validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory)
def assemble(inventory: IInventory) = {
@ -42,7 +44,9 @@ object DroneTemplate extends Template {
def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = {
val info = new ItemUtils.MicrocontrollerData(stack)
Array(api.Items.get("droneCase" + (info.tier + 1)).createItemStack(1)) ++ info.components
val itemName = ItemUtils.caseNameWithTierSuffix("droneCase", info.tier)
Array(api.Items.get(itemName).createItemStack(1)) ++ info.components
}
def register() {
@ -101,6 +105,40 @@ object DroneTemplate extends Template {
FMLInterModComms.sendMessage("OpenComputers", "registerAssemblerTemplate", nbt)
}
// Creative
{
val nbt = new NBTTagCompound()
nbt.setString("name", "Drone (Creative)")
nbt.setString("select", "li.cil.oc.common.template.DroneTemplate.selectTierCreative")
nbt.setString("validate", "li.cil.oc.common.template.DroneTemplate.validate")
nbt.setString("assemble", "li.cil.oc.common.template.DroneTemplate.assemble")
nbt.setString("hostClass", "li.cil.oc.api.internal.Drone")
val upgradeSlots = new NBTTagList()
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
nbt.setTag("upgradeSlots", upgradeSlots)
val componentSlots = new NBTTagList()
componentSlots.appendTag(Map("type" -> Slot.Card, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.Card, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.Card, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.CPU, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.Memory, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.Memory, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.EEPROM, "tier" -> Tier.Any))
nbt.setTag("componentSlots", componentSlots)
FMLInterModComms.sendMessage("OpenComputers", "registerAssemblerTemplate", nbt)
}
// Disassembler
{
val nbt = new NBTTagCompound()
@ -112,7 +150,10 @@ object DroneTemplate extends Template {
}
}
override protected def maxComplexity(inventory: IInventory) = if (caseTier(inventory) == Tier.Two) 8 else 5
override protected def maxComplexity(inventory: IInventory) =
if (caseTier(inventory) == Tier.Two) 8
else if (caseTier(inventory) == Tier.Four) 9001 // Creative
else 5
override protected def caseTier(inventory: IInventory) = ItemUtils.caseTier(inventory.getStackInSlot(0))
}

View File

@ -23,6 +23,8 @@ object MicrocontrollerTemplate extends Template {
def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get("microcontrollerCase2")
def selectTierCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get("microcontrollerCaseCreative")
def validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory)
def assemble(inventory: IInventory) = {
@ -42,7 +44,9 @@ object MicrocontrollerTemplate extends Template {
def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = {
val info = new ItemUtils.MicrocontrollerData(stack)
Array(api.Items.get("microcontrollerCase" + (info.tier + 1)).createItemStack(1)) ++ info.components
val itemName = ItemUtils.caseNameWithTierSuffix("microcontrollerCase", info.tier)
Array(api.Items.get(itemName).createItemStack(1)) ++ info.components
}
def register() {
@ -98,6 +102,40 @@ object MicrocontrollerTemplate extends Template {
FMLInterModComms.sendMessage("OpenComputers", "registerAssemblerTemplate", nbt)
}
// Creative
{
val nbt = new NBTTagCompound()
nbt.setString("name", "Microcontroller (Creative)")
nbt.setString("select", "li.cil.oc.common.template.MicrocontrollerTemplate.selectTierCreative")
nbt.setString("validate", "li.cil.oc.common.template.MicrocontrollerTemplate.validate")
nbt.setString("assemble", "li.cil.oc.common.template.MicrocontrollerTemplate.assemble")
nbt.setString("hostClass", "li.cil.oc.api.internal.Microcontroller")
val upgradeSlots = new NBTTagList()
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
nbt.setTag("upgradeSlots", upgradeSlots)
val componentSlots = new NBTTagList()
componentSlots.appendTag(Map("type" -> Slot.Card, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.Card, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.Card, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.CPU, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.Memory, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.Memory, "tier" -> Tier.Three))
componentSlots.appendTag(Map("type" -> Slot.EEPROM, "tier" -> Tier.Any))
nbt.setTag("componentSlots", componentSlots)
FMLInterModComms.sendMessage("OpenComputers", "registerAssemblerTemplate", nbt)
}
// Disassembler
{
val nbt = new NBTTagCompound()
@ -109,7 +147,10 @@ object MicrocontrollerTemplate extends Template {
}
}
override protected def maxComplexity(inventory: IInventory) = if (caseTier(inventory) == Tier.Two) 5 else 4
override protected def maxComplexity(inventory: IInventory) =
if (caseTier(inventory) == Tier.Two) 5
else if (caseTier(inventory) == Tier.Four) 9001 // Creative
else 4
override protected def caseTier(inventory: IInventory) = ItemUtils.caseTier(inventory.getStackInSlot(0))
}

View File

@ -46,9 +46,8 @@ object RobotTemplate extends Template {
def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = {
val info = new ItemUtils.RobotData(stack)
val itemName =
if (info.tier == Tier.Four) "caseCreative"
else "case" + (info.tier + 1)
val itemName = ItemUtils.caseNameWithTierSuffix("case", info.tier)
Array(api.Items.get(itemName).createItemStack(1)) ++ info.containers ++ info.components
}

View File

@ -39,14 +39,19 @@ object ItemUtils {
else if (descriptor == api.Items.get("caseCreative")) Tier.Four
else if (descriptor == api.Items.get("microcontrollerCase1")) Tier.One
else if (descriptor == api.Items.get("microcontrollerCase2")) Tier.Two
else if (descriptor == api.Items.get("microcontrollerCaseCreative")) Tier.Four
else if (descriptor == api.Items.get("droneCase1")) Tier.One
else if (descriptor == api.Items.get("droneCase2")) Tier.Two
else if (descriptor == api.Items.get("droneCaseCreative")) Tier.Four
else if (descriptor == api.Items.get("server1")) Tier.One
else if (descriptor == api.Items.get("server2")) Tier.Two
else if (descriptor == api.Items.get("server3")) Tier.Three
else if (descriptor == api.Items.get("serverCreative")) Tier.Four
else Tier.None
}
def caseNameWithTierSuffix(name: String, tier: Int) = name + (if (tier == Tier.Four) "Creative" else (tier + 1).toString)
def loadStack(nbt: NBTTagCompound) = DelegatorConverter.convert(ItemStack.loadItemStackFromNBT(nbt))
def getIngredients(stack: ItemStack): Array[ItemStack] = try {
@ -253,7 +258,7 @@ object ItemUtils {
}
override def save(nbt: NBTTagCompound) {
if (name != null) {
if (!Strings.isNullOrEmpty(name)) {
if (!nbt.hasKey("display")) {
nbt.setTag("display", new NBTTagCompound())
}