Fixery of (partially weird) stuff.

This commit is contained in:
Florian Nücke 2014-10-10 17:32:05 +02:00
parent 92691ae318
commit 223f981ae6
8 changed files with 65 additions and 45 deletions

View File

@ -125,6 +125,7 @@ processResources {
}
jar {
exclude "cofh/**"
configurations.embedded.each { dep ->
from(project.zipTree(dep)){
exclude 'META-INF', 'META-INF/**'
@ -144,6 +145,7 @@ javadoc {
// because the normal default jar task has been modified to be obfuscated
task deobfJar(type: Jar) {
from sourceSets.main.output
exclude "cofh/**"
configurations.embedded.each { dep ->
from(project.zipTree(dep)){
exclude 'META-INF', 'META-INF/**'

View File

@ -1,33 +1,19 @@
package li.cil.oc.integration.computercraft
import dan200.computercraft.api.ComputerCraftAPI
import dan200.computercraft.api.lua.ILuaContext
import dan200.computercraft.api.peripheral.IComputerAccess
import dan200.computercraft.api.peripheral.IPeripheral
import dan200.computercraft.api.peripheral.IPeripheralProvider
import li.cil.oc.api.Driver
import li.cil.oc.common.tileentity.Switch
import li.cil.oc.integration.ModProxy
import li.cil.oc.integration.Mods
import net.minecraft.world.World
import scala.collection.mutable
object ModComputerCraft extends ModProxy {
override def getMod = Mods.ComputerCraft
override def initialize() {
ComputerCraftAPI.registerPeripheralProvider(new IPeripheralProvider {
override def getPeripheral(world: World, x: Int, y: Int, z: Int, side: Int) = world.getTileEntity(x, y, z) match {
case switch: Switch => new SwitchPeripheral(switch)
case _ => null
}
})
PeripheralProvider.init()
Driver.add(DriverComputerCraftMedia)
try {
val driver: DriverPeripheral = new DriverPeripheral
val driver = new DriverPeripheral()
if (driver.isValid) {
Driver.add(new ConverterLuaObject)
Driver.add(driver)
@ -37,29 +23,4 @@ object ModComputerCraft extends ModProxy {
case ignored: Throwable =>
}
}
class SwitchPeripheral(val switch: Switch) extends IPeripheral {
override def getType = switch.getType
override def attach(computer: IComputerAccess) {
switch.computers += computer
switch.openPorts += computer -> mutable.Set.empty
}
override def detach(computer: IComputerAccess) {
switch.computers -= computer
switch.openPorts -= computer
}
override def getMethodNames = switch.getMethodNames
override def callMethod(computer: IComputerAccess, context: ILuaContext, method: Int, arguments: Array[AnyRef]) =
switch.callMethod(computer, context, method, arguments)
override def equals(other: IPeripheral) = other match {
case peripheral: SwitchPeripheral => peripheral.switch == switch
case _ => false
}
}
}

View File

@ -0,0 +1,17 @@
package li.cil.oc.integration.computercraft
import dan200.computercraft.api.ComputerCraftAPI
import dan200.computercraft.api.peripheral.IPeripheralProvider
import li.cil.oc.common.tileentity.Switch
import net.minecraft.world.World
object PeripheralProvider extends IPeripheralProvider {
def init() {
ComputerCraftAPI.registerPeripheralProvider(this)
}
override def getPeripheral(world: World, x: Int, y: Int, z: Int, side: Int) = world.getTileEntity(x, y, z) match {
case switch: Switch => new SwitchPeripheral(switch)
case _ => null
}
}

View File

@ -0,0 +1,32 @@
package li.cil.oc.integration.computercraft
import dan200.computercraft.api.lua.ILuaContext
import dan200.computercraft.api.peripheral.IComputerAccess
import dan200.computercraft.api.peripheral.IPeripheral
import li.cil.oc.common.tileentity.Switch
import scala.collection.mutable
class SwitchPeripheral(val switch: Switch) extends IPeripheral {
override def getType = switch.getType
override def attach(computer: IComputerAccess) {
switch.computers += computer
switch.openPorts += computer -> mutable.Set.empty
}
override def detach(computer: IComputerAccess) {
switch.computers -= computer
switch.openPorts -= computer
}
override def getMethodNames = switch.getMethodNames
override def callMethod(computer: IComputerAccess, context: ILuaContext, method: Int, arguments: Array[AnyRef]) =
switch.callMethod(computer, context, method, arguments)
override def equals(other: IPeripheral) = other match {
case peripheral: SwitchPeripheral => peripheral.switch == switch
case _ => false
}
}

View File

@ -1,7 +1,5 @@
package li.cil.oc.integration.fmp
import codechicken.multipart.MultiPartRegistry
import li.cil.oc.Settings
import li.cil.oc.integration.ModProxy
import li.cil.oc.integration.Mods
import net.minecraftforge.common.MinecraftForge
@ -10,8 +8,8 @@ object ModForgeMultipart extends ModProxy {
override def getMod = Mods.ForgeMultipart
override def initialize() {
MultiPartRegistry.registerConverter(MultipartConverter)
MultiPartRegistry.registerParts(MultipartFactory, Array(Settings.namespace + "cable"))
MultipartConverter.init()
MultipartFactory.init()
MinecraftForge.EVENT_BUS.register(EventHandler)
}

View File

@ -3,12 +3,17 @@ package li.cil.oc.integration.fmp
import java.util
import codechicken.lib.vec.BlockCoord
import codechicken.multipart.MultiPartRegistry
import codechicken.multipart.MultiPartRegistry.IPartConverter
import li.cil.oc.api.Items
import li.cil.oc.common.tileentity.Cable
import net.minecraft.world.World
object MultipartConverter extends IPartConverter {
def init() {
MultiPartRegistry.registerConverter(this)
}
override def blockTypes = util.Arrays.asList(Items.get("cable").block)
override def convert(world: World, pos: BlockCoord) = {

View File

@ -1,10 +1,15 @@
package li.cil.oc.integration.fmp
import codechicken.multipart.MultiPartRegistry
import codechicken.multipart.MultiPartRegistry.IPartFactory
import codechicken.multipart.TMultiPart
import li.cil.oc.Settings
object MultipartFactory extends IPartFactory {
def init() {
MultiPartRegistry.registerParts(MultipartFactory, Array(Settings.namespace + "cable"))
}
override def createPart(name: String, client: Boolean): TMultiPart = {
if (name.equals(Settings.namespace + "cable"))
return new CablePart()