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