Fixed abstract bus card recipe.

Fixed array converter.
This commit is contained in:
Florian Nücke 2014-06-04 22:22:30 +02:00
parent 0e6963d3d9
commit 254f48c208
6 changed files with 39 additions and 8 deletions

View File

@ -79,7 +79,7 @@ openOS {
} }
abstractBusCard { abstractBusCard {
input: [[busCable, {item=naquadah, subID=8}, ""] input: [["StargateTech2:block.busCable", {item="StargateTech2:item.naquadah", subID=3}, ""]
["", "oc:materialCard", ""]] ["", "oc:materialCard", ""]]
} }
graphicsCard1 { graphicsCard1 {

View File

@ -25,9 +25,13 @@ class Proxy {
def preInit(e: FMLPreInitializationEvent) { def preInit(e: FMLPreInitializationEvent) {
Settings.load(e.getSuggestedConfigurationFile) Settings.load(e.getSuggestedConfigurationFile)
OpenComputers.log.info("Initializing blocks and items.")
Blocks.init() Blocks.init()
Items.init() Items.init()
OpenComputers.log.info("Initializing additional OreDict entries.")
registerExclusive("craftingPiston", new ItemStack(Block.pistonBase), new ItemStack(Block.pistonStickyBase)) registerExclusive("craftingPiston", new ItemStack(Block.pistonBase), new ItemStack(Block.pistonStickyBase))
registerExclusive("torchRedstoneActive", new ItemStack(Block.torchRedstoneActive, 1, 0)) registerExclusive("torchRedstoneActive", new ItemStack(Block.torchRedstoneActive, 1, 0))
registerExclusive("nuggetGold", new ItemStack(Item.goldNugget)) registerExclusive("nuggetGold", new ItemStack(Item.goldNugget))
@ -38,6 +42,8 @@ class Proxy {
Recipes.addItem(Item.ingotIron, "ingotIron") Recipes.addItem(Item.ingotIron, "ingotIron")
} }
OpenComputers.log.info("Initializing OpenComputers API.")
api.CreativeTab.instance = CreativeTab api.CreativeTab.instance = CreativeTab
api.Driver.instance = driver.Registry api.Driver.instance = driver.Registry
api.FileSystem.instance = fs.FileSystem api.FileSystem.instance = fs.FileSystem
@ -49,14 +55,17 @@ class Proxy {
api.Network.instance = network.Network api.Network.instance = network.Network
if (Mods.ForgeMultipart.isAvailable) { if (Mods.ForgeMultipart.isAvailable) {
OpenComputers.log.info("Initializing Forge MultiPart support.")
MultiPart.init() MultiPart.init()
} }
if (Mods.ComputerCraft16.isAvailable) { if (Mods.ComputerCraft16.isAvailable) {
OpenComputers.log.info("Initializing OpenComputers support.")
ComputerCraft16.init() ComputerCraft16.init()
} }
} }
def init(e: FMLInitializationEvent) { def init(e: FMLInitializationEvent) {
OpenComputers.log.info("Initializing OpenComputers drivers.")
api.Driver.add(driver.item.FileSystem) api.Driver.add(driver.item.FileSystem)
api.Driver.add(driver.item.GraphicsCard) api.Driver.add(driver.item.GraphicsCard)
api.Driver.add(driver.item.InternetCard) api.Driver.add(driver.item.InternetCard)
@ -85,21 +94,31 @@ class Proxy {
api.Driver.add(driver.item.WirelessNetworkCard) api.Driver.add(driver.item.WirelessNetworkCard)
if (Mods.StargateTech2.isAvailable) { if (Mods.StargateTech2.isAvailable) {
OpenComputers.log.info("Initializing StargateTech2 converter and driver.")
api.Driver.add(driver.converter.BusPacketNetScanDevice) api.Driver.add(driver.converter.BusPacketNetScanDevice)
api.Driver.add(driver.item.AbstractBusCard) api.Driver.add(driver.item.AbstractBusCard)
} }
if (Mods.ComputerCraft15.isAvailable) { if (Mods.ComputerCraft15.isAvailable) {
OpenComputers.log.info("Initializing ComputerCraft 1.5x floppy driver.")
api.Driver.add(driver.item.CC15Media) api.Driver.add(driver.item.CC15Media)
} }
if (Mods.ComputerCraft16.isAvailable) { if (Mods.ComputerCraft16.isAvailable) {
OpenComputers.log.info("Initializing ComputerCraft 1.6x floppy driver.")
api.Driver.add(driver.item.CC16Media) api.Driver.add(driver.item.CC16Media)
} }
OpenComputers.log.info("Initializing vanilla converters.")
api.Driver.add(driver.converter.FluidTankInfo) api.Driver.add(driver.converter.FluidTankInfo)
api.Driver.add(driver.converter.ItemStack) api.Driver.add(driver.converter.ItemStack)
OpenComputers.log.info("Initializing loot disks.")
Loot.init() Loot.init()
OpenComputers.log.info("Initializing recipes.")
Recipes.init() Recipes.init()
OpenComputers.log.info("Initializing event handlers.")
GameRegistry.registerCraftingHandler(CraftingHandler) GameRegistry.registerCraftingHandler(CraftingHandler)
ForgeChunkManager.setForcedChunkLoadingCallback(OpenComputers, ChunkloaderUpgradeHandler) ForgeChunkManager.setForcedChunkLoadingCallback(OpenComputers, ChunkloaderUpgradeHandler)
@ -109,13 +128,16 @@ class Proxy {
MinecraftForge.EVENT_BUS.register(ExperienceUpgradeHandler) MinecraftForge.EVENT_BUS.register(ExperienceUpgradeHandler)
MinecraftForge.EVENT_BUS.register(WirelessNetworkCardHandler) MinecraftForge.EVENT_BUS.register(WirelessNetworkCardHandler)
if (Mods.TinkersConstruct.isAvailable) { if (Mods.TinkersConstruct.isAvailable) {
OpenComputers.log.info("Initializing Tinker's Construct tool support.")
MinecraftForge.EVENT_BUS.register(TinkersConstructToolHandler) MinecraftForge.EVENT_BUS.register(TinkersConstructToolHandler)
} }
if (Mods.UniversalElectricity.isAvailable) { if (Mods.UniversalElectricity.isAvailable) {
OpenComputers.log.info("Initializing electric tool support.")
MinecraftForge.EVENT_BUS.register(UniversalElectricityToolHandler) MinecraftForge.EVENT_BUS.register(UniversalElectricityToolHandler)
} }
MinecraftForge.EVENT_BUS.register(Loot) MinecraftForge.EVENT_BUS.register(Loot)
OpenComputers.log.info("Initializing Waila support.")
FMLInterModComms.sendMessage("Waila", "register", "li.cil.oc.util.mods.Waila.init") FMLInterModComms.sendMessage("Waila", "register", "li.cil.oc.util.mods.Waila.init")
} }

View File

@ -3,7 +3,7 @@ package li.cil.oc.common.item
import cpw.mods.fml.relauncher.{Side, SideOnly} import cpw.mods.fml.relauncher.{Side, SideOnly}
import java.util import java.util
import java.util.Random import java.util.Random
import li.cil.oc.{Settings, CreativeTab} import li.cil.oc.{OpenComputers, Settings, CreativeTab}
import net.minecraft.client.renderer.texture.IconRegister import net.minecraft.client.renderer.texture.IconRegister
import net.minecraft.creativetab.CreativeTabs import net.minecraft.creativetab.CreativeTabs
import net.minecraft.entity.player.EntityPlayer import net.minecraft.entity.player.EntityPlayer
@ -13,6 +13,7 @@ import net.minecraft.world.World
import net.minecraftforge.common.ChestGenHooks import net.minecraftforge.common.ChestGenHooks
import scala.collection.mutable import scala.collection.mutable
import net.minecraft.entity.Entity import net.minecraft.entity.Entity
import java.util.logging.Level
class Delegator(id: Int) extends Item(id) { class Delegator(id: Int) extends Item(id) {
setHasSubtypes(true) setHasSubtypes(true)
@ -114,7 +115,9 @@ class Delegator(id: Int) extends Item(id) {
override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[_], advanced: Boolean) { override def addInformation(stack: ItemStack, player: EntityPlayer, tooltip: util.List[_], advanced: Boolean) {
super.addInformation(stack, player, tooltip, advanced) super.addInformation(stack, player, tooltip, advanced)
subItem(stack) match { subItem(stack) match {
case Some(subItem) => subItem.tooltipLines(stack, player, tooltip.asInstanceOf[util.List[String]], advanced) case Some(subItem) => try subItem.tooltipLines(stack, player, tooltip.asInstanceOf[util.List[String]], advanced) catch {
case t: Throwable => OpenComputers.log.log(Level.WARNING, "Error in item tooltip.", t)
}
case _ => // Nothing to add. case _ => // Nothing to add.
} }
} }

View File

@ -94,7 +94,7 @@ class AbstractBus(val device: IBusDevice) extends component.ManagedComponent wit
packet.finish() packet.finish()
sendQueue = Some(packet) sendQueue = Some(packet)
busInterface.sendAllPackets() busInterface.sendAllPackets()
result(true) result(packet.getResponses.toArray)
} }
else result(Unit, "not enough energy") else result(Unit, "not enough energy")
} }

View File

@ -108,6 +108,7 @@ private[oc] object Registry extends api.detail.DriverAPI {
case arg => case arg =>
val converted = new util.HashMap[AnyRef, AnyRef]() val converted = new util.HashMap[AnyRef, AnyRef]()
memo += arg -> converted memo += arg -> converted
println("applying " + converters.size + " converters to " + arg.getClass.getName)
converters.foreach(converter => try converter.convert(arg, converted) catch { converters.foreach(converter => try converter.convert(arg, converted) catch {
case t: Throwable => OpenComputers.log.log(Level.WARNING, "Type converter threw an exception.", t) case t: Throwable => OpenComputers.log.log(Level.WARNING, "Type converter threw an exception.", t)
}) })
@ -133,12 +134,12 @@ private[oc] object Registry extends api.detail.DriverAPI {
} }
def convertList(obj: AnyRef, list: Iterator[(Any, Int)], memo: util.IdentityHashMap[AnyRef, AnyRef]) = { def convertList(obj: AnyRef, list: Iterator[(Any, Int)], memo: util.IdentityHashMap[AnyRef, AnyRef]) = {
val converted = new Array[AnyRef](list.size) val converted = mutable.ArrayBuffer.empty[AnyRef]
memo += obj -> converted memo += obj -> converted
for ((value, index) <- list) { for ((value, index) <- list) {
converted(index) = convertRecursively(value, memo) converted += convertRecursively(value, memo)
} }
converted converted.toArray
} }
def convertMap(obj: AnyRef, map: Map[_, _], memo: util.IdentityHashMap[AnyRef, AnyRef]) = { def convertMap(obj: AnyRef, map: Map[_, _], memo: util.IdentityHashMap[AnyRef, AnyRef]) = {

View File

@ -27,7 +27,12 @@ object Mods {
val PortalGun = new SimpleMod("PortalGun") val PortalGun = new SimpleMod("PortalGun")
val ProjectRed = new SimpleMod("ProjRed|Transmission") val ProjectRed = new SimpleMod("ProjRed|Transmission")
val RedLogic = new SimpleMod("RedLogic") val RedLogic = new SimpleMod("RedLogic")
val StargateTech2 = new SimpleMod("StargateTech2@[0.7.0,)") val StargateTech2 = new Mod {
val isAvailable = Loader.isModLoaded("StargateTech2") && {
val mod = Loader.instance.getIndexedModList.get("StargateTech2")
mod.getVersion.startsWith("0.7.")
}
}
val ThermalExpansion = new SimpleMod("ThermalExpansion") val ThermalExpansion = new SimpleMod("ThermalExpansion")
val TinkersConstruct = new SimpleMod("TConstruct") val TinkersConstruct = new SimpleMod("TConstruct")
val UniversalElectricity = new SimpleMod("UniversalElectricity@[3.1,)") val UniversalElectricity = new SimpleMod("UniversalElectricity@[3.1,)")