Merge branch 'master' of github.com:MightyPirates/OpenComputers into MC1.7
Conflicts: src/main/scala/li/cil/oc/Settings.scala src/main/scala/li/cil/oc/util/ItemCosts.scala
@ -9,6 +9,7 @@ oc:tile.Capacitor.name=Kondensator
|
|||||||
oc:tile.Case0.name=Computergehäuse (Stufe 1)
|
oc:tile.Case0.name=Computergehäuse (Stufe 1)
|
||||||
oc:tile.Case1.name=Computergehäuse (Stufe 2)
|
oc:tile.Case1.name=Computergehäuse (Stufe 2)
|
||||||
oc:tile.Case2.name=Computergehäuse (Stufe 3)
|
oc:tile.Case2.name=Computergehäuse (Stufe 3)
|
||||||
|
oc:tile.Case3.name=Computergehäuse (Creative)
|
||||||
oc:tile.Charger.name=Ladestation
|
oc:tile.Charger.name=Ladestation
|
||||||
oc:tile.DiskDrive.name=Diskettenlaufwerk
|
oc:tile.DiskDrive.name=Diskettenlaufwerk
|
||||||
oc:tile.Keyboard.name=Tastatur
|
oc:tile.Keyboard.name=Tastatur
|
||||||
@ -51,10 +52,11 @@ oc:item.InternetCard.name=Internetkarte
|
|||||||
oc:item.Interweb.name=Interweb
|
oc:item.Interweb.name=Interweb
|
||||||
oc:item.IronNugget.name=Eisennugget
|
oc:item.IronNugget.name=Eisennugget
|
||||||
oc:item.Memory0.name=Speicher (Stufe 1)
|
oc:item.Memory0.name=Speicher (Stufe 1)
|
||||||
oc:item.Memory1.name=Speicher (Stufe 2)
|
oc:item.Memory1.name=Speicher (Stufe 1.5)
|
||||||
oc:item.Memory2.name=Speicher (Stufe 2.5)
|
oc:item.Memory2.name=Speicher (Stufe 2)
|
||||||
oc:item.Memory3.name=Speicher (Stufe 3)
|
oc:item.Memory3.name=Speicher (Stufe 2.5)
|
||||||
oc:item.Memory4.name=Speicher (Stufe 3.5)
|
oc:item.Memory4.name=Speicher (Stufe 3)
|
||||||
|
oc:item.Memory5.name=Speicher (Stufe 3.5)
|
||||||
oc:item.Microchip0.name=Microchip (Stufe 1)
|
oc:item.Microchip0.name=Microchip (Stufe 1)
|
||||||
oc:item.Microchip1.name=Microchip (Stufe 2)
|
oc:item.Microchip1.name=Microchip (Stufe 2)
|
||||||
oc:item.Microchip2.name=Microchip (Stufe 3)
|
oc:item.Microchip2.name=Microchip (Stufe 3)
|
||||||
|
@ -9,6 +9,7 @@ oc:tile.Capacitor.name=Capacitor
|
|||||||
oc:tile.Case0.name=Computer Case (Tier 1)
|
oc:tile.Case0.name=Computer Case (Tier 1)
|
||||||
oc:tile.Case1.name=Computer Case (Tier 2)
|
oc:tile.Case1.name=Computer Case (Tier 2)
|
||||||
oc:tile.Case2.name=Computer Case (Tier 3)
|
oc:tile.Case2.name=Computer Case (Tier 3)
|
||||||
|
oc:tile.Case3.name=Computer Case (Creative)
|
||||||
oc:tile.Charger.name=Charger
|
oc:tile.Charger.name=Charger
|
||||||
oc:tile.DiskDrive.name=Disk Drive
|
oc:tile.DiskDrive.name=Disk Drive
|
||||||
oc:tile.Keyboard.name=Keyboard
|
oc:tile.Keyboard.name=Keyboard
|
||||||
@ -51,10 +52,11 @@ oc:item.InternetCard.name=Internet Card
|
|||||||
oc:item.Interweb.name=Interweb
|
oc:item.Interweb.name=Interweb
|
||||||
oc:item.IronNugget.name=Iron Nugget
|
oc:item.IronNugget.name=Iron Nugget
|
||||||
oc:item.Memory0.name=Memory (Tier 1)
|
oc:item.Memory0.name=Memory (Tier 1)
|
||||||
oc:item.Memory1.name=Memory (Tier 2)
|
oc:item.Memory1.name=Memory (Tier 1.5)
|
||||||
oc:item.Memory2.name=Memory (Tier 2.5)
|
oc:item.Memory2.name=Memory (Tier 2)
|
||||||
oc:item.Memory3.name=Memory (Tier 3)
|
oc:item.Memory3.name=Memory (Tier 2.5)
|
||||||
oc:item.Memory4.name=Memory (Tier 3.5)
|
oc:item.Memory4.name=Memory (Tier 3)
|
||||||
|
oc:item.Memory5.name=Memory (Tier 3.5)
|
||||||
oc:item.Microchip0.name=Microchip (Tier 1)
|
oc:item.Microchip0.name=Microchip (Tier 1)
|
||||||
oc:item.Microchip1.name=Microchip (Tier 2)
|
oc:item.Microchip1.name=Microchip (Tier 2)
|
||||||
oc:item.Microchip2.name=Microchip (Tier 3)
|
oc:item.Microchip2.name=Microchip (Tier 3)
|
||||||
|
@ -41,10 +41,11 @@ oc:item.HardDiskDrive1.name=Disque dur (Niveau 2)
|
|||||||
oc:item.HardDiskDrive2.name=Disque dur (Niveau 3)
|
oc:item.HardDiskDrive2.name=Disque dur (Niveau 3)
|
||||||
oc:item.IronNugget.name=Pépite de fer
|
oc:item.IronNugget.name=Pépite de fer
|
||||||
oc:item.Memory0.name=Mémoire (Niveau 1)
|
oc:item.Memory0.name=Mémoire (Niveau 1)
|
||||||
oc:item.Memory1.name=Mémoire (Niveau 2)
|
oc:item.Memory1.name=Mémoire (Niveau 1.5)
|
||||||
oc:item.Memory2.name=Mémoire (Niveau 2.5)
|
oc:item.Memory2.name=Mémoire (Niveau 2)
|
||||||
oc:item.Memory3.name=Mémoire (Niveau 3)
|
oc:item.Memory3.name=Mémoire (Niveau 2.5)
|
||||||
oc:item.Memory4.name=Mémoire (Niveau 3.5)
|
oc:item.Memory4.name=Mémoire (Niveau 3)
|
||||||
|
oc:item.Memory5.name=Mémoire (Niveau 3.5)
|
||||||
oc:item.Microchip0.name=Puce électronique (Niveau 1)
|
oc:item.Microchip0.name=Puce électronique (Niveau 1)
|
||||||
oc:item.Microchip1.name=Puce électronique (Niveau 2)
|
oc:item.Microchip1.name=Puce électronique (Niveau 2)
|
||||||
oc:item.Microchip2.name=Puce électronique (Niveau 3)
|
oc:item.Microchip2.name=Puce électronique (Niveau 3)
|
||||||
|
@ -51,10 +51,11 @@ oc:item.InternetCard.name=Интернет-плата
|
|||||||
oc:item.Interweb.name=Интерсеть
|
oc:item.Interweb.name=Интерсеть
|
||||||
oc:item.IronNugget.name=Железный самородок
|
oc:item.IronNugget.name=Железный самородок
|
||||||
oc:item.Memory0.name=ОЗУ (Ур. 1)
|
oc:item.Memory0.name=ОЗУ (Ур. 1)
|
||||||
oc:item.Memory1.name=ОЗУ (Ур. 2)
|
oc:item.Memory1.name=ОЗУ (Ур. 1.5)
|
||||||
oc:item.Memory2.name=ОЗУ (Ур. 2.5)
|
oc:item.Memory2.name=ОЗУ (Ур. 2)
|
||||||
oc:item.Memory3.name=ОЗУ (Ур. 3)
|
oc:item.Memory3.name=ОЗУ (Ур. 2.5)
|
||||||
oc:item.Memory4.name=ОЗУ (Ур. 3.5)
|
oc:item.Memory4.name=ОЗУ (Ур. 3)
|
||||||
|
oc:item.Memory5.name=ОЗУ (Ур. 3.5)
|
||||||
oc:item.Microchip0.name=Микрочип (Ур. 1)
|
oc:item.Microchip0.name=Микрочип (Ур. 1)
|
||||||
oc:item.Microchip1.name=Микрочип (Ур. 2)
|
oc:item.Microchip1.name=Микрочип (Ур. 2)
|
||||||
oc:item.Microchip2.name=Микрочип (Ур. 3)
|
oc:item.Microchip2.name=Микрочип (Ур. 3)
|
||||||
|
@ -48,10 +48,11 @@ oc:item.HardDiskDrive2.name=硬碟機 (3級)
|
|||||||
oc:item.InternetCard.name=上網卡
|
oc:item.InternetCard.name=上網卡
|
||||||
oc:item.IronNugget.name=鐵粒
|
oc:item.IronNugget.name=鐵粒
|
||||||
oc:item.Memory0.name=記憶卡 (1級)
|
oc:item.Memory0.name=記憶卡 (1級)
|
||||||
oc:item.Memory1.name=記憶卡 (2級)
|
oc:item.Memory1.name=記憶卡 (1.5級)
|
||||||
oc:item.Memory2.name=記憶卡 (2.5級)
|
oc:item.Memory2.name=記憶卡 (2級)
|
||||||
oc:item.Memory3.name=記憶卡 (3級)
|
oc:item.Memory3.name=記憶卡 (2.5級)
|
||||||
oc:item.Memory4.name=記憶卡 (3.5級)
|
oc:item.Memory4.name=記憶卡 (3級)
|
||||||
|
oc:item.Memory5.name=記憶卡 (3.5級)
|
||||||
oc:item.Microchip0.name=微晶片 (1級)
|
oc:item.Microchip0.name=微晶片 (1級)
|
||||||
oc:item.Microchip1.name=微晶片 (2級)
|
oc:item.Microchip1.name=微晶片 (2級)
|
||||||
oc:item.Microchip2.name=微晶片 (3級)
|
oc:item.Microchip2.name=微晶片 (3級)
|
||||||
|
@ -23,7 +23,9 @@ end
|
|||||||
|
|
||||||
local result, reason = component.gpu.setResolution(w, h)
|
local result, reason = component.gpu.setResolution(w, h)
|
||||||
if not result then
|
if not result then
|
||||||
io.stderr:write(reason)
|
if reason then -- otherwise we didn't change anything
|
||||||
|
io.stderr:write(reason)
|
||||||
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
term.clear()
|
term.clear()
|
@ -13,17 +13,17 @@ terminal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
server1 {
|
server1 {
|
||||||
input: [[obsidian, "oc:craftingRAMTier3", obsidian]
|
input: [[obsidian, "oc:craftingRAMTier4", obsidian]
|
||||||
["oc:circuitTier1", "oc:circuitTier2", "oc:circuitTier1"]
|
["oc:circuitTier1", "oc:circuitTier2", "oc:circuitTier1"]
|
||||||
[obsidian, "oc:craftingCircuitBoardPrinted", obsidian]]
|
[obsidian, "oc:craftingCircuitBoardPrinted", obsidian]]
|
||||||
}
|
}
|
||||||
server2 {
|
server2 {
|
||||||
input: [[obsidian, "oc:craftingRAMTier4", obsidian]
|
input: [[obsidian, "oc:craftingRAMTier5", obsidian]
|
||||||
["oc:circuitTier2", "oc:circuitTier3", "oc:circuitTier2"]
|
["oc:circuitTier2", "oc:circuitTier3", "oc:circuitTier2"]
|
||||||
[obsidian, "oc:craftingCircuitBoardPrinted", obsidian]]
|
[obsidian, "oc:craftingCircuitBoardPrinted", obsidian]]
|
||||||
}
|
}
|
||||||
server3 {
|
server3 {
|
||||||
input: [[obsidian, "oc:craftingRAMTier5", obsidian]
|
input: [[obsidian, "oc:craftingRAMTier6", obsidian]
|
||||||
["oc:circuitTier3", "oc:circuitTier3", "oc:circuitTier3"]
|
["oc:circuitTier3", "oc:circuitTier3", "oc:circuitTier3"]
|
||||||
[obsidian, "oc:craftingCircuitBoardPrinted", obsidian]]
|
[obsidian, "oc:craftingCircuitBoardPrinted", obsidian]]
|
||||||
}
|
}
|
||||||
@ -33,18 +33,22 @@ ram1 {
|
|||||||
["", "oc:craftingCircuitBoardPrinted", ""]]
|
["", "oc:craftingCircuitBoardPrinted", ""]]
|
||||||
}
|
}
|
||||||
ram2 {
|
ram2 {
|
||||||
input: [["oc:circuitTier2", "", "oc:circuitTier2"]
|
input: [["oc:circuitTier1", "oc:circuitTier1", "oc:circuitTier1"]
|
||||||
["", "oc:craftingCircuitBoardPrinted", ""]]
|
["", "oc:craftingCircuitBoardPrinted", ""]]
|
||||||
}
|
}
|
||||||
ram3 {
|
ram3 {
|
||||||
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
input: [["oc:circuitTier2", "", "oc:circuitTier2"]
|
||||||
["", "oc:craftingCircuitBoardPrinted", ""]]
|
["", "oc:craftingCircuitBoardPrinted", ""]]
|
||||||
}
|
}
|
||||||
ram4 {
|
ram4 {
|
||||||
input: [["oc:circuitTier3", "", "oc:circuitTier3"]
|
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
||||||
["", "oc:craftingCircuitBoardPrinted", ""]]
|
["", "oc:craftingCircuitBoardPrinted", ""]]
|
||||||
}
|
}
|
||||||
ram5 {
|
ram5 {
|
||||||
|
input: [["oc:circuitTier3", "", "oc:circuitTier3"]
|
||||||
|
["", "oc:craftingCircuitBoardPrinted", ""]]
|
||||||
|
}
|
||||||
|
ram6 {
|
||||||
input: [["oc:circuitTier3", "oc:circuitTier3", "oc:circuitTier3"]
|
input: [["oc:circuitTier3", "oc:circuitTier3", "oc:circuitTier3"]
|
||||||
["", "oc:craftingCircuitBoardPrinted", ""]]
|
["", "oc:craftingCircuitBoardPrinted", ""]]
|
||||||
}
|
}
|
||||||
@ -79,11 +83,11 @@ graphicsCard1 {
|
|||||||
["", "oc:craftingCard", ""]]
|
["", "oc:craftingCard", ""]]
|
||||||
}
|
}
|
||||||
graphicsCard2 {
|
graphicsCard2 {
|
||||||
input: [["oc:circuitTier2", "oc:craftingALU", "oc:craftingRAMTier2"]
|
input: [["oc:circuitTier2", "oc:craftingALU", "oc:craftingRAMTier3"]
|
||||||
["", "oc:craftingCard", ""]]
|
["", "oc:craftingCard", ""]]
|
||||||
}
|
}
|
||||||
graphicsCard3 {
|
graphicsCard3 {
|
||||||
input: [["oc:circuitTier3", "oc:craftingALU", "oc:craftingRAMTier4"]
|
input: [["oc:circuitTier3", "oc:craftingALU", "oc:craftingRAMTier5"]
|
||||||
["", "oc:craftingCard", ""]]
|
["", "oc:craftingCard", ""]]
|
||||||
}
|
}
|
||||||
internetCard {
|
internetCard {
|
||||||
|
@ -9,8 +9,18 @@ analyzer {
|
|||||||
[screwAluminium, craftingToolScrewdriver, screwAluminium]]
|
[screwAluminium, craftingToolScrewdriver, screwAluminium]]
|
||||||
}
|
}
|
||||||
|
|
||||||
server {
|
server1 {
|
||||||
input: [["oc:circuitTier3", "oc:craftingRAMTier4", "oc:circuitTier3"]
|
input: [["oc:circuitTier1", "oc:craftingRAMTier4", "oc:circuitTier1"]
|
||||||
|
["oc:circuitTier1", "oc:craftingCaseTier1", "oc:circuitTier2"]
|
||||||
|
[craftingToolScrewdriver, "oc:craftingCircuitBoardPrinted", craftingToolWrench]]
|
||||||
|
}
|
||||||
|
server2 {
|
||||||
|
input: [["oc:circuitTier2", "oc:craftingRAMTier5", "oc:circuitTier2"]
|
||||||
|
["oc:circuitTier3", "oc:craftingCaseTier2", "oc:circuitTier3"]
|
||||||
|
[craftingToolScrewdriver, "oc:craftingCircuitBoardPrinted", craftingToolWrench]]
|
||||||
|
}
|
||||||
|
server3 {
|
||||||
|
input: [["oc:circuitTier3", "oc:craftingRAMTier6", "oc:circuitTier3"]
|
||||||
["oc:circuitTier3", "oc:craftingCaseTier3", "oc:circuitTier3"]
|
["oc:circuitTier3", "oc:craftingCaseTier3", "oc:circuitTier3"]
|
||||||
[craftingToolScrewdriver, "oc:craftingCircuitBoardPrinted", craftingToolWrench]]
|
[craftingToolScrewdriver, "oc:craftingCircuitBoardPrinted", craftingToolWrench]]
|
||||||
}
|
}
|
||||||
@ -23,9 +33,9 @@ ram1 {
|
|||||||
time: 250
|
time: 250
|
||||||
}
|
}
|
||||||
ram2 {
|
ram2 {
|
||||||
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
input: [["oc:circuitTier1", "oc:circuitTier1", "oc:circuitTier1"]
|
||||||
["oc:craftingRAMTier1", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier1"]
|
["", "oc:craftingRAMTier1", ""]
|
||||||
[Dataorb, craftingToolWrench, Dataorb]]
|
["", craftingToolWrench, ""]]
|
||||||
}
|
}
|
||||||
ram3 {
|
ram3 {
|
||||||
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
||||||
@ -33,7 +43,7 @@ ram3 {
|
|||||||
[Dataorb, craftingToolWrench, Dataorb]]
|
[Dataorb, craftingToolWrench, Dataorb]]
|
||||||
}
|
}
|
||||||
ram4 {
|
ram4 {
|
||||||
input: [["oc:circuitTier3", "oc:circuitTier3", "oc:circuitTier3"]
|
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
||||||
["oc:craftingRAMTier3", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier3"]
|
["oc:craftingRAMTier3", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier3"]
|
||||||
[Dataorb, craftingToolWrench, Dataorb]]
|
[Dataorb, craftingToolWrench, Dataorb]]
|
||||||
}
|
}
|
||||||
@ -42,6 +52,11 @@ ram5 {
|
|||||||
["oc:craftingRAMTier4", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier4"]
|
["oc:craftingRAMTier4", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier4"]
|
||||||
[Dataorb, craftingToolWrench, Dataorb]]
|
[Dataorb, craftingToolWrench, Dataorb]]
|
||||||
}
|
}
|
||||||
|
ram6 {
|
||||||
|
input: [["oc:circuitTier3", "oc:circuitTier3", "oc:circuitTier3"]
|
||||||
|
["oc:craftingRAMTier5", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier5"]
|
||||||
|
[Dataorb, craftingToolWrench, Dataorb]]
|
||||||
|
}
|
||||||
|
|
||||||
floppy {
|
floppy {
|
||||||
input: [[screwAluminium, lever, screwAluminium]
|
input: [[screwAluminium, lever, screwAluminium]
|
||||||
@ -174,12 +189,12 @@ cpu0 {
|
|||||||
}
|
}
|
||||||
cpu1 {
|
cpu1 {
|
||||||
input: [["oc:circuitTier2", plateStainlessSteel, "oc:circuitTier2"]
|
input: [["oc:circuitTier2", plateStainlessSteel, "oc:circuitTier2"]
|
||||||
["oc:craftingRAMTier2", "oc:craftingCPUTier1", "oc:craftingRAMTier2"]
|
["oc:craftingRAMTier3", "oc:craftingCPUTier1", "oc:craftingRAMTier3"]
|
||||||
["oc:circuitTier2", craftingToolScrewdriver, "oc:circuitTier2"]]
|
["oc:circuitTier2", craftingToolScrewdriver, "oc:circuitTier2"]]
|
||||||
}
|
}
|
||||||
cpu2 {
|
cpu2 {
|
||||||
input: [["oc:circuitTier3", plateTitanium, "oc:circuitTier3"]
|
input: [["oc:circuitTier3", plateTitanium, "oc:circuitTier3"]
|
||||||
["oc:craftingRAMTier4", "oc:craftingCPUTier2", "oc:craftingRAMTier4"]
|
["oc:craftingRAMTier5", "oc:craftingCPUTier2", "oc:craftingRAMTier5"]
|
||||||
["oc:circuitTier3", craftingToolScrewdriver, "oc:circuitTier3"]]
|
["oc:circuitTier3", craftingToolScrewdriver, "oc:circuitTier3"]]
|
||||||
}
|
}
|
||||||
cu {
|
cu {
|
||||||
|
@ -15,17 +15,17 @@ terminal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
server1 {
|
server1 {
|
||||||
input: [["oc:circuitTier1", "oc:craftingRAMTier3", "oc:circuitTier1"]
|
input: [["oc:circuitTier1", "oc:craftingRAMTier4", "oc:circuitTier1"]
|
||||||
["oc:circuitTier2", "oc:craftingCaseTier1", "oc:circuitTier2"]
|
["oc:circuitTier2", "oc:craftingCaseTier1", "oc:circuitTier2"]
|
||||||
["oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted"]]
|
["oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted"]]
|
||||||
}
|
}
|
||||||
server2 {
|
server2 {
|
||||||
input: [["oc:circuitTier2", "oc:craftingRAMTier4", "oc:circuitTier2"]
|
input: [["oc:circuitTier2", "oc:craftingRAMTier5", "oc:circuitTier2"]
|
||||||
["oc:circuitTier3", "oc:craftingCaseTier2", "oc:circuitTier3"]
|
["oc:circuitTier3", "oc:craftingCaseTier2", "oc:circuitTier3"]
|
||||||
["oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted"]]
|
["oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted"]]
|
||||||
}
|
}
|
||||||
server3 {
|
server3 {
|
||||||
input: [["oc:circuitTier3", "oc:craftingRAMTier5", "oc:circuitTier3"]
|
input: [["oc:circuitTier3", "oc:craftingRAMTier6", "oc:circuitTier3"]
|
||||||
["oc:circuitTier3", "oc:craftingCaseTier3", "oc:circuitTier3"]
|
["oc:circuitTier3", "oc:craftingCaseTier3", "oc:circuitTier3"]
|
||||||
["oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted"]]
|
["oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted", "oc:craftingCircuitBoardPrinted"]]
|
||||||
}
|
}
|
||||||
@ -36,20 +36,24 @@ ram1 {
|
|||||||
}
|
}
|
||||||
ram2 {
|
ram2 {
|
||||||
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
||||||
["oc:craftingRAMTier1", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier1"]]
|
["", "oc:craftingRAMTier1", ""]]
|
||||||
}
|
}
|
||||||
ram3 {
|
ram3 {
|
||||||
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
||||||
["oc:craftingRAMTier2", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier2"]]
|
["oc:craftingRAMTier2", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier2"]]
|
||||||
}
|
}
|
||||||
ram4 {
|
ram4 {
|
||||||
input: [["oc:circuitTier3", "oc:circuitTier3", "oc:circuitTier3"]
|
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:circuitTier2"]
|
||||||
["oc:craftingRAMTier3", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier3"]]
|
["oc:craftingRAMTier3", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier3"]]
|
||||||
}
|
}
|
||||||
ram5 {
|
ram5 {
|
||||||
input: [["oc:circuitTier3", "oc:circuitTier3", "oc:circuitTier3"]
|
input: [["oc:circuitTier3", "oc:circuitTier3", "oc:circuitTier3"]
|
||||||
["oc:craftingRAMTier4", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier4"]]
|
["oc:craftingRAMTier4", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier4"]]
|
||||||
}
|
}
|
||||||
|
ram6 {
|
||||||
|
input: [["oc:circuitTier3", "oc:circuitTier3", "oc:circuitTier3"]
|
||||||
|
["oc:craftingRAMTier5", "oc:craftingCircuitBoardPrinted", "oc:craftingRAMTier5"]]
|
||||||
|
}
|
||||||
|
|
||||||
floppy {
|
floppy {
|
||||||
input: [[nuggetIron, lever, nuggetIron]
|
input: [[nuggetIron, lever, nuggetIron]
|
||||||
@ -81,11 +85,11 @@ graphicsCard1 {
|
|||||||
["", "oc:craftingCard", ""]]
|
["", "oc:craftingCard", ""]]
|
||||||
}
|
}
|
||||||
graphicsCard2 {
|
graphicsCard2 {
|
||||||
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:craftingRAMTier2"]
|
input: [["oc:circuitTier2", "oc:circuitTier2", "oc:craftingRAMTier3"]
|
||||||
["", "oc:craftingGPUTier1", ""]]
|
["", "oc:craftingGPUTier1", ""]]
|
||||||
}
|
}
|
||||||
graphicsCard3 {
|
graphicsCard3 {
|
||||||
input: [["oc:circuitTier3", "oc:circuitTier3", "oc:craftingRAMTier4"]
|
input: [["oc:circuitTier3", "oc:circuitTier3", "oc:craftingRAMTier5"]
|
||||||
["", "oc:craftingGPUTier2", ""]]
|
["", "oc:craftingGPUTier2", ""]]
|
||||||
}
|
}
|
||||||
internetCard {
|
internetCard {
|
||||||
@ -193,14 +197,14 @@ cpu0 {
|
|||||||
[nuggetIron, "oc:craftingALU", nuggetIron]]
|
[nuggetIron, "oc:craftingALU", nuggetIron]]
|
||||||
}
|
}
|
||||||
cpu1 {
|
cpu1 {
|
||||||
input: [[nuggetGold, "oc:craftingRAMTier2", nuggetGold]
|
input: [[nuggetGold, "oc:craftingRAMTier3", nuggetGold]
|
||||||
["oc:circuitTier2", "oc:craftingCPUTier1", "oc:circuitTier2"]
|
["oc:circuitTier2", "oc:craftingCPUTier1", "oc:circuitTier2"]
|
||||||
[nuggetGold, "oc:craftingRAMTier2", nuggetGold]]
|
[nuggetGold, "oc:craftingRAMTier3", nuggetGold]]
|
||||||
}
|
}
|
||||||
cpu2 {
|
cpu2 {
|
||||||
input: [[diamond, "oc:craftingRAMTier4", diamond]
|
input: [[diamond, "oc:craftingRAMTier5", diamond]
|
||||||
["oc:circuitTier3", "oc:craftingCPUTier2", "oc:circuitTier3"]
|
["oc:circuitTier3", "oc:craftingCPUTier2", "oc:circuitTier3"]
|
||||||
[diamond, "oc:craftingRAMTier4", diamond]]
|
[diamond, "oc:craftingRAMTier5", diamond]]
|
||||||
}
|
}
|
||||||
cu {
|
cu {
|
||||||
input: [[nuggetGold, torchRedstoneActive, nuggetGold]
|
input: [[nuggetGold, torchRedstoneActive, nuggetGold]
|
||||||
|
Before Width: | Height: | Size: 308 B After Width: | Height: | Size: 308 B |
Before Width: | Height: | Size: 322 B After Width: | Height: | Size: 300 B |
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 322 B |
Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 281 B |
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 323 B |
After Width: | Height: | Size: 281 B |
@ -96,12 +96,13 @@ opencomputers {
|
|||||||
# run in a low-priority worker thread, this should be barely noticeable.
|
# run in a low-priority worker thread, this should be barely noticeable.
|
||||||
activeGC: true
|
activeGC: true
|
||||||
|
|
||||||
# The sizes of the five levels of RAM, in kilobytes. This list must
|
# The sizes of the six levels of RAM, in kilobytes. This list must
|
||||||
# contain exactly five entries, or it will be ignored. Note that while
|
# contain exactly six entries, or it will be ignored. Note that while
|
||||||
# there are five levels of RAM, they still fall into the three tiers of
|
# there are six levels of RAM, they still fall into the three tiers of
|
||||||
# items (level 1 = tier 1, level 2, 3 = tier 2, level 4, 5 = tier 3).
|
# items (level 1, 2 = tier 1, level 3, 4 = tier 2, level 5, 6 = tier 3).
|
||||||
ramSizes: [
|
ramSizes: [
|
||||||
64
|
64
|
||||||
|
96
|
||||||
128
|
128
|
||||||
256
|
256
|
||||||
512
|
512
|
||||||
|
@ -17,7 +17,7 @@ object Blocks {
|
|||||||
var cable: Cable = _
|
var cable: Cable = _
|
||||||
var capacitor: Capacitor = _
|
var capacitor: Capacitor = _
|
||||||
var charger: Charger = _
|
var charger: Charger = _
|
||||||
var case1, case2, case3: Case = _
|
var case1, case2, case3, case4: Case = _
|
||||||
var diskDrive: DiskDrive = _
|
var diskDrive: DiskDrive = _
|
||||||
var keyboard: Keyboard = _
|
var keyboard: Keyboard = _
|
||||||
var keyboardDeprecated: KeyboardDeprecated = _
|
var keyboardDeprecated: KeyboardDeprecated = _
|
||||||
@ -108,6 +108,9 @@ object Blocks {
|
|||||||
hologram = Recipes.addBlockDelegate(new Hologram(blockSpecial), "hologram")
|
hologram = Recipes.addBlockDelegate(new Hologram(blockSpecial), "hologram")
|
||||||
wirelessRouter = Recipes.addBlockDelegate(new WirelessRouter(blockSimple), "wirelessRouter")
|
wirelessRouter = Recipes.addBlockDelegate(new WirelessRouter(blockSimple), "wirelessRouter")
|
||||||
|
|
||||||
|
// v1.2.6
|
||||||
|
case4 = new Case.TierCreative(blockSimpleWithRedstone)
|
||||||
|
|
||||||
// Initialize API.
|
// Initialize API.
|
||||||
api.Blocks.AccessPoint = wirelessRouter.createItemStack()
|
api.Blocks.AccessPoint = wirelessRouter.createItemStack()
|
||||||
api.Blocks.Adapter = adapter.createItemStack()
|
api.Blocks.Adapter = adapter.createItemStack()
|
||||||
|
@ -21,7 +21,7 @@ object Items {
|
|||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
// Memory
|
// Memory
|
||||||
var ram1, ram2, ram3, ram4, ram5: item.Memory = _
|
var ram1, ram2, ram3, ram4, ram5, ram6: item.Memory = _
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
// Storage
|
// Storage
|
||||||
@ -78,8 +78,8 @@ object Items {
|
|||||||
analyzer = Recipes.addItemDelegate(new item.Analyzer(multi), "analyzer")
|
analyzer = Recipes.addItemDelegate(new item.Analyzer(multi), "analyzer")
|
||||||
|
|
||||||
ram1 = Recipes.addItemDelegate(new item.Memory(multi, 0), "ram1")
|
ram1 = Recipes.addItemDelegate(new item.Memory(multi, 0), "ram1")
|
||||||
ram2 = Recipes.addItemDelegate(new item.Memory(multi, 1), "ram2")
|
|
||||||
ram3 = Recipes.addItemDelegate(new item.Memory(multi, 2), "ram3")
|
ram3 = Recipes.addItemDelegate(new item.Memory(multi, 2), "ram3")
|
||||||
|
ram4 = Recipes.addItemDelegate(new item.Memory(multi, 3), "ram4")
|
||||||
|
|
||||||
floppyDisk = Recipes.addItemDelegate(new item.FloppyDisk(multi), "floppy")
|
floppyDisk = Recipes.addItemDelegate(new item.FloppyDisk(multi), "floppy")
|
||||||
hdd1 = Recipes.addItemDelegate(new item.HardDiskDrive(multi, 0), "hdd1")
|
hdd1 = Recipes.addItemDelegate(new item.HardDiskDrive(multi, 0), "hdd1")
|
||||||
@ -129,8 +129,8 @@ object Items {
|
|||||||
Recipes.addItemDelegate(abstractBus, "abstractBusCard")
|
Recipes.addItemDelegate(abstractBus, "abstractBusCard")
|
||||||
}
|
}
|
||||||
|
|
||||||
ram4 = Recipes.addItemDelegate(new item.Memory(multi, 3), "ram4")
|
|
||||||
ram5 = Recipes.addItemDelegate(new item.Memory(multi, 4), "ram5")
|
ram5 = Recipes.addItemDelegate(new item.Memory(multi, 4), "ram5")
|
||||||
|
ram6 = Recipes.addItemDelegate(new item.Memory(multi, 5), "ram6")
|
||||||
|
|
||||||
// v1.2.0
|
// v1.2.0
|
||||||
server3 = Recipes.addItemDelegate(new item.Server(multi, 2), "server3")
|
server3 = Recipes.addItemDelegate(new item.Server(multi, 2), "server3")
|
||||||
@ -149,6 +149,7 @@ object Items {
|
|||||||
// v1.2.6
|
// v1.2.6
|
||||||
interweb = Recipes.addItemDelegate(new item.Interweb(multi), "interweb")
|
interweb = Recipes.addItemDelegate(new item.Interweb(multi), "interweb")
|
||||||
upgradeAngel = Recipes.addItemDelegate(new item.UpgradeAngel(multi), "angelUpgrade")
|
upgradeAngel = Recipes.addItemDelegate(new item.UpgradeAngel(multi), "angelUpgrade")
|
||||||
|
ram2 = Recipes.addItemDelegate(new item.Memory(multi, 1), "ram2")
|
||||||
|
|
||||||
// Initialize API.
|
// Initialize API.
|
||||||
api.Items.AbstractBusCard = abstractBus.createItemStack()
|
api.Items.AbstractBusCard = abstractBus.createItemStack()
|
||||||
@ -210,6 +211,7 @@ object Items {
|
|||||||
register("oc:craftingRAMTier3", ram3.createItemStack())
|
register("oc:craftingRAMTier3", ram3.createItemStack())
|
||||||
register("oc:craftingRAMTier4", ram4.createItemStack())
|
register("oc:craftingRAMTier4", ram4.createItemStack())
|
||||||
register("oc:craftingRAMTier5", ram5.createItemStack())
|
register("oc:craftingRAMTier5", ram5.createItemStack())
|
||||||
|
register("oc:craftingRAMTier6", ram6.createItemStack())
|
||||||
|
|
||||||
register("oc:craftingHDDTier1", hdd1.createItemStack())
|
register("oc:craftingHDDTier1", hdd1.createItemStack())
|
||||||
register("oc:craftingHDDTier2", hdd2.createItemStack())
|
register("oc:craftingHDDTier2", hdd2.createItemStack())
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package li.cil.oc
|
package li.cil.oc
|
||||||
|
|
||||||
import com.typesafe.config.{ConfigRenderOptions, Config, ConfigFactory}
|
import com.typesafe.config.{ConfigRenderOptions, Config, ConfigFactory}
|
||||||
import cpw.mods.fml.common.ModAPIManager
|
|
||||||
import java.io._
|
import java.io._
|
||||||
import java.util.logging.Level
|
import java.util.logging.Level
|
||||||
import li.cil.oc.util.PackedColor
|
import li.cil.oc.util.PackedColor
|
||||||
@ -34,11 +33,14 @@ class Settings(config: Config) {
|
|||||||
case Array(tier1, tier2, tier3) =>
|
case Array(tier1, tier2, tier3) =>
|
||||||
// For compatibility with older config files.
|
// For compatibility with older config files.
|
||||||
Array(tier1: Int, tier2: Int, tier3: Int, tier3 * 2: Int, tier3 * 4: Int)
|
Array(tier1: Int, tier2: Int, tier3: Int, tier3 * 2: Int, tier3 * 4: Int)
|
||||||
case Array(tier1, tier2, tier3, tier4, tier5) =>
|
case Array(tier1, tier3, tier4, tier5, tier6) =>
|
||||||
Array(tier1: Int, tier2: Int, tier3: Int, tier4: Int, tier5: Int)
|
// For compatibility with older config files.
|
||||||
|
Array(tier1: Int, (tier1: Int) * 3 / 2, tier3: Int, tier4: Int, tier5: Int, tier6: Int)
|
||||||
|
case Array(tier1, tier2, tier3, tier4, tier5, tier6) =>
|
||||||
|
Array(tier1: Int, tier2: Int, tier3: Int, tier4: Int, tier5: Int, tier6: Int)
|
||||||
case _ =>
|
case _ =>
|
||||||
OpenComputers.log.warning("Bad number of RAM sizes, ignoring.")
|
OpenComputers.log.warning("Bad number of RAM sizes, ignoring.")
|
||||||
Array(64, 128, 256, 512, 1024)
|
Array(64, 96, 128, 256, 512, 1024)
|
||||||
}
|
}
|
||||||
val ramScaleFor64Bit = config.getDouble("computer.ramScaleFor64Bit") max 1
|
val ramScaleFor64Bit = config.getDouble("computer.ramScaleFor64Bit") max 1
|
||||||
val cpuComponentSupport = Array(config.getIntList("computer.cpuComponentCount"): _*) match {
|
val cpuComponentSupport = Array(config.getIntList("computer.cpuComponentCount"): _*) match {
|
||||||
|
@ -22,7 +22,7 @@ abstract class Case(val parent: SimpleDelegator) extends RedstoneAware with Simp
|
|||||||
|
|
||||||
def tier: Int
|
def tier: Int
|
||||||
|
|
||||||
override def rarity = Array(EnumRarity.common, EnumRarity.uncommon, EnumRarity.rare).apply(tier)
|
override def rarity = Array(EnumRarity.common, EnumRarity.uncommon, EnumRarity.rare, EnumRarity.epic).apply(tier)
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
override def color = Color.byTier(tier)
|
override def color = Color.byTier(tier)
|
||||||
@ -31,7 +31,8 @@ abstract class Case(val parent: SimpleDelegator) extends RedstoneAware with Simp
|
|||||||
val slots = tier match {
|
val slots = tier match {
|
||||||
case 0 => "2/1/1"
|
case 0 => "2/1/1"
|
||||||
case 1 => "2/2/2"
|
case 1 => "2/2/2"
|
||||||
case 2 => "3/2/3"
|
case 2 | 3 => "3/2/3"
|
||||||
|
case _ => "0/0/0"
|
||||||
}
|
}
|
||||||
tooltip.addAll(Tooltip.get("Case", slots))
|
tooltip.addAll(Tooltip.get("Case", slots))
|
||||||
}
|
}
|
||||||
@ -119,4 +120,8 @@ object Case {
|
|||||||
def tier = 2
|
def tier = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class TierCreative(parent: SimpleDelegator) extends Case(parent) {
|
||||||
|
def tier = 3
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ class Buffer(val owner: Buffer.Owner) extends api.network.Environment {
|
|||||||
def resolution_=(value: (Int, Int)) = {
|
def resolution_=(value: (Int, Int)) = {
|
||||||
val (w, h) = value
|
val (w, h) = value
|
||||||
val (mw, mh) = maxResolution
|
val (mw, mh) = maxResolution
|
||||||
if (w < 1 || w > mw || h < 1 || h > mh)
|
if (w < 1 || h < 1 || w > mw || h > mw || h * w > mw * mh)
|
||||||
throw new IllegalArgumentException("unsupported resolution")
|
throw new IllegalArgumentException("unsupported resolution")
|
||||||
if (buffer.size = value) {
|
if (buffer.size = value) {
|
||||||
if (node != null) {
|
if (node != null) {
|
||||||
|
@ -5,7 +5,7 @@ import li.cil.oc.common.tileentity
|
|||||||
import net.minecraft.entity.player.{EntityPlayer, InventoryPlayer}
|
import net.minecraft.entity.player.{EntityPlayer, InventoryPlayer}
|
||||||
|
|
||||||
class Case(playerInventory: InventoryPlayer, computer: tileentity.Case) extends Player(playerInventory, computer) {
|
class Case(playerInventory: InventoryPlayer, computer: tileentity.Case) extends Player(playerInventory, computer) {
|
||||||
for (i <- 0 to (if (computer.tier == 2) 2 else 1)) {
|
for (i <- 0 to (if (computer.tier >= 2) 2 else 1)) {
|
||||||
addSlotToContainer(98, 16 + i * slotSize, api.driver.Slot.Card, computer.maxComponentTierForSlot(getInventory.size))
|
addSlotToContainer(98, 16 + i * slotSize, api.driver.Slot.Card, computer.maxComponentTierForSlot(getInventory.size))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -17,11 +17,11 @@ class Case(playerInventory: InventoryPlayer, computer: tileentity.Case) extends
|
|||||||
addSlotToContainer(142, 16 + i * slotSize, api.driver.Slot.HardDiskDrive, computer.maxComponentTierForSlot(getInventory.size))
|
addSlotToContainer(142, 16 + i * slotSize, api.driver.Slot.HardDiskDrive, computer.maxComponentTierForSlot(getInventory.size))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (computer.tier == 2) {
|
if (computer.tier >= 2) {
|
||||||
addSlotToContainer(142, 16 + 2 * slotSize, api.driver.Slot.Disk)
|
addSlotToContainer(142, 16 + 2 * slotSize, api.driver.Slot.Disk)
|
||||||
}
|
}
|
||||||
|
|
||||||
addSlotToContainer(120, 16, api.driver.Slot.Processor, computer.tier)
|
addSlotToContainer(120, 16, api.driver.Slot.Processor, computer.maxComponentTierForSlot(getInventory.size))
|
||||||
|
|
||||||
if (computer.tier == 0) {
|
if (computer.tier == 0) {
|
||||||
addSlotToContainer(120, 16 + 2 * slotSize, api.driver.Slot.Memory, computer.maxComponentTierForSlot(getInventory.size))
|
addSlotToContainer(120, 16 + 2 * slotSize, api.driver.Slot.Memory, computer.maxComponentTierForSlot(getInventory.size))
|
||||||
|
@ -14,7 +14,7 @@ class Memory(val parent: Delegator, val tier: Int) extends Delegate {
|
|||||||
|
|
||||||
val kiloBytes = Settings.get.ramSizes(tier)
|
val kiloBytes = Settings.get.ramSizes(tier)
|
||||||
|
|
||||||
override def rarity = Array(EnumRarity.common, EnumRarity.uncommon, EnumRarity.uncommon, EnumRarity.rare, EnumRarity.rare).apply(tier max 0 min 4)
|
override def rarity = Array(EnumRarity.common, EnumRarity.common, EnumRarity.uncommon, EnumRarity.uncommon, EnumRarity.rare, EnumRarity.rare).apply(tier max 0 min Settings.get.ramSizes.length)
|
||||||
|
|
||||||
override def displayName(stack: ItemStack) =
|
override def displayName(stack: ItemStack) =
|
||||||
Some(parent.internalGetItemStackDisplayName(stack) + " (%dKB)".format(kiloBytes))
|
Some(parent.internalGetItemStackDisplayName(stack) + " (%dKB)".format(kiloBytes))
|
||||||
|
@ -52,10 +52,18 @@ class Case(var tier: Int, val isRemote: Boolean) extends traits.PowerAcceptor wi
|
|||||||
case _ => false
|
case _ => false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override def updateEntity() {
|
||||||
|
if (tier == 3 && isServer && world.getWorldTime % Settings.get.tickFrequency == 0) {
|
||||||
|
// Creative case, make it generate power.
|
||||||
|
node.asInstanceOf[Connector].changeBuffer(Double.PositiveInfinity)
|
||||||
|
}
|
||||||
|
super.updateEntity()
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
override def readFromNBT(nbt: NBTTagCompound) {
|
override def readFromNBT(nbt: NBTTagCompound) {
|
||||||
tier = nbt.getByte(Settings.namespace + "tier") max 0 min 2
|
tier = nbt.getByte(Settings.namespace + "tier") max 0 min 3
|
||||||
color = Color.byTier(tier)
|
color = Color.byTier(tier)
|
||||||
super.readFromNBT(nbt)
|
super.readFromNBT(nbt)
|
||||||
recomputeMaxComponents()
|
recomputeMaxComponents()
|
||||||
@ -79,6 +87,7 @@ class Case(var tier: Int, val isRemote: Boolean) extends traits.PowerAcceptor wi
|
|||||||
case 0 => 6
|
case 0 => 6
|
||||||
case 1 => 7
|
case 1 => 7
|
||||||
case 2 => 9
|
case 2 => 9
|
||||||
|
case 3 => 9
|
||||||
case _ => 0
|
case _ => 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,6 +123,16 @@ class Case(var tier: Int, val isRemote: Boolean) extends traits.PowerAcceptor wi
|
|||||||
case (7, Some(driver)) => driver.slot(stack) == Slot.Disk
|
case (7, Some(driver)) => driver.slot(stack) == Slot.Disk
|
||||||
case (8, Some(driver)) => driver.slot(stack) == Slot.Processor && driver.tier(stack) <= maxComponentTierForSlot(slot)
|
case (8, Some(driver)) => driver.slot(stack) == Slot.Processor && driver.tier(stack) <= maxComponentTierForSlot(slot)
|
||||||
case _ => false // Invalid slot.
|
case _ => false // Invalid slot.
|
||||||
|
|
||||||
|
}
|
||||||
|
case 3 => (slot, Registry.itemDriverFor(stack)) match {
|
||||||
|
case (_, None) => false // Invalid item.
|
||||||
|
case (0 | 1 | 2, Some(driver)) => driver.slot(stack) == Slot.Card
|
||||||
|
case (3 | 4, Some(driver)) => driver.slot(stack) == Slot.Memory
|
||||||
|
case (5 | 6, Some(driver)) => driver.slot(stack) == Slot.HardDiskDrive
|
||||||
|
case (7, Some(driver)) => driver.slot(stack) == Slot.Disk
|
||||||
|
case (8, Some(driver)) => driver.slot(stack) == Slot.Processor
|
||||||
|
case _ => false // Invalid slot.
|
||||||
}
|
}
|
||||||
case _ => false
|
case _ => false
|
||||||
}
|
}
|
||||||
@ -139,6 +158,7 @@ class Case(var tier: Int, val isRemote: Boolean) extends traits.PowerAcceptor wi
|
|||||||
case 8 => 2
|
case 8 => 2
|
||||||
case _ => -1 // Invalid slot.
|
case _ => -1 // Invalid slot.
|
||||||
}
|
}
|
||||||
|
case 3 => 2
|
||||||
case _ => -1
|
case _ => -1
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -82,19 +82,13 @@ class Hologram extends traits.Environment with SidedEnvironment with Analyzable
|
|||||||
|
|
||||||
@Callback(direct = true, doc = """function(x:number, z:number):number -- Returns the bit mask representing the specified column.""")
|
@Callback(direct = true, doc = """function(x:number, z:number):number -- Returns the bit mask representing the specified column.""")
|
||||||
def get(computer: Context, args: Arguments): Array[AnyRef] = this.synchronized {
|
def get(computer: Context, args: Arguments): Array[AnyRef] = this.synchronized {
|
||||||
val x = args.checkInteger(0) - 1
|
val (x, z) = checkCoordinates(args)
|
||||||
if (x < 0 || x >= width) throw new ArrayIndexOutOfBoundsException()
|
|
||||||
val z = args.checkInteger(1) - 1
|
|
||||||
if (z < 0 || z >= width) throw new ArrayIndexOutOfBoundsException()
|
|
||||||
result(volume(x + z * width))
|
result(volume(x + z * width))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Callback(direct = true, limit = 256, doc = """function(x:number, z:number, value:number) -- Set the bit mask for the specified column.""")
|
@Callback(direct = true, limit = 256, doc = """function(x:number, z:number, value:number) -- Set the bit mask for the specified column.""")
|
||||||
def set(computer: Context, args: Arguments): Array[AnyRef] = this.synchronized {
|
def set(computer: Context, args: Arguments): Array[AnyRef] = this.synchronized {
|
||||||
val x = args.checkInteger(0) - 1
|
val (x, z) = checkCoordinates(args)
|
||||||
if (x < 0 || x >= width) throw new ArrayIndexOutOfBoundsException()
|
|
||||||
val z = args.checkInteger(1) - 1
|
|
||||||
if (z < 0 || z >= width) throw new ArrayIndexOutOfBoundsException()
|
|
||||||
val value = args.checkDouble(2).longValue.intValue
|
val value = args.checkDouble(2).longValue.intValue
|
||||||
volume(x + z * width) = value
|
volume(x + z * width) = value
|
||||||
setDirty(x, z)
|
setDirty(x, z)
|
||||||
@ -103,10 +97,7 @@ class Hologram extends traits.Environment with SidedEnvironment with Analyzable
|
|||||||
|
|
||||||
@Callback(direct = true, limit = 128, doc = """function(x:number, z:number, height:number) -- Fills a column to the specified height.""")
|
@Callback(direct = true, limit = 128, doc = """function(x:number, z:number, height:number) -- Fills a column to the specified height.""")
|
||||||
def fill(computer: Context, args: Arguments): Array[AnyRef] = this.synchronized {
|
def fill(computer: Context, args: Arguments): Array[AnyRef] = this.synchronized {
|
||||||
val x = args.checkInteger(0) - 1
|
val (x, z) = checkCoordinates(args)
|
||||||
if (x < 0 || x >= width) throw new ArrayIndexOutOfBoundsException()
|
|
||||||
val z = args.checkInteger(1) - 1
|
|
||||||
if (z < 0 || z >= width) throw new ArrayIndexOutOfBoundsException()
|
|
||||||
val height = math.min(32, math.max(0, args.checkInteger(2)))
|
val height = math.min(32, math.max(0, args.checkInteger(2)))
|
||||||
// Bit shifts in the JVM only use the lowest five bits... so we have to
|
// Bit shifts in the JVM only use the lowest five bits... so we have to
|
||||||
// manually check the height, to avoid the shift being a no-op.
|
// manually check the height, to avoid the shift being a no-op.
|
||||||
@ -115,6 +106,58 @@ class Hologram extends traits.Environment with SidedEnvironment with Analyzable
|
|||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Callback(doc = """function(x:number, z:number, sx:number, sz:number, tx:number, tz:number) -- Copies an area of columns by the specified translation.""")
|
||||||
|
def copy(computer: Context, args: Arguments): Array[AnyRef] = this.synchronized {
|
||||||
|
val (x, z) = checkCoordinates(args)
|
||||||
|
val w = args.checkInteger(2)
|
||||||
|
val h = args.checkInteger(3)
|
||||||
|
val tx = args.checkInteger(4)
|
||||||
|
val tz = args.checkInteger(5)
|
||||||
|
|
||||||
|
// Anything to do at all?
|
||||||
|
if (w <= 0 || h <= 0) return null
|
||||||
|
if (tx == 0 && tz == 0) return null
|
||||||
|
// Loop over the target rectangle, starting from the directions away from
|
||||||
|
// the source rectangle and copy the data. This way we ensure we don't
|
||||||
|
// overwrite anything we still need to copy.
|
||||||
|
val (dx0, dx1) = (math.max(0, math.min(width - 1, x + tx + w - 1)), math.max(0, math.min(width, x + tx))) match {
|
||||||
|
case dx if tx > 0 => dx
|
||||||
|
case dx => dx.swap
|
||||||
|
}
|
||||||
|
val (dz0, dz1) = (math.max(0, math.min(width - 1, z + tz + h - 1)), math.max(0, math.min(width, z + tz))) match {
|
||||||
|
case dz if tz > 0 => dz
|
||||||
|
case dz => dz.swap
|
||||||
|
}
|
||||||
|
val (sx, sz) = (if (tx > 0) -1 else 1, if (tz > 0) -1 else 1)
|
||||||
|
// Copy values to destination rectangle if there source is valid.
|
||||||
|
for (nz <- dz0 to dz1 by sz) {
|
||||||
|
nz - tz match {
|
||||||
|
case oz if oz >= 0 && oz < width =>
|
||||||
|
for (nx <- dx0 to dx1 by sx) {
|
||||||
|
nx - tx match {
|
||||||
|
case ox if ox >= 0 && ox < width =>
|
||||||
|
volume(nz * width + nx) = volume(oz * width + ox)
|
||||||
|
case _ => /* Got no source column. */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case _ => /* Got no source row. */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mark target rectangle dirty.
|
||||||
|
setDirty(math.min(dx0, dx1), math.min(dz0, dz1))
|
||||||
|
setDirty(math.max(dx0, dx1), math.max(dz0, dz1))
|
||||||
|
|
||||||
|
// The reasoning here is: it'd take 18 ticks to do the whole are with fills,
|
||||||
|
// so make this slightly more efficient (15 ticks - 0.75 seconds). Make it
|
||||||
|
// 'free' if it's less than 0.25 seconds, i.e. for small copies.
|
||||||
|
val area = (math.max(dx0, dx1) - math.min(dx0, dx1)) * (math.max(dz0, dz1) - math.min(dz0, dz1))
|
||||||
|
val relativeArea = math.max(0, area / (width * width).toFloat - 0.25)
|
||||||
|
computer.pause(relativeArea)
|
||||||
|
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
@Callback(doc = """function():number -- Returns the render scale of the hologram.""")
|
@Callback(doc = """function():number -- Returns the render scale of the hologram.""")
|
||||||
def getScale(computer: Context, args: Arguments): Array[AnyRef] = {
|
def getScale(computer: Context, args: Arguments): Array[AnyRef] = {
|
||||||
result(scale)
|
result(scale)
|
||||||
@ -127,6 +170,14 @@ class Hologram extends traits.Environment with SidedEnvironment with Analyzable
|
|||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private def checkCoordinates(args: Arguments) = {
|
||||||
|
val x = args.checkInteger(0) - 1
|
||||||
|
if (x < 0 || x >= width) throw new ArrayIndexOutOfBoundsException()
|
||||||
|
val z = args.checkInteger(1) - 1
|
||||||
|
if (z < 0 || z >= width) throw new ArrayIndexOutOfBoundsException()
|
||||||
|
(x, z)
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
override def updateEntity() {
|
override def updateEntity() {
|
||||||
|
@ -545,7 +545,7 @@ class Robot(val isRemote: Boolean) extends traits.Computer with traits.TextBuffe
|
|||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
override def installedMemory = 96 * 1024
|
override def installedMemory = Settings.get.ramSizes(1) * 1024
|
||||||
|
|
||||||
override def tier = 0
|
override def tier = 0
|
||||||
|
|
||||||
|
@ -123,8 +123,11 @@ abstract class GraphicsCard extends ManagedComponent {
|
|||||||
val w = args.checkInteger(0)
|
val w = args.checkInteger(0)
|
||||||
val h = args.checkInteger(1)
|
val h = args.checkInteger(1)
|
||||||
val (mw, mh) = maxResolution
|
val (mw, mh) = maxResolution
|
||||||
if (w > 0 && h > 0 && w <= mw && h <= mh) screen(s => result(s.resolution = (w, h)))
|
// Even though the buffer itself checks this again, we need this here for
|
||||||
else throw new IllegalArgumentException("unsupported resolution")
|
// the minimum of screen and GPU resolution.
|
||||||
|
if (w < 1 || h < 1 || w > mw || h > mw || h * w > mw * mh)
|
||||||
|
throw new IllegalArgumentException("unsupported resolution")
|
||||||
|
screen(s => result(s.resolution = (w, h)))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Callback(direct = true)
|
@Callback(direct = true)
|
||||||
|
@ -13,7 +13,7 @@ object Memory extends Item with driver.Memory {
|
|||||||
case _ => 0
|
case _ => 0
|
||||||
}
|
}
|
||||||
|
|
||||||
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.ram1, Items.ram2, Items.ram3, Items.ram4, Items.ram5)
|
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.ram1, Items.ram2, Items.ram3, Items.ram4, Items.ram5, Items.ram6)
|
||||||
|
|
||||||
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = null
|
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = null
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ object Memory extends Item with driver.Memory {
|
|||||||
|
|
||||||
override def tier(stack: ItemStack) =
|
override def tier(stack: ItemStack) =
|
||||||
Items.multi.subItem(stack) match {
|
Items.multi.subItem(stack) match {
|
||||||
case Some(memory: item.Memory) => (memory.tier + 1) / 2
|
case Some(memory: item.Memory) => memory.tier / 2
|
||||||
case _ => 0
|
case _ => 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ object Color {
|
|||||||
"dyeOrange" -> Orange,
|
"dyeOrange" -> Orange,
|
||||||
"dyeWhite" -> White)
|
"dyeWhite" -> White)
|
||||||
|
|
||||||
val byTier = Array(LightGray, Yellow, Cyan)
|
val byTier = Array(LightGray, Yellow, Cyan, Magenta)
|
||||||
|
|
||||||
def isDye(stack: ItemStack) = byOreName.contains(OreDictionary.getOreName(OreDictionary.getOreID(stack)))
|
def isDye(stack: ItemStack) = byOreName.contains(OreDictionary.getOreName(OreDictionary.getOreID(stack)))
|
||||||
|
|
||||||
|
@ -115,5 +115,10 @@ object ItemCosts {
|
|||||||
accumulate(what)
|
accumulate(what)
|
||||||
}
|
}
|
||||||
|
|
||||||
def fuzzyEquals(stack1: ItemStack, stack2: ItemStack) = stack1.isItemEqual(stack2) || (stack1.getItem == stack2.getItem && (stack1.getItemDamage == OreDictionary.WILDCARD_VALUE || stack2.getItemDamage == OreDictionary.WILDCARD_VALUE))
|
// In case you'd like to use this class for your items and your items use
|
||||||
|
// NBT data in the item stack to differentiate them uncomment the last part.
|
||||||
|
// We don't use this in OC because the NBT of items can change dynamically,
|
||||||
|
// for example by components being assigned an address, which will break the
|
||||||
|
// equals check.
|
||||||
|
private def fuzzyEquals(stack1: ItemStack, stack2: ItemStack) = stack1.isItemEqual(stack2) || (stack1.getItem == stack2.getItem && (stack1.getItemDamage == OreDictionary.WILDCARD_VALUE || stack2.getItemDamage == OreDictionary.WILDCARD_VALUE)) && ItemStack.areItemStackTagsEqual(stack1, stack2)
|
||||||
}
|
}
|
||||||
|
@ -135,11 +135,11 @@ class TextBuffer(var width: Int, var height: Int, initialDepth: PackedColor.Dept
|
|||||||
// Loop over the target rectangle, starting from the directions away from
|
// Loop over the target rectangle, starting from the directions away from
|
||||||
// the source rectangle and copy the data. This way we ensure we don't
|
// the source rectangle and copy the data. This way we ensure we don't
|
||||||
// overwrite anything we still need to copy.
|
// overwrite anything we still need to copy.
|
||||||
val (dx0, dx1) = (math.max(col + tx + w - 1, math.min(0, width - 1)), math.max(col + tx, math.min(0, width))) match {
|
val (dx0, dx1) = (math.max(0, math.min(width - 1, col + tx + w - 1)), math.max(0, math.min(width, col + tx))) match {
|
||||||
case dx if tx > 0 => dx
|
case dx if tx > 0 => dx
|
||||||
case dx => dx.swap
|
case dx => dx.swap
|
||||||
}
|
}
|
||||||
val (dy0, dy1) = (math.max(row + ty + h - 1, math.min(0, height - 1)), math.max(row + ty, math.min(0, height))) match {
|
val (dy0, dy1) = (math.max(0, math.min(height - 1, row + ty + h - 1)), math.max(0, math.min(height, row + ty))) match {
|
||||||
case dy if ty > 0 => dy
|
case dy if ty > 0 => dy
|
||||||
case dy => dy.swap
|
case dy => dy.swap
|
||||||
}
|
}
|
||||||
|