mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-13 09:18:05 -04:00
Should fix potential leakage of drones.
Cleaned up robot name list a bit.
This commit is contained in:
parent
effe8ebea1
commit
15f5609a0e
@ -5,8 +5,10 @@
|
||||
# Names of more or less famous robots and AIs, are welcome. Feel free to add
|
||||
# more via pull requests. Let's hope this won't get us sued...
|
||||
|
||||
# When adding names, please keep the list sorted alphabetially, make sure it's
|
||||
# When adding names, please keep the list sorted alphabetically, make sure it's
|
||||
# not already in the list, and, where appropriate, provide a concise source.
|
||||
# And since we now also have that special case, ignore special characters when
|
||||
# sorting.
|
||||
|
||||
Adventure Core # Portal
|
||||
Anson Argyris # Perry Rhodan
|
||||
@ -27,13 +29,13 @@ Claptrap # Borderlands
|
||||
Crypto # Kodos
|
||||
Daedalus # Deus Ex
|
||||
Dalek Sec # Doctor Who
|
||||
Deputy ANDY # Eureka
|
||||
Death Trap # Borderlands 2's Mechromancer
|
||||
Deputy ANDY # Eureka
|
||||
Dog # Half-Life
|
||||
Donald Duck # Perry Rhodan
|
||||
Elmer # One of the first two robots developed by William Gray Walter.
|
||||
Elsie # One of the first two robots developed by William Gray Walter.
|
||||
Emilia # Digital: A Love Story
|
||||
*Emilia # Digital: A Love Story
|
||||
Eve # Wall-E
|
||||
Fact Core # Portal
|
||||
Flexo # Futurama
|
||||
@ -43,11 +45,11 @@ HAL 9000 # Space Odyssey
|
||||
Harkness # Fallout 3
|
||||
Heron # Vexatos
|
||||
Homunk # Perry Rhodan
|
||||
Hyun-ae # Analogue: A Hate Story / Hate Plus
|
||||
*Hyun-ae # Analogue: A Hate Story / Hate Plus
|
||||
Icarus # Deus Ex
|
||||
J.A.R.V.I.S # Iron Man
|
||||
JoshTheEnder # Contributor
|
||||
Johnny 5 # Short Circuit
|
||||
JoshTheEnder # Contributor
|
||||
K-9 # Doctor Who
|
||||
KARR # Knight Rider
|
||||
Kilobyte # Contributor
|
||||
@ -58,13 +60,13 @@ Loader 1340 # Borderlands 2
|
||||
LordFokas # Contributor
|
||||
Marvin # Hitchhiker's Guide to the Galaxy
|
||||
Michiyo # Contributor
|
||||
Mute # Analogue: A Hate Story / Hate Plus
|
||||
*Mute # Analogue: A Hate Story / Hate Plus
|
||||
P-Body # Portal
|
||||
PixelToast # Contributor
|
||||
QT-1 # I, Robot
|
||||
R2-D2 # Star Wars
|
||||
R. Daneel Olivaw # Isaac Asimov's
|
||||
R. Giskard Reventlov # Isaac Asimov's
|
||||
R2-D2 # Star Wars
|
||||
Replicator # Stargate
|
||||
Robby # Forbidden Planet
|
||||
Roomba # Under your couch... wait.
|
||||
|
@ -12,6 +12,7 @@ import cpw.mods.fml.common.network.FMLNetworkEvent.ClientConnectedToServerEvent
|
||||
import li.cil.oc._
|
||||
import li.cil.oc.api.Network
|
||||
import li.cil.oc.api.detail.ItemInfo
|
||||
import li.cil.oc.api.machine.MachineHost
|
||||
import li.cil.oc.client.renderer.PetRenderer
|
||||
import li.cil.oc.client.{PacketSender => ClientPacketSender}
|
||||
import li.cil.oc.common.asm.ClassTransformer
|
||||
@ -39,6 +40,7 @@ import net.minecraftforge.common.util.FakePlayer
|
||||
import net.minecraftforge.common.util.ForgeDirection
|
||||
import net.minecraftforge.event.entity.EntityJoinWorldEvent
|
||||
import net.minecraftforge.event.world.BlockEvent
|
||||
import net.minecraftforge.event.world.ChunkEvent
|
||||
import net.minecraftforge.event.world.WorldEvent
|
||||
|
||||
import scala.collection.convert.WrapAsScala._
|
||||
@ -140,9 +142,14 @@ object EventHandler {
|
||||
else if (robot.world != null) robot.machine.update()
|
||||
})
|
||||
runningRobots --= invalid
|
||||
|
||||
}
|
||||
else if (e.phase == TickEvent.Phase.END) {
|
||||
// Clean up machines *after* a tick, to allow stuff to be saved, first.
|
||||
val closed = mutable.ArrayBuffer.empty[Machine]
|
||||
machines.foreach(machine => if (machine.tryClose()) closed += machine)
|
||||
machines.foreach(machine => if (machine.tryClose()) {
|
||||
closed += machine
|
||||
if (machine.node != null) machine.node.remove()
|
||||
})
|
||||
machines --= closed
|
||||
}
|
||||
|
||||
@ -341,10 +348,23 @@ object EventHandler {
|
||||
@SubscribeEvent
|
||||
def onWorldUnload(e: WorldEvent.Unload) {
|
||||
if (!e.world.isRemote) {
|
||||
import scala.collection.convert.WrapAsScala._
|
||||
e.world.loadedTileEntityList.collect {
|
||||
case te: tileentity.traits.TileEntity => te.dispose()
|
||||
}
|
||||
e.world.loadedEntityList.collect {
|
||||
case host: MachineHost => host.machine.stop()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
def onChunkUnload(e: ChunkEvent.Unload): Unit = {
|
||||
if (!e.world.isRemote) {
|
||||
e.getChunk.entityLists.foreach(_.collect {
|
||||
case host: MachineHost => host.machine match {
|
||||
case machine: Machine => scheduleClose(machine)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ class WirelessNetworkCard(host: EnvironmentHost) extends NetworkCard(host) with
|
||||
|
||||
override def onDisconnect(node: Node) {
|
||||
super.onDisconnect(node)
|
||||
if (node == this.node) {
|
||||
if (node == this.node || !world.blockExists(x, y, z)) {
|
||||
api.Network.leaveWirelessNetwork(this)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user