mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-15 10:21:45 -04:00
more abstract bus bootstrapping, added item
This commit is contained in:
parent
f194b4a438
commit
f0e055ba77
@ -6,57 +6,58 @@ import net.minecraft.item.ItemStack
|
||||
import net.minecraftforge.oredict.OreDictionary
|
||||
|
||||
object Items {
|
||||
var multi: item.Delegator = null
|
||||
var multi: item.Delegator = _
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
// Tools
|
||||
var analyzer: item.Analyzer = null
|
||||
var analyzer: item.Analyzer = _
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
// Memory
|
||||
var ram1, ram2, ram3: item.Memory = null
|
||||
var ram1, ram2, ram3: item.Memory = _
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
// Storage
|
||||
var floppyDisk: item.FloppyDisk = null
|
||||
var hdd1, hdd2, hdd3: item.HardDiskDrive = null
|
||||
var floppyDisk: item.FloppyDisk = _
|
||||
var hdd1, hdd2, hdd3: item.HardDiskDrive = _
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
// Cards
|
||||
var gpu1, gpu2, gpu3: item.GraphicsCard = null
|
||||
var lan: item.NetworkCard = null
|
||||
var rs: item.RedstoneCard = null
|
||||
var wlan: item.WirelessNetworkCard = null
|
||||
var abstractBus: item.AbstractBusCard = _
|
||||
var gpu1, gpu2, gpu3: item.GraphicsCard = _
|
||||
var lan: item.NetworkCard = _
|
||||
var rs: item.RedstoneCard = _
|
||||
var wlan: item.WirelessNetworkCard = _
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
// Upgrades
|
||||
var upgradeCrafting: item.UpgradeCrafting = null
|
||||
var upgradeGenerator: item.UpgradeGenerator = null
|
||||
var upgradeNavigation: item.UpgradeNavigation = null
|
||||
var upgradeSign: item.UpgradeSign = null
|
||||
var upgradeSolarGenerator: item.UpgradeSolarGenerator = null
|
||||
var upgradeCrafting: item.UpgradeCrafting = _
|
||||
var upgradeGenerator: item.UpgradeGenerator = _
|
||||
var upgradeNavigation: item.UpgradeNavigation = _
|
||||
var upgradeSign: item.UpgradeSign = _
|
||||
var upgradeSolarGenerator: item.UpgradeSolarGenerator = _
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
// Crafting
|
||||
var ironNugget: item.IronNugget = null
|
||||
var cuttingWire: item.CuttingWire = null
|
||||
var acid: item.Acid = null
|
||||
var disk: item.Disk = null
|
||||
var ironNugget: item.IronNugget = _
|
||||
var cuttingWire: item.CuttingWire = _
|
||||
var acid: item.Acid = _
|
||||
var disk: item.Disk = _
|
||||
|
||||
var buttonGroup: item.ButtonGroup = null
|
||||
var arrowKeys: item.ArrowKeys = null
|
||||
var numPad: item.NumPad = null
|
||||
var buttonGroup: item.ButtonGroup = _
|
||||
var arrowKeys: item.ArrowKeys = _
|
||||
var numPad: item.NumPad = _
|
||||
|
||||
var transistor: item.Transistor = null
|
||||
var chip1, chip2, chip3: item.Microchip = null
|
||||
var alu: item.ALU = null
|
||||
var cpu: item.CPU = null
|
||||
var cu: item.ControlUnit = null
|
||||
var transistor: item.Transistor = _
|
||||
var chip1, chip2, chip3: item.Microchip = _
|
||||
var alu: item.ALU = _
|
||||
var cpu: item.CPU = _
|
||||
var cu: item.ControlUnit = _
|
||||
|
||||
var rawCircuitBoard: item.RawCircuitBoard = null
|
||||
var circuitBoard: item.CircuitBoard = null
|
||||
var pcb: item.PrintedCircuitBoard = null
|
||||
var card: item.CardBase = null
|
||||
var rawCircuitBoard: item.RawCircuitBoard = _
|
||||
var circuitBoard: item.CircuitBoard = _
|
||||
var pcb: item.PrintedCircuitBoard = _
|
||||
var card: item.CardBase = _
|
||||
|
||||
def init() {
|
||||
multi = new item.Delegator(Settings.get.itemId)
|
||||
@ -111,6 +112,8 @@ object Items {
|
||||
upgradeSign = new item.UpgradeSign(multi)
|
||||
upgradeNavigation = new item.UpgradeNavigation(multi)
|
||||
|
||||
abstractBus = new item.AbstractBusCard(multi)
|
||||
|
||||
// ----------------------------------------------------------------------- //
|
||||
|
||||
registerExclusive("nuggetIron", ironNugget.createItemStack())
|
||||
|
@ -27,16 +27,17 @@ class Proxy {
|
||||
api.Driver.add(driver.block.CommandBlock)
|
||||
api.Driver.add(driver.block.NoteBlock)
|
||||
|
||||
api.Driver.add(driver.item.UpgradeCrafting)
|
||||
api.Driver.add(driver.item.AbstractBusCard)
|
||||
api.Driver.add(driver.item.FileSystem)
|
||||
api.Driver.add(driver.item.UpgradeGenerator)
|
||||
api.Driver.add(driver.item.SolarGenerator)
|
||||
api.Driver.add(driver.item.GraphicsCard)
|
||||
api.Driver.add(driver.item.UpgradeNavigation)
|
||||
api.Driver.add(driver.item.Memory)
|
||||
api.Driver.add(driver.item.NetworkCard)
|
||||
api.Driver.add(driver.item.UpgradeSign)
|
||||
api.Driver.add(driver.item.RedstoneCard)
|
||||
api.Driver.add(driver.item.UpgradeCrafting)
|
||||
api.Driver.add(driver.item.UpgradeGenerator)
|
||||
api.Driver.add(driver.item.UpgradeNavigation)
|
||||
api.Driver.add(driver.item.UpgradeSign)
|
||||
api.Driver.add(driver.item.UpgradeSolarGenerator)
|
||||
api.Driver.add(driver.item.WirelessNetworkCard)
|
||||
|
||||
Recipes.init()
|
||||
|
27
li/cil/oc/common/item/AbstractBusCard.scala
Normal file
27
li/cil/oc/common/item/AbstractBusCard.scala
Normal file
@ -0,0 +1,27 @@
|
||||
package li.cil.oc.common.item
|
||||
|
||||
import cpw.mods.fml.common.Loader
|
||||
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.ItemStack
|
||||
|
||||
class AbstractBusCard(val parent: Delegator) extends Delegate {
|
||||
val unlocalizedName = "AbstractBusCard"
|
||||
|
||||
// TODO change when done
|
||||
override val showInItemList = true // Loader.isModLoaded("StargateTech2")
|
||||
|
||||
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 + ":card_abstract_bus")
|
||||
}
|
||||
}
|
@ -1,12 +1,28 @@
|
||||
package li.cil.oc.common.tileentity
|
||||
|
||||
import cpw.mods.fml.common.Optional
|
||||
import cpw.mods.fml.common.Optional.Interface
|
||||
import net.minecraft.item.ItemStack
|
||||
import stargatetech2.api.bus.IBusDevice
|
||||
|
||||
@Optional(new Interface(iface = "stargatetech2.api.bus.IBusDevice", modid = "StargateTech2"))
|
||||
trait AbstractBusAware extends IBusDevice {
|
||||
@Optional.Interface(iface = "stargatetech2.api.bus.IBusDevice", modid = "StargateTech2")
|
||||
trait AbstractBusAware extends TileEntity with Inventory with IBusDevice {
|
||||
def getInterfaces(side: Int) = if (hasAbstractBusCard) Array(null) else null
|
||||
|
||||
def getXCoord = x
|
||||
|
||||
def getYCoord = y
|
||||
|
||||
def getZCoord = z
|
||||
|
||||
protected def hasAbstractBusCard = false
|
||||
|
||||
override protected def onItemAdded(slot: Int, stack: ItemStack) {
|
||||
super.onItemAdded(slot, stack)
|
||||
// TODO if card wasn't present, send device added event
|
||||
}
|
||||
|
||||
override protected def onItemRemoved(slot: Int, stack: ItemStack) {
|
||||
super.onItemRemoved(slot, stack)
|
||||
// TODO if no card is present anymore, send device removed event
|
||||
}
|
||||
}
|
||||
|
@ -62,9 +62,12 @@ class AbstractBus(val owner: tileentity.Computer) extends ManagedComponent with
|
||||
@LuaCallback("send")
|
||||
def send(context: Context, args: Arguments): Array[AnyRef] = {
|
||||
val target = args.checkInteger(0) & 0xFFFF
|
||||
val data = ???
|
||||
val packet = new BusPacketLIP(address, target.toShort)
|
||||
// TODO
|
||||
val data = args.checkTable(1)
|
||||
val packet = new BusPacketLIP(address.toShort, target.toShort)
|
||||
for ((key, value) <- data) {
|
||||
packet.set(key.toString, value.toString)
|
||||
}
|
||||
// TODO generate metadata
|
||||
sendQueue += packet
|
||||
result(true)
|
||||
}
|
||||
@ -76,6 +79,7 @@ class AbstractBus(val owner: tileentity.Computer) extends ManagedComponent with
|
||||
busInterface.readFromNBT(nbt, "bus")
|
||||
isEnabled = nbt.getBoolean("enabled")
|
||||
address = nbt.getInteger("address") & 0xFFFF
|
||||
// TODO load queue
|
||||
}
|
||||
|
||||
override def save(nbt: NBTTagCompound) {
|
||||
@ -83,5 +87,6 @@ class AbstractBus(val owner: tileentity.Computer) extends ManagedComponent with
|
||||
busInterface.writeToNBT(nbt, "bus")
|
||||
nbt.setBoolean("enabled", isEnabled)
|
||||
nbt.setInteger("address", address)
|
||||
// TODO save queue
|
||||
}
|
||||
}
|
||||
|
20
li/cil/oc/server/driver/item/AbstractBusCard.scala
Normal file
20
li/cil/oc/server/driver/item/AbstractBusCard.scala
Normal file
@ -0,0 +1,20 @@
|
||||
package li.cil.oc.server.driver.item
|
||||
|
||||
import cpw.mods.fml.common.Loader
|
||||
import li.cil.oc.Items
|
||||
import li.cil.oc.api.driver.Slot
|
||||
import li.cil.oc.common.tileentity
|
||||
import li.cil.oc.server.component
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
||||
|
||||
object AbstractBusCard extends Item {
|
||||
def worksWith(stack: ItemStack) = isOneOf(stack, Items.abstractBus)
|
||||
|
||||
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = container match {
|
||||
case computer: tileentity.Computer if Loader.isModLoaded("StargateTech2") => new component.AbstractBus(computer)
|
||||
case _ => null
|
||||
}
|
||||
|
||||
def slot(stack: ItemStack) = Slot.Card
|
||||
}
|
@ -6,7 +6,7 @@ import li.cil.oc.server.component
|
||||
import net.minecraft.item.ItemStack
|
||||
import net.minecraft.tileentity.{TileEntity => MCTileEntity}
|
||||
|
||||
object SolarGenerator extends Item {
|
||||
object UpgradeSolarGenerator extends Item {
|
||||
override def worksWith(stack: ItemStack) = isOneOf(stack, Items.upgradeSolarGenerator)
|
||||
|
||||
override def createEnvironment(stack: ItemStack, container: MCTileEntity) = new component.UpgradeSolarGenerator(container)
|
@ -47,7 +47,7 @@ public final class BusPacketLIP extends BusPacket {
|
||||
}
|
||||
}
|
||||
|
||||
protected BusPacketLIP(short sender, short target) {
|
||||
public BusPacketLIP(short sender, short target) {
|
||||
super(sender, target, true);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user