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 {
input: [[busCable, {item=naquadah, subID=8}, ""]
input: [["StargateTech2:block.busCable", {item="StargateTech2:item.naquadah", subID=3}, ""]
["", "oc:materialCard", ""]]
}
graphicsCard1 {

View File

@ -25,9 +25,13 @@ class Proxy {
def preInit(e: FMLPreInitializationEvent) {
Settings.load(e.getSuggestedConfigurationFile)
OpenComputers.log.info("Initializing blocks and items.")
Blocks.init()
Items.init()
OpenComputers.log.info("Initializing additional OreDict entries.")
registerExclusive("craftingPiston", new ItemStack(Block.pistonBase), new ItemStack(Block.pistonStickyBase))
registerExclusive("torchRedstoneActive", new ItemStack(Block.torchRedstoneActive, 1, 0))
registerExclusive("nuggetGold", new ItemStack(Item.goldNugget))
@ -38,6 +42,8 @@ class Proxy {
Recipes.addItem(Item.ingotIron, "ingotIron")
}
OpenComputers.log.info("Initializing OpenComputers API.")
api.CreativeTab.instance = CreativeTab
api.Driver.instance = driver.Registry
api.FileSystem.instance = fs.FileSystem
@ -49,14 +55,17 @@ class Proxy {
api.Network.instance = network.Network
if (Mods.ForgeMultipart.isAvailable) {
OpenComputers.log.info("Initializing Forge MultiPart support.")
MultiPart.init()
}
if (Mods.ComputerCraft16.isAvailable) {
OpenComputers.log.info("Initializing OpenComputers support.")
ComputerCraft16.init()
}
}
def init(e: FMLInitializationEvent) {
OpenComputers.log.info("Initializing OpenComputers drivers.")
api.Driver.add(driver.item.FileSystem)
api.Driver.add(driver.item.GraphicsCard)
api.Driver.add(driver.item.InternetCard)
@ -85,21 +94,31 @@ class Proxy {
api.Driver.add(driver.item.WirelessNetworkCard)
if (Mods.StargateTech2.isAvailable) {
OpenComputers.log.info("Initializing StargateTech2 converter and driver.")
api.Driver.add(driver.converter.BusPacketNetScanDevice)
api.Driver.add(driver.item.AbstractBusCard)
}
if (Mods.ComputerCraft15.isAvailable) {
OpenComputers.log.info("Initializing ComputerCraft 1.5x floppy driver.")
api.Driver.add(driver.item.CC15Media)
}
if (Mods.ComputerCraft16.isAvailable) {
OpenComputers.log.info("Initializing ComputerCraft 1.6x floppy driver.")
api.Driver.add(driver.item.CC16Media)
}
OpenComputers.log.info("Initializing vanilla converters.")
api.Driver.add(driver.converter.FluidTankInfo)
api.Driver.add(driver.converter.ItemStack)
OpenComputers.log.info("Initializing loot disks.")
Loot.init()
OpenComputers.log.info("Initializing recipes.")
Recipes.init()
OpenComputers.log.info("Initializing event handlers.")
GameRegistry.registerCraftingHandler(CraftingHandler)
ForgeChunkManager.setForcedChunkLoadingCallback(OpenComputers, ChunkloaderUpgradeHandler)
@ -109,13 +128,16 @@ class Proxy {
MinecraftForge.EVENT_BUS.register(ExperienceUpgradeHandler)
MinecraftForge.EVENT_BUS.register(WirelessNetworkCardHandler)
if (Mods.TinkersConstruct.isAvailable) {
OpenComputers.log.info("Initializing Tinker's Construct tool support.")
MinecraftForge.EVENT_BUS.register(TinkersConstructToolHandler)
}
if (Mods.UniversalElectricity.isAvailable) {
OpenComputers.log.info("Initializing electric tool support.")
MinecraftForge.EVENT_BUS.register(UniversalElectricityToolHandler)
}
MinecraftForge.EVENT_BUS.register(Loot)
OpenComputers.log.info("Initializing Waila support.")
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 java.util
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.creativetab.CreativeTabs
import net.minecraft.entity.player.EntityPlayer
@ -13,6 +13,7 @@ import net.minecraft.world.World
import net.minecraftforge.common.ChestGenHooks
import scala.collection.mutable
import net.minecraft.entity.Entity
import java.util.logging.Level
class Delegator(id: Int) extends Item(id) {
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) {
super.addInformation(stack, player, tooltip, advanced)
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.
}
}

View File

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

View File

@ -108,6 +108,7 @@ private[oc] object Registry extends api.detail.DriverAPI {
case arg =>
val converted = new util.HashMap[AnyRef, AnyRef]()
memo += arg -> converted
println("applying " + converters.size + " converters to " + arg.getClass.getName)
converters.foreach(converter => try converter.convert(arg, converted) catch {
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]) = {
val converted = new Array[AnyRef](list.size)
val converted = mutable.ArrayBuffer.empty[AnyRef]
memo += obj -> converted
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]) = {

View File

@ -27,7 +27,12 @@ object Mods {
val PortalGun = new SimpleMod("PortalGun")
val ProjectRed = new SimpleMod("ProjRed|Transmission")
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 TinkersConstruct = new SimpleMod("TConstruct")
val UniversalElectricity = new SimpleMod("UniversalElectricity@[3.1,)")