Reworked some recipes in an attempt to reduce tedium by adjusting costs and introducing more multi-output (e.g. getting multiple raw circuit boards from one crafting operation).

Also introduced a diamond chip item to reduce the massive ramp in cost for tier three stuff. The diamond prices were a little insane. Better late than never, right? Right!?
People yelling at me for the recipes being too cheap now in 3, 2, ... (hardmode hasn't changed!)
This commit is contained in:
Florian Nücke 2016-03-20 16:31:29 +01:00
parent 8a5cdada39
commit 72d8a13a8a
9 changed files with 99 additions and 56 deletions

View File

@ -67,6 +67,7 @@ item.oc.DataCard1.name=Data Card (Tier 2)
item.oc.DataCard2.name=Data Card (Tier 3)
item.oc.DebugCard.name=Debug Card
item.oc.Debugger.name=Network Debugger
item.oc.DiamondNugget.name=Diamond Nugget
item.oc.Disk.name=Disk Platter
item.oc.DiskDriveMountable.name=Disk Drive
item.oc.Drone.name=Drone
@ -277,6 +278,7 @@ oc:tooltip.DataCard1=Provides a couple of advanced algorithms such as hashing, A
oc:tooltip.DataCard2=Provides a couple of advanced algorithms such as hashing, AES encryption, elliptic curve cryptography and deflate/inflate.
oc:tooltip.DebugCard=Creative mode item, allows manipulating the world to make testing easier. Use at your own peril.
oc:tooltip.Debugger=Can be used to output debug information on OC's internal network grid. Only use if so instructed by a dev.
oc:tooltip.DiamondNugget=A small piece of a once radiant diamond. The pieces fit together flawlessly.
oc:tooltip.Disassembler=Separates items into their original components. §lWarning§7: returned items have a %s%% chance of breaking in the process!
oc:tooltip.Disk=Primitive medium that can be used to build persistent storage devices.
oc:tooltip.DiskDrive.CC=ComputerCraft floppies are §asupported§7.

View File

@ -89,18 +89,18 @@ diskDriveMountable {
[obsidian, "oc:materialCircuitBoardPrinted", obsidian]]
}
server1 {
input: [[obsidian, "oc:ram4", obsidian]
["oc:circuitChip1", "oc:circuitChip2", "oc:circuitChip1"]
input: [[ingotIron, "oc:ram2", ingotIron]
["oc:circuitChip1", "oc:componentBus1", "oc:circuitChip1"]
[obsidian, "oc:materialCircuitBoardPrinted", obsidian]]
}
server2 {
input: [[obsidian, "oc:ram5", obsidian]
["oc:circuitChip2", "oc:circuitChip3", "oc:circuitChip2"]
input: [[ingotGold, "oc:ram4", ingotGold]
["oc:circuitChip2", "oc:componentBus2", "oc:circuitChip2"]
[obsidian, "oc:materialCircuitBoardPrinted", obsidian]]
}
server3 {
input: [[obsidian, "oc:ram6", obsidian]
["oc:circuitChip3", "oc:circuitChip3", "oc:circuitChip3"]
input: [[gemDiamond, "oc:ram6", gemDiamond]
["oc:circuitChip3", "oc:componentBus3", "oc:circuitChip3"]
[obsidian, "oc:materialCircuitBoardPrinted", obsidian]]
}
terminalServer {
@ -169,7 +169,7 @@ dataCard2 {
["", "oc:materialCard", ""]]
}
dataCard3 {
input: [[gemDiamond, "oc:cpu2", "oc:ram5"]
input: [[nuggetDiamond, "oc:cpu2", "oc:ram5"]
["", "oc:materialCard", ""]]
}
graphicsCard1 {
@ -226,19 +226,19 @@ angelUpgrade {
[ingotIron, materialEnderPearl, ingotIron]]
}
batteryUpgrade1 {
input: [[ingotIron, nuggetGold, ingotIron]
input: [[nuggetIron, nuggetGold, nuggetIron]
[fenceIron, "oc:capacitor", fenceIron]
[ingotIron, nuggetGold, ingotIron]]
[nuggetIron, nuggetGold, nuggetIron]]
}
batteryUpgrade2 {
input: [[ingotGold, "oc:capacitor", ingotGold]
input: [[nuggetIron, "oc:capacitor", nuggetIron]
[fenceIron, nuggetGold, fenceIron]
[ingotGold, "oc:capacitor", ingotGold]]
[nuggetIron, "oc:capacitor", nuggetIron]]
}
batteryUpgrade3 {
input: [[gemDiamond, "oc:capacitor", gemDiamond]
[fenceIron, "oc:capacitor", fenceIron]
[gemDiamond, "oc:capacitor", gemDiamond]]
input: [[nuggetIron, "oc:capacitor", nuggetIron]
["oc:capacitor", nuggetDiamond, "oc:capacitor"]
[nuggetIron, "oc:capacitor", nuggetIron]]
}
chunkloaderUpgrade {
input: [[ingotGold, blockGlass, ingotGold]
@ -372,23 +372,34 @@ upgradeContainer3 {
[ingotGold, "oc:materialCircuitBoardPrinted", ingotGold]]
}
# Note: iron ingot and nugget recipes are *only* registered if no other mod
# Note: ingot/gem <-> nugget recipes are *only* registered if no other mod
# already provides the same functionality.
nuggetIron {
type: shapeless
input: ingotIron
output: 9
}
cuttingWire = false
acid {
type: shapeless
input: [bucketWater, sugar, slimeball, fermentedSpiderEye, bone]
}
ingotIron {
input: [[nuggetIron, nuggetIron, nuggetIron],
[nuggetIron, nuggetIron, nuggetIron],
[nuggetIron, nuggetIron, nuggetIron]]
}
nuggetDiamond {
type: shapeless
input: gemDiamond
output: 9
}
gemDiamond {
input: [[nuggetDiamond, nuggetDiamond, nuggetDiamond],
[nuggetDiamond, nuggetDiamond, nuggetDiamond],
[nuggetDiamond, nuggetDiamond, nuggetDiamond]]
}
cuttingWire = false
acid {
type: shapeless
input: [bucketWater, sugar, slimeball, fermentedSpiderEye, bone]
}
disk {
input: [["", nuggetIron, ""]
[nuggetIron, "", nuggetIron]
@ -436,24 +447,28 @@ numPad {
}
transistor {
input: [[nuggetIron, nuggetIron, nuggetIron]
input: [[ingotIron, ingotIron, ingotIron]
[nuggetGold, paper, nuggetGold]
["", redstone, ""]]
output: 8
}
chip1 {
input: [[nuggetIron, "", nuggetIron]
input: [[nuggetIron, nuggetIron, nuggetIron]
[redstone, "oc:materialTransistor", redstone]
[nuggetIron, "", nuggetIron]]
[nuggetIron, nuggetIron, nuggetIron]]
output: 8
}
chip2 {
input: [[nuggetGold, "", nuggetGold]
input: [[nuggetGold, nuggetGold, nuggetGold]
[redstone, "oc:materialTransistor", redstone]
[nuggetGold, "", nuggetGold]]
[nuggetGold, nuggetGold, nuggetGold]]
output: 4
}
chip3 {
input: [[gemDiamond, "", gemDiamond]
input: [[nuggetDiamond, nuggetDiamond, nuggetDiamond]
[redstone, "oc:materialTransistor", redstone]
[gemDiamond, "", gemDiamond]]
[nuggetDiamond, nuggetDiamond, nuggetDiamond]]
output: 2
}
alu {
input: [[nuggetIron, redstone, nuggetIron]
@ -466,9 +481,9 @@ apu1 {
[nuggetGold, "oc:circuitChip1", nuggetGold]]
}
apu2 {
input: [[gemDiamond, "oc:circuitChip2", gemDiamond]
input: [[nuggetDiamond, "oc:circuitChip2", nuggetDiamond]
["oc:cpu3", "oc:componentBus2", "oc:graphicsCard2"]
[gemDiamond, "oc:circuitChip2", gemDiamond]]
[nuggetDiamond, "oc:circuitChip2", nuggetDiamond]]
}
componentBus1 {
input: [[nuggetIron, redstone, nuggetIron]
@ -481,9 +496,9 @@ componentBus2 {
[nuggetGold, "oc:materialCircuitBoardPrinted", nuggetGold]]
}
componentBus3 {
input: [[emerald, redstone, emerald]
input: [[nuggetDiamond, redstone, nuggetDiamond]
["oc:circuitChip3", "oc:materialCU", ""]
[emerald, "oc:materialCircuitBoardPrinted", emerald]]
[nuggetDiamond, "oc:materialCircuitBoardPrinted", nuggetDiamond]]
}
cpu1 {
input: [[nuggetIron, redstone, nuggetIron]
@ -496,9 +511,9 @@ cpu2 {
[nuggetGold, "oc:materialALU", nuggetGold]]
}
cpu3 {
input: [[emerald, redstone, emerald]
input: [[nuggetDiamond, redstone, nuggetDiamond]
["oc:circuitChip3", "oc:materialCU", "oc:circuitChip3"]
[emerald, "oc:materialALU", emerald]]
[nuggetDiamond, "oc:materialALU", nuggetDiamond]]
}
cu {
input: [[nuggetGold, redstone, nuggetGold]
@ -508,7 +523,8 @@ cu {
rawCircuitBoard {
type: shapeless
input: [nuggetGold, clay, dyeGreen]
input: [ingotGold, clay, dyeGreen]
output: 8
}
circuitBoard = false
printedCircuitBoard {
@ -585,12 +601,12 @@ geolyzer {
}
hologram1 {
input: [["oc:circuitChip2", paneGlass, "oc:circuitChip2"]
["oc:materialCircuitBoardPrinted", gemDiamond, "oc:materialCircuitBoardPrinted"]
["oc:materialCircuitBoardPrinted", nuggetDiamond, "oc:materialCircuitBoardPrinted"]
[obsidian, yellowDust, obsidian]]
}
hologram2 {
input: [["oc:circuitChip3", blockGlass, "oc:circuitChip3"]
["oc:materialCircuitBoardPrinted", blockDiamond, "oc:materialCircuitBoardPrinted"]
["oc:materialCircuitBoardPrinted", gemDiamond, "oc:materialCircuitBoardPrinted"]
[obsidian, blazePowder, obsidian]]
}
keyboard {
@ -623,7 +639,7 @@ powerDistributor {
[ingotIron, "oc:materialCircuitBoardPrinted", ingotIron]]
}
rack {
input: [["oc:circuitChip2", "oc:wlanCard", "oc:circuitChip2"]
input: [[gemDiamond, "oc:wlanCard", gemDiamond]
[fenceIron, chest, fenceIron]
["oc:relay", "oc:materialCircuitBoardPrinted", "oc:powerDistributor"]]
}

View File

@ -240,6 +240,11 @@ alu {
["oc:materialTransistor", "oc:materialTransistor", "oc:materialTransistor"]
[nuggetIron, redstone, nuggetIron]]
}
apu2 {
input: [[gemDiamond, "oc:circuitChip2", gemDiamond]
["oc:cpu3", "oc:componentBus2", "oc:graphicsCard2"]
[gemDiamond, "oc:circuitChip2", gemDiamond]]
}
componentBus1 {
input: [[nuggetIron, redstone, nuggetIron]
["oc:circuitChip1", "oc:materialCU", ""]
@ -347,6 +352,16 @@ geolyzer {
[eyeOfEnder, "oc:circuitChip2", eyeOfEnder]
[ingotGold, "oc:materialCircuitBoardPrinted", ingotGold]]
}
hologram1 {
input: [["oc:circuitChip2", paneGlass, "oc:circuitChip2"]
["oc:materialCircuitBoardPrinted", gemDiamond, "oc:materialCircuitBoardPrinted"]
[obsidian, yellowDust, obsidian]]
}
hologram2 {
input: [["oc:circuitChip3", blockGlass, "oc:circuitChip3"]
["oc:materialCircuitBoardPrinted", blockDiamond, "oc:materialCircuitBoardPrinted"]
[obsidian, blazePowder, obsidian]]
}
keyboard {
input: [["oc:materialButtonGroup", "oc:materialButtonGroup", "oc:materialButtonGroup"]
["oc:materialButtonGroup", "oc:materialArrowKey", "oc:materialNumPad"]]

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

View File

@ -87,6 +87,7 @@ object Constants {
final val DataCardTier3 = "dataCard3"
final val DebugCard = "debugCard"
final val Debugger = "debugger"
final val DiamondNugget = "nuggetDiamond"
final val Disk = "disk"
final val DiskDriveMountable = "diskDriveMountable"
final val Drone = "drone"

View File

@ -11,16 +11,19 @@ import li.cil.oc.common.entity.Drone
import li.cil.oc.common.init.Blocks
import li.cil.oc.common.init.Items
import li.cil.oc.common.item.Delegator
import li.cil.oc.common.item.traits.Delegate
import li.cil.oc.common.recipe.Recipes
import li.cil.oc.integration.Mods
import li.cil.oc.server._
import li.cil.oc.server.machine.luac.LuaStateFactory
import li.cil.oc.server.machine.luac.NativeLua52Architecture
import li.cil.oc.server.machine.luaj.LuaJLuaArchitecture
import net.minecraft.item.Item
import net.minecraft.item.ItemStack
import net.minecraftforge.oredict.OreDictionary
import scala.collection.convert.WrapAsScala._
import scala.reflect.ClassTag
class Proxy {
def preInit(e: FMLPreInitializationEvent) {
@ -43,20 +46,8 @@ class Proxy {
OreDictionary.registerOre("chest", net.minecraft.init.Blocks.chest)
OreDictionary.registerOre("chest", net.minecraft.init.Blocks.trapped_chest)
val nuggetIron = Items.get(Constants.ItemName.IronNugget).createItemStack(1)
registerExclusive("nuggetIron", nuggetIron)
Delegator.subItem(nuggetIron) match {
case Some(subItem: item.IronNugget) =>
if (OreDictionary.getOres("nuggetIron").exists(nuggetIron.isItemEqual)) {
Recipes.addSubItem(subItem, "nuggetIron")
Recipes.addItem(net.minecraft.init.Items.iron_ingot, "ingotIron")
}
else {
subItem.showInItemList = false
}
case _ =>
}
tryRegisterNugget[item.IronNugget](Constants.ItemName.IronNugget, "nuggetIron", net.minecraft.init.Items.iron_ingot, "ingotIron")
tryRegisterNugget[item.DiamondNugget](Constants.ItemName.DiamondNugget, "nuggetDiamond", net.minecraft.init.Items.diamond, "gemDiamond")
// Avoid issues with Extra Utilities registering colored obsidian as `obsidian`
// oredict entry, but not normal obsidian, breaking some recipes.
@ -108,6 +99,24 @@ class Proxy {
driver.Registry.locked = true
}
def tryRegisterNugget[TItem <: Delegate : ClassTag](nuggetItemName: String, nuggetOredictName: String, ingotItem: Item, ingotOredictName: String): Unit = {
val nugget = Items.get(nuggetItemName).createItemStack(1)
registerExclusive(nuggetOredictName, nugget)
Delegator.subItem(nugget) match {
case Some(subItem: TItem) =>
if (OreDictionary.getOres(nuggetOredictName).exists(nugget.isItemEqual)) {
Recipes.addSubItem(subItem, nuggetItemName)
Recipes.addItem(ingotItem, ingotOredictName)
}
else {
subItem.showInItemList = false
}
case _ =>
}
}
private def registerExclusive(name: String, items: ItemStack*) {
if (OreDictionary.getOres(name).isEmpty) {
for (item <- items) {

View File

@ -533,6 +533,7 @@ object Items extends ItemAPI {
Recipes.addSubItem(new item.TerminalServer(multi), Constants.ItemName.TerminalServer, "oc:terminalServer")
Recipes.addSubItem(new item.DiskDriveMountable(multi), Constants.ItemName.DiskDriveMountable, "oc:diskDriveMountable")
Recipes.addSubItem(new item.UpgradeTrading(multi), Constants.ItemName.TradingUpgrade, "oc:tradingUpgrade")
registerItem(new item.DiamondNugget(multi), Constants.ItemName.DiamondNugget)
// Register aliases.
for ((k, v) <- aliases) {

View File

@ -0,0 +1,3 @@
package li.cil.oc.common.item
class DiamondNugget(val parent: Delegator) extends traits.Delegate

View File

@ -1,7 +1,3 @@
package li.cil.oc.common.item
import li.cil.oc.integration.Mods
class IronNugget(val parent: Delegator) extends traits.Delegate {
showInItemList = !Mods.GregTech.isAvailable
}
class IronNugget(val parent: Delegator) extends traits.Delegate