mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-16 18:55:03 -04:00
Merge branch 'robot_components' into 1.1
This commit is contained in:
commit
fefcb44b8b
@ -27,11 +27,9 @@ oc:item.CardBase.name=Kartenbasis
|
|||||||
oc:item.CircuitBoard.name=Leiterplatte
|
oc:item.CircuitBoard.name=Leiterplatte
|
||||||
oc:item.ControlUnit.name=Steuerwerk (CU)
|
oc:item.ControlUnit.name=Steuerwerk (CU)
|
||||||
oc:item.CPU.name=Hauptprozessor (CPU)
|
oc:item.CPU.name=Hauptprozessor (CPU)
|
||||||
oc:item.Crafting.name=Crafting Upgrade
|
|
||||||
oc:item.CuttingWire.name=Schneidedraht
|
oc:item.CuttingWire.name=Schneidedraht
|
||||||
oc:item.Disk.name=Platte
|
oc:item.Disk.name=Platte
|
||||||
oc:item.Floppy.name=Diskette
|
oc:item.Floppy.name=Diskette
|
||||||
oc:item.Generator.name=Generator Upgrade
|
|
||||||
oc:item.GraphicsCard0.name=Einfache Grafikkarte
|
oc:item.GraphicsCard0.name=Einfache Grafikkarte
|
||||||
oc:item.GraphicsCard1.name=Hochwertige Grafikkarte
|
oc:item.GraphicsCard1.name=Hochwertige Grafikkarte
|
||||||
oc:item.GraphicsCard2.name=Ausgezeichnete Grafikkarte
|
oc:item.GraphicsCard2.name=Ausgezeichnete Grafikkarte
|
||||||
@ -47,6 +45,11 @@ oc:item.PrintedCircuitBoard.name=Gedruckte Leiterplatte (PCB)
|
|||||||
oc:item.RawCircuitBoard.name=Leiterplattenrohling
|
oc:item.RawCircuitBoard.name=Leiterplattenrohling
|
||||||
oc:item.RedstoneCard.name=Redstonekarte
|
oc:item.RedstoneCard.name=Redstonekarte
|
||||||
oc:item.Transistor.name=Transistor
|
oc:item.Transistor.name=Transistor
|
||||||
|
oc:item.UpgradeCrafting.name=Crafting Upgrade
|
||||||
|
oc:item.UpgradeGenerator.name=Generator Upgrade
|
||||||
|
oc:item.UpgradeNavigation.name=Navigationsupgrade
|
||||||
|
oc:item.UpgradeSign.name=Schild-E/A Upgrade
|
||||||
|
oc:item.UpgradeSolarGenerator.name=Solar Generator Upgrade
|
||||||
oc:item.WirelessNetworkCard.name=Drahtlosnetzwerkkarte
|
oc:item.WirelessNetworkCard.name=Drahtlosnetzwerkkarte
|
||||||
|
|
||||||
# GUI
|
# GUI
|
||||||
@ -81,14 +84,12 @@ oc:tooltip.Charger=Lädt Roboter mit Energie aus Kondensatoren auf. Die Ladegesc
|
|||||||
oc:tooltip.CircuitBoard=Mühselig vermehrt sich das Eichhörnchen. Wenn es groß wird, wird es mal eine gedruckte Leiterplatte.
|
oc:tooltip.CircuitBoard=Mühselig vermehrt sich das Eichhörnchen. Wenn es groß wird, wird es mal eine gedruckte Leiterplatte.
|
||||||
oc:tooltip.ControlUnit=Klingt wichtig, ist es auch. Man baut daraus immerhin CPUs. Wie könnte es da nicht wichtig sein.
|
oc:tooltip.ControlUnit=Klingt wichtig, ist es auch. Man baut daraus immerhin CPUs. Wie könnte es da nicht wichtig sein.
|
||||||
oc:tooltip.CPU=Kernstück eines jeden Computers. Die Taktrate hat einen leichten Schatten, aber was kann man von einer Taschensonnenuhr schon erwarten?
|
oc:tooltip.CPU=Kernstück eines jeden Computers. Die Taktrate hat einen leichten Schatten, aber was kann man von einer Taschensonnenuhr schon erwarten?
|
||||||
oc:tooltip.Crafting=Ermöglicht Robotern in dem oberen linken Bereich ihres Inventars zu craften. Gegenstände müssen so angeordnet sein wie sie es in einer Werkbank wären.
|
|
||||||
oc:tooltip.CuttingWire=Wird gebraucht um Tonblöcke in Leiterplattenform zu bekommen. Vermutlich das ineffizienteste Werkzeug in der Geschichte der Menschheit, da es nach einer Verwendung kaputt geht.
|
oc:tooltip.CuttingWire=Wird gebraucht um Tonblöcke in Leiterplattenform zu bekommen. Vermutlich das ineffizienteste Werkzeug in der Geschichte der Menschheit, da es nach einer Verwendung kaputt geht.
|
||||||
oc:tooltip.Disk=Sehr einfaches Speichermedium das verwendet werden kann um Disketten und Festplatten bauen.
|
oc:tooltip.Disk=Sehr einfaches Speichermedium das verwendet werden kann um Disketten und Festplatten bauen.
|
||||||
oc:tooltip.DiskDrive.CC=ComputerCraft Disketten werden §aunterstützt§7.
|
oc:tooltip.DiskDrive.CC=ComputerCraft Disketten werden §aunterstützt§7.
|
||||||
oc:tooltip.DiskDrive=Erlaubt es Disketten zu lesen und zu beschreiben.
|
oc:tooltip.DiskDrive=Erlaubt es Disketten zu lesen und zu beschreiben.
|
||||||
oc:tooltip.Generator=Kann verwendet werden um unterwegs Energie aus Brennstoffen zu erzeugen. Verbraucht Gegenstände über einen ihrem Brennwert gemäßen Zeitraum.[nl] §fEffizienz§7: §a%s%%§7
|
|
||||||
oc:tooltip.GraphicsCard=Erlaubt es den angezeigten Inhalt von Bildschirmen zu ändern.[nl] Höchstauflösung: §f%sx%s§7.[nl] Maximale Farbtiefe: §f%s§7.[nl] Operationen/Tick: §f%s§7.
|
oc:tooltip.GraphicsCard=Erlaubt es den angezeigten Inhalt von Bildschirmen zu ändern.[nl] Höchstauflösung: §f%sx%s§7.[nl] Maximale Farbtiefe: §f%s§7.[nl] Operationen/Tick: §f%s§7.
|
||||||
oc:tooltip.IronNugget=Ein Nugget das aus Eisen besteht, drum wird es ja auch Eisennugget genannt...
|
oc:tooltip.IronNugget=Ein Nugget das aus Eisen besteht, darum wird es ja auch Eisennugget genannt, duh...
|
||||||
oc:tooltip.Keyboard=Kann an Bildschirmen befestigt werden um auf ihnen zu tippen.
|
oc:tooltip.Keyboard=Kann an Bildschirmen befestigt werden um auf ihnen zu tippen.
|
||||||
oc:tooltip.Memory=Braucht ein jeder Computer um zu starten. Je mehr vorhanden, desto komplexere Programme können ausgeführt werden.
|
oc:tooltip.Memory=Braucht ein jeder Computer um zu starten. Je mehr vorhanden, desto komplexere Programme können ausgeführt werden.
|
||||||
oc:tooltip.Microchip=Tritt auch unter dem Alias Integrierter Schaltkreis auf. Keine Ahnung warum das auch mit Redstone klappt, aber es funktioniert.
|
oc:tooltip.Microchip=Tritt auch unter dem Alias Integrierter Schaltkreis auf. Keine Ahnung warum das auch mit Redstone klappt, aber es funktioniert.
|
||||||
@ -112,4 +113,9 @@ oc:tooltip.Router=Erlaubt es mehrere Netzwerke miteinander zu verbinden. Leitet
|
|||||||
oc:tooltip.Screen=Zeigt Text an, gesteuert von Grafikkarten in Computern.[nl] Höchstauflösung: §f%sx%s§7.[nl] Maximale Farbtiefe: §f%s§7.
|
oc:tooltip.Screen=Zeigt Text an, gesteuert von Grafikkarten in Computern.[nl] Höchstauflösung: §f%sx%s§7.[nl] Maximale Farbtiefe: §f%s§7.
|
||||||
oc:tooltip.TooLong=Shift gedrückt halten für mehr Infos.
|
oc:tooltip.TooLong=Shift gedrückt halten für mehr Infos.
|
||||||
oc:tooltip.Transistor=Elementarer Baustein der meisten Computerkomponenten. Nicht zu verwechseln mit Steinelementaren.
|
oc:tooltip.Transistor=Elementarer Baustein der meisten Computerkomponenten. Nicht zu verwechseln mit Steinelementaren.
|
||||||
|
oc:tooltip.UpgradeCrafting=Ermöglicht Robotern in dem oberen linken Bereich ihres Inventars zu craften. Gegenstände müssen so angeordnet sein wie sie es in einer Werkbank wären.
|
||||||
|
oc:tooltip.UpgradeGenerator=Kann verwendet werden um unterwegs Energie aus Brennstoffen zu erzeugen. Verbraucht Gegenstände über einen ihrem Brennwert gemäßen Zeitraum.[nl] §fEffizienz§7: §a%s%%§7
|
||||||
|
oc:tooltip.UpgradeNavigation=Erlaubt es Robotern ihre Position und Ausrichtung zu bestimmen. Die Position ist relativ zur Mitte der Karte, die in diesem Upgrade verbaut wurde.
|
||||||
|
oc:tooltip.UpgradeSign=Erlaubt das Lesen und Schreiben von Text auf Schildern.
|
||||||
|
oc:tooltip.UpgradeSolarGenerator=Kann verwendet werden um unterwegs Energie aus Sonnenlicht zu generieren. Benötigt eine ungehinderte Sicht zum Himmel über dem Roboter. Generiert Energie mit %s%% der Geschwindigkeit einer Stirling Engine.
|
||||||
oc:tooltip.WirelessNetworkCard=Erlaubt das drahtlose Senden von Netzwerknachrichten, zusätzlich zu normalen. Drahtlose Nachrichten werden nur gesendet, wenn eine §fSignalstärke§7 festgelegt wurde!
|
oc:tooltip.WirelessNetworkCard=Erlaubt das drahtlose Senden von Netzwerknachrichten, zusätzlich zu normalen. Drahtlose Nachrichten werden nur gesendet, wenn eine §fSignalstärke§7 festgelegt wurde!
|
@ -23,6 +23,7 @@ oc:block.Screen1.name=Advanced Screen
|
|||||||
oc:block.Screen2.name=Superior Screen
|
oc:block.Screen2.name=Superior Screen
|
||||||
|
|
||||||
# Items
|
# Items
|
||||||
|
oc:item.Acid.name=Grog
|
||||||
oc:item.ALU.name=Arithmetic Logic Unit (ALU)
|
oc:item.ALU.name=Arithmetic Logic Unit (ALU)
|
||||||
oc:item.Analyzer.name=Analyzer
|
oc:item.Analyzer.name=Analyzer
|
||||||
oc:item.ArrowKeys.name=Arrow Keys
|
oc:item.ArrowKeys.name=Arrow Keys
|
||||||
@ -31,15 +32,12 @@ oc:item.CardBase.name=Card Base
|
|||||||
oc:item.CircuitBoard.name=Circuit Board
|
oc:item.CircuitBoard.name=Circuit Board
|
||||||
oc:item.ControlUnit.name=Control Unit (CU)
|
oc:item.ControlUnit.name=Control Unit (CU)
|
||||||
oc:item.CPU.name=Central Processing Unit (CPU)
|
oc:item.CPU.name=Central Processing Unit (CPU)
|
||||||
oc:item.Crafting.name=Crafting Upgrade
|
|
||||||
oc:item.CuttingWire.name=Cutting Wire
|
oc:item.CuttingWire.name=Cutting Wire
|
||||||
oc:item.Disk.name=Disk Platter
|
oc:item.Disk.name=Disk Platter
|
||||||
oc:item.FloppyDisk.name=Floppy Disk
|
oc:item.FloppyDisk.name=Floppy Disk
|
||||||
oc:item.Generator.name=Generator Upgrade
|
|
||||||
oc:item.GraphicsCard0.name=Basic Graphics Card
|
oc:item.GraphicsCard0.name=Basic Graphics Card
|
||||||
oc:item.GraphicsCard1.name=Advanced Graphics Card
|
oc:item.GraphicsCard1.name=Advanced Graphics Card
|
||||||
oc:item.GraphicsCard2.name=Superior Graphics Card
|
oc:item.GraphicsCard2.name=Superior Graphics Card
|
||||||
oc:item.Acid.name=Grog
|
|
||||||
oc:item.HardDiskDrive.name=Hard Disk Drive
|
oc:item.HardDiskDrive.name=Hard Disk Drive
|
||||||
oc:item.IronNugget.name=Iron Nugget
|
oc:item.IronNugget.name=Iron Nugget
|
||||||
oc:item.Memory.name=Memory
|
oc:item.Memory.name=Memory
|
||||||
@ -52,6 +50,11 @@ oc:item.PrintedCircuitBoard.name=Printed Circuit Board (PCB)
|
|||||||
oc:item.RawCircuitBoard.name=Raw Circuit Board
|
oc:item.RawCircuitBoard.name=Raw Circuit Board
|
||||||
oc:item.RedstoneCard.name=Redstone Card
|
oc:item.RedstoneCard.name=Redstone Card
|
||||||
oc:item.Transistor.name=Transistor
|
oc:item.Transistor.name=Transistor
|
||||||
|
oc:item.UpgradeCrafting.name=Crafting Upgrade
|
||||||
|
oc:item.UpgradeGenerator.name=Generator Upgrade
|
||||||
|
oc:item.UpgradeNavigation.name=Navigation Upgrade
|
||||||
|
oc:item.UpgradeSign.name=Sign I/O Upgrade
|
||||||
|
oc:item.UpgradeSolarGenerator.name=Solar Generator Upgrade
|
||||||
oc:item.WirelessNetworkCard.name=Wireless Network Card
|
oc:item.WirelessNetworkCard.name=Wireless Network Card
|
||||||
|
|
||||||
# GUI
|
# GUI
|
||||||
@ -86,14 +89,12 @@ oc:tooltip.Charger=Transfers energy from capacitors into adjacent robots. The tr
|
|||||||
oc:tooltip.CircuitBoard=Now we're getting somewhere. Can be etched to obtain a printed circuit board.
|
oc:tooltip.CircuitBoard=Now we're getting somewhere. Can be etched to obtain a printed circuit board.
|
||||||
oc:tooltip.ControlUnit=This is the unit that... controls... stuff. You need it to build a CPU. So yeah, totally important.
|
oc:tooltip.ControlUnit=This is the unit that... controls... stuff. You need it to build a CPU. So yeah, totally important.
|
||||||
oc:tooltip.CPU=An essential component of all computers. The clock rate is a bit unreliable, but what do you expect when it runs on a pocket sundial?
|
oc:tooltip.CPU=An essential component of all computers. The clock rate is a bit unreliable, but what do you expect when it runs on a pocket sundial?
|
||||||
oc:tooltip.Crafting=Enables robots to use the top left area of their inventory for crafting objects. Items have to be aligned as they would be in a crafting table.
|
|
||||||
oc:tooltip.CuttingWire=Used to cut clay blocks into circuit board shape. Breaks after one use, which probably makes it the most inefficient tool ever.
|
oc:tooltip.CuttingWire=Used to cut clay blocks into circuit board shape. Breaks after one use, which probably makes it the most inefficient tool ever.
|
||||||
oc:tooltip.Disk=Primitive medium that can be used to build persistent storage devices.
|
oc:tooltip.Disk=Primitive medium that can be used to build persistent storage devices.
|
||||||
oc:tooltip.DiskDrive.CC=ComputerCraft floppies are §asupported§7.
|
oc:tooltip.DiskDrive.CC=ComputerCraft floppies are §asupported§7.
|
||||||
oc:tooltip.DiskDrive=Allows reading and writing floppies.
|
oc:tooltip.DiskDrive=Allows reading and writing floppies.
|
||||||
oc:tooltip.Generator=Can be used to generate energy from fuel on the go. Burns items to generate energy over time, based on their fuel value.[nl] §fEfficiency§7: §a%s%%§7
|
|
||||||
oc:tooltip.GraphicsCard=Used to change what's displayed on screens.[nl] Maximum resolution: §f%sx%s§7.[nl] Maximum color depth: §f%s§7.[nl] Operations/tick: §f%s§7.
|
oc:tooltip.GraphicsCard=Used to change what's displayed on screens.[nl] Maximum resolution: §f%sx%s§7.[nl] Maximum color depth: §f%s§7.[nl] Operations/tick: §f%s§7.
|
||||||
oc:tooltip.IronNugget=A nugget made of iron, that's why it's called a Iron Nugget, stupid...
|
oc:tooltip.IronNugget=A nugget made of iron, that's why it's called an Iron Nugget, duh...
|
||||||
oc:tooltip.Keyboard=Can be attached to screens to allow typing on them.
|
oc:tooltip.Keyboard=Can be attached to screens to allow typing on them.
|
||||||
oc:tooltip.Memory=Required to get computers to run. The more you have, the more complex the programs you can run.
|
oc:tooltip.Memory=Required to get computers to run. The more you have, the more complex the programs you can run.
|
||||||
oc:tooltip.Microchip=The chip formerly known as Integrated Circuit. I have no idea why this works with redstone, but it does.
|
oc:tooltip.Microchip=The chip formerly known as Integrated Circuit. I have no idea why this works with redstone, but it does.
|
||||||
@ -118,4 +119,9 @@ oc:tooltip.Router=Allows connecting different networks to each other. Only netwo
|
|||||||
oc:tooltip.Screen=Display text, controlled by a Graphics Card in a Case.[nl] Maximum resolution: §f%sx%s§7.[nl] Maximum color depth: §f%s§7.
|
oc:tooltip.Screen=Display text, controlled by a Graphics Card in a Case.[nl] Maximum resolution: §f%sx%s§7.[nl] Maximum color depth: §f%s§7.
|
||||||
oc:tooltip.TooLong=Hold shift for a detailed tooltip.
|
oc:tooltip.TooLong=Hold shift for a detailed tooltip.
|
||||||
oc:tooltip.Transistor=A basic element in most other computer parts. It's a bit twisted, but it does the job.
|
oc:tooltip.Transistor=A basic element in most other computer parts. It's a bit twisted, but it does the job.
|
||||||
|
oc:tooltip.UpgradeCrafting=Enables robots to use the top left area of their inventory for crafting objects. Items have to be aligned as they would be in a crafting table.
|
||||||
|
oc:tooltip.UpgradeGenerator=Can be used to generate energy from fuel on the go. Burns items to generate energy over time, based on their fuel value.[nl] §fEfficiency§7: §a%s%%§7
|
||||||
|
oc:tooltip.UpgradeNavigation=Can be used to determine the position and orientation of the robot. The position is relative to the center of the map that was used to craft this upgrade.
|
||||||
|
oc:tooltip.UpgradeSign=Allows reading text on and writing text to signs.
|
||||||
|
oc:tooltip.UpgradeSolarGenerator=Can be used to generate energy from sunlight on the go. Requires a clear line of sight to the sky above the robot. Generates energy at %s%% of the speed of a Stirling Engine.
|
||||||
oc:tooltip.WirelessNetworkCard=Allows wireless sending of network messages in addition to normal ones. Make sure to set the §fsignal strength§7 or no wireless packet will be sent!
|
oc:tooltip.WirelessNetworkCard=Allows wireless sending of network messages in addition to normal ones. Make sure to set the §fsignal strength§7 or no wireless packet will be sent!
|
@ -23,6 +23,7 @@ oc:block.Screen1.name=高级屏幕
|
|||||||
oc:block.Screen2.name=超级屏幕
|
oc:block.Screen2.name=超级屏幕
|
||||||
|
|
||||||
# Items
|
# Items
|
||||||
|
oc:item.Acid.name=蚀刻药水
|
||||||
oc:item.ALU.name=算逻运算单元(ALU)
|
oc:item.ALU.name=算逻运算单元(ALU)
|
||||||
oc:item.Analyzer.name=分析器
|
oc:item.Analyzer.name=分析器
|
||||||
oc:item.ArrowKeys.name=方向键
|
oc:item.ArrowKeys.name=方向键
|
||||||
@ -31,15 +32,12 @@ oc:item.CardBase.name=主板
|
|||||||
oc:item.CircuitBoard.name=电路板
|
oc:item.CircuitBoard.name=电路板
|
||||||
oc:item.ControlUnit.name=控制单元(CU)
|
oc:item.ControlUnit.name=控制单元(CU)
|
||||||
oc:item.CPU.name=中央处理器(CPU)
|
oc:item.CPU.name=中央处理器(CPU)
|
||||||
oc:item.Crafting.name=合成升级
|
|
||||||
oc:item.CuttingWire.name=切割线
|
oc:item.CuttingWire.name=切割线
|
||||||
oc:item.Disk.name=磁盘
|
oc:item.Disk.name=磁盘
|
||||||
oc:item.FloppyDisk.name=软盘
|
oc:item.FloppyDisk.name=软盘
|
||||||
oc:item.Generator.name=发电机升级
|
|
||||||
oc:item.GraphicsCard0.name=基础显卡
|
oc:item.GraphicsCard0.name=基础显卡
|
||||||
oc:item.GraphicsCard1.name=高级显卡
|
oc:item.GraphicsCard1.name=高级显卡
|
||||||
oc:item.GraphicsCard2.name=超级显卡
|
oc:item.GraphicsCard2.name=超级显卡
|
||||||
oc:item.Acid.name=蚀刻药水
|
|
||||||
oc:item.HardDiskDrive.name=硬盘驱动
|
oc:item.HardDiskDrive.name=硬盘驱动
|
||||||
oc:item.IronNugget.name=铁粒
|
oc:item.IronNugget.name=铁粒
|
||||||
oc:item.Memory.name=内存
|
oc:item.Memory.name=内存
|
||||||
@ -52,6 +50,8 @@ oc:item.PrintedCircuitBoard.name=印制板(PCB)
|
|||||||
oc:item.RawCircuitBoard.name=电路板材料
|
oc:item.RawCircuitBoard.name=电路板材料
|
||||||
oc:item.RedstoneCard.name=红石卡
|
oc:item.RedstoneCard.name=红石卡
|
||||||
oc:item.Transistor.name=晶体管
|
oc:item.Transistor.name=晶体管
|
||||||
|
oc:item.UpgradeCrafting.name=合成升级
|
||||||
|
oc:item.UpgradeGenerator.name=发电机升级
|
||||||
oc:item.WirelessNetworkCard.name=无线网卡
|
oc:item.WirelessNetworkCard.name=无线网卡
|
||||||
|
|
||||||
# GUI
|
# GUI
|
||||||
@ -85,12 +85,10 @@ oc:tooltip.Charger=将电容器的能量传输给相邻机器人.[nl]传输效
|
|||||||
oc:tooltip.CircuitBoard=现在我们已经取得一些进展.[nl]可以通过蚀刻来得到印制板.
|
oc:tooltip.CircuitBoard=现在我们已经取得一些进展.[nl]可以通过蚀刻来得到印制板.
|
||||||
oc:tooltip.ControlUnit=用来控制...控制东西...的单元.[nl]你需要这玩意儿来做CPU.所以反正啦,这个非常重要.
|
oc:tooltip.ControlUnit=用来控制...控制东西...的单元.[nl]你需要这玩意儿来做CPU.所以反正啦,这个非常重要.
|
||||||
oc:tooltip.CPU=所有计算机最核心的组件,它的时钟频率有点不可靠,[nl]但是你考虑到它是靠便携日晷来运行的你还能指望啥呢?
|
oc:tooltip.CPU=所有计算机最核心的组件,它的时钟频率有点不可靠,[nl]但是你考虑到它是靠便携日晷来运行的你还能指望啥呢?
|
||||||
oc:tooltip.Crafting=使得机器人能够将其物品栏的左上区域作为合成网格来制做物品.[nl]物品栏内物品摆放必须与工作台中一致.
|
|
||||||
oc:tooltip.CuttingWire=用于将粘土块切割成电路板的形状.[nl]使用一次就会坏掉,这可能使得成为历来最低效的工具.
|
oc:tooltip.CuttingWire=用于将粘土块切割成电路板的形状.[nl]使用一次就会坏掉,这可能使得成为历来最低效的工具.
|
||||||
oc:tooltip.Disk=用于制造持久存储设备的原始媒介材料.
|
oc:tooltip.Disk=用于制造持久存储设备的原始媒介材料.
|
||||||
oc:tooltip.DiskDrive.CC=已经§a支持§7使用另一个电脑模组(ComputerCraft)的软盘.
|
oc:tooltip.DiskDrive.CC=已经§a支持§7使用另一个电脑模组(ComputerCraft)的软盘.
|
||||||
oc:tooltip.DiskDrive=用来读写软盘.
|
oc:tooltip.DiskDrive=用来读写软盘.
|
||||||
oc:tooltip.Generator=用来不断地消耗燃料发电,燃烧物品并基于它们的燃烧值随着时间推移产生电力.[nl] §f效率§7: §a%s%%§7.
|
|
||||||
oc:tooltip.GraphicsCard=用来改变屏幕显示内容.[nl]最高分辨率:§f%sx%s§7.[nl] 最大色深: §f%s§7.
|
oc:tooltip.GraphicsCard=用来改变屏幕显示内容.[nl]最高分辨率:§f%sx%s§7.[nl] 最大色深: §f%s§7.
|
||||||
oc:tooltip.IronNugget=颗粒状的铁,所以叫铁粒啦,蠢蠢的感觉...
|
oc:tooltip.IronNugget=颗粒状的铁,所以叫铁粒啦,蠢蠢的感觉...
|
||||||
oc:tooltip.Keyboard=可以连接屏幕,能够输入显示文本.
|
oc:tooltip.Keyboard=可以连接屏幕,能够输入显示文本.
|
||||||
@ -116,4 +114,6 @@ oc:tooltip.Router=允许设备相互连接不同的网络.[nl]仅能传递网络
|
|||||||
oc:tooltip.Screen=由机箱内的显卡控制来显示文本.[nl]最高分辨率:§f%sx%s§7.[nl] 最大色深: §f%s§7.
|
oc:tooltip.Screen=由机箱内的显卡控制来显示文本.[nl]最高分辨率:§f%sx%s§7.[nl] 最大色深: §f%s§7.
|
||||||
oc:tooltip.TooLong=按住潜行键(shift)以查看详细提示信息.
|
oc:tooltip.TooLong=按住潜行键(shift)以查看详细提示信息.
|
||||||
oc:tooltip.Transistor=在多数其他计算机的零件中都很基础的元件.[nl]引脚有点弯了,但还能用.
|
oc:tooltip.Transistor=在多数其他计算机的零件中都很基础的元件.[nl]引脚有点弯了,但还能用.
|
||||||
|
oc:tooltip.UpgradeCrafting=使得机器人能够将其物品栏的左上区域作为合成网格来制做物品.[nl]物品栏内物品摆放必须与工作台中一致.
|
||||||
|
oc:tooltip.UpgradeGenerator=用来不断地消耗燃料发电,燃烧物品并基于它们的燃烧值随着时间推移产生电力.[nl] §f效率§7: §a%s%%§7.
|
||||||
oc:tooltip.WirelessNetworkCard=允许在发送正常信息外无线发送网络信息.[nl]请确保已设置好§f信号强度§7否则不会发出无线数据包.
|
oc:tooltip.WirelessNetworkCard=允许在发送正常信息外无线发送网络信息.[nl]请确保已设置好§f信号强度§7否则不会发出无线数据包.
|
||||||
|
264
assets/opencomputers/recipes/default.recipes
Normal file
264
assets/opencomputers/recipes/default.recipes
Normal file
@ -0,0 +1,264 @@
|
|||||||
|
# Do not change this file, it is rewritten each time you start the game.
|
||||||
|
# Instead, use the custom.conf file to edit recipes by redefining them there.
|
||||||
|
|
||||||
|
analyzer {
|
||||||
|
input: [["", torchRedstoneActive, ""]
|
||||||
|
[craftingTransistor, circuitBasic, nuggetGold]
|
||||||
|
[craftingTransistor, craftingCircuitBoardAdvanced, nuggetGold]]
|
||||||
|
}
|
||||||
|
|
||||||
|
ram1 {
|
||||||
|
input: [[circuitBasic, circuitBasic, circuitBasic]
|
||||||
|
[craftingCircuitBoardAdvanced, craftingCircuitBoardAdvanced, craftingCircuitBoardAdvanced]]
|
||||||
|
}
|
||||||
|
ram2 {
|
||||||
|
input: [[circuitAdvanced, circuitAdvanced, circuitAdvanced]
|
||||||
|
[craftingRAMBasic, craftingCircuitBoardAdvanced, craftingRAMBasic]]
|
||||||
|
}
|
||||||
|
ram3 {
|
||||||
|
input: [[circuitElite, circuitElite, circuitElite]
|
||||||
|
[craftingRAMAdvanced, craftingCircuitBoardAdvanced, craftingRAMAdvanced]]
|
||||||
|
}
|
||||||
|
|
||||||
|
floppy {
|
||||||
|
input: [[nuggetIron, lever, nuggetIron]
|
||||||
|
[craftingCircuitBoardBasic, "oc:craftingDisk", craftingCircuitBoardBasic]
|
||||||
|
[nuggetIron, paper, nuggetIron]]
|
||||||
|
}
|
||||||
|
hdd1 {
|
||||||
|
input: [[circuitBasic, "oc:craftingDisk", ingotIron]
|
||||||
|
[craftingCircuitBoardAdvanced, "oc:craftingDisk", pistonBase]
|
||||||
|
[circuitBasic, "oc:craftingDisk", ingotIron]]
|
||||||
|
}
|
||||||
|
hdd2 {
|
||||||
|
input: [[ingotGold, craftingHDDBasic, ingotGold]
|
||||||
|
[circuitAdvanced, craftingCircuitBoardAdvanced, circuitAdvanced]
|
||||||
|
[ingotGold, craftingHDDBasic, ingotGold]]
|
||||||
|
}
|
||||||
|
hdd3 {
|
||||||
|
input: [[circuitElite, craftingHDDAdvanced, circuitElite]
|
||||||
|
[craftingRAMBasic, craftingCircuitBoardAdvanced, craftingRAMBasic]
|
||||||
|
[circuitElite, craftingHDDAdvanced, circuitElite]]
|
||||||
|
}
|
||||||
|
|
||||||
|
graphicsCard1 {
|
||||||
|
input: [[circuitBasic, craftingALU, craftingRAMBasic]
|
||||||
|
["", craftingCircuitBoardBasic, ""]]
|
||||||
|
}
|
||||||
|
graphicsCard2 {
|
||||||
|
input: [[circuitAdvanced, circuitAdvanced, craftingRAMAdvanced]
|
||||||
|
["", craftingGPUBasic, ""]]
|
||||||
|
}
|
||||||
|
graphicsCard3 {
|
||||||
|
input: [[circuitElite, circuitElite, craftingRAMElite]
|
||||||
|
["", craftingGPUAdvanced, ""]]
|
||||||
|
}
|
||||||
|
redstoneCard {
|
||||||
|
input: [[torchRedstoneActive, circuitBasic, ""]
|
||||||
|
["", craftingCircuitBoardBasic, ""]]
|
||||||
|
}
|
||||||
|
lanCard {
|
||||||
|
input: [[craftingWireCopper, circuitBasic, ""]
|
||||||
|
["", craftingGPUBasic, ""]]
|
||||||
|
}
|
||||||
|
wlanCard {
|
||||||
|
input: [[enderPearl, circuitAdvanced, ""]
|
||||||
|
["", componentCardLan, ""]]
|
||||||
|
}
|
||||||
|
|
||||||
|
craftingUpgrade {
|
||||||
|
input: [[ingotIron, pistonBase, ingotIron]
|
||||||
|
[circuitBasic, workbench, circuitBasic]
|
||||||
|
[ingotIron, craftingCircuitBoardAdvanced, ingotIron]]
|
||||||
|
}
|
||||||
|
generatorUpgrade {
|
||||||
|
input: [[ingotIron, "", ingotIron]
|
||||||
|
[circuitBasic, pistonBase, circuitBasic]
|
||||||
|
[craftingCircuitBoardAdvanced, ingotIron, craftingCircuitBoardAdvanced]]
|
||||||
|
}
|
||||||
|
navigationUpgrade {
|
||||||
|
input: [[ingotGold, compass, ingotGold]
|
||||||
|
[circuitElite, {item=map, subID=32767}, circuitElite]
|
||||||
|
[ingotGold, potion, ingotGold]]
|
||||||
|
}
|
||||||
|
signUpgrade {
|
||||||
|
input: [[ingotIron, dyePowder, ingotIron]
|
||||||
|
[circuitAdvanced, stickWood, circuitAdvanced]
|
||||||
|
[ingotIron, pistonStickyBase, ingotIron]]
|
||||||
|
}
|
||||||
|
solarGeneratorUpgrade {
|
||||||
|
input: [[glass, glass, glass]
|
||||||
|
[circuitAdvanced, "oc:craftingGenerator", circuitAdvanced]]
|
||||||
|
}
|
||||||
|
|
||||||
|
nuggetIron {
|
||||||
|
type: shapeless
|
||||||
|
input: ingotIron
|
||||||
|
count: 9
|
||||||
|
}
|
||||||
|
cuttingWire {
|
||||||
|
input: [[stickWood, nuggetIron, stickWood]]
|
||||||
|
}
|
||||||
|
acid {
|
||||||
|
type: shapeless
|
||||||
|
input: [bucketWater, sugar, slimeball, spiderEye, bone, {item=dyePowder, subID=1}]
|
||||||
|
}
|
||||||
|
disk {
|
||||||
|
input: [["", nuggetIron, ""]
|
||||||
|
[nuggetIron, "", nuggetIron]
|
||||||
|
["", nuggetIron, ""]]
|
||||||
|
}
|
||||||
|
|
||||||
|
buttonGroup {
|
||||||
|
input: [[button, button, button]
|
||||||
|
[button, button, button]]
|
||||||
|
}
|
||||||
|
arrowKeys {
|
||||||
|
input: [["", button, ""]
|
||||||
|
[button, button, button]]
|
||||||
|
}
|
||||||
|
numPad {
|
||||||
|
input: [[button, button, button]
|
||||||
|
[button, button, button]
|
||||||
|
[button, button, button]]
|
||||||
|
}
|
||||||
|
|
||||||
|
transistor {
|
||||||
|
input: [[nuggetIron, nuggetIron, nuggetIron]
|
||||||
|
[nuggetGold, redstone, nuggetGold]
|
||||||
|
["", torchRedstoneActive, ""]]
|
||||||
|
}
|
||||||
|
chip1 {
|
||||||
|
input: [[nuggetIron, fenceIron, nuggetIron]
|
||||||
|
[redstone, craftingTransistor, redstone]
|
||||||
|
[nuggetIron, fenceIron, nuggetIron]]
|
||||||
|
}
|
||||||
|
chip2 {
|
||||||
|
input: [[nuggetGold, {item=dyePowder, subID=4} , nuggetGold]
|
||||||
|
[circuitBasic, diamond, circuitBasic]
|
||||||
|
[nuggetGold, {item=dyePowder, subID=4}, nuggetGold]]
|
||||||
|
}
|
||||||
|
chip3 {
|
||||||
|
input: [[yellowDust, comparator, yellowDust]
|
||||||
|
[circuitAdvanced, emerald, circuitAdvanced]
|
||||||
|
[yellowDust, comparator, yellowDust]]
|
||||||
|
}
|
||||||
|
alu {
|
||||||
|
input: [[diode, torchRedstoneActive, diode]
|
||||||
|
[craftingTransistor, craftingTransistor, craftingTransistor]
|
||||||
|
[nuggetIron, redstone, nuggetIron]]
|
||||||
|
}
|
||||||
|
cpu {
|
||||||
|
input: [[circuitBasic, redstone, circuitBasic]
|
||||||
|
[fenceIron, craftingControlUnit, fenceIron]
|
||||||
|
[circuitBasic, craftingALU, circuitBasic]]
|
||||||
|
}
|
||||||
|
cu {
|
||||||
|
input: [[nuggetGold, torchRedstoneActive, nuggetGold]
|
||||||
|
[craftingTransistor, clock, craftingTransistor]
|
||||||
|
[nuggetGold, redstone, nuggetGold]]
|
||||||
|
}
|
||||||
|
|
||||||
|
rawCircuitBoard {
|
||||||
|
type: shapeless
|
||||||
|
input: ["oc:craftingWire", clay, {item=dyePowder, subID=2}]
|
||||||
|
}
|
||||||
|
circuitBoard {
|
||||||
|
type: furnace
|
||||||
|
input: "oc:craftingCircuitBoardRaw"
|
||||||
|
}
|
||||||
|
printedCircuitBoard {
|
||||||
|
type: shapeless
|
||||||
|
input: [craftingCircuitBoardBasic, nuggetGold, "oc:craftingAcid"]
|
||||||
|
}
|
||||||
|
card {
|
||||||
|
input: [[nuggetIron, circuitBasic, craftingTransistor]
|
||||||
|
[nuggetIron, craftingCircuitBoardAdvanced, craftingCircuitBoardAdvanced]
|
||||||
|
[nuggetIron, nuggetGold, nuggetGold]]
|
||||||
|
}
|
||||||
|
|
||||||
|
adapter {
|
||||||
|
input: [[ingotIron, craftingWireCopper, ingotIron]
|
||||||
|
[craftingWireCopper, circuitBasic, craftingWireCopper]
|
||||||
|
[ingotIron, craftingCircuitBoardAdvanced, ingotIron]]
|
||||||
|
}
|
||||||
|
cable {
|
||||||
|
input: [["", nuggetIron, ""]
|
||||||
|
[nuggetIron, redstone, nuggetIron]
|
||||||
|
["", nuggetIron, ""]]
|
||||||
|
output: 4
|
||||||
|
}
|
||||||
|
capacitor {
|
||||||
|
input: [[ingotIron, craftingTransistor, ingotIron]
|
||||||
|
[nuggetGold, paper, nuggetGold]
|
||||||
|
[ingotIron, craftingCircuitBoardAdvanced, ingotIron]]
|
||||||
|
}
|
||||||
|
charger {
|
||||||
|
input: [[ingotIron, ingotGold, ingotIron]
|
||||||
|
[craftingCapacitor, circuitAdvanced, craftingCapacitor]
|
||||||
|
[ingotIron, craftingCircuitBoardAdvanced, ingotIron]]
|
||||||
|
}
|
||||||
|
case1 {
|
||||||
|
input: [[ingotIron, craftingCircuitBoardAdvanced, ingotIron]
|
||||||
|
[fenceIron, craftingCPU, fenceIron]
|
||||||
|
[ingotIron, circuitBasic, ingotIron]]
|
||||||
|
}
|
||||||
|
case2 {
|
||||||
|
input: [[ingotGold, craftingCircuitBoardAdvanced, ingotGold]
|
||||||
|
[circuitAdvanced, craftingRawMachineBasic, circuitAdvanced]
|
||||||
|
[ingotGold, circuitAdvanced, ingotGold]]
|
||||||
|
}
|
||||||
|
case3 {
|
||||||
|
input: [[circuitElite, craftingCircuitBoardAdvanced, circuitElite]
|
||||||
|
[diamond, craftingRawMachineAdvanced, diamond]
|
||||||
|
[circuitElite, craftingCircuitBoardAdvanced, circuitElite]]
|
||||||
|
}
|
||||||
|
diskDrive {
|
||||||
|
input: [[ingotIron, circuitBasic, ingotIron]
|
||||||
|
[pistonBase, stickWood, ""]
|
||||||
|
[ingotIron, circuitBasic, ingotIron]]
|
||||||
|
}
|
||||||
|
keyboard {
|
||||||
|
input: [["oc:craftingButtonGroup", "oc:craftingButtonGroup", "oc:craftingButtonGroup"]
|
||||||
|
["oc:craftingButtonGroup", "oc:craftingArrowKey", "oc:craftingNumPad"]]
|
||||||
|
}
|
||||||
|
powerConverter {
|
||||||
|
input: [[ingotIron, craftingWireCopper, ingotIron]
|
||||||
|
[ingotGold, circuitBasic, ingotGold]
|
||||||
|
[ingotIron, craftingCircuitBoardAdvanced, ingotIron]]
|
||||||
|
}
|
||||||
|
powerDistributor {
|
||||||
|
input: [[ingotIron, ingotGold, ingotIron]
|
||||||
|
[craftingWireCopper, circuitBasic, craftingWireCopper]
|
||||||
|
[ingotIron, craftingCircuitBoardAdvanced, ingotIron]]
|
||||||
|
}
|
||||||
|
redstone {
|
||||||
|
input: [[ingotIron, blockRedstone, ingotIron]
|
||||||
|
[blockRedstone, componentCardRedstone, blockRedstone]
|
||||||
|
[ingotIron, craftingCircuitBoardAdvanced, ingotIron]]
|
||||||
|
}
|
||||||
|
robot {
|
||||||
|
input: [[craftingMonitorBasic, craftingGPUBasic, craftingDiskDrive]
|
||||||
|
[dispenser, craftingRawMachineBasic, craftingRAMBasic]
|
||||||
|
[craftingCapacitor, minecartHopper, craftingCapacitor]]
|
||||||
|
}
|
||||||
|
router {
|
||||||
|
input: [[ingotIron, craftingWireCopper, ingotIron]
|
||||||
|
[craftingWireCopper, componentCardLan, craftingWireCopper]
|
||||||
|
[ingotIron, craftingCircuitBoardAdvanced, ingotIron]]
|
||||||
|
}
|
||||||
|
screen1 {
|
||||||
|
input: [[ingotIron, ingotIron, glass]
|
||||||
|
[redstone, craftingTransistor, glass]
|
||||||
|
[ingotIron, ingotIron, glass]]
|
||||||
|
}
|
||||||
|
screen2 {
|
||||||
|
input: [[ingotGold, {item=dyePowder, subID=1}, ingotGold]
|
||||||
|
[circuitAdvanced, {item=dyePowder, subID=2}, craftingMonitorBasic]
|
||||||
|
[ingotGold, {item=dyePowder, subID=4}, ingotGold]]
|
||||||
|
}
|
||||||
|
screen3 {
|
||||||
|
input: [[obsidian, craftingCircuitBoardAdvanced, circuitElite]
|
||||||
|
[blazeRod, netherquartz, craftingMonitorAdvanced]
|
||||||
|
[obsidian, craftingCircuitBoardAdvanced, circuitElite]]
|
||||||
|
}
|
14
assets/opencomputers/recipes/user.recipes
Normal file
14
assets/opencomputers/recipes/user.recipes
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# To use different sets of recipes, include other recipe files in the order of
|
||||||
|
# priority to use the recipes defined in them. The last include has the highest
|
||||||
|
# priority (i.e. included recipes simply replace the current definition for all
|
||||||
|
# already known recipes).
|
||||||
|
|
||||||
|
include file("default.recipes")
|
||||||
|
#include file("buildcraft.recipes")
|
||||||
|
#include file("gregtech.recipes")
|
||||||
|
#include file("your_custom.recipes")
|
||||||
|
|
||||||
|
# You can also specify custom recipes in this file directly. Have a look at the
|
||||||
|
# default.recipes file to get an idea how recipes have to be structured. You'll
|
||||||
|
# want to define your recipes after all includes, to avoid those overwriting
|
||||||
|
# your recipes.
|
BIN
assets/opencomputers/textures/items/upgrade_navigation.png
Normal file
BIN
assets/opencomputers/textures/items/upgrade_navigation.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 KiB |
BIN
assets/opencomputers/textures/items/upgrade_sign.png
Normal file
BIN
assets/opencomputers/textures/items/upgrade_sign.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/opencomputers/textures/items/upgrade_solar_generator.png
Normal file
BIN
assets/opencomputers/textures/items/upgrade_solar_generator.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
@ -3,6 +3,9 @@ package li.cil.oc
|
|||||||
import cpw.mods.fml.common.registry.GameRegistry
|
import cpw.mods.fml.common.registry.GameRegistry
|
||||||
import li.cil.oc.common.block._
|
import li.cil.oc.common.block._
|
||||||
import li.cil.oc.common.tileentity
|
import li.cil.oc.common.tileentity
|
||||||
|
import net.minecraft.block.Block
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraftforge.oredict.OreDictionary
|
||||||
|
|
||||||
object Blocks {
|
object Blocks {
|
||||||
var blockSimple: SimpleDelegator = _
|
var blockSimple: SimpleDelegator = _
|
||||||
@ -17,8 +20,8 @@ object Blocks {
|
|||||||
var case1, case2, case3: Case = _
|
var case1, case2, case3: Case = _
|
||||||
var diskDrive: DiskDrive = _
|
var diskDrive: DiskDrive = _
|
||||||
var keyboard: Keyboard = _
|
var keyboard: Keyboard = _
|
||||||
var powerDistributor: PowerDistributor = _
|
|
||||||
var powerConverter: PowerConverter = _
|
var powerConverter: PowerConverter = _
|
||||||
|
var powerDistributor: PowerDistributor = _
|
||||||
var redstone: Redstone = _
|
var redstone: Redstone = _
|
||||||
var robotProxy: RobotProxy = _
|
var robotProxy: RobotProxy = _
|
||||||
var robotAfterimage: RobotAfterimage = _
|
var robotAfterimage: RobotAfterimage = _
|
||||||
@ -72,5 +75,23 @@ object Blocks {
|
|||||||
screen3 = new Screen.Tier3(blockSimple)
|
screen3 = new Screen.Tier3(blockSimple)
|
||||||
|
|
||||||
redstone = new Redstone(blockSimpleWithRedstone)
|
redstone = new Redstone(blockSimpleWithRedstone)
|
||||||
|
|
||||||
|
register("craftingWireCopper", cable.createItemStack())
|
||||||
|
register("craftingCapacitor", capacitor.createItemStack())
|
||||||
|
register("craftingRawMachineBasic", case1.createItemStack())
|
||||||
|
register("craftingRawMachineAdvanced", case2.createItemStack())
|
||||||
|
register("craftingRawMachineElite", case3.createItemStack())
|
||||||
|
register("craftingDiskDrive", diskDrive.createItemStack())
|
||||||
|
register("craftingMonitorBasic", screen1.createItemStack())
|
||||||
|
register("craftingMonitorAdvanced", screen2.createItemStack())
|
||||||
|
register("craftingMonitorElite", screen3.createItemStack())
|
||||||
|
|
||||||
|
register("torchRedstoneActive", new ItemStack(Block.torchRedstoneActive, 1, 0))
|
||||||
|
}
|
||||||
|
|
||||||
|
private def register(name: String, item: ItemStack) {
|
||||||
|
if (!OreDictionary.getOres(name).contains(item)) {
|
||||||
|
OreDictionary.registerOre(name, item)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,9 +1,11 @@
|
|||||||
package li.cil.oc
|
package li.cil.oc
|
||||||
|
|
||||||
import cpw.mods.fml.common.ICraftingHandler
|
import cpw.mods.fml.common.ICraftingHandler
|
||||||
|
import li.cil.oc.server.driver.Registry
|
||||||
|
import li.cil.oc.util.ExtendedNBT._
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.inventory.IInventory
|
import net.minecraft.inventory.IInventory
|
||||||
import net.minecraft.item.{Item, ItemStack}
|
import net.minecraft.item.{ItemMap, Item, ItemStack}
|
||||||
|
|
||||||
object CraftingHandler extends ICraftingHandler {
|
object CraftingHandler extends ICraftingHandler {
|
||||||
override def onCrafting(player: EntityPlayer, craftedStack: ItemStack, inventory: IInventory) = {
|
override def onCrafting(player: EntityPlayer, craftedStack: ItemStack, inventory: IInventory) = {
|
||||||
@ -28,6 +30,40 @@ object CraftingHandler extends ICraftingHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (craftedStack.isItemEqual(Items.upgradeNavigation.createItemStack())) {
|
||||||
|
Registry.driverFor(craftedStack) match {
|
||||||
|
case Some(driver) =>
|
||||||
|
var oldMap = None: Option[ItemStack]
|
||||||
|
for (i <- 0 to inventory.getSizeInventory) {
|
||||||
|
val stack = inventory.getStackInSlot(i)
|
||||||
|
if (stack != null) {
|
||||||
|
if (stack.isItemEqual(Items.upgradeNavigation.createItemStack())) {
|
||||||
|
// Restore the map currently used in the upgrade.
|
||||||
|
val nbt = driver.dataTag(stack)
|
||||||
|
oldMap = Option(ItemStack.loadItemStackFromNBT(nbt.getCompoundTag(Settings.namespace + "map")))
|
||||||
|
}
|
||||||
|
else if (stack.getItem == Item.map) {
|
||||||
|
// Store information of the map used for crafting in the result.
|
||||||
|
val nbt = driver.dataTag(craftedStack)
|
||||||
|
val map = stack.getItem.asInstanceOf[ItemMap]
|
||||||
|
val info = map.getMapData(stack, player.getEntityWorld)
|
||||||
|
nbt.setInteger(Settings.namespace + "xCenter", info.xCenter)
|
||||||
|
nbt.setInteger(Settings.namespace + "zCenter", info.zCenter)
|
||||||
|
nbt.setInteger(Settings.namespace + "scale", 128 * (1 << info.scale))
|
||||||
|
nbt.setNewCompoundTag(Settings.namespace + "map", stack.writeToNBT)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (oldMap.isDefined) {
|
||||||
|
val map = oldMap.get
|
||||||
|
if (!player.inventory.addItemStackToInventory(map)) {
|
||||||
|
player.dropPlayerItemWithRandomChoice(map, false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case _ =>
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override def onSmelting(player: EntityPlayer, item: ItemStack) {}
|
override def onSmelting(player: EntityPlayer, item: ItemStack) {}
|
||||||
|
@ -2,6 +2,7 @@ package li.cil.oc
|
|||||||
|
|
||||||
import cpw.mods.fml.common.registry.GameRegistry
|
import cpw.mods.fml.common.registry.GameRegistry
|
||||||
import li.cil.oc.common.item
|
import li.cil.oc.common.item
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraftforge.oredict.OreDictionary
|
import net.minecraftforge.oredict.OreDictionary
|
||||||
|
|
||||||
object Items {
|
object Items {
|
||||||
@ -29,8 +30,11 @@ object Items {
|
|||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
// Upgrades
|
// Upgrades
|
||||||
var crafting: item.Crafting = null
|
var upgradeCrafting: item.UpgradeCrafting = null
|
||||||
var generator: item.Generator = null
|
var upgradeGenerator: item.UpgradeGenerator = null
|
||||||
|
var upgradeNavigation: item.UpgradeNavigation = null
|
||||||
|
var upgradeSign: item.UpgradeSign = null
|
||||||
|
var upgradeSolarGenerator: item.UpgradeSolarGenerator = null
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
// Crafting
|
// Crafting
|
||||||
@ -77,8 +81,8 @@ object Items {
|
|||||||
rs = new item.RedstoneCard(multi)
|
rs = new item.RedstoneCard(multi)
|
||||||
wlan = new item.WirelessNetworkCard(multi)
|
wlan = new item.WirelessNetworkCard(multi)
|
||||||
|
|
||||||
crafting = new item.Crafting(multi)
|
upgradeCrafting = new item.UpgradeCrafting(multi)
|
||||||
generator = new item.Generator(multi)
|
upgradeGenerator = new item.UpgradeGenerator(multi)
|
||||||
|
|
||||||
ironNugget = new item.IronNugget(multi)
|
ironNugget = new item.IronNugget(multi)
|
||||||
cuttingWire = new item.CuttingWire(multi)
|
cuttingWire = new item.CuttingWire(multi)
|
||||||
@ -102,6 +106,53 @@ object Items {
|
|||||||
pcb = new item.PrintedCircuitBoard(multi)
|
pcb = new item.PrintedCircuitBoard(multi)
|
||||||
card = new item.CardBase(multi)
|
card = new item.CardBase(multi)
|
||||||
|
|
||||||
OreDictionary.registerOre("nuggetIron", ironNugget.createItemStack())
|
// v1.1.0
|
||||||
|
upgradeSolarGenerator = new item.UpgradeSolarGenerator(multi)
|
||||||
|
upgradeSign = new item.UpgradeSign(multi)
|
||||||
|
upgradeNavigation = new item.UpgradeNavigation(multi)
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
registerExclusive("nuggetIron", ironNugget.createItemStack())
|
||||||
|
register("oc:craftingCircuitBoardRaw", rawCircuitBoard.createItemStack())
|
||||||
|
register("craftingCircuitBoardBasic", circuitBoard.createItemStack())
|
||||||
|
register("craftingCircuitBoardAdvanced", pcb.createItemStack())
|
||||||
|
register("oc:craftingWire", cuttingWire.createItemStack())
|
||||||
|
register("circuitBasic", chip1.createItemStack())
|
||||||
|
register("circuitAdvanced", chip2.createItemStack())
|
||||||
|
register("circuitElite", chip3.createItemStack())
|
||||||
|
register("craftingTransistor", transistor.createItemStack())
|
||||||
|
register("craftingControlUnit", cu.createItemStack())
|
||||||
|
register("craftingALU", alu.createItemStack())
|
||||||
|
register("craftingCPU", cpu.createItemStack())
|
||||||
|
register("componentCardRedstone", rs.createItemStack())
|
||||||
|
register("componentCardLan", lan.createItemStack())
|
||||||
|
register("craftingGPUBasic", gpu1.createItemStack())
|
||||||
|
register("craftingGPUAdvanced", gpu2.createItemStack())
|
||||||
|
register("craftingGPUElite", gpu3.createItemStack())
|
||||||
|
register("craftingRAMBasic", ram1.createItemStack())
|
||||||
|
register("craftingRAMAdvanced", ram2.createItemStack())
|
||||||
|
register("craftingRAMElite", ram3.createItemStack())
|
||||||
|
register("craftingHDDBasic", hdd1.createItemStack())
|
||||||
|
register("craftingHDDAdvanced", hdd2.createItemStack())
|
||||||
|
register("craftingHDDElite", hdd3.createItemStack())
|
||||||
|
register("oc:craftingButtonGroup", buttonGroup.createItemStack())
|
||||||
|
register("oc:craftingArrowKey", arrowKeys.createItemStack())
|
||||||
|
register("oc:craftingNumPad", numPad.createItemStack())
|
||||||
|
register("oc:craftingDisk", disk.createItemStack())
|
||||||
|
register("oc:craftingAcid", acid.createItemStack())
|
||||||
|
register("oc:craftingGenerator", upgradeGenerator.createItemStack())
|
||||||
|
}
|
||||||
|
|
||||||
|
def register(name: String, item: ItemStack) {
|
||||||
|
if (!OreDictionary.getOres(name).contains(item)) {
|
||||||
|
OreDictionary.registerOre(name, item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def registerExclusive(name: String, item: ItemStack) {
|
||||||
|
if (OreDictionary.getOres(name).isEmpty) {
|
||||||
|
OreDictionary.registerOre(name, item)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,492 +1,288 @@
|
|||||||
package li.cil.oc
|
package li.cil.oc
|
||||||
|
|
||||||
|
import com.typesafe.config._
|
||||||
import cpw.mods.fml.common.Loader
|
import cpw.mods.fml.common.Loader
|
||||||
import cpw.mods.fml.common.registry.GameRegistry
|
import cpw.mods.fml.common.registry.GameRegistry
|
||||||
|
import java.io.{FileReader, File}
|
||||||
|
import java.util.logging.Level
|
||||||
import net.minecraft.block.Block
|
import net.minecraft.block.Block
|
||||||
import net.minecraft.item.crafting.FurnaceRecipes
|
import net.minecraft.item.crafting.FurnaceRecipes
|
||||||
import net.minecraft.item.{Item, ItemStack}
|
import net.minecraft.item.{ItemStack, Item}
|
||||||
import net.minecraftforge.oredict.{ShapelessOreRecipe, ShapedOreRecipe}
|
import net.minecraftforge.oredict.{OreDictionary, ShapelessOreRecipe, ShapedOreRecipe}
|
||||||
|
import org.apache.commons.io.FileUtils
|
||||||
|
import scala.Some
|
||||||
|
import scala.collection.convert.wrapAsScala._
|
||||||
|
import scala.collection.mutable.ArrayBuffer
|
||||||
|
|
||||||
object Recipes {
|
object Recipes {
|
||||||
def init() {
|
def init() {
|
||||||
val blazeRod = new ItemStack(Item.blazeRod)
|
try {
|
||||||
val boneMeal = new ItemStack(Item.dyePowder, 1, 15)
|
val defaultRecipes = new File(Loader.instance.getConfigDir + File.separator + "opencomputers" + File.separator + "default.recipes")
|
||||||
val cactusGreen = new ItemStack(Item.dyePowder, 1, 2)
|
val userRecipes = new File(Loader.instance.getConfigDir + File.separator + "opencomputers" + File.separator + "user.recipes")
|
||||||
val clock = new ItemStack(Item.pocketSundial)
|
|
||||||
val comparator = new ItemStack(Item.comparator)
|
|
||||||
val craftingTable = new ItemStack(Block.workbench)
|
|
||||||
val diamond = new ItemStack(Item.diamond)
|
|
||||||
val dispenser = new ItemStack(Block.dispenser)
|
|
||||||
val emerald = new ItemStack(Item.emerald)
|
|
||||||
val enderPearl = new ItemStack(Item.enderPearl)
|
|
||||||
val glass = new ItemStack(Block.glass)
|
|
||||||
val glowstoneDust = new ItemStack(Item.glowstone)
|
|
||||||
val goldIngot = new ItemStack(Item.ingotGold)
|
|
||||||
val goldNugget = new ItemStack(Item.goldNugget)
|
|
||||||
val ironBars = new ItemStack(Block.fenceIron)
|
|
||||||
val ironIngot = new ItemStack(Item.ingotIron)
|
|
||||||
val lapis = new ItemStack(Item.dyePowder, 1, 4)
|
|
||||||
val lever = new ItemStack(Block.lever)
|
|
||||||
val minecartHopper = new ItemStack(Item.minecartHopper)
|
|
||||||
val netherQuartz = new ItemStack(Item.netherQuartz)
|
|
||||||
val obsidian = new ItemStack(Block.obsidian)
|
|
||||||
val paper = new ItemStack(Item.paper)
|
|
||||||
val piston = new ItemStack(Block.pistonBase)
|
|
||||||
val redstoneBlock = new ItemStack(Block.blockRedstone)
|
|
||||||
val redstoneDust = new ItemStack(Item.redstone)
|
|
||||||
val redstoneTorch = new ItemStack(Block.torchRedstoneActive)
|
|
||||||
val repeater = new ItemStack(Item.redstoneRepeater)
|
|
||||||
val roseRed = new ItemStack(Item.dyePowder, 1, 1)
|
|
||||||
val slimeBall = new ItemStack(Item.slimeBall)
|
|
||||||
val spiderEye = new ItemStack(Item.spiderEye)
|
|
||||||
val stick = new ItemStack(Item.stick)
|
|
||||||
val sugar = new ItemStack(Item.sugar)
|
|
||||||
|
|
||||||
val acid = Items.acid.createItemStack()
|
defaultRecipes.getParentFile.mkdirs()
|
||||||
val alu = Items.alu.createItemStack()
|
FileUtils.copyURLToFile(getClass.getResource("/assets/opencomputers/recipes/default.recipes"), defaultRecipes)
|
||||||
val cable = Blocks.cable.createItemStack()
|
if (!userRecipes.exists()) {
|
||||||
val card = Items.card.createItemStack()
|
FileUtils.copyURLToFile(getClass.getResource("/assets/opencomputers/recipes/user.recipes"), userRecipes)
|
||||||
val chip1 = Items.chip1.createItemStack()
|
}
|
||||||
val chip2 = Items.chip2.createItemStack()
|
val config = ConfigParseOptions.defaults.
|
||||||
val chip3 = Items.chip3.createItemStack()
|
setSyntax(ConfigSyntax.CONF).
|
||||||
val board = Items.circuitBoard.createItemStack()
|
setIncluder(new ConfigIncluder with ConfigIncluderFile {
|
||||||
val cpu = Items.cpu.createItemStack()
|
var fallback: ConfigIncluder = _
|
||||||
val cu = Items.cu.createItemStack()
|
|
||||||
val disk = Items.disk.createItemStack()
|
|
||||||
val floppy = Items.floppyDisk.createItemStack()
|
|
||||||
val gpu1 = Items.gpu1.createItemStack()
|
|
||||||
val gpu2 = Items.gpu2.createItemStack()
|
|
||||||
val gpu3 = Items.gpu3.createItemStack()
|
|
||||||
val hdd1 = Items.hdd1.createItemStack()
|
|
||||||
val hdd2 = Items.hdd2.createItemStack()
|
|
||||||
val hdd3 = Items.hdd3.createItemStack()
|
|
||||||
val lanCard = Items.lan.createItemStack()
|
|
||||||
val pcb = Items.pcb.createItemStack()
|
|
||||||
val ram1 = Items.ram1.createItemStack()
|
|
||||||
val ram2 = Items.ram2.createItemStack()
|
|
||||||
val ram3 = Items.ram3.createItemStack()
|
|
||||||
val rawBoard = Items.rawCircuitBoard.createItemStack()
|
|
||||||
val redstoneCard = Items.rs.createItemStack()
|
|
||||||
val transistor = Items.transistor.createItemStack()
|
|
||||||
val wlanCard = Items.wlan.createItemStack()
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
def withFallback(fallback: ConfigIncluder) = {
|
||||||
|
this.fallback = fallback
|
||||||
|
this
|
||||||
|
}
|
||||||
|
|
||||||
if (!Loader.isModLoaded("gregtech_addon")) {
|
def include(context: ConfigIncludeContext, what: String) = fallback.include(context, what)
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(Items.ironNugget.createItemStack(9), ironIngot))
|
|
||||||
|
def includeFile(context: ConfigIncludeContext, what: File) = {
|
||||||
|
val in = if (what.isAbsolute) new FileReader(what) else new FileReader(new File(userRecipes.getParentFile, what.getPath))
|
||||||
|
val result = ConfigFactory.parseReader(in)
|
||||||
|
in.close()
|
||||||
|
result.root()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
val recipes = ConfigFactory.parseFile(userRecipes, config)
|
||||||
|
|
||||||
|
// Try to keep this in the same order as the fields in the Items class
|
||||||
|
// to make it easier to match them and check if anything is missing.
|
||||||
|
addRecipe(Items.analyzer.createItemStack(), recipes, "analyzer")
|
||||||
|
|
||||||
|
addRecipe(Items.ram1.createItemStack(), recipes, "ram1")
|
||||||
|
addRecipe(Items.ram2.createItemStack(), recipes, "ram2")
|
||||||
|
addRecipe(Items.ram3.createItemStack(), recipes, "ram3")
|
||||||
|
|
||||||
|
addRecipe(Items.floppyDisk.createItemStack(), recipes, "floppy")
|
||||||
|
addRecipe(Items.hdd1.createItemStack(), recipes, "hdd1")
|
||||||
|
addRecipe(Items.hdd2.createItemStack(), recipes, "hdd2")
|
||||||
|
addRecipe(Items.hdd3.createItemStack(), recipes, "hdd3")
|
||||||
|
|
||||||
|
addRecipe(Items.gpu1.createItemStack(), recipes, "graphicsCard1")
|
||||||
|
addRecipe(Items.gpu2.createItemStack(), recipes, "graphicsCard2")
|
||||||
|
addRecipe(Items.gpu3.createItemStack(), recipes, "graphicsCard3")
|
||||||
|
addRecipe(Items.lan.createItemStack(), recipes, "lanCard")
|
||||||
|
addRecipe(Items.rs.createItemStack(), recipes, "redstoneCard")
|
||||||
|
addRecipe(Items.wlan.createItemStack(), recipes, "wlanCard")
|
||||||
|
|
||||||
|
addRecipe(Items.upgradeCrafting.createItemStack(), recipes, "craftingUpgrade")
|
||||||
|
addRecipe(Items.upgradeGenerator.createItemStack(), recipes, "generatorUpgrade")
|
||||||
|
addRecipe(Items.upgradeNavigation.createItemStack(), recipes, "navigationUpgrade")
|
||||||
|
addRecipe(Items.upgradeSign.createItemStack(), recipes, "signUpgrade")
|
||||||
|
addRecipe(Items.upgradeSolarGenerator.createItemStack(), recipes, "solarGeneratorUpgrade")
|
||||||
|
|
||||||
|
if (OreDictionary.getOres("nuggetIron").contains(Items.ironNugget.createItemStack())) {
|
||||||
|
addRecipe(Items.ironNugget.createItemStack(), recipes, "nuggetIron")
|
||||||
|
}
|
||||||
|
addRecipe(Items.cuttingWire.createItemStack(), recipes, "cuttingWire")
|
||||||
|
addRecipe(Items.acid.createItemStack(), recipes, "acid")
|
||||||
|
addRecipe(Items.disk.createItemStack(), recipes, "disk")
|
||||||
|
|
||||||
|
addRecipe(Items.buttonGroup.createItemStack(), recipes, "buttonGroup")
|
||||||
|
addRecipe(Items.arrowKeys.createItemStack(), recipes, "arrowKeys")
|
||||||
|
addRecipe(Items.numPad.createItemStack(), recipes, "numPad")
|
||||||
|
|
||||||
|
addRecipe(Items.transistor.createItemStack(), recipes, "transistor")
|
||||||
|
addRecipe(Items.chip1.createItemStack(), recipes, "chip1")
|
||||||
|
addRecipe(Items.chip2.createItemStack(), recipes, "chip2")
|
||||||
|
addRecipe(Items.chip3.createItemStack(), recipes, "chip3")
|
||||||
|
addRecipe(Items.alu.createItemStack(), recipes, "alu")
|
||||||
|
addRecipe(Items.cpu.createItemStack(), recipes, "cpu")
|
||||||
|
addRecipe(Items.cu.createItemStack(), recipes, "cu")
|
||||||
|
|
||||||
|
addRecipe(Items.rawCircuitBoard.createItemStack(), recipes, "rawCircuitBoard")
|
||||||
|
addRecipe(Items.circuitBoard.createItemStack(), recipes, "circuitBoard")
|
||||||
|
addRecipe(Items.pcb.createItemStack(), recipes, "printedCircuitBoard")
|
||||||
|
addRecipe(Items.card.createItemStack(), recipes, "card")
|
||||||
|
|
||||||
|
// Try to keep this in the same order as the fields in the Blocks class
|
||||||
|
// to make it easier to match them and check if anything is missing.
|
||||||
|
addRecipe(Blocks.adapter.createItemStack(), recipes, "adapter")
|
||||||
|
addRecipe(Blocks.cable.createItemStack(), recipes, "cable")
|
||||||
|
addRecipe(Blocks.capacitor.createItemStack(), recipes, "capacitor")
|
||||||
|
addRecipe(Blocks.charger.createItemStack(), recipes, "charger")
|
||||||
|
addRecipe(Blocks.case1.createItemStack(), recipes, "case1")
|
||||||
|
addRecipe(Blocks.case2.createItemStack(), recipes, "case2")
|
||||||
|
addRecipe(Blocks.case3.createItemStack(), recipes, "case3")
|
||||||
|
addRecipe(Blocks.diskDrive.createItemStack(), recipes, "diskDrive")
|
||||||
|
addRecipe(Blocks.keyboard.createItemStack(), recipes, "keyboard")
|
||||||
|
addRecipe(Blocks.powerConverter.createItemStack(), recipes, "powerConverter")
|
||||||
|
addRecipe(Blocks.powerDistributor.createItemStack(), recipes, "powerDistributor")
|
||||||
|
addRecipe(Blocks.redstone.createItemStack(), recipes, "redstone")
|
||||||
|
addRecipe(Blocks.robotProxy.createItemStack(), recipes, "robot")
|
||||||
|
addRecipe(Blocks.router.createItemStack(), recipes, "router")
|
||||||
|
addRecipe(Blocks.screen1.createItemStack(), recipes, "screen1")
|
||||||
|
addRecipe(Blocks.screen2.createItemStack(), recipes, "screen2")
|
||||||
|
addRecipe(Blocks.screen3.createItemStack(), recipes, "screen3")
|
||||||
|
|
||||||
|
// Navigation upgrade recrafting.
|
||||||
|
GameRegistry.addRecipe(new ShapelessOreRecipe(Items.upgradeNavigation.createItemStack(), Items.upgradeNavigation.createItemStack(), new ItemStack(Item.map, 1, OreDictionary.WILDCARD_VALUE)))
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
case e: Throwable => OpenComputers.log.log(Level.SEVERE, "Error parsing recipes, you may not be able to craft any items from this mod!", e)
|
||||||
}
|
}
|
||||||
GameRegistry.addShapelessRecipe(rawBoard, Items.cuttingWire.createItemStack(), new ItemStack(Block.blockClay), cactusGreen)
|
|
||||||
FurnaceRecipes.smelting().addSmelting(rawBoard.itemID, rawBoard.getItemDamage, board, 0)
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(acid, Item.bucketWater, sugar, roseRed, slimeBall, spiderEye, boneMeal))
|
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(pcb, acid, Item.goldNugget, board))
|
|
||||||
|
|
||||||
addRecipe(ironIngot,
|
|
||||||
"xxx",
|
|
||||||
"xxx",
|
|
||||||
"xxx",
|
|
||||||
'x', "nuggetIron")
|
|
||||||
|
|
||||||
addRecipe(disk,
|
|
||||||
" i ",
|
|
||||||
"i i",
|
|
||||||
" i ",
|
|
||||||
'i', "nuggetIron")
|
|
||||||
|
|
||||||
addRecipe(transistor,
|
|
||||||
"iii",
|
|
||||||
"grg",
|
|
||||||
" t ",
|
|
||||||
'i', "nuggetIron",
|
|
||||||
'g', goldNugget,
|
|
||||||
'r', redstoneDust,
|
|
||||||
't', redstoneTorch)
|
|
||||||
|
|
||||||
addRecipe(chip1,
|
|
||||||
"ibi",
|
|
||||||
"rtr",
|
|
||||||
"ibi",
|
|
||||||
'i', "nuggetIron",
|
|
||||||
'b', ironBars,
|
|
||||||
'r', redstoneDust,
|
|
||||||
't', transistor)
|
|
||||||
|
|
||||||
addRecipe(chip2,
|
|
||||||
"glg",
|
|
||||||
"cdc",
|
|
||||||
"glg",
|
|
||||||
'g', goldNugget,
|
|
||||||
'l', lapis,
|
|
||||||
'c', chip1,
|
|
||||||
'd', diamond)
|
|
||||||
|
|
||||||
addRecipe(chip3,
|
|
||||||
"dmd",
|
|
||||||
"cec",
|
|
||||||
"dmd",
|
|
||||||
'd', glowstoneDust,
|
|
||||||
'm', comparator,
|
|
||||||
'c', chip2,
|
|
||||||
'e', emerald)
|
|
||||||
|
|
||||||
addRecipe(alu,
|
|
||||||
"rtr",
|
|
||||||
"sss",
|
|
||||||
"idi",
|
|
||||||
'r', repeater,
|
|
||||||
's', transistor,
|
|
||||||
't', redstoneTorch,
|
|
||||||
'i', "nuggetIron",
|
|
||||||
'd', redstoneDust)
|
|
||||||
|
|
||||||
addRecipe(cu,
|
|
||||||
"gtg",
|
|
||||||
"scs",
|
|
||||||
"gdg",
|
|
||||||
'g', goldNugget,
|
|
||||||
't', redstoneTorch,
|
|
||||||
's', transistor,
|
|
||||||
'c', clock,
|
|
||||||
'd', redstoneDust)
|
|
||||||
|
|
||||||
addRecipe(cpu,
|
|
||||||
"cdc",
|
|
||||||
"bub",
|
|
||||||
"cac",
|
|
||||||
'c', chip1,
|
|
||||||
'd', redstoneDust,
|
|
||||||
'b', ironBars,
|
|
||||||
'u', cu,
|
|
||||||
'a', alu)
|
|
||||||
|
|
||||||
addRecipe(card,
|
|
||||||
"ict",
|
|
||||||
"ibb",
|
|
||||||
"igg",
|
|
||||||
'i', "nuggetIron",
|
|
||||||
'c', chip1,
|
|
||||||
't', transistor,
|
|
||||||
'b', pcb,
|
|
||||||
'g', goldNugget)
|
|
||||||
|
|
||||||
addRecipe(Items.buttonGroup.createItemStack(),
|
|
||||||
"bbb",
|
|
||||||
"bbb",
|
|
||||||
'b', new ItemStack(Block.stoneButton))
|
|
||||||
|
|
||||||
addRecipe(Items.arrowKeys.createItemStack(),
|
|
||||||
" b ",
|
|
||||||
"bbb",
|
|
||||||
'b', new ItemStack(Block.stoneButton))
|
|
||||||
|
|
||||||
addRecipe(Items.numPad.createItemStack(),
|
|
||||||
"bbb",
|
|
||||||
"bbb",
|
|
||||||
"bbb",
|
|
||||||
'b', new ItemStack(Block.stoneButton))
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
|
||||||
|
|
||||||
addRecipe(Blocks.case1.createItemStack(),
|
|
||||||
"ipi",
|
|
||||||
"bcb",
|
|
||||||
"imi",
|
|
||||||
'i', ironIngot,
|
|
||||||
'p', pcb,
|
|
||||||
'b', ironBars,
|
|
||||||
'c', cpu,
|
|
||||||
'm', chip1)
|
|
||||||
|
|
||||||
addRecipe(Blocks.case2.createItemStack(),
|
|
||||||
"gpg",
|
|
||||||
"mcm",
|
|
||||||
"gpg",
|
|
||||||
'g', goldIngot,
|
|
||||||
'p', pcb,
|
|
||||||
'm', chip2,
|
|
||||||
'c', Blocks.case1.createItemStack())
|
|
||||||
|
|
||||||
addRecipe(Blocks.case3.createItemStack(),
|
|
||||||
"mpm",
|
|
||||||
"dcd",
|
|
||||||
"mpm",
|
|
||||||
'm', chip3,
|
|
||||||
'p', pcb,
|
|
||||||
'd', diamond,
|
|
||||||
'c', Blocks.case2.createItemStack())
|
|
||||||
|
|
||||||
addRecipe(Blocks.screen1.createItemStack(),
|
|
||||||
"iig",
|
|
||||||
"rtg",
|
|
||||||
"iig",
|
|
||||||
'i', ironIngot,
|
|
||||||
'g', glass,
|
|
||||||
'r', redstoneDust,
|
|
||||||
't', transistor)
|
|
||||||
|
|
||||||
addRecipe(Blocks.screen2.createItemStack(),
|
|
||||||
"iri",
|
|
||||||
"cgs",
|
|
||||||
"ibi",
|
|
||||||
'i', goldIngot,
|
|
||||||
'r', roseRed,
|
|
||||||
'c', chip2,
|
|
||||||
'g', cactusGreen,
|
|
||||||
's', Blocks.screen1.createItemStack(),
|
|
||||||
'b', lapis)
|
|
||||||
|
|
||||||
addRecipe(Blocks.screen3.createItemStack(),
|
|
||||||
"opc",
|
|
||||||
"bqs",
|
|
||||||
"opc",
|
|
||||||
'o', obsidian,
|
|
||||||
'p', pcb,
|
|
||||||
'c', chip3,
|
|
||||||
'b', blazeRod,
|
|
||||||
'q', netherQuartz,
|
|
||||||
's', Blocks.screen2.createItemStack())
|
|
||||||
|
|
||||||
addRecipe(Blocks.capacitor.createItemStack(),
|
|
||||||
"iti",
|
|
||||||
"gpg",
|
|
||||||
"ibi",
|
|
||||||
'i', ironIngot,
|
|
||||||
't', transistor,
|
|
||||||
'g', goldNugget,
|
|
||||||
'p', paper,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(Blocks.powerConverter.createItemStack(),
|
|
||||||
"iwi",
|
|
||||||
"gcg",
|
|
||||||
"ibi",
|
|
||||||
'i', ironIngot,
|
|
||||||
'c', chip1,
|
|
||||||
'w', cable,
|
|
||||||
'g', goldIngot,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(Blocks.diskDrive.createItemStack(),
|
|
||||||
"ici",
|
|
||||||
"ps ",
|
|
||||||
"ici",
|
|
||||||
'i', ironIngot,
|
|
||||||
'c', chip1,
|
|
||||||
'p', piston,
|
|
||||||
's', stick)
|
|
||||||
|
|
||||||
addRecipe(Blocks.adapter.createItemStack(),
|
|
||||||
"iwi",
|
|
||||||
"wcw",
|
|
||||||
"ibi",
|
|
||||||
'i', ironIngot,
|
|
||||||
'w', cable,
|
|
||||||
'c', chip1,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(Blocks.redstone.createItemStack(),
|
|
||||||
"iri",
|
|
||||||
"rcr",
|
|
||||||
"ibi",
|
|
||||||
'i', ironIngot,
|
|
||||||
'r', redstoneBlock,
|
|
||||||
'c', redstoneCard,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(Blocks.powerDistributor.createItemStack(),
|
|
||||||
"igi",
|
|
||||||
"wcw",
|
|
||||||
"ibi",
|
|
||||||
'i', ironIngot,
|
|
||||||
'g', goldIngot,
|
|
||||||
'w', cable,
|
|
||||||
'c', chip1,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(Blocks.router.createItemStack(),
|
|
||||||
"iwi",
|
|
||||||
"wnw",
|
|
||||||
"ibi",
|
|
||||||
'i', ironIngot,
|
|
||||||
'w', cable,
|
|
||||||
'n', lanCard,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(Blocks.charger.createItemStack(),
|
|
||||||
"igi",
|
|
||||||
"pcp",
|
|
||||||
"ibi",
|
|
||||||
'i', ironIngot,
|
|
||||||
'g', goldIngot,
|
|
||||||
'p', Blocks.capacitor.createItemStack(),
|
|
||||||
'c', chip2,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(Blocks.robotProxy.createItemStack(),
|
|
||||||
"sgf",
|
|
||||||
"dcr",
|
|
||||||
"bmb",
|
|
||||||
's', Blocks.screen1.createItemStack(),
|
|
||||||
'g', gpu1,
|
|
||||||
'f', Blocks.diskDrive.createItemStack(),
|
|
||||||
'd', dispenser,
|
|
||||||
'c', Blocks.case1.createItemStack(),
|
|
||||||
'r', ram1,
|
|
||||||
'b', Blocks.capacitor.createItemStack(),
|
|
||||||
'm', minecartHopper)
|
|
||||||
|
|
||||||
addRecipe(Blocks.keyboard.createItemStack(),
|
|
||||||
"ggg",
|
|
||||||
"gan",
|
|
||||||
'g', Items.buttonGroup.createItemStack(),
|
|
||||||
'a', Items.arrowKeys.createItemStack(),
|
|
||||||
'n', Items.numPad.createItemStack())
|
|
||||||
|
|
||||||
addRecipe(Blocks.cable.createItemStack(4),
|
|
||||||
" i ",
|
|
||||||
"iri",
|
|
||||||
" i ",
|
|
||||||
'i', "nuggetIron",
|
|
||||||
'r', redstoneDust)
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
|
||||||
|
|
||||||
addRecipe(Items.cuttingWire.createItemStack(),
|
|
||||||
"sis",
|
|
||||||
's', stick,
|
|
||||||
'i', "nuggetIron")
|
|
||||||
|
|
||||||
addRecipe(Items.analyzer.createItemStack(),
|
|
||||||
" r ",
|
|
||||||
"tcg",
|
|
||||||
"tpg",
|
|
||||||
'r', redstoneTorch,
|
|
||||||
't', transistor,
|
|
||||||
'c', chip1,
|
|
||||||
'g', goldNugget,
|
|
||||||
'p', pcb)
|
|
||||||
|
|
||||||
addRecipe(ram1,
|
|
||||||
"ccc",
|
|
||||||
"bbb",
|
|
||||||
'c', chip1,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(ram2,
|
|
||||||
"ccc",
|
|
||||||
"rbr",
|
|
||||||
'c', chip2,
|
|
||||||
'r', ram1,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(ram3,
|
|
||||||
"ccc",
|
|
||||||
"rbr",
|
|
||||||
'c', chip3,
|
|
||||||
'r', ram2,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(floppy,
|
|
||||||
"ili",
|
|
||||||
"bdb",
|
|
||||||
"ipi",
|
|
||||||
'i', "nuggetIron",
|
|
||||||
'l', lever,
|
|
||||||
'b', board,
|
|
||||||
'd', disk,
|
|
||||||
'p', paper)
|
|
||||||
|
|
||||||
addRecipe(hdd1,
|
|
||||||
"cdi",
|
|
||||||
"bdp",
|
|
||||||
"cdi",
|
|
||||||
'c', chip1,
|
|
||||||
'd', disk,
|
|
||||||
'i', ironIngot,
|
|
||||||
'b', pcb,
|
|
||||||
'p', piston)
|
|
||||||
|
|
||||||
addRecipe(hdd2,
|
|
||||||
"gdg",
|
|
||||||
"cbc",
|
|
||||||
"gdg",
|
|
||||||
'g', goldIngot,
|
|
||||||
'd', hdd1,
|
|
||||||
'c', chip2,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(hdd3,
|
|
||||||
"cdc",
|
|
||||||
"rbr",
|
|
||||||
"cdc",
|
|
||||||
'c', chip3,
|
|
||||||
'd', hdd2,
|
|
||||||
'r', ram1,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(gpu1,
|
|
||||||
"car",
|
|
||||||
" b ",
|
|
||||||
'c', chip1,
|
|
||||||
'a', alu,
|
|
||||||
'r', ram1,
|
|
||||||
'b', card)
|
|
||||||
|
|
||||||
addRecipe(gpu2,
|
|
||||||
"ccr",
|
|
||||||
" g ",
|
|
||||||
'c', chip2,
|
|
||||||
'r', ram2,
|
|
||||||
'g', gpu1)
|
|
||||||
|
|
||||||
addRecipe(gpu3,
|
|
||||||
"ccr",
|
|
||||||
" g ",
|
|
||||||
'c', chip3,
|
|
||||||
'r', ram3,
|
|
||||||
'g', gpu2)
|
|
||||||
|
|
||||||
addRecipe(redstoneCard,
|
|
||||||
"tc ",
|
|
||||||
" b ",
|
|
||||||
't', redstoneTorch,
|
|
||||||
'c', chip1,
|
|
||||||
'b', card)
|
|
||||||
|
|
||||||
addRecipe(lanCard,
|
|
||||||
"wc ",
|
|
||||||
" b ",
|
|
||||||
'w', cable,
|
|
||||||
'c', chip1,
|
|
||||||
'b', card)
|
|
||||||
|
|
||||||
addRecipe(wlanCard,
|
|
||||||
"pc ",
|
|
||||||
" b ",
|
|
||||||
'p', enderPearl,
|
|
||||||
'c', chip2,
|
|
||||||
'b', lanCard)
|
|
||||||
|
|
||||||
addRecipe(Items.generator.createItemStack(),
|
|
||||||
"i i",
|
|
||||||
"cpc",
|
|
||||||
"bib",
|
|
||||||
'i', ironIngot,
|
|
||||||
'c', chip1,
|
|
||||||
'p', piston,
|
|
||||||
'b', pcb)
|
|
||||||
|
|
||||||
addRecipe(Items.crafting.createItemStack(),
|
|
||||||
"ipi",
|
|
||||||
"cwc",
|
|
||||||
"ibi",
|
|
||||||
'i', ironIngot,
|
|
||||||
'p', piston,
|
|
||||||
'c', chip1,
|
|
||||||
'w', craftingTable,
|
|
||||||
'b', pcb)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private def addRecipe(output: ItemStack, args: Any*) = {
|
def addRecipe(output: ItemStack, list: Config, name: String) = try {
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(output, args.map(_.asInstanceOf[AnyRef]): _*))
|
if (list.hasPath(name)) {
|
||||||
|
val recipe = list.getConfig(name)
|
||||||
|
tryGetType(recipe) match {
|
||||||
|
case "shaped" => addShapedRecipe(output, recipe)
|
||||||
|
case "shapeless" => addShapelessRecipe(output, recipe)
|
||||||
|
case "furnace" => addFurnaceRecipe(output, recipe)
|
||||||
|
case other => throw new RecipeException("Invalid recipe type '" + other + "'.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
OpenComputers.log.info("No recipe for '" + name + "', you will not be able to craft this item.")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
catch {
|
||||||
|
case e: RecipeException => OpenComputers.log.warning("Failed adding recipe for '" + name + "', you will not be able to craft this item! The error was: " + e.getMessage)
|
||||||
|
case e: Throwable => OpenComputers.log.log(Level.SEVERE, "Failed adding recipe for '" + name + "', you will not be able to craft this item!", e)
|
||||||
|
}
|
||||||
|
|
||||||
|
private def addShapedRecipe(stack: ItemStack, recipe: Config) {
|
||||||
|
val rows = recipe.getList("input").unwrapped().map {
|
||||||
|
case row: java.util.List[Object] => row.map(parseIngredient).padTo(3, null)
|
||||||
|
case other => throw new RecipeException("Invalid row entry for shaped recipe (not a list: " + other + ").")
|
||||||
|
}
|
||||||
|
|
||||||
|
var number = -1
|
||||||
|
var shape = ArrayBuffer.empty[String]
|
||||||
|
val input = ArrayBuffer.empty[AnyRef]
|
||||||
|
for (row <- rows) {
|
||||||
|
val (pattern, ingredients) = row.foldLeft((new StringBuilder, Seq.empty[AnyRef]))((acc, ingredient) => {
|
||||||
|
val (pattern, ingredients) = acc
|
||||||
|
ingredient match {
|
||||||
|
case _@(_: ItemStack | _: String) =>
|
||||||
|
number += 1
|
||||||
|
(pattern.append(('a' + number).toChar), ingredients ++ Seq(Char.box(('a' + number).toChar), ingredient))
|
||||||
|
case _ => (pattern.append(' '), ingredients)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
shape += pattern.toString
|
||||||
|
input ++= ingredients
|
||||||
|
}
|
||||||
|
|
||||||
|
val output = stack.copy()
|
||||||
|
output.stackSize = tryGetCount(recipe)
|
||||||
|
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(output, shape ++ input: _*))
|
||||||
|
}
|
||||||
|
|
||||||
|
private def addShapelessRecipe(stack: ItemStack, recipe: Config) {
|
||||||
|
val input = recipe.getValue("input").unwrapped() match {
|
||||||
|
case list: java.util.List[Object] => list.map(parseIngredient)
|
||||||
|
case other => Seq(parseIngredient(other))
|
||||||
|
}
|
||||||
|
|
||||||
|
val output = stack.copy()
|
||||||
|
output.stackSize = tryGetCount(recipe)
|
||||||
|
|
||||||
|
if (input.size > 0 && output.stackSize > 0) {
|
||||||
|
GameRegistry.addRecipe(new ShapelessOreRecipe(output, input: _*))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private def addFurnaceRecipe(stack: ItemStack, recipe: Config) {
|
||||||
|
val input = parseIngredient(recipe.getValue("input").unwrapped())
|
||||||
|
|
||||||
|
val output = stack.copy()
|
||||||
|
output.stackSize = tryGetCount(recipe)
|
||||||
|
|
||||||
|
input match {
|
||||||
|
case stack: ItemStack =>
|
||||||
|
FurnaceRecipes.smelting().addSmelting(stack.itemID, stack.getItemDamage, output, 0)
|
||||||
|
case name: String =>
|
||||||
|
for (stack <- OreDictionary.getOres(name)) {
|
||||||
|
FurnaceRecipes.smelting().addSmelting(stack.itemID, stack.getItemDamage, output, 0)
|
||||||
|
}
|
||||||
|
case _ =>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private def parseIngredient(entry: AnyRef) = entry match {
|
||||||
|
case map: java.util.HashMap[String, _] =>
|
||||||
|
if (map.contains("oreDict")) {
|
||||||
|
map.get("oreDict") match {
|
||||||
|
case value: String => value
|
||||||
|
case other => throw new RecipeException("Invalid name in recipe (not a string: " + other + ").")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (map.contains("item")) {
|
||||||
|
map.get("item") match {
|
||||||
|
case name: String =>
|
||||||
|
Item.itemsList.find(itemNameEquals(_, name)) match {
|
||||||
|
case Some(item) => new ItemStack(item, 1, tryGetId(map))
|
||||||
|
case _ => throw new RecipeException("No item found with name '" + name + "'.")
|
||||||
|
}
|
||||||
|
case id: Number => new ItemStack(validateItemId(id), 1, tryGetId(map))
|
||||||
|
case other => throw new RecipeException("Invalid item name in recipe (not a string: " + other + ").")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (map.contains("block")) {
|
||||||
|
map.get("block") match {
|
||||||
|
case name: String =>
|
||||||
|
Block.blocksList.find(blockNameEquals(_, name)) match {
|
||||||
|
case Some(block) => new ItemStack(block, 1, tryGetId(map))
|
||||||
|
case _ => throw new RecipeException("No block found with name '" + name + "'.")
|
||||||
|
}
|
||||||
|
case id: Number => new ItemStack(validateBlockId(id), 1, tryGetId(map))
|
||||||
|
case other => throw new RecipeException("Invalid block name (not a string: " + other + ").")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else throw new RecipeException("Invalid ingredient type (no oreDict, item or block entry).")
|
||||||
|
case name: String =>
|
||||||
|
if (name == null || name.trim.isEmpty) null
|
||||||
|
else if (OreDictionary.getOres(name) != null && !OreDictionary.getOres(name).isEmpty) name
|
||||||
|
else {
|
||||||
|
Item.itemsList.find(itemNameEquals(_, name)) match {
|
||||||
|
case Some(item) => new ItemStack(item, 1, 0)
|
||||||
|
case _ => Block.blocksList.find(blockNameEquals(_, name)) match {
|
||||||
|
case Some(block) => new ItemStack(block, 1, 0)
|
||||||
|
case _ => throw new RecipeException("No ore dictionary entry, item or block found for ingredient with name '" + name + "'.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case _ => throw new RecipeException("Invalid ingredient type (not a map or string).")
|
||||||
|
}
|
||||||
|
|
||||||
|
private def itemNameEquals(item: Item, name: String) =
|
||||||
|
item != null && (item.getUnlocalizedName == name || item.getUnlocalizedName == "item." + name)
|
||||||
|
|
||||||
|
private def blockNameEquals(block: Block, name: String) =
|
||||||
|
block != null && (block.getUnlocalizedName == name || block.getUnlocalizedName == "tile." + name)
|
||||||
|
|
||||||
|
private def tryGetType(recipe: Config) = if (recipe.hasPath("type")) recipe.getString("type") else "shaped"
|
||||||
|
|
||||||
|
private def tryGetCount(recipe: Config) = if (recipe.hasPath("output")) recipe.getInt("output") else 1
|
||||||
|
|
||||||
|
private def tryGetId(ingredient: java.util.HashMap[String, _]): Int =
|
||||||
|
if (ingredient.contains("subID")) ingredient.get("subID") match {
|
||||||
|
case id: Number => id.intValue
|
||||||
|
case id: String => Integer.valueOf(id)
|
||||||
|
case _ => 0
|
||||||
|
} else 0
|
||||||
|
|
||||||
|
private def validateBlockId(id: Number) = {
|
||||||
|
val index = id.intValue
|
||||||
|
if (index < 1 || index >= Block.blocksList.length || Block.blocksList(index) == null) throw new RecipeException("Invalid block ID: " + index)
|
||||||
|
Block.blocksList(index)
|
||||||
|
}
|
||||||
|
|
||||||
|
private def validateItemId(id: Number) = {
|
||||||
|
val index = id.intValue
|
||||||
|
if (index < 0 || index >= Item.itemsList.length || Item.itemsList(index) == null) throw new RecipeException("Invalid item ID: " + index)
|
||||||
|
Item.itemsList(index)
|
||||||
|
}
|
||||||
|
|
||||||
|
private def cartesianProduct[T](xss: List[List[T]]): List[List[T]] = xss match {
|
||||||
|
case Nil => List(Nil)
|
||||||
|
case h :: t => for (xh <- h; xt <- cartesianProduct(t)) yield xh :: xt
|
||||||
|
}
|
||||||
|
|
||||||
|
private class RecipeException(message: String) extends RuntimeException(message)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -91,6 +91,7 @@ class Settings(config: Config) {
|
|||||||
val ratioThermalExpansion = config.getDouble("power.ratioThermalExpansion").toFloat
|
val ratioThermalExpansion = config.getDouble("power.ratioThermalExpansion").toFloat
|
||||||
val chargeRate = config.getDouble("power.chargerChargeRate")
|
val chargeRate = config.getDouble("power.chargerChargeRate")
|
||||||
val generatorEfficiency = config.getDouble("power.generatorEfficiency")
|
val generatorEfficiency = config.getDouble("power.generatorEfficiency")
|
||||||
|
val solarGeneratorEfficiency = config.getDouble("power.solarGeneratorEfficiency")
|
||||||
|
|
||||||
// power.buffer
|
// power.buffer
|
||||||
val bufferCapacitor = config.getDouble("power.buffer.capacitor") max 0
|
val bufferCapacitor = config.getDouble("power.buffer.capacitor") max 0
|
||||||
|
@ -13,7 +13,7 @@ import org.lwjgl.opengl.GL11
|
|||||||
object UpgradeRenderer extends IItemRenderer {
|
object UpgradeRenderer extends IItemRenderer {
|
||||||
def handleRenderType(item: ItemStack, renderType: ItemRenderType) = {
|
def handleRenderType(item: ItemStack, renderType: ItemRenderType) = {
|
||||||
Items.multi.subItem(item) match {
|
Items.multi.subItem(item) match {
|
||||||
case Some(subItem) if subItem == Items.generator || subItem == Items.crafting => renderType == ItemRenderType.EQUIPPED
|
case Some(subItem) if subItem == Items.upgradeGenerator || subItem == Items.upgradeCrafting => renderType == ItemRenderType.EQUIPPED
|
||||||
case _ => false
|
case _ => false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -31,7 +31,7 @@ object UpgradeRenderer extends IItemRenderer {
|
|||||||
GL11.glTranslatef(0.5f, 0.5f, 0.5f)
|
GL11.glTranslatef(0.5f, 0.5f, 0.5f)
|
||||||
|
|
||||||
Items.multi.subItem(stack) match {
|
Items.multi.subItem(stack) match {
|
||||||
case Some(subItem) if subItem == Items.crafting =>
|
case Some(subItem) if subItem == Items.upgradeCrafting =>
|
||||||
// TODO display list?
|
// TODO display list?
|
||||||
val b = AxisAlignedBB.getAABBPool.getAABB(0.4, 0.2, 0.64, 0.6, 0.4, 0.84)
|
val b = AxisAlignedBB.getAABBPool.getAABB(0.4, 0.2, 0.64, 0.6, 0.4, 0.84)
|
||||||
tm.bindTexture(new ResourceLocation(Settings.resourceDomain, "textures/items/upgrade_crafting_equipped.png"))
|
tm.bindTexture(new ResourceLocation(Settings.resourceDomain, "textures/items/upgrade_crafting_equipped.png"))
|
||||||
@ -71,7 +71,7 @@ object UpgradeRenderer extends IItemRenderer {
|
|||||||
t.addVertexWithUV(b.minX, b.minY, b.minZ, 0.5, 1)
|
t.addVertexWithUV(b.minX, b.minY, b.minZ, 0.5, 1)
|
||||||
t.setNormal(-1, 0, 0)
|
t.setNormal(-1, 0, 0)
|
||||||
t.draw()
|
t.draw()
|
||||||
case Some(subItem) if subItem == Items.generator =>
|
case Some(subItem) if subItem == Items.upgradeGenerator =>
|
||||||
// TODO display lists?
|
// TODO display lists?
|
||||||
val onOffset = if (Item.dataTag(stack).getInteger("remainingTicks") > 0) 0.5 else 0
|
val onOffset = if (Item.dataTag(stack).getInteger("remainingTicks") > 0) 0.5 else 0
|
||||||
val b = AxisAlignedBB.getAABBPool.getAABB(0.4, 0.2, 0.16, 0.6, 0.4, 0.36)
|
val b = AxisAlignedBB.getAABBPool.getAABB(0.4, 0.2, 0.16, 0.6, 0.4, 0.36)
|
||||||
|
@ -27,12 +27,15 @@ class Proxy {
|
|||||||
api.Driver.add(driver.block.CommandBlock)
|
api.Driver.add(driver.block.CommandBlock)
|
||||||
api.Driver.add(driver.block.NoteBlock)
|
api.Driver.add(driver.block.NoteBlock)
|
||||||
|
|
||||||
api.Driver.add(driver.item.Crafting)
|
api.Driver.add(driver.item.UpgradeCrafting)
|
||||||
api.Driver.add(driver.item.FileSystem)
|
api.Driver.add(driver.item.FileSystem)
|
||||||
api.Driver.add(driver.item.Generator)
|
api.Driver.add(driver.item.UpgradeGenerator)
|
||||||
|
api.Driver.add(driver.item.SolarGenerator)
|
||||||
api.Driver.add(driver.item.GraphicsCard)
|
api.Driver.add(driver.item.GraphicsCard)
|
||||||
|
api.Driver.add(driver.item.UpgradeNavigation)
|
||||||
api.Driver.add(driver.item.Memory)
|
api.Driver.add(driver.item.Memory)
|
||||||
api.Driver.add(driver.item.NetworkCard)
|
api.Driver.add(driver.item.NetworkCard)
|
||||||
|
api.Driver.add(driver.item.UpgradeSign)
|
||||||
api.Driver.add(driver.item.RedstoneCard)
|
api.Driver.add(driver.item.RedstoneCard)
|
||||||
api.Driver.add(driver.item.WirelessNetworkCard)
|
api.Driver.add(driver.item.WirelessNetworkCard)
|
||||||
|
|
||||||
|
@ -1,14 +1,23 @@
|
|||||||
package li.cil.oc.common.item
|
package li.cil.oc.common.item
|
||||||
|
|
||||||
import cpw.mods.fml.common.Loader
|
import cpw.mods.fml.common.Loader
|
||||||
|
import java.util
|
||||||
import li.cil.oc.Settings
|
import li.cil.oc.Settings
|
||||||
|
import li.cil.oc.util.Tooltip
|
||||||
import net.minecraft.client.renderer.texture.IconRegister
|
import net.minecraft.client.renderer.texture.IconRegister
|
||||||
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
|
||||||
class IronNugget(val parent: Delegator) extends Delegate {
|
class IronNugget(val parent: Delegator) extends Delegate {
|
||||||
val unlocalizedName = "IronNugget"
|
val unlocalizedName = "IronNugget"
|
||||||
|
|
||||||
override val showInItemList = !Loader.isModLoaded("gregtech_addon")
|
override val showInItemList = !Loader.isModLoaded("gregtech_addon")
|
||||||
|
|
||||||
|
override def tooltipLines(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||||
|
tooltip.addAll(Tooltip.get(unlocalizedName))
|
||||||
|
super.tooltipLines(stack, player, tooltip, advanced)
|
||||||
|
}
|
||||||
|
|
||||||
override def registerIcons(iconRegister: IconRegister) = {
|
override def registerIcons(iconRegister: IconRegister) = {
|
||||||
super.registerIcons(iconRegister)
|
super.registerIcons(iconRegister)
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@ import net.minecraft.client.renderer.texture.IconRegister
|
|||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.item.{EnumRarity, ItemStack}
|
import net.minecraft.item.{EnumRarity, ItemStack}
|
||||||
|
|
||||||
class Crafting(val parent: Delegator) extends Delegate {
|
class UpgradeCrafting(val parent: Delegator) extends Delegate {
|
||||||
val unlocalizedName = "Crafting"
|
val unlocalizedName = "UpgradeCrafting"
|
||||||
|
|
||||||
override def rarity = EnumRarity.epic
|
override def rarity = EnumRarity.epic
|
||||||
|
|
@ -7,8 +7,8 @@ import net.minecraft.client.renderer.texture.IconRegister
|
|||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraft.item.{EnumRarity, ItemStack}
|
import net.minecraft.item.{EnumRarity, ItemStack}
|
||||||
|
|
||||||
class Generator(val parent: Delegator) extends Delegate {
|
class UpgradeGenerator(val parent: Delegator) extends Delegate {
|
||||||
val unlocalizedName = "Generator"
|
val unlocalizedName = "UpgradeGenerator"
|
||||||
|
|
||||||
override def rarity = EnumRarity.epic
|
override def rarity = EnumRarity.epic
|
||||||
|
|
25
li/cil/oc/common/item/UpgradeNavigation.scala
Normal file
25
li/cil/oc/common/item/UpgradeNavigation.scala
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package li.cil.oc.common.item
|
||||||
|
|
||||||
|
import java.util
|
||||||
|
import li.cil.oc.Settings
|
||||||
|
import li.cil.oc.util.Tooltip
|
||||||
|
import net.minecraft.client.renderer.texture.IconRegister
|
||||||
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
|
import net.minecraft.item.{EnumRarity, ItemStack}
|
||||||
|
|
||||||
|
class UpgradeNavigation(val parent: Delegator) extends Delegate {
|
||||||
|
val unlocalizedName = "UpgradeNavigation"
|
||||||
|
|
||||||
|
override def rarity = EnumRarity.epic
|
||||||
|
|
||||||
|
override def tooltipLines(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||||
|
tooltip.addAll(Tooltip.get(unlocalizedName))
|
||||||
|
super.tooltipLines(stack, player, tooltip, advanced)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def registerIcons(iconRegister: IconRegister) = {
|
||||||
|
super.registerIcons(iconRegister)
|
||||||
|
|
||||||
|
icon = iconRegister.registerIcon(Settings.resourceDomain + ":upgrade_navigation")
|
||||||
|
}
|
||||||
|
}
|
25
li/cil/oc/common/item/UpgradeSign.scala
Normal file
25
li/cil/oc/common/item/UpgradeSign.scala
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package li.cil.oc.common.item
|
||||||
|
|
||||||
|
import java.util
|
||||||
|
import li.cil.oc.Settings
|
||||||
|
import li.cil.oc.util.Tooltip
|
||||||
|
import net.minecraft.client.renderer.texture.IconRegister
|
||||||
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
|
import net.minecraft.item.{EnumRarity, ItemStack}
|
||||||
|
|
||||||
|
class UpgradeSign(val parent: Delegator) extends Delegate {
|
||||||
|
val unlocalizedName = "UpgradeSign"
|
||||||
|
|
||||||
|
override def rarity = EnumRarity.epic
|
||||||
|
|
||||||
|
override def tooltipLines(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||||
|
tooltip.addAll(Tooltip.get(unlocalizedName))
|
||||||
|
super.tooltipLines(stack, player, tooltip, advanced)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def registerIcons(iconRegister: IconRegister) = {
|
||||||
|
super.registerIcons(iconRegister)
|
||||||
|
|
||||||
|
icon = iconRegister.registerIcon(Settings.resourceDomain + ":upgrade_sign")
|
||||||
|
}
|
||||||
|
}
|
25
li/cil/oc/common/item/UpgradeSolarGenerator.scala
Normal file
25
li/cil/oc/common/item/UpgradeSolarGenerator.scala
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package li.cil.oc.common.item
|
||||||
|
|
||||||
|
import java.util
|
||||||
|
import li.cil.oc.Settings
|
||||||
|
import li.cil.oc.util.Tooltip
|
||||||
|
import net.minecraft.client.renderer.texture.IconRegister
|
||||||
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
|
import net.minecraft.item.{EnumRarity, ItemStack}
|
||||||
|
|
||||||
|
class UpgradeSolarGenerator(val parent: Delegator) extends Delegate {
|
||||||
|
val unlocalizedName = "UpgradeSolarGenerator"
|
||||||
|
|
||||||
|
override def rarity = EnumRarity.epic
|
||||||
|
|
||||||
|
override def tooltipLines(stack: ItemStack, player: EntityPlayer, tooltip: util.List[String], advanced: Boolean) {
|
||||||
|
tooltip.addAll(Tooltip.get(unlocalizedName, (Settings.get.solarGeneratorEfficiency * 100).toInt))
|
||||||
|
super.tooltipLines(stack, player, tooltip, advanced)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def registerIcons(iconRegister: IconRegister) = {
|
||||||
|
super.registerIcons(iconRegister)
|
||||||
|
|
||||||
|
icon = iconRegister.registerIcon(Settings.resourceDomain + ":upgrade_solar_generator")
|
||||||
|
}
|
||||||
|
}
|
@ -12,7 +12,7 @@ import net.minecraftforge.common.MinecraftForge
|
|||||||
import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent
|
import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent
|
||||||
import scala.collection.mutable
|
import scala.collection.mutable
|
||||||
|
|
||||||
class Crafting(val owner: MCTileEntity) extends ManagedComponent {
|
class UpgradeCrafting(val owner: MCTileEntity) extends ManagedComponent {
|
||||||
val node = api.Network.newNode(this, Visibility.Network).
|
val node = api.Network.newNode(this, Visibility.Network).
|
||||||
withComponent("crafting").
|
withComponent("crafting").
|
||||||
create()
|
create()
|
@ -9,7 +9,7 @@ import net.minecraft.nbt.NBTTagCompound
|
|||||||
import net.minecraft.tileentity.{TileEntity => MCTileEntity, TileEntityFurnace}
|
import net.minecraft.tileentity.{TileEntity => MCTileEntity, TileEntityFurnace}
|
||||||
import scala.Some
|
import scala.Some
|
||||||
|
|
||||||
class Generator(val owner: MCTileEntity) extends ManagedComponent {
|
class UpgradeGenerator(val owner: MCTileEntity) extends ManagedComponent {
|
||||||
val node = api.Network.newNode(this, Visibility.Network).
|
val node = api.Network.newNode(this, Visibility.Network).
|
||||||
withComponent("generator", Visibility.Neighbors).
|
withComponent("generator", Visibility.Neighbors).
|
||||||
withConnector().
|
withConnector().
|
33
li/cil/oc/server/component/UpgradeNavigation.scala
Normal file
33
li/cil/oc/server/component/UpgradeNavigation.scala
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package li.cil.oc.server.component
|
||||||
|
|
||||||
|
import li.cil.oc.api
|
||||||
|
import li.cil.oc.api.network._
|
||||||
|
import li.cil.oc.util.RotationHelper
|
||||||
|
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
||||||
|
|
||||||
|
class UpgradeNavigation(val owner: MCTileEntity, val xCenter: Int, val zCenter: Int, val size: Int) extends ManagedComponent {
|
||||||
|
val node = api.Network.newNode(this, Visibility.Network).
|
||||||
|
withComponent("navigation", Visibility.Neighbors).
|
||||||
|
create()
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
@LuaCallback("getPosition")
|
||||||
|
def getPosition(context: RobotContext, args: Arguments): Array[AnyRef] = {
|
||||||
|
val x = owner.xCoord
|
||||||
|
val z = owner.zCoord
|
||||||
|
val y = owner.yCoord
|
||||||
|
val relativeX = x - xCenter
|
||||||
|
val relativeY = z - zCenter
|
||||||
|
|
||||||
|
if (math.abs(relativeX) <= size / 2 && math.abs(relativeY) <= size / 2)
|
||||||
|
result(relativeX, relativeY, y)
|
||||||
|
else
|
||||||
|
result(Unit, "out of range")
|
||||||
|
}
|
||||||
|
|
||||||
|
@LuaCallback("getFacing")
|
||||||
|
def getFacing(context: RobotContext, args: Arguments): Array[AnyRef] = {
|
||||||
|
result(RotationHelper.fromYaw(context.player().rotationYaw).ordinal())
|
||||||
|
}
|
||||||
|
}
|
40
li/cil/oc/server/component/UpgradeSign.scala
Normal file
40
li/cil/oc/server/component/UpgradeSign.scala
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
package li.cil.oc.server.component
|
||||||
|
|
||||||
|
import li.cil.oc.api
|
||||||
|
import li.cil.oc.api.network._
|
||||||
|
import li.cil.oc.util.RotationHelper
|
||||||
|
import net.minecraft.tileentity.{TileEntity => MCTileEntity, TileEntitySign}
|
||||||
|
|
||||||
|
class UpgradeSign(val owner: MCTileEntity) extends ManagedComponent {
|
||||||
|
val node = api.Network.newNode(this, Visibility.Network).
|
||||||
|
withComponent("sign", Visibility.Neighbors).
|
||||||
|
withConnector().
|
||||||
|
create()
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
@LuaCallback("getValue")
|
||||||
|
def read(context: RobotContext, args: Arguments): Array[AnyRef] = {
|
||||||
|
val player = context.player()
|
||||||
|
val facing = RotationHelper.fromYaw(player.rotationYaw)
|
||||||
|
owner.getWorldObj.getBlockTileEntity(owner.xCoord + facing.offsetX, owner.yCoord + facing.offsetY, owner.zCoord + facing.offsetZ) match {
|
||||||
|
case sign: TileEntitySign => result(sign.signText.mkString("\n"))
|
||||||
|
case _ => result(Unit, "no sign")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@LuaCallback("setValue")
|
||||||
|
def write(context: RobotContext, args: Arguments): Array[AnyRef] = {
|
||||||
|
val text = args.checkString(0).lines.padTo(4, "").map(line => if (line.size > 15) line.substring(0, 15) else line)
|
||||||
|
val player = context.player()
|
||||||
|
val facing = RotationHelper.fromYaw(player.rotationYaw)
|
||||||
|
val (sx, sy, sz) = (owner.xCoord + facing.offsetX, owner.yCoord + facing.offsetY, owner.zCoord + facing.offsetZ)
|
||||||
|
owner.getWorldObj.getBlockTileEntity(sx, sy, sz) match {
|
||||||
|
case sign: TileEntitySign =>
|
||||||
|
text.copyToArray(sign.signText)
|
||||||
|
owner.getWorldObj.markBlockForUpdate(sx, sy, sz)
|
||||||
|
result(sign.signText.mkString("\n"))
|
||||||
|
case _ => result(Unit, "no sign")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
44
li/cil/oc/server/component/UpgradeSolarGenerator.scala
Normal file
44
li/cil/oc/server/component/UpgradeSolarGenerator.scala
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
package li.cil.oc.server.component
|
||||||
|
|
||||||
|
import li.cil.oc.api.network.Visibility
|
||||||
|
import li.cil.oc.{Settings, api}
|
||||||
|
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
||||||
|
import net.minecraft.world.World
|
||||||
|
import net.minecraft.world.biome.BiomeGenDesert
|
||||||
|
|
||||||
|
class UpgradeSolarGenerator(val owner: MCTileEntity) extends ManagedComponent {
|
||||||
|
val node = api.Network.newNode(this, Visibility.Network).
|
||||||
|
withConnector().
|
||||||
|
create()
|
||||||
|
|
||||||
|
var ticksUntilCheck = 0
|
||||||
|
|
||||||
|
var isSunShining = false
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
|
override val canUpdate = true
|
||||||
|
|
||||||
|
override def update() {
|
||||||
|
super.update()
|
||||||
|
|
||||||
|
ticksUntilCheck -= 1
|
||||||
|
if (ticksUntilCheck <= 0) {
|
||||||
|
ticksUntilCheck = 100
|
||||||
|
val world = owner.getWorldObj
|
||||||
|
val x = owner.xCoord
|
||||||
|
val y = owner.yCoord
|
||||||
|
val z = owner.zCoord
|
||||||
|
isSunShining = isSunVisible(world, x, y + 1, z)
|
||||||
|
}
|
||||||
|
if (isSunShining) {
|
||||||
|
node.changeBuffer(Settings.get.ratioBuildCraft * Settings.get.solarGeneratorEfficiency)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private def isSunVisible(world: World, x: Int, y: Int, z: Int): Boolean =
|
||||||
|
world.isDaytime &&
|
||||||
|
(!world.provider.hasNoSky) &&
|
||||||
|
world.canBlockSeeTheSky(x, y, z) &&
|
||||||
|
(world.getWorldChunkManager.getBiomeGenAt(x, z).isInstanceOf[BiomeGenDesert] || (!world.isRaining && !world.isThundering))
|
||||||
|
}
|
15
li/cil/oc/server/driver/item/SolarGenerator.scala
Normal file
15
li/cil/oc/server/driver/item/SolarGenerator.scala
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package li.cil.oc.server.driver.item
|
||||||
|
|
||||||
|
import li.cil.oc.Items
|
||||||
|
import li.cil.oc.api.driver.Slot
|
||||||
|
import li.cil.oc.server.component
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
||||||
|
|
||||||
|
object SolarGenerator extends Item {
|
||||||
|
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.upgradeSolarGenerator)
|
||||||
|
|
||||||
|
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = new component.UpgradeSolarGenerator(container)
|
||||||
|
|
||||||
|
override def slot(stack: ItemStack) = Slot.Upgrade
|
||||||
|
}
|
@ -6,10 +6,10 @@ import li.cil.oc.server.component
|
|||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
||||||
|
|
||||||
object Generator extends Item {
|
object UpgradeCrafting extends Item {
|
||||||
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.generator)
|
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.upgradeCrafting)
|
||||||
|
|
||||||
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = new component.Generator(container)
|
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = new component.UpgradeCrafting(container)
|
||||||
|
|
||||||
override def slot(stack: ItemStack) = Slot.Upgrade
|
override def slot(stack: ItemStack) = Slot.Upgrade
|
||||||
}
|
}
|
15
li/cil/oc/server/driver/item/UpgradeGenerator.scala
Normal file
15
li/cil/oc/server/driver/item/UpgradeGenerator.scala
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package li.cil.oc.server.driver.item
|
||||||
|
|
||||||
|
import li.cil.oc.Items
|
||||||
|
import li.cil.oc.api.driver.Slot
|
||||||
|
import li.cil.oc.server.component
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
||||||
|
|
||||||
|
object UpgradeGenerator extends Item {
|
||||||
|
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.upgradeGenerator)
|
||||||
|
|
||||||
|
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = new component.UpgradeGenerator(container)
|
||||||
|
|
||||||
|
override def slot(stack: ItemStack) = Slot.Upgrade
|
||||||
|
}
|
25
li/cil/oc/server/driver/item/UpgradeNavigation.scala
Normal file
25
li/cil/oc/server/driver/item/UpgradeNavigation.scala
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package li.cil.oc.server.driver.item
|
||||||
|
|
||||||
|
import li.cil.oc.api.driver.Slot
|
||||||
|
import li.cil.oc.server.component
|
||||||
|
import li.cil.oc.server.driver.Registry
|
||||||
|
import li.cil.oc.{Settings, Items}
|
||||||
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
||||||
|
|
||||||
|
object UpgradeNavigation extends Item {
|
||||||
|
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.upgradeNavigation)
|
||||||
|
|
||||||
|
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = {
|
||||||
|
val nbt = Registry.driverFor(stack) match {
|
||||||
|
case Some(driver) => driver.dataTag(stack)
|
||||||
|
case _ => null
|
||||||
|
}
|
||||||
|
val x = if (nbt.hasKey(Settings.namespace + "xCenter")) nbt.getInteger(Settings.namespace + "xCenter") else container.xCoord
|
||||||
|
val z = if (nbt.hasKey(Settings.namespace + "zCenter")) nbt.getInteger(Settings.namespace + "zCenter") else container.zCoord
|
||||||
|
val size = if (nbt.hasKey(Settings.namespace + "scale")) nbt.getInteger(Settings.namespace + "scale") else 512
|
||||||
|
new component.UpgradeNavigation(container, x, z, size)
|
||||||
|
}
|
||||||
|
|
||||||
|
override def slot(stack: ItemStack) = Slot.Upgrade
|
||||||
|
}
|
@ -6,10 +6,10 @@ import li.cil.oc.server.component
|
|||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
||||||
|
|
||||||
object Crafting extends Item {
|
object UpgradeSign extends Item {
|
||||||
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.crafting)
|
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.upgradeSign)
|
||||||
|
|
||||||
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = new component.Crafting(container)
|
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = new component.UpgradeSign(container)
|
||||||
|
|
||||||
override def slot(stack: ItemStack) = Slot.Upgrade
|
override def slot(stack: ItemStack) = Slot.Upgrade
|
||||||
}
|
}
|
14
li/cil/oc/util/RotationHelper.scala
Normal file
14
li/cil/oc/util/RotationHelper.scala
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package li.cil.oc.util
|
||||||
|
|
||||||
|
import net.minecraftforge.common.ForgeDirection
|
||||||
|
|
||||||
|
object RotationHelper {
|
||||||
|
def fromYaw(yaw: Float) = {
|
||||||
|
(yaw / 360 * 4).round & 3 match {
|
||||||
|
case 0 => ForgeDirection.SOUTH
|
||||||
|
case 1 => ForgeDirection.WEST
|
||||||
|
case 2 => ForgeDirection.NORTH
|
||||||
|
case 3 => ForgeDirection.EAST
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -363,6 +363,12 @@ opencomputers {
|
|||||||
# default.
|
# default.
|
||||||
generatorEfficiency: 0.8
|
generatorEfficiency: 0.8
|
||||||
|
|
||||||
|
# The energy efficiency of the solar generator upgrade. At 1.0 this will
|
||||||
|
# generate as much energy as you'd get by burning fuel in a BuildCraft
|
||||||
|
# Stirling Engine . To discourage fully autonomous robots the efficiency
|
||||||
|
# of solar generators is greatly reduced by default.
|
||||||
|
solarGeneratorEfficiency: 0.2
|
||||||
|
|
||||||
# Default "buffer" sizes, i.e. how much energy certain blocks can store.
|
# Default "buffer" sizes, i.e. how much energy certain blocks can store.
|
||||||
buffer {
|
buffer {
|
||||||
# The amount of energy a single capacitor can store.
|
# The amount of energy a single capacitor can store.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user