mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-18 19:56:17 -04:00
Merge branch 'OC1.3-MC1.6.4' of github.com:MightyPirates/OpenComputers
Conflicts: build.properties
This commit is contained in:
commit
4508e4f45e
@ -22,6 +22,8 @@ import net.minecraft.network.{INetworkManager, NetLoginHandler}
|
|||||||
import net.minecraft.server.MinecraftServer
|
import net.minecraft.server.MinecraftServer
|
||||||
import net.minecraft.tileentity.TileEntity
|
import net.minecraft.tileentity.TileEntity
|
||||||
import net.minecraftforge.common.MinecraftForge
|
import net.minecraftforge.common.MinecraftForge
|
||||||
|
import net.minecraftforge.event.ForgeSubscribe
|
||||||
|
import net.minecraftforge.event.world.WorldEvent
|
||||||
|
|
||||||
import scala.collection.mutable
|
import scala.collection.mutable
|
||||||
import scala.concurrent.ExecutionContext.Implicits.global
|
import scala.concurrent.ExecutionContext.Implicits.global
|
||||||
@ -181,4 +183,14 @@ object EventHandler extends ITickHandler with IConnectionHandler with ICraftingH
|
|||||||
}
|
}
|
||||||
|
|
||||||
override def onSmelting(player: EntityPlayer, item: ItemStack) {}
|
override def onSmelting(player: EntityPlayer, item: ItemStack) {}
|
||||||
|
|
||||||
|
@ForgeSubscribe
|
||||||
|
def onWorldUnload(e: WorldEvent.Unload) {
|
||||||
|
if (!e.world.isRemote) {
|
||||||
|
import scala.collection.convert.WrapAsScala._
|
||||||
|
e.world.loadedTileEntityList.collect {
|
||||||
|
case te: tileentity.traits.TileEntity => te.onChunkUnload()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -132,6 +132,7 @@ class Proxy {
|
|||||||
MinecraftForge.EVENT_BUS.register(AngelUpgradeHandler)
|
MinecraftForge.EVENT_BUS.register(AngelUpgradeHandler)
|
||||||
MinecraftForge.EVENT_BUS.register(ChunkloaderUpgradeHandler)
|
MinecraftForge.EVENT_BUS.register(ChunkloaderUpgradeHandler)
|
||||||
MinecraftForge.EVENT_BUS.register(ExperienceUpgradeHandler)
|
MinecraftForge.EVENT_BUS.register(ExperienceUpgradeHandler)
|
||||||
|
MinecraftForge.EVENT_BUS.register(EventHandler)
|
||||||
MinecraftForge.EVENT_BUS.register(Loot)
|
MinecraftForge.EVENT_BUS.register(Loot)
|
||||||
MinecraftForge.EVENT_BUS.register(RobotCommonHandler)
|
MinecraftForge.EVENT_BUS.register(RobotCommonHandler)
|
||||||
MinecraftForge.EVENT_BUS.register(SaveHandler)
|
MinecraftForge.EVENT_BUS.register(SaveHandler)
|
||||||
|
@ -51,20 +51,27 @@ class Adapter extends traits.Environment with Analyzable {
|
|||||||
case Some(newDriver) => blocks(d.ordinal()) match {
|
case Some(newDriver) => blocks(d.ordinal()) match {
|
||||||
case Some((oldEnvironment, driver)) =>
|
case Some((oldEnvironment, driver)) =>
|
||||||
if (newDriver != driver) {
|
if (newDriver != driver) {
|
||||||
// This is... odd. Maybe moved by some other mod?
|
// This is... odd. Maybe moved by some other mod? First, clean up.
|
||||||
node.disconnect(oldEnvironment.node)
|
blocks(d.ordinal()) = None
|
||||||
val environment = newDriver.createEnvironment(world, x, y, z)
|
|
||||||
blocks(d.ordinal()) = Some((environment, newDriver))
|
|
||||||
updatingBlocks -= oldEnvironment
|
updatingBlocks -= oldEnvironment
|
||||||
|
blocksData(d.ordinal()) = None
|
||||||
|
node.disconnect(oldEnvironment.node)
|
||||||
|
|
||||||
|
// Then rebuild - if we have something.
|
||||||
|
val environment = newDriver.createEnvironment(world, x, y, z)
|
||||||
|
if (environment != null) {
|
||||||
|
blocks(d.ordinal()) = Some((environment, newDriver))
|
||||||
if (environment.canUpdate) {
|
if (environment.canUpdate) {
|
||||||
updatingBlocks += environment
|
updatingBlocks += environment
|
||||||
}
|
}
|
||||||
blocksData(d.ordinal()) = Some(new BlockData(environment.getClass.getName, new NBTTagCompound()))
|
blocksData(d.ordinal()) = Some(new BlockData(environment.getClass.getName, new NBTTagCompound()))
|
||||||
node.connect(environment.node)
|
node.connect(environment.node)
|
||||||
|
}
|
||||||
} // else: the more things change, the more they stay the same.
|
} // else: the more things change, the more they stay the same.
|
||||||
case _ =>
|
case _ =>
|
||||||
// A challenger appears.
|
// A challenger appears. Maybe.
|
||||||
val environment = newDriver.createEnvironment(world, x, y, z)
|
val environment = newDriver.createEnvironment(world, x, y, z)
|
||||||
|
if (environment != null) {
|
||||||
blocks(d.ordinal()) = Some((environment, newDriver))
|
blocks(d.ordinal()) = Some((environment, newDriver))
|
||||||
if (environment.canUpdate) {
|
if (environment.canUpdate) {
|
||||||
updatingBlocks += environment
|
updatingBlocks += environment
|
||||||
@ -77,6 +84,7 @@ class Adapter extends traits.Environment with Analyzable {
|
|||||||
blocksData(d.ordinal()) = Some(new BlockData(environment.getClass.getName, new NBTTagCompound()))
|
blocksData(d.ordinal()) = Some(new BlockData(environment.getClass.getName, new NBTTagCompound()))
|
||||||
node.connect(environment.node)
|
node.connect(environment.node)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
case _ => blocks(d.ordinal()) match {
|
case _ => blocks(d.ordinal()) match {
|
||||||
case Some((environment, driver)) =>
|
case Some((environment, driver)) =>
|
||||||
// We had something there, but it's gone now...
|
// We had something there, but it's gone now...
|
||||||
|
@ -265,13 +265,17 @@ class ServerRack extends traits.PowerAcceptor with traits.Hub with traits.PowerB
|
|||||||
|
|
||||||
override protected def initialize() {
|
override protected def initialize() {
|
||||||
super.initialize()
|
super.initialize()
|
||||||
|
if (isClient) {
|
||||||
ServerRack.list += this -> Unit
|
ServerRack.list += this -> Unit
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override protected def dispose() {
|
override protected def dispose() {
|
||||||
super.dispose()
|
super.dispose()
|
||||||
|
if (isClient) {
|
||||||
ServerRack.list -= this
|
ServerRack.list -= this
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override def readFromNBT(nbt: NBTTagCompound) {
|
override def readFromNBT(nbt: NBTTagCompound) {
|
||||||
super.readFromNBT(nbt)
|
super.readFromNBT(nbt)
|
||||||
|
@ -9,6 +9,7 @@ import li.cil.oc.api.network.{Message, Node, Visibility}
|
|||||||
import li.cil.oc.common.component
|
import li.cil.oc.common.component
|
||||||
import net.minecraft.entity.player.EntityPlayer
|
import net.minecraft.entity.player.EntityPlayer
|
||||||
import net.minecraftforge.common.MinecraftForge
|
import net.minecraftforge.common.MinecraftForge
|
||||||
|
import net.minecraftforge.event.world.WorldEvent
|
||||||
import net.minecraftforge.event.{Event, ForgeSubscribe}
|
import net.minecraftforge.event.{Event, ForgeSubscribe}
|
||||||
|
|
||||||
import scala.collection.mutable
|
import scala.collection.mutable
|
||||||
@ -45,6 +46,13 @@ class Keyboard(val owner: Container) extends component.ManagedComponent with api
|
|||||||
pressedKeys.remove(e.player)
|
pressedKeys.remove(e.player)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ForgeSubscribe
|
||||||
|
def onWorldUnload(e: WorldEvent.Unload) {
|
||||||
|
try MinecraftForge.EVENT_BUS.unregister(this) catch {
|
||||||
|
case ignore: Throwable =>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- //
|
// ----------------------------------------------------------------------- //
|
||||||
|
|
||||||
override def onConnect(node: Node) {
|
override def onConnect(node: Node) {
|
||||||
|
@ -491,7 +491,7 @@ class Machine(val owner: Owner, constructor: Constructor[_ <: Architecture]) ext
|
|||||||
}
|
}
|
||||||
|
|
||||||
override def onDisconnect(node: Node) {
|
override def onDisconnect(node: Node) {
|
||||||
if (node == this.node) {
|
if (node == this.node) this.synchronized {
|
||||||
close()
|
close()
|
||||||
tmp.foreach(_.node.remove())
|
tmp.foreach(_.node.remove())
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user