mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-16 18:55:03 -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.Drone.name=Drone
|
||||||
item.oc.DroneCase0.name=Drone Case (Tier 1)
|
item.oc.DroneCase0.name=Drone Case (Tier 1)
|
||||||
item.oc.DroneCase1.name=Drone Case (Tier 2)
|
item.oc.DroneCase1.name=Drone Case (Tier 2)
|
||||||
|
item.oc.DroneCase3.name=Drone Case (Creative)
|
||||||
item.oc.eeprom.name=EEPROM
|
item.oc.eeprom.name=EEPROM
|
||||||
item.oc.FloppyDisk.name=Floppy Disk
|
item.oc.FloppyDisk.name=Floppy Disk
|
||||||
item.oc.GraphicsCard0.name=Graphics Card (Tier 1)
|
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.Microchip2.name=Microchip (Tier 3)
|
||||||
item.oc.MicrocontrollerCase0.name=Microcontroller Case (Tier 1)
|
item.oc.MicrocontrollerCase0.name=Microcontroller Case (Tier 1)
|
||||||
item.oc.MicrocontrollerCase1.name=Microcontroller Case (Tier 2)
|
item.oc.MicrocontrollerCase1.name=Microcontroller Case (Tier 2)
|
||||||
|
item.oc.MicrocontrollerCase3.name=Microcontroller Case (Creative)
|
||||||
item.oc.NetworkCard.name=Network Card
|
item.oc.NetworkCard.name=Network Card
|
||||||
item.oc.NumPad.name=Numeric Keypad
|
item.oc.NumPad.name=Numeric Keypad
|
||||||
item.oc.Present.name=A little something...
|
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.integration.util.Wrench
|
||||||
import li.cil.oc.util.BlockPosition
|
import li.cil.oc.util.BlockPosition
|
||||||
import li.cil.oc.util.Color
|
import li.cil.oc.util.Color
|
||||||
|
import li.cil.oc.util.Rarity
|
||||||
import li.cil.oc.util.Tooltip
|
import li.cil.oc.util.Tooltip
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister
|
import net.minecraft.client.renderer.texture.IIconRegister
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.item.EnumRarity
|
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.util.IIcon
|
import net.minecraft.util.IIcon
|
||||||
import net.minecraft.world.IBlockAccess
|
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) {
|
override protected def tooltipBody(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||||
tooltip.addAll(Tooltip.get(getClass.getSimpleName, slots))
|
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.Side
|
||||||
import cpw.mods.fml.relauncher.SideOnly
|
import cpw.mods.fml.relauncher.SideOnly
|
||||||
import li.cil.oc.common.tileentity
|
import li.cil.oc.common.tileentity
|
||||||
|
import li.cil.oc.util.Rarity
|
||||||
import li.cil.oc.util.Tooltip
|
import li.cil.oc.util.Tooltip
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.item.EnumRarity
|
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.world.IBlockAccess
|
import net.minecraft.world.IBlockAccess
|
||||||
import net.minecraft.world.World
|
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) {
|
override protected def tooltipBody(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||||
tooltip.addAll(Tooltip.get(getClass.getSimpleName + tier))
|
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 {
|
override def getRarity(stack: ItemStack) = block match {
|
||||||
case simple: SimpleBlock => simple.rarity
|
case simple: SimpleBlock => simple.rarity(stack)
|
||||||
case _ => EnumRarity.common
|
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.integration.util.Wrench
|
||||||
import li.cil.oc.util.BlockPosition
|
import li.cil.oc.util.BlockPosition
|
||||||
import li.cil.oc.util.ItemUtils
|
import li.cil.oc.util.ItemUtils
|
||||||
|
import li.cil.oc.util.Rarity
|
||||||
import net.minecraft.entity.EntityLivingBase
|
import net.minecraft.entity.EntityLivingBase
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.item.ItemStack
|
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)
|
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.api
|
||||||
import li.cil.oc.common.tileentity
|
import li.cil.oc.common.tileentity
|
||||||
import li.cil.oc.integration.util.NEI
|
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.client.renderer.texture.IIconRegister
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
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.IIcon
|
||||||
import net.minecraft.util.MovingObjectPosition
|
import net.minecraft.util.MovingObjectPosition
|
||||||
import net.minecraft.world.IBlockAccess
|
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.PacketSender
|
||||||
import li.cil.oc.server.component.robot
|
import li.cil.oc.server.component.robot
|
||||||
import li.cil.oc.util.ItemUtils
|
import li.cil.oc.util.ItemUtils
|
||||||
|
import li.cil.oc.util.Rarity
|
||||||
import li.cil.oc.util.Tooltip
|
import li.cil.oc.util.Tooltip
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister
|
import net.minecraft.client.renderer.texture.IIconRegister
|
||||||
import net.minecraft.entity.Entity
|
import net.minecraft.entity.Entity
|
||||||
import net.minecraft.entity.EntityLivingBase
|
import net.minecraft.entity.EntityLivingBase
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.item.EnumRarity
|
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.util.AxisAlignedBB
|
import net.minecraft.util.AxisAlignedBB
|
||||||
import net.minecraft.util.IIcon
|
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) {
|
override protected def tooltipHead(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||||
super.tooltipHead(metadata, stack, player, tooltip, advanced)
|
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.GuiType
|
||||||
import li.cil.oc.common.tileentity
|
import li.cil.oc.common.tileentity
|
||||||
import li.cil.oc.integration.util.Wrench
|
import li.cil.oc.integration.util.Wrench
|
||||||
import li.cil.oc.util.BlockPosition
|
import li.cil.oc.util._
|
||||||
import li.cil.oc.util.Color
|
|
||||||
import li.cil.oc.util.PackedColor
|
|
||||||
import li.cil.oc.util.Tooltip
|
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister
|
import net.minecraft.client.renderer.texture.IIconRegister
|
||||||
import net.minecraft.entity.Entity
|
import net.minecraft.entity.Entity
|
||||||
import net.minecraft.entity.EntityLivingBase
|
import net.minecraft.entity.EntityLivingBase
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.entity.projectile.EntityArrow
|
import net.minecraft.entity.projectile.EntityArrow
|
||||||
import net.minecraft.item.EnumRarity
|
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.util.IIcon
|
import net.minecraft.util.IIcon
|
||||||
import net.minecraft.world.IBlockAccess
|
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) {
|
override protected def tooltipBody(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||||
val (w, h) = Settings.screenResolutionsByTier(tier)
|
val (w, h) = Settings.screenResolutionsByTier(tier)
|
||||||
|
@ -97,7 +97,7 @@ class SimpleBlock(material: Material = Material.iron) extends Block(material) {
|
|||||||
// ItemBlock
|
// ItemBlock
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
def rarity = EnumRarity.common
|
def rarity(stack: ItemStack) = EnumRarity.common
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
def addInformation(metadata: Int, stack: ItemStack, player: EntityPlayer, tooltip: java.util.List[String], advanced: Boolean) {
|
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.common.recipe.Recipes
|
||||||
import li.cil.oc.integration.Mods
|
import li.cil.oc.integration.Mods
|
||||||
import li.cil.oc.util.Color
|
import li.cil.oc.util.Color
|
||||||
|
import li.cil.oc.util.ItemUtils
|
||||||
import net.minecraft.block.Block
|
import net.minecraft.block.Block
|
||||||
import net.minecraft.creativetab.CreativeTabs
|
import net.minecraft.creativetab.CreativeTabs
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
@ -139,6 +140,98 @@ object Items extends ItemAPI {
|
|||||||
stack
|
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 = _
|
var multi: item.Delegator = _
|
||||||
@ -149,13 +242,20 @@ object Items extends ItemAPI {
|
|||||||
|
|
||||||
def init() {
|
def init() {
|
||||||
multi = new item.Delegator() {
|
multi = new item.Delegator() {
|
||||||
|
lazy val configuredItems = Array(
|
||||||
|
createOpenOS(),
|
||||||
|
createLuaBios(),
|
||||||
|
createConfiguredDrone(),
|
||||||
|
createConfiguredMicrocontroller(),
|
||||||
|
createConfiguredRobot()
|
||||||
|
)
|
||||||
|
|
||||||
override def getSubItems(item: Item, tab: CreativeTabs, list: java.util.List[_]) {
|
override def getSubItems(item: Item, tab: CreativeTabs, list: java.util.List[_]) {
|
||||||
// Workaround for MC's untyped lists...
|
// Workaround for MC's untyped lists...
|
||||||
def add[T](list: java.util.List[T], value: Any) = list.add(value.asInstanceOf[T])
|
def add[T](list: java.util.List[T], value: Any) = list.add(value.asInstanceOf[T])
|
||||||
super.getSubItems(item, tab, list)
|
super.getSubItems(item, tab, list)
|
||||||
Loot.worldDisks.values.foreach(entry => add(list, entry._1))
|
Loot.worldDisks.values.foreach(entry => add(list, entry._1))
|
||||||
add(list, createOpenOS())
|
configuredItems.foreach(add(list, _))
|
||||||
add(list, createLuaBios())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -323,5 +423,9 @@ object Items extends ItemAPI {
|
|||||||
if (Mods.Galacticraft.isAvailable) {
|
if (Mods.Galacticraft.isAvailable) {
|
||||||
Recipes.addMultiItem(worldSensorCard, "worldSensorCard", "oc:worldSensorCard")
|
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 = {
|
protected def tierFromDriver(stack: ItemStack) =
|
||||||
val stack = createItemStack()
|
|
||||||
api.Driver.driverFor(stack) match {
|
api.Driver.driverFor(stack) match {
|
||||||
case driver: api.driver.Item => driver.tier(stack)
|
case driver: api.driver.Item => driver.tier(stack)
|
||||||
case _ => 0
|
case _ => 0
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
def color(stack: ItemStack, pass: Int) = 0xFFFFFF
|
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 isBookEnchantable(itemA: ItemStack, itemB: ItemStack): Boolean = false
|
||||||
|
|
||||||
override def getRarity(stack: ItemStack) = subItem(stack) match {
|
override def getRarity(stack: ItemStack) = subItem(stack) match {
|
||||||
case Some(subItem) => subItem.rarity
|
case Some(subItem) => subItem.rarity(stack)
|
||||||
case _ => EnumRarity.common
|
case _ => EnumRarity.common
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ import li.cil.oc.common.entity
|
|||||||
import li.cil.oc.integration.util.NEI
|
import li.cil.oc.integration.util.NEI
|
||||||
import li.cil.oc.util.BlockPosition
|
import li.cil.oc.util.BlockPosition
|
||||||
import li.cil.oc.util.ItemUtils
|
import li.cil.oc.util.ItemUtils
|
||||||
|
import li.cil.oc.util.Rarity
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.item.ItemStack
|
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) = {
|
override def onItemUse(stack: ItemStack, player: EntityPlayer, position: BlockPosition, side: Int, hitX: Float, hitY: Float, hitZ: Float) = {
|
||||||
val world = position.world.get
|
val world = position.world.get
|
||||||
if (!world.isRemote) {
|
if (!world.isRemote) {
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package li.cil.oc.common.item
|
package li.cil.oc.common.item
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
|
||||||
class DroneCase(val parent: Delegator, val tier: Int) extends Delegate with ItemTier {
|
class DroneCase(val parent: Delegator, val tier: Int) extends Delegate with ItemTier {
|
||||||
override val unlocalizedName = super.unlocalizedName + tier
|
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)
|
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) {
|
override def tooltipLines(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||||
super.tooltipLines(stack, player, tooltip, advanced)
|
super.tooltipLines(stack, player, tooltip, advanced)
|
||||||
if (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
|
package li.cil.oc.common.item
|
||||||
|
|
||||||
import li.cil.oc.util.Rarity
|
import li.cil.oc.util.Rarity
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
|
||||||
class Microchip(val parent: Delegator, val tier: Int) extends Delegate {
|
class Microchip(val parent: Delegator, val tier: Int) extends Delegate {
|
||||||
override val unlocalizedName = super.unlocalizedName + tier
|
override val unlocalizedName = super.unlocalizedName + tier
|
||||||
|
|
||||||
override protected def tooltipName = Option(super.unlocalizedName)
|
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
|
package li.cil.oc.common.item
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
|
||||||
class MicrocontrollerCase(val parent: Delegator, val tier: Int) extends Delegate with ItemTier {
|
class MicrocontrollerCase(val parent: Delegator, val tier: Int) extends Delegate with ItemTier {
|
||||||
override val unlocalizedName = super.unlocalizedName + tier
|
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)
|
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 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
|
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 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) = {
|
override def onItemRightClick(stack: ItemStack, world: World, player: EntityPlayer) = {
|
||||||
if (!player.isSneaking) {
|
if (!player.isSneaking) {
|
||||||
|
@ -23,6 +23,8 @@ object DroneTemplate extends Template {
|
|||||||
|
|
||||||
def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get("droneCase2")
|
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 validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory)
|
||||||
|
|
||||||
def assemble(inventory: IInventory) = {
|
def assemble(inventory: IInventory) = {
|
||||||
@ -42,7 +44,9 @@ object DroneTemplate extends Template {
|
|||||||
|
|
||||||
def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = {
|
def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = {
|
||||||
val info = new ItemUtils.MicrocontrollerData(stack)
|
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() {
|
def register() {
|
||||||
@ -101,6 +105,40 @@ object DroneTemplate extends Template {
|
|||||||
FMLInterModComms.sendMessage("OpenComputers", "registerAssemblerTemplate", nbt)
|
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
|
// Disassembler
|
||||||
{
|
{
|
||||||
val nbt = new NBTTagCompound()
|
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))
|
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 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 validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory)
|
||||||
|
|
||||||
def assemble(inventory: IInventory) = {
|
def assemble(inventory: IInventory) = {
|
||||||
@ -42,7 +44,9 @@ object MicrocontrollerTemplate extends Template {
|
|||||||
|
|
||||||
def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = {
|
def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = {
|
||||||
val info = new ItemUtils.MicrocontrollerData(stack)
|
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() {
|
def register() {
|
||||||
@ -98,6 +102,40 @@ object MicrocontrollerTemplate extends Template {
|
|||||||
FMLInterModComms.sendMessage("OpenComputers", "registerAssemblerTemplate", nbt)
|
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
|
// Disassembler
|
||||||
{
|
{
|
||||||
val nbt = new NBTTagCompound()
|
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))
|
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]) = {
|
def disassemble(stack: ItemStack, ingredients: Array[ItemStack]) = {
|
||||||
val info = new ItemUtils.RobotData(stack)
|
val info = new ItemUtils.RobotData(stack)
|
||||||
val itemName =
|
val itemName = ItemUtils.caseNameWithTierSuffix("case", info.tier)
|
||||||
if (info.tier == Tier.Four) "caseCreative"
|
|
||||||
else "case" + (info.tier + 1)
|
|
||||||
Array(api.Items.get(itemName).createItemStack(1)) ++ info.containers ++ info.components
|
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("caseCreative")) Tier.Four
|
||||||
else if (descriptor == api.Items.get("microcontrollerCase1")) Tier.One
|
else if (descriptor == api.Items.get("microcontrollerCase1")) Tier.One
|
||||||
else if (descriptor == api.Items.get("microcontrollerCase2")) Tier.Two
|
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("droneCase1")) Tier.One
|
||||||
else if (descriptor == api.Items.get("droneCase2")) Tier.Two
|
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("server1")) Tier.One
|
||||||
else if (descriptor == api.Items.get("server2")) Tier.Two
|
else if (descriptor == api.Items.get("server2")) Tier.Two
|
||||||
else if (descriptor == api.Items.get("server3")) Tier.Three
|
else if (descriptor == api.Items.get("server3")) Tier.Three
|
||||||
|
else if (descriptor == api.Items.get("serverCreative")) Tier.Four
|
||||||
else Tier.None
|
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 loadStack(nbt: NBTTagCompound) = DelegatorConverter.convert(ItemStack.loadItemStackFromNBT(nbt))
|
||||||
|
|
||||||
def getIngredients(stack: ItemStack): Array[ItemStack] = try {
|
def getIngredients(stack: ItemStack): Array[ItemStack] = try {
|
||||||
@ -253,7 +258,7 @@ object ItemUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override def save(nbt: NBTTagCompound) {
|
override def save(nbt: NBTTagCompound) {
|
||||||
if (name != null) {
|
if (!Strings.isNullOrEmpty(name)) {
|
||||||
if (!nbt.hasKey("display")) {
|
if (!nbt.hasKey("display")) {
|
||||||
nbt.setTag("display", new NBTTagCompound())
|
nbt.setTag("display", new NBTTagCompound())
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user