mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-13 17:28:52 -04:00
Added tier two and creative tablet cases.
Tier two and creative case also have space for a single container. When shift-rightclicking them, in addition to be powered off a GUI will open, giving access to the container slot, so you can, for example, insert and remove floppies on the go. Also, tablet icons should be updated to reflect the tablet's run state more promptly now.
This commit is contained in:
parent
a7a264b950
commit
b0a4e8f857
BIN
assets/items.psd
BIN
assets/items.psd
Binary file not shown.
@ -81,7 +81,9 @@ item.oc.Server1.name=Server (Stufe 2)
|
|||||||
item.oc.Server2.name=Server (Stufe 3)
|
item.oc.Server2.name=Server (Stufe 3)
|
||||||
item.oc.Server3.name=Server (Kreativ)
|
item.oc.Server3.name=Server (Kreativ)
|
||||||
item.oc.Tablet.name=Tablet
|
item.oc.Tablet.name=Tablet
|
||||||
item.oc.TabletCase.name=Tablet-Gehäuse
|
item.oc.TabletCase0.name=Tablet-Gehäuse (Stufe 1)
|
||||||
|
item.oc.TabletCase1.name=Tablet-Gehäuse (Stufe 2)
|
||||||
|
item.oc.TabletCase3.name=Tablet-Gehäuse (Kreativ)
|
||||||
item.oc.Terminal.name=Fernbedienung
|
item.oc.Terminal.name=Fernbedienung
|
||||||
item.oc.Transistor.name=Transistor
|
item.oc.Transistor.name=Transistor
|
||||||
item.oc.UpgradeAngel.name=Schwebe-Upgrade
|
item.oc.UpgradeAngel.name=Schwebe-Upgrade
|
||||||
@ -175,6 +177,7 @@ oc:container.DiskDrive=Diskettenlaufwerk
|
|||||||
oc:container.Server=Server
|
oc:container.Server=Server
|
||||||
oc:container.ServerRack=Serverschrank
|
oc:container.ServerRack=Serverschrank
|
||||||
oc:container.Switch=Switch
|
oc:container.Switch=Switch
|
||||||
|
oc:container.TabletWrapper=Tablet
|
||||||
|
|
||||||
# Keybinds
|
# Keybinds
|
||||||
key.materialCosts=Materialkosten anzeigen
|
key.materialCosts=Materialkosten anzeigen
|
||||||
|
@ -94,7 +94,9 @@ item.oc.Server1.name=Server (Tier 2)
|
|||||||
item.oc.Server2.name=Server (Tier 3)
|
item.oc.Server2.name=Server (Tier 3)
|
||||||
item.oc.Server3.name=Server (Creative)
|
item.oc.Server3.name=Server (Creative)
|
||||||
item.oc.Tablet.name=Tablet
|
item.oc.Tablet.name=Tablet
|
||||||
item.oc.TabletCase.name=Tablet Case
|
item.oc.TabletCase0.name=Tablet Case (Tier 1)
|
||||||
|
item.oc.TabletCase1.name=Tablet Case (Tier 2)
|
||||||
|
item.oc.TabletCase3.name=Tablet Case (Creative)
|
||||||
item.oc.Terminal.name=Remote Terminal
|
item.oc.Terminal.name=Remote Terminal
|
||||||
item.oc.Transistor.name=Transistor
|
item.oc.Transistor.name=Transistor
|
||||||
item.oc.UpgradeAngel.name=Angel Upgrade
|
item.oc.UpgradeAngel.name=Angel Upgrade
|
||||||
@ -199,6 +201,7 @@ oc:container.Raid=Raid
|
|||||||
oc:container.Server=Server
|
oc:container.Server=Server
|
||||||
oc:container.ServerRack=Server Rack
|
oc:container.ServerRack=Server Rack
|
||||||
oc:container.Switch=Switch
|
oc:container.Switch=Switch
|
||||||
|
oc:container.TabletWrapper=Tablet
|
||||||
|
|
||||||
# Keybinds
|
# Keybinds
|
||||||
key.materialCosts=Show Material Costs
|
key.materialCosts=Show Material Costs
|
||||||
|
@ -87,7 +87,9 @@ item.oc.Server1.name=Serveur (Niveau 2)
|
|||||||
item.oc.Server2.name=Serveur (Niveau 3)
|
item.oc.Server2.name=Serveur (Niveau 3)
|
||||||
item.oc.Server3.name=Serveur (Créatif)
|
item.oc.Server3.name=Serveur (Créatif)
|
||||||
item.oc.Tablet.name=Tablette
|
item.oc.Tablet.name=Tablette
|
||||||
item.oc.TabletCase.name=Boitier de tablette
|
item.oc.TabletCase.name=Boitier de tablette (Niveau 1)
|
||||||
|
item.oc.TabletCase.name=Boitier de tablette (Niveau 2)
|
||||||
|
item.oc.TabletCase.name=Boitier de tablette (Créatif)
|
||||||
item.oc.Terminal.name=Terminal à distance
|
item.oc.Terminal.name=Terminal à distance
|
||||||
item.oc.Transistor.name=Transistor
|
item.oc.Transistor.name=Transistor
|
||||||
item.oc.UpgradeAngel.name=Amélioration ange
|
item.oc.UpgradeAngel.name=Amélioration ange
|
||||||
@ -187,6 +189,7 @@ oc:container.Raid=Raid
|
|||||||
oc:container.Server=Serveur
|
oc:container.Server=Serveur
|
||||||
oc:container.ServerRack=Support de serveur
|
oc:container.ServerRack=Support de serveur
|
||||||
oc:container.Switch=Routeur
|
oc:container.Switch=Routeur
|
||||||
|
oc:container.TabletWrapper=Tablette
|
||||||
|
|
||||||
# Keybinds
|
# Keybinds
|
||||||
key.materialCosts=Montrer les coût en matériaux
|
key.materialCosts=Montrer les coût en matériaux
|
||||||
|
@ -79,7 +79,9 @@ item.oc.Server1.name=Server (Livello 2)
|
|||||||
item.oc.Server2.name=Server (Livello 3)
|
item.oc.Server2.name=Server (Livello 3)
|
||||||
item.oc.Server3.name=Server (Creativo)
|
item.oc.Server3.name=Server (Creativo)
|
||||||
item.oc.Tablet.name=Tablet
|
item.oc.Tablet.name=Tablet
|
||||||
item.oc.TabletCase.name=Custodia Tablet
|
item.oc.TabletCase0.name=Custodia Tablet (Livello 1)
|
||||||
|
item.oc.TabletCase1.name=Custodia Tablet (Livello 2)
|
||||||
|
item.oc.TabletCase3.name=Custodia Tablet (Creativo)
|
||||||
item.oc.Terminal.name=Terminale Remoto
|
item.oc.Terminal.name=Terminale Remoto
|
||||||
item.oc.Transistor.name=Transistor
|
item.oc.Transistor.name=Transistor
|
||||||
item.oc.UpgradeAngel.name=Upgrade Angel
|
item.oc.UpgradeAngel.name=Upgrade Angel
|
||||||
@ -173,6 +175,7 @@ oc:container.DiskDrive=Unità Disco
|
|||||||
oc:container.Server=Server
|
oc:container.Server=Server
|
||||||
oc:container.ServerRack=Server Rack
|
oc:container.ServerRack=Server Rack
|
||||||
oc:container.Switch=Switch
|
oc:container.Switch=Switch
|
||||||
|
oc:container.TabletWrapper=Tablet
|
||||||
|
|
||||||
# Keybinds
|
# Keybinds
|
||||||
key.materialCosts=Mostra Costi Materiali
|
key.materialCosts=Mostra Costi Materiali
|
||||||
|
@ -166,6 +166,7 @@ oc:container.DiskDrive=Дисковод
|
|||||||
oc:container.Server=Сервер
|
oc:container.Server=Сервер
|
||||||
oc:container.ServerRack=Серверная стойка
|
oc:container.ServerRack=Серверная стойка
|
||||||
oc:container.Switch=Коммутатор
|
oc:container.Switch=Коммутатор
|
||||||
|
oc:container.TabletWrapper=Планшет
|
||||||
|
|
||||||
# Keybinds
|
# Keybinds
|
||||||
key.materialCosts=Показать стоимость материала
|
key.materialCosts=Показать стоимость материала
|
||||||
|
@ -81,7 +81,9 @@ item.oc.Server1.name=高级服务器
|
|||||||
item.oc.Server2.name=超级服务器
|
item.oc.Server2.name=超级服务器
|
||||||
item.oc.Server3.name=创造模式服务器
|
item.oc.Server3.name=创造模式服务器
|
||||||
item.oc.Tablet.name=平板电脑
|
item.oc.Tablet.name=平板电脑
|
||||||
item.oc.TabletCase.name=平板电脑保护套
|
item.oc.TabletCase0.name=平板电脑保护套
|
||||||
|
item.oc.TabletCase1.name=平板电脑保护套
|
||||||
|
item.oc.TabletCase3.name=平板电脑保护套
|
||||||
item.oc.Terminal.name=远程终端
|
item.oc.Terminal.name=远程终端
|
||||||
item.oc.Transistor.name=晶体管
|
item.oc.Transistor.name=晶体管
|
||||||
item.oc.UpgradeAngel.name=天使方块升级
|
item.oc.UpgradeAngel.name=天使方块升级
|
||||||
@ -175,6 +177,7 @@ oc:container.DiskDrive=磁盘驱动器
|
|||||||
oc:container.Server=服务器
|
oc:container.Server=服务器
|
||||||
oc:container.ServerRack=服务器机架
|
oc:container.ServerRack=服务器机架
|
||||||
oc:container.Switch=交换机
|
oc:container.Switch=交换机
|
||||||
|
oc:container.TabletWrapper=平板电脑
|
||||||
|
|
||||||
# Keybinds
|
# Keybinds
|
||||||
key.materialCosts=显示材料需求
|
key.materialCosts=显示材料需求
|
||||||
|
@ -81,7 +81,9 @@ item.oc.Server1.name=伺服器 (2級)
|
|||||||
item.oc.Server2.name=伺服器 (3級)
|
item.oc.Server2.name=伺服器 (3級)
|
||||||
item.oc.Server3.name=伺服器 (創造模式)
|
item.oc.Server3.name=伺服器 (創造模式)
|
||||||
item.oc.Tablet.name=平板電腦
|
item.oc.Tablet.name=平板電腦
|
||||||
item.oc.TabletCase.name=平板電腦保護套
|
item.oc.TabletCase0.name=平板電腦保護套 (1級)
|
||||||
|
item.oc.TabletCase1.name=平板電腦保護套 (2級)
|
||||||
|
item.oc.TabletCase3.name=平板電腦保護套 (創造模式)
|
||||||
item.oc.Terminal.name=遠端終端機
|
item.oc.Terminal.name=遠端終端機
|
||||||
item.oc.Transistor.name=電晶體
|
item.oc.Transistor.name=電晶體
|
||||||
item.oc.UpgradeAngel.name=天使升級
|
item.oc.UpgradeAngel.name=天使升級
|
||||||
@ -174,6 +176,7 @@ oc:container.DiskDrive=硬碟
|
|||||||
oc:container.Server=伺服器
|
oc:container.Server=伺服器
|
||||||
oc:container.ServerRack=伺服器機架
|
oc:container.ServerRack=伺服器機架
|
||||||
oc:container.Switch=路由器
|
oc:container.Switch=路由器
|
||||||
|
oc:container.TabletWrapper=平板電腦
|
||||||
|
|
||||||
# Keybinds
|
# Keybinds
|
||||||
key.materialCosts=顯示材料成本
|
key.materialCosts=顯示材料成本
|
||||||
|
@ -31,11 +31,16 @@ terminal {
|
|||||||
["oc:circuitChip3", "oc:screen2", "oc:wlanCard"]
|
["oc:circuitChip3", "oc:screen2", "oc:wlanCard"]
|
||||||
[nuggetIron, "oc:keyboard", nuggetIron]]
|
[nuggetIron, "oc:keyboard", nuggetIron]]
|
||||||
}
|
}
|
||||||
tabletCase {
|
tabletCase1 {
|
||||||
input: [[ingotGold, button, ingotGold]
|
input: [[ingotGold, button, ingotGold]
|
||||||
["oc:componentBus1", "oc:screen2", "oc:circuitChip3"]
|
["oc:componentBus1", "oc:screen2", "oc:circuitChip3"]
|
||||||
[ingotGold, "oc:materialCircuitBoardPrinted", ingotGold]]
|
[ingotGold, "oc:materialCircuitBoardPrinted", ingotGold]]
|
||||||
}
|
}
|
||||||
|
tabletCase2 {
|
||||||
|
input: [["oc:circuitChip2", button, ingotGold]
|
||||||
|
["oc:componentBus3", "oc:screen2", "oc:circuitChip3"]
|
||||||
|
["oc:circuitChip2", "oc:materialCircuitBoardPrinted", ingotGold]]
|
||||||
|
}
|
||||||
|
|
||||||
server1 {
|
server1 {
|
||||||
input: [[obsidian, "oc:ram4", obsidian]
|
input: [[obsidian, "oc:ram4", obsidian]
|
||||||
|
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 400 B |
Binary file not shown.
After Width: | Height: | Size: 389 B |
Binary file not shown.
After Width: | Height: | Size: 389 B |
@ -9,7 +9,6 @@ import li.cil.oc.common.init.Items
|
|||||||
import li.cil.oc.common.inventory.DatabaseInventory
|
import li.cil.oc.common.inventory.DatabaseInventory
|
||||||
import li.cil.oc.common.inventory.ServerInventory
|
import li.cil.oc.common.inventory.ServerInventory
|
||||||
import li.cil.oc.common.item
|
import li.cil.oc.common.item
|
||||||
import li.cil.oc.common.item.Tablet
|
|
||||||
import li.cil.oc.common.tileentity
|
import li.cil.oc.common.tileentity
|
||||||
import li.cil.oc.common.{GuiHandler => CommonGuiHandler}
|
import li.cil.oc.common.{GuiHandler => CommonGuiHandler}
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
@ -72,14 +71,20 @@ object GuiHandler extends CommonGuiHandler {
|
|||||||
case Some(tablet: item.Tablet) if id == GuiType.Tablet.id =>
|
case Some(tablet: item.Tablet) if id == GuiType.Tablet.id =>
|
||||||
val stack = player.getCurrentEquippedItem
|
val stack = player.getCurrentEquippedItem
|
||||||
if (stack.hasTagCompound) {
|
if (stack.hasTagCompound) {
|
||||||
Tablet.get(stack, player).components.collect {
|
item.Tablet.get(stack, player).components.collect {
|
||||||
case Some(buffer: TextBuffer) => buffer
|
case Some(buffer: TextBuffer) => buffer
|
||||||
}.headOption match {
|
}.headOption match {
|
||||||
case Some(buffer: TextBuffer) => return new gui.Screen(buffer, true, () => true, () => true)
|
case Some(buffer: TextBuffer) => new gui.Screen(buffer, true, () => true, () => true)
|
||||||
case _ =>
|
case _ => null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
null
|
else null
|
||||||
|
case Some(tablet: item.Tablet) if id == GuiType.TabletInner.id =>
|
||||||
|
val stack = player.getCurrentEquippedItem
|
||||||
|
if (stack.hasTagCompound) {
|
||||||
|
new gui.Tablet(player.inventory, item.Tablet.get(stack, player))
|
||||||
|
}
|
||||||
|
else null
|
||||||
case Some(terminal: item.Terminal) if id == GuiType.Terminal.id =>
|
case Some(terminal: item.Terminal) if id == GuiType.Terminal.id =>
|
||||||
val stack = player.getCurrentEquippedItem
|
val stack = player.getCurrentEquippedItem
|
||||||
if (stack.hasTagCompound) {
|
if (stack.hasTagCompound) {
|
||||||
|
26
src/main/scala/li/cil/oc/client/gui/Tablet.scala
Normal file
26
src/main/scala/li/cil/oc/client/gui/Tablet.scala
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package li.cil.oc.client.gui
|
||||||
|
|
||||||
|
import li.cil.oc.Localization
|
||||||
|
import li.cil.oc.common.container
|
||||||
|
import li.cil.oc.common.item.TabletWrapper
|
||||||
|
import net.minecraft.entity.player.InventoryPlayer
|
||||||
|
import net.minecraft.inventory.Slot
|
||||||
|
|
||||||
|
class Tablet(playerInventory: InventoryPlayer, val tablet: TabletWrapper) extends DynamicGuiContainer(new container.Tablet(playerInventory, tablet)) {
|
||||||
|
override def drawSecondaryForegroundLayer(mouseX: Int, mouseY: Int) = {
|
||||||
|
super.drawSecondaryForegroundLayer(mouseX, mouseY)
|
||||||
|
fontRendererObj.drawString(
|
||||||
|
Localization.localizeImmediately(tablet.getInventoryName),
|
||||||
|
8, 6, 0x404040)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def doesGuiPauseGame = false
|
||||||
|
|
||||||
|
protected override def handleMouseClick(slot: Slot, slotNumber: Int, button: Int, shift: Int) {
|
||||||
|
if (slot == null || slot.getStack != tablet.stack) {
|
||||||
|
super.handleMouseClick(slot, slotNumber, button, shift)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override def checkHotbarKeys(slot: Int) = false
|
||||||
|
}
|
@ -58,6 +58,12 @@ abstract class GuiHandler extends IGuiHandler {
|
|||||||
|
|
||||||
override def isUseableByPlayer(player: EntityPlayer) = player == player
|
override def isUseableByPlayer(player: EntityPlayer) = player == player
|
||||||
})
|
})
|
||||||
|
case Some(tablet: item.Tablet) if id == GuiType.TabletInner.id =>
|
||||||
|
val stack = player.getCurrentEquippedItem
|
||||||
|
if (stack.hasTagCompound)
|
||||||
|
new container.Tablet(player.inventory, item.Tablet.get(stack, player))
|
||||||
|
else
|
||||||
|
null
|
||||||
case _ => null
|
case _ => null
|
||||||
}
|
}
|
||||||
case _ => null
|
case _ => null
|
||||||
|
@ -28,6 +28,7 @@ object GuiType extends ScalaEnum {
|
|||||||
val Server = new EnumVal { def name = "Server"; def subType = GuiType.Category.Item }
|
val Server = new EnumVal { def name = "Server"; def subType = GuiType.Category.Item }
|
||||||
val Switch = new EnumVal { def name = "Switch"; def subType = GuiType.Category.Block }
|
val Switch = new EnumVal { def name = "Switch"; def subType = GuiType.Category.Block }
|
||||||
val Tablet = new EnumVal { def name = "Tablet"; def subType = GuiType.Category.Item }
|
val Tablet = new EnumVal { def name = "Tablet"; def subType = GuiType.Category.Item }
|
||||||
|
val TabletInner = new EnumVal { def name = "TabletInner"; def subType = GuiType.Category.Item }
|
||||||
val Terminal = new EnumVal { def name = "Terminal"; def subType = GuiType.Category.Item }
|
val Terminal = new EnumVal { def name = "Terminal"; def subType = GuiType.Category.Item }
|
||||||
|
|
||||||
object Category extends ScalaEnum {
|
object Category extends ScalaEnum {
|
||||||
|
@ -114,7 +114,8 @@ class Proxy {
|
|||||||
OpenComputers.ID + ":rack" -> "serverRack",
|
OpenComputers.ID + ":rack" -> "serverRack",
|
||||||
OpenComputers.ID + ":appengTunnel" -> "", // Avoid breaking worlds for people that used the dev builds.
|
OpenComputers.ID + ":appengTunnel" -> "", // Avoid breaking worlds for people that used the dev builds.
|
||||||
OpenComputers.ID + ":microcontrollerCase" -> "microcontrollerCase1",
|
OpenComputers.ID + ":microcontrollerCase" -> "microcontrollerCase1",
|
||||||
OpenComputers.ID + ":droneCase" -> "droneCase1"
|
OpenComputers.ID + ":droneCase" -> "droneCase1",
|
||||||
|
OpenComputers.ID + ":tabletCase" -> "tabletCase1"
|
||||||
)
|
)
|
||||||
|
|
||||||
def missingMappings(e: FMLMissingMappingsEvent) {
|
def missingMappings(e: FMLMissingMappingsEvent) {
|
||||||
|
13
src/main/scala/li/cil/oc/common/container/Tablet.scala
Normal file
13
src/main/scala/li/cil/oc/common/container/Tablet.scala
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package li.cil.oc.common.container
|
||||||
|
|
||||||
|
import li.cil.oc.common.item.TabletWrapper
|
||||||
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
|
import net.minecraft.entity.player.InventoryPlayer
|
||||||
|
|
||||||
|
class Tablet(playerInventory: InventoryPlayer, tablet: TabletWrapper) extends Player(playerInventory, tablet) {
|
||||||
|
addSlotToContainer(new StaticComponentSlot(this, otherInventory, otherInventory.getSizeInventory - 1, 80, 35, tablet.containerSlotType, tablet.containerSlotTier))
|
||||||
|
|
||||||
|
addPlayerInventorySlots(8, 84)
|
||||||
|
|
||||||
|
override def canInteractWith(player: EntityPlayer) = player == playerInventory.player
|
||||||
|
}
|
@ -238,6 +238,7 @@ object Items extends ItemAPI {
|
|||||||
def createConfiguredTablet() = {
|
def createConfiguredTablet() = {
|
||||||
val data = new TabletData()
|
val data = new TabletData()
|
||||||
|
|
||||||
|
data.tier = Tier.Four
|
||||||
data.energy = Settings.get.bufferTablet
|
data.energy = Settings.get.bufferTablet
|
||||||
data.maxEnergy = data.energy
|
data.maxEnergy = data.energy
|
||||||
data.items = Array(
|
data.items = Array(
|
||||||
@ -428,7 +429,7 @@ object Items extends ItemAPI {
|
|||||||
registerItem(new item.DebugCard(multi), "debugCard")
|
registerItem(new item.DebugCard(multi), "debugCard")
|
||||||
|
|
||||||
// 1.3.5
|
// 1.3.5
|
||||||
Recipes.addMultiItem(new item.TabletCase(multi), "tabletCase", "oc:tabletCase")
|
Recipes.addMultiItem(new item.TabletCase(multi, Tier.One), "tabletCase1", "oc:tabletCase1")
|
||||||
Recipes.addMultiItem(new item.UpgradePiston(multi), "pistonUpgrade", "oc:pistonUpgrade")
|
Recipes.addMultiItem(new item.UpgradePiston(multi), "pistonUpgrade", "oc:pistonUpgrade")
|
||||||
Recipes.addMultiItem(new item.UpgradeTank(multi), "tankUpgrade", "oc:tankUpgrade")
|
Recipes.addMultiItem(new item.UpgradeTank(multi), "tankUpgrade", "oc:tankUpgrade")
|
||||||
Recipes.addMultiItem(new item.UpgradeTankController(multi), "tankControllerUpgrade", "oc:tankControllerUpgrade")
|
Recipes.addMultiItem(new item.UpgradeTankController(multi), "tankControllerUpgrade", "oc:tankControllerUpgrade")
|
||||||
@ -462,5 +463,9 @@ object Items extends ItemAPI {
|
|||||||
// 1.4.4
|
// 1.4.4
|
||||||
registerItem(new item.MicrocontrollerCase(multi, Tier.Four), "microcontrollerCaseCreative")
|
registerItem(new item.MicrocontrollerCase(multi, Tier.Four), "microcontrollerCaseCreative")
|
||||||
registerItem(new item.DroneCase(multi, Tier.Four), "droneCaseCreative")
|
registerItem(new item.DroneCase(multi, Tier.Four), "droneCaseCreative")
|
||||||
|
|
||||||
|
// 1.4.7
|
||||||
|
Recipes.addMultiItem(new item.TabletCase(multi, Tier.Two), "tabletCase2", "oc:tabletCase2")
|
||||||
|
registerItem(new item.TabletCase(multi, Tier.Four), "tabletCaseCreative")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@ object Present {
|
|||||||
add("cpu2", 6)
|
add("cpu2", 6)
|
||||||
add("microcontrollerCase2", 6)
|
add("microcontrollerCase2", 6)
|
||||||
add("componentBus2", 6)
|
add("componentBus2", 6)
|
||||||
add("tabletCase", 5)
|
add("tabletCase1", 5)
|
||||||
add("upgradeContainer2", 5)
|
add("upgradeContainer2", 5)
|
||||||
add("cardContainer2", 5)
|
add("cardContainer2", 5)
|
||||||
add("graphicsCard2", 4)
|
add("graphicsCard2", 4)
|
||||||
@ -121,6 +121,7 @@ object Present {
|
|||||||
add("ram5", 2)
|
add("ram5", 2)
|
||||||
add("upgradeContainer3", 2)
|
add("upgradeContainer3", 2)
|
||||||
add("cardContainer3", 2)
|
add("cardContainer3", 2)
|
||||||
|
add("tabletCase2", 1)
|
||||||
add("hdd3", 1)
|
add("hdd3", 1)
|
||||||
add("chunkloaderUpgrade", 1)
|
add("chunkloaderUpgrade", 1)
|
||||||
add("cpu3", 1)
|
add("cpu3", 1)
|
||||||
|
@ -19,6 +19,7 @@ import li.cil.oc.Settings
|
|||||||
import li.cil.oc.api
|
import li.cil.oc.api
|
||||||
import li.cil.oc.api.Driver
|
import li.cil.oc.api.Driver
|
||||||
import li.cil.oc.api.Machine
|
import li.cil.oc.api.Machine
|
||||||
|
import li.cil.oc.api.driver.item.Container
|
||||||
import li.cil.oc.api.driver.item.Processor
|
import li.cil.oc.api.driver.item.Processor
|
||||||
import li.cil.oc.api.internal
|
import li.cil.oc.api.internal
|
||||||
import li.cil.oc.api.machine.Architecture
|
import li.cil.oc.api.machine.Architecture
|
||||||
@ -28,10 +29,14 @@ import li.cil.oc.api.network.Node
|
|||||||
import li.cil.oc.client.KeyBindings
|
import li.cil.oc.client.KeyBindings
|
||||||
import li.cil.oc.common.GuiType
|
import li.cil.oc.common.GuiType
|
||||||
import li.cil.oc.common.Slot
|
import li.cil.oc.common.Slot
|
||||||
|
import li.cil.oc.common.Tier
|
||||||
import li.cil.oc.common.inventory.ComponentInventory
|
import li.cil.oc.common.inventory.ComponentInventory
|
||||||
import li.cil.oc.common.item.data.TabletData
|
import li.cil.oc.common.item.data.TabletData
|
||||||
|
import li.cil.oc.integration.opencomputers.DriverKeyboard
|
||||||
|
import li.cil.oc.integration.opencomputers.DriverScreen
|
||||||
import li.cil.oc.server.component
|
import li.cil.oc.server.component
|
||||||
import li.cil.oc.util.ExtendedNBT._
|
import li.cil.oc.util.ExtendedNBT._
|
||||||
|
import li.cil.oc.util.Rarity
|
||||||
import li.cil.oc.util.RotationHelper
|
import li.cil.oc.util.RotationHelper
|
||||||
import li.cil.oc.util.Tooltip
|
import li.cil.oc.util.Tooltip
|
||||||
import net.minecraft.entity.Entity
|
import net.minecraft.entity.Entity
|
||||||
@ -85,6 +90,11 @@ class Tablet(val parent: Delegator) extends Delegate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override def rarity(stack: ItemStack) = {
|
||||||
|
val data = new TabletData(stack)
|
||||||
|
Rarity.byTier(data.tier)
|
||||||
|
}
|
||||||
|
|
||||||
override def isDamageable = true
|
override def isDamageable = true
|
||||||
|
|
||||||
override def damage(stack: ItemStack) = {
|
override def damage(stack: ItemStack) = {
|
||||||
@ -129,7 +139,13 @@ class Tablet(val parent: Delegator) extends Delegate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!world.isRemote) Tablet.Server.get(stack, player).machine.stop()
|
else if (!world.isRemote) {
|
||||||
|
val tablet = Tablet.Server.get(stack, player)
|
||||||
|
tablet.machine.stop()
|
||||||
|
if (tablet.data.tier > Tier.One) {
|
||||||
|
player.openGui(OpenComputers, GuiType.TabletInner.id, world, 0, 0, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
player.swingItem()
|
player.swingItem()
|
||||||
stack
|
stack
|
||||||
}
|
}
|
||||||
@ -149,6 +165,8 @@ class TabletWrapper(var stack: ItemStack, var player: EntityPlayer) extends Comp
|
|||||||
|
|
||||||
private var isInitialized = !world.isRemote
|
private var isInitialized = !world.isRemote
|
||||||
|
|
||||||
|
private var lastRunning = false
|
||||||
|
|
||||||
def items = data.items
|
def items = data.items
|
||||||
|
|
||||||
override def facing = RotationHelper.fromYaw(player.rotationYaw)
|
override def facing = RotationHelper.fromYaw(player.rotationYaw)
|
||||||
@ -237,11 +255,22 @@ class TabletWrapper(var stack: ItemStack, var player: EntityPlayer) extends Comp
|
|||||||
|
|
||||||
override def getSizeInventory = items.length
|
override def getSizeInventory = items.length
|
||||||
|
|
||||||
override def isItemValidForSlot(slot: Int, stack: ItemStack) = true
|
override def isItemValidForSlot(slot: Int, stack: ItemStack) = slot == getSizeInventory - 1 && (Option(Driver.driverFor(stack, getClass)) match {
|
||||||
|
case Some(driver) =>
|
||||||
|
// Same special cases, similar as in robot, but allow keyboards,
|
||||||
|
// because clip-on keyboards kinda seem to make sense, I guess.
|
||||||
|
driver != DriverScreen &&
|
||||||
|
driver.slot(stack) == containerSlotType &&
|
||||||
|
driver.tier(stack) <= containerSlotTier
|
||||||
|
case _ => false
|
||||||
|
})
|
||||||
|
|
||||||
override def isUseableByPlayer(player: EntityPlayer) = machine.canInteract(player.getCommandSenderName)
|
override def isUseableByPlayer(player: EntityPlayer) = machine.canInteract(player.getCommandSenderName)
|
||||||
|
|
||||||
override def markDirty() {}
|
override def markDirty(): Unit = {
|
||||||
|
data.save(stack)
|
||||||
|
player.inventory.markDirty()
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
@ -255,6 +284,18 @@ class TabletWrapper(var stack: ItemStack, var player: EntityPlayer) extends Comp
|
|||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
def containerSlotType = data.container.fold(Slot.None)(stack =>
|
||||||
|
Option(Driver.driverFor(stack, getClass)) match {
|
||||||
|
case Some(driver: Container) => driver.providedSlot(stack)
|
||||||
|
case _ => Slot.None
|
||||||
|
})
|
||||||
|
|
||||||
|
def containerSlotTier = data.container.fold(Tier.None)(stack =>
|
||||||
|
Option(Driver.driverFor(stack, getClass)) match {
|
||||||
|
case Some(driver: Container) => driver.providedTier(stack)
|
||||||
|
case _ => Tier.None
|
||||||
|
})
|
||||||
|
|
||||||
override def cpuArchitecture: Class[_ <: Architecture] = {
|
override def cpuArchitecture: Class[_ <: Architecture] = {
|
||||||
for (i <- 0 until getSizeInventory if isComponentSlot(i)) Option(getStackInSlot(i)) match {
|
for (i <- 0 until getSizeInventory if isComponentSlot(i)) Option(getStackInSlot(i)) match {
|
||||||
case Some(s) => Option(Driver.driverFor(s, getClass)) match {
|
case Some(s) => Option(Driver.driverFor(s, getClass)) match {
|
||||||
@ -319,6 +360,11 @@ class TabletWrapper(var stack: ItemStack, var player: EntityPlayer) extends Comp
|
|||||||
data.isRunning = machine.isRunning
|
data.isRunning = machine.isRunning
|
||||||
data.energy = tablet.node.globalBuffer()
|
data.energy = tablet.node.globalBuffer()
|
||||||
data.maxEnergy = tablet.node.globalBufferSize()
|
data.maxEnergy = tablet.node.globalBufferSize()
|
||||||
|
|
||||||
|
if (lastRunning != machine.isRunning) {
|
||||||
|
lastRunning = machine.isRunning
|
||||||
|
markDirty()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
package li.cil.oc.common.item
|
package li.cil.oc.common.item
|
||||||
|
|
||||||
class TabletCase(val parent: Delegator) extends Delegate
|
import net.minecraft.item.ItemStack
|
||||||
|
|
||||||
|
class TabletCase(val parent: Delegator, val tier: Int) extends Delegate with ItemTier {
|
||||||
|
override val unlocalizedName = super.unlocalizedName + tier
|
||||||
|
|
||||||
|
override protected def tierFromDriver(stack: ItemStack) = tier
|
||||||
|
|
||||||
|
override protected def tooltipName = Option(super.unlocalizedName)
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package li.cil.oc.common.item.data
|
package li.cil.oc.common.item.data
|
||||||
|
|
||||||
import li.cil.oc.Settings
|
import li.cil.oc.Settings
|
||||||
|
import li.cil.oc.common.Tier
|
||||||
import li.cil.oc.common.init.Items
|
import li.cil.oc.common.init.Items
|
||||||
import li.cil.oc.util.ExtendedNBT._
|
import li.cil.oc.util.ExtendedNBT._
|
||||||
import li.cil.oc.util.ItemUtils
|
import li.cil.oc.util.ItemUtils
|
||||||
@ -18,6 +19,8 @@ class TabletData extends ItemData {
|
|||||||
var isRunning = false
|
var isRunning = false
|
||||||
var energy = 0.0
|
var energy = 0.0
|
||||||
var maxEnergy = 0.0
|
var maxEnergy = 0.0
|
||||||
|
var tier = Tier.One
|
||||||
|
var container: Option[ItemStack] = None
|
||||||
|
|
||||||
override def load(nbt: NBTTagCompound) {
|
override def load(nbt: NBTTagCompound) {
|
||||||
nbt.getTagList(Settings.namespace + "items", NBT.TAG_COMPOUND).foreach((slotNbt: NBTTagCompound) => {
|
nbt.getTagList(Settings.namespace + "items", NBT.TAG_COMPOUND).foreach((slotNbt: NBTTagCompound) => {
|
||||||
@ -29,6 +32,10 @@ class TabletData extends ItemData {
|
|||||||
isRunning = nbt.getBoolean(Settings.namespace + "isRunning")
|
isRunning = nbt.getBoolean(Settings.namespace + "isRunning")
|
||||||
energy = nbt.getDouble(Settings.namespace + "energy")
|
energy = nbt.getDouble(Settings.namespace + "energy")
|
||||||
maxEnergy = nbt.getDouble(Settings.namespace + "maxEnergy")
|
maxEnergy = nbt.getDouble(Settings.namespace + "maxEnergy")
|
||||||
|
tier = nbt.getInteger(Settings.namespace + "tier")
|
||||||
|
if (nbt.hasKey(Settings.namespace + "container")) {
|
||||||
|
container = Option(ItemUtils.loadStack(nbt.getCompoundTag(Settings.namespace + "container")))
|
||||||
|
}
|
||||||
|
|
||||||
// Code for migrating from 1.4.1 -> 1.4.2, add EEPROM.
|
// Code for migrating from 1.4.1 -> 1.4.2, add EEPROM.
|
||||||
// TODO Remove in 1.5
|
// TODO Remove in 1.5
|
||||||
@ -51,6 +58,8 @@ class TabletData extends ItemData {
|
|||||||
nbt.setBoolean(Settings.namespace + "isRunning", isRunning)
|
nbt.setBoolean(Settings.namespace + "isRunning", isRunning)
|
||||||
nbt.setDouble(Settings.namespace + "energy", energy)
|
nbt.setDouble(Settings.namespace + "energy", energy)
|
||||||
nbt.setDouble(Settings.namespace + "maxEnergy", maxEnergy)
|
nbt.setDouble(Settings.namespace + "maxEnergy", maxEnergy)
|
||||||
|
nbt.setInteger(Settings.namespace + "tier", tier)
|
||||||
|
container.foreach(stack => nbt.setNewCompoundTag(Settings.namespace + "container", stack.writeToNBT))
|
||||||
|
|
||||||
// TODO Remove in 1.5
|
// TODO Remove in 1.5
|
||||||
nbt.setBoolean(Settings.namespace + "biosFlag", true)
|
nbt.setBoolean(Settings.namespace + "biosFlag", true)
|
||||||
|
@ -28,14 +28,14 @@ object RobotTemplate extends Template {
|
|||||||
def validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory)
|
def validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory)
|
||||||
|
|
||||||
def assemble(inventory: IInventory) = {
|
def assemble(inventory: IInventory) = {
|
||||||
val items = (0 until inventory.getSizeInventory).map(inventory.getStackInSlot)
|
val items = (1 until inventory.getSizeInventory).map(inventory.getStackInSlot)
|
||||||
val data = new RobotData()
|
val data = new RobotData()
|
||||||
data.tier = ItemUtils.caseTier(inventory.getStackInSlot(0))
|
data.tier = ItemUtils.caseTier(inventory.getStackInSlot(0))
|
||||||
data.name = RobotData.randomName
|
data.name = RobotData.randomName
|
||||||
data.robotEnergy = Settings.get.bufferRobot.toInt
|
data.robotEnergy = Settings.get.bufferRobot.toInt
|
||||||
data.totalEnergy = data.robotEnergy
|
data.totalEnergy = data.robotEnergy
|
||||||
data.containers = items.slice(1, 4).filter(_ != null).toArray
|
data.containers = items.take(3).filter(_ != null).toArray
|
||||||
data.components = items.drop(4).filter(_ != null).toArray
|
data.components = items.drop(3).filter(_ != null).toArray
|
||||||
val stack = api.Items.get("robot").createItemStack(1)
|
val stack = api.Items.get("robot").createItemStack(1)
|
||||||
data.save(stack)
|
data.save(stack)
|
||||||
val energy = Settings.get.robotBaseCost + complexity(inventory) * Settings.get.robotComplexityCost
|
val energy = Settings.get.robotBaseCost + complexity(inventory) * Settings.get.robotComplexityCost
|
||||||
|
@ -8,13 +8,12 @@ import li.cil.oc.common.Slot
|
|||||||
import li.cil.oc.common.Tier
|
import li.cil.oc.common.Tier
|
||||||
import li.cil.oc.common.item.data.TabletData
|
import li.cil.oc.common.item.data.TabletData
|
||||||
import li.cil.oc.util.ExtendedNBT._
|
import li.cil.oc.util.ExtendedNBT._
|
||||||
|
import li.cil.oc.util.ItemUtils
|
||||||
import net.minecraft.inventory.IInventory
|
import net.minecraft.inventory.IInventory
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.nbt.NBTTagCompound
|
import net.minecraft.nbt.NBTTagCompound
|
||||||
import net.minecraft.nbt.NBTTagList
|
import net.minecraft.nbt.NBTTagList
|
||||||
|
|
||||||
import scala.collection.mutable
|
|
||||||
|
|
||||||
object TabletTemplate extends Template {
|
object TabletTemplate extends Template {
|
||||||
override protected val suggestedComponents = Array(
|
override protected val suggestedComponents = Array(
|
||||||
"BIOS" -> hasComponent("eeprom") _,
|
"BIOS" -> hasComponent("eeprom") _,
|
||||||
@ -24,16 +23,20 @@ object TabletTemplate extends Template {
|
|||||||
|
|
||||||
override protected def hostClass = classOf[internal.Tablet]
|
override protected def hostClass = classOf[internal.Tablet]
|
||||||
|
|
||||||
def select(stack: ItemStack) = api.Items.get(stack) == api.Items.get("tabletCase")
|
def selectTier1(stack: ItemStack) = api.Items.get(stack) == api.Items.get("tabletCase1")
|
||||||
|
|
||||||
|
def selectTier2(stack: ItemStack) = api.Items.get(stack) == api.Items.get("tabletCase2")
|
||||||
|
|
||||||
|
def selectCreative(stack: ItemStack) = api.Items.get(stack) == api.Items.get("tabletCaseCreative")
|
||||||
|
|
||||||
def validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory)
|
def validate(inventory: IInventory): Array[AnyRef] = validateComputer(inventory)
|
||||||
|
|
||||||
def assemble(inventory: IInventory): Array[AnyRef] = {
|
def assemble(inventory: IInventory): Array[AnyRef] = {
|
||||||
val items = mutable.ArrayBuffer(
|
val items = (1 until inventory.getSizeInventory).map(slot => Option(inventory.getStackInSlot(slot)))
|
||||||
Option(api.Items.get("screen1").createItemStack(1))
|
|
||||||
) ++ (1 until inventory.getSizeInventory).map(slot => Option(inventory.getStackInSlot(slot)))
|
|
||||||
val data = new TabletData()
|
val data = new TabletData()
|
||||||
data.items = items.filter(_.isDefined).toArray
|
data.tier = ItemUtils.caseTier(inventory.getStackInSlot(0))
|
||||||
|
data.container = items.headOption.getOrElse(None)
|
||||||
|
data.items = Array(Option(api.Items.get("screen1").createItemStack(1))) ++ items.drop(if (data.tier == Tier.One) 0 else 1).filter(_.isDefined)
|
||||||
data.energy = Settings.get.bufferTablet
|
data.energy = Settings.get.bufferTablet
|
||||||
data.maxEnergy = data.energy
|
data.maxEnergy = data.energy
|
||||||
val stack = api.Items.get("tablet").createItemStack(1)
|
val stack = api.Items.get("tablet").createItemStack(1)
|
||||||
@ -56,8 +59,8 @@ object TabletTemplate extends Template {
|
|||||||
// Tier 1
|
// Tier 1
|
||||||
{
|
{
|
||||||
val nbt = new NBTTagCompound()
|
val nbt = new NBTTagCompound()
|
||||||
nbt.setString("name", "Tablet")
|
nbt.setString("name", "Tablet (Tier 1)")
|
||||||
nbt.setString("select", "li.cil.oc.common.template.TabletTemplate.select")
|
nbt.setString("select", "li.cil.oc.common.template.TabletTemplate.selectTier1")
|
||||||
nbt.setString("validate", "li.cil.oc.common.template.TabletTemplate.validate")
|
nbt.setString("validate", "li.cil.oc.common.template.TabletTemplate.validate")
|
||||||
nbt.setString("assemble", "li.cil.oc.common.template.TabletTemplate.assemble")
|
nbt.setString("assemble", "li.cil.oc.common.template.TabletTemplate.assemble")
|
||||||
nbt.setString("hostClass", "li.cil.oc.api.internal.Tablet")
|
nbt.setString("hostClass", "li.cil.oc.api.internal.Tablet")
|
||||||
@ -82,6 +85,78 @@ object TabletTemplate extends Template {
|
|||||||
FMLInterModComms.sendMessage("OpenComputers", "registerAssemblerTemplate", nbt)
|
FMLInterModComms.sendMessage("OpenComputers", "registerAssemblerTemplate", nbt)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Tier 2
|
||||||
|
{
|
||||||
|
val nbt = new NBTTagCompound()
|
||||||
|
nbt.setString("name", "Tablet (Tier 2)")
|
||||||
|
nbt.setString("select", "li.cil.oc.common.template.TabletTemplate.selectTier2")
|
||||||
|
nbt.setString("validate", "li.cil.oc.common.template.TabletTemplate.validate")
|
||||||
|
nbt.setString("assemble", "li.cil.oc.common.template.TabletTemplate.assemble")
|
||||||
|
nbt.setString("hostClass", "li.cil.oc.api.internal.Tablet")
|
||||||
|
|
||||||
|
val containerSlots = new NBTTagList()
|
||||||
|
containerSlots.appendTag(Map("tier" -> Tier.Two))
|
||||||
|
nbt.setTag("containerSlots", containerSlots)
|
||||||
|
|
||||||
|
val upgradeSlots = new NBTTagList()
|
||||||
|
upgradeSlots.appendTag(Map("tier" -> Tier.Three))
|
||||||
|
upgradeSlots.appendTag(Map("tier" -> Tier.Two))
|
||||||
|
upgradeSlots.appendTag(Map("tier" -> Tier.Two))
|
||||||
|
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.Two))
|
||||||
|
componentSlots.appendTag(new NBTTagCompound())
|
||||||
|
componentSlots.appendTag(Map("type" -> Slot.CPU, "tier" -> Tier.Three))
|
||||||
|
componentSlots.appendTag(Map("type" -> Slot.Memory, "tier" -> Tier.Two))
|
||||||
|
componentSlots.appendTag(Map("type" -> Slot.Memory, "tier" -> Tier.Two))
|
||||||
|
componentSlots.appendTag(Map("type" -> Slot.EEPROM, "tier" -> Tier.Any))
|
||||||
|
componentSlots.appendTag(Map("type" -> Slot.HDD, "tier" -> Tier.Two))
|
||||||
|
nbt.setTag("componentSlots", componentSlots)
|
||||||
|
|
||||||
|
FMLInterModComms.sendMessage("OpenComputers", "registerAssemblerTemplate", nbt)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Creative
|
||||||
|
{
|
||||||
|
val nbt = new NBTTagCompound()
|
||||||
|
nbt.setString("name", "Tablet (Creative)")
|
||||||
|
nbt.setString("select", "li.cil.oc.common.template.TabletTemplate.selectCreative")
|
||||||
|
nbt.setString("validate", "li.cil.oc.common.template.TabletTemplate.validate")
|
||||||
|
nbt.setString("assemble", "li.cil.oc.common.template.TabletTemplate.assemble")
|
||||||
|
nbt.setString("hostClass", "li.cil.oc.api.internal.Tablet")
|
||||||
|
|
||||||
|
val containerSlots = new NBTTagList()
|
||||||
|
containerSlots.appendTag(Map("tier" -> Tier.Three))
|
||||||
|
nbt.setTag("containerSlots", containerSlots)
|
||||||
|
|
||||||
|
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))
|
||||||
|
componentSlots.appendTag(Map("type" -> Slot.HDD, "tier" -> Tier.Three))
|
||||||
|
nbt.setTag("componentSlots", componentSlots)
|
||||||
|
|
||||||
|
FMLInterModComms.sendMessage("OpenComputers", "registerAssemblerTemplate", nbt)
|
||||||
|
}
|
||||||
|
|
||||||
// Disassembler
|
// Disassembler
|
||||||
{
|
{
|
||||||
val nbt = new NBTTagCompound()
|
val nbt = new NBTTagCompound()
|
||||||
@ -93,7 +168,7 @@ object TabletTemplate extends Template {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override protected def maxComplexity(inventory: IInventory) = super.maxComplexity(inventory) - 10
|
override protected def maxComplexity(inventory: IInventory) = super.maxComplexity(inventory) / 2 + 5
|
||||||
|
|
||||||
override protected def caseTier(inventory: IInventory) = if (select(inventory.getStackInSlot(0))) Tier.Two else Tier.None
|
override protected def caseTier(inventory: IInventory) = ItemUtils.caseTier(inventory.getStackInSlot(0))
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,9 @@ object ItemUtils {
|
|||||||
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 if (descriptor == api.Items.get("serverCreative")) Tier.Four
|
||||||
|
else if (descriptor == api.Items.get("tabletCase1")) Tier.One
|
||||||
|
else if (descriptor == api.Items.get("tabletCase2")) Tier.Two
|
||||||
|
else if (descriptor == api.Items.get("tabletCaseCreative")) Tier.Four
|
||||||
else Tier.None
|
else Tier.None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user