mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-16 02:39:48 -04:00
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:
parent
b13f319018
commit
7bbed622f9
BIN
assets/items.psd
BIN
assets/items.psd
Binary file not shown.
@ -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 |
@ -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))
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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) {
|
||||
|
@ -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")
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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)
|
||||
}
|
@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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))
|
||||
}
|
||||
|
@ -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))
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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())
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user