mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-17 11:15:12 -04:00
Fixed remote terminals potentially breaking when relogging into a single player world.
This commit is contained in:
parent
41b4321b99
commit
149ade42ff
@ -40,7 +40,7 @@ object GuiHandler extends CommonGuiHandler {
|
||||
val address = stack.getTagCompound.getString(Settings.namespace + "server")
|
||||
val key = stack.getTagCompound.getString(Settings.namespace + "key")
|
||||
if (key != null && !key.isEmpty && address != null && !address.isEmpty) {
|
||||
tileentity.Rack.list.
|
||||
tileentity.Rack.list.keys.
|
||||
flatMap(_.terminals).
|
||||
find(term => term.rack.isPresent(term.number) match {
|
||||
case Some(value) => value == address
|
||||
|
@ -11,6 +11,7 @@ import li.cil.oc.client.renderer.tileentity._
|
||||
import li.cil.oc.client.renderer.{TextBufferRenderCache, WirelessNetworkDebugRenderer}
|
||||
import li.cil.oc.common.{Proxy => CommonProxy, tileentity}
|
||||
import li.cil.oc.common.component.TextBuffer
|
||||
import li.cil.oc.common.tileentity.Rack
|
||||
import li.cil.oc.{Items, OpenComputers}
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.resources.ReloadableResourceManager
|
||||
@ -65,6 +66,7 @@ private[oc] class Proxy extends CommonProxy {
|
||||
TickRegistry.registerTickHandler(HologramRenderer, Side.CLIENT)
|
||||
TickRegistry.registerTickHandler(TextBufferRenderCache, Side.CLIENT)
|
||||
MinecraftForge.EVENT_BUS.register(WirelessNetworkDebugRenderer)
|
||||
MinecraftForge.EVENT_BUS.register(Rack)
|
||||
MinecraftForge.EVENT_BUS.register(TextBuffer)
|
||||
}
|
||||
}
|
@ -18,6 +18,8 @@ import net.minecraft.util.ChatMessageComponent
|
||||
import net.minecraftforge.common.ForgeDirection
|
||||
import stargatetech2.api.bus.IBusDevice
|
||||
import scala.collection.mutable
|
||||
import net.minecraftforge.event.world.WorldEvent
|
||||
import net.minecraftforge.event.ForgeSubscribe
|
||||
|
||||
// See AbstractBusAware as to why we have to define the IBusDevice here.
|
||||
@Optional.Interface(iface = "stargatetech2.api.bus.IBusDevice", modid = "StargateTech2")
|
||||
@ -230,7 +232,7 @@ class Rack extends traits.PowerAcceptor with traits.Hub with traits.PowerBalance
|
||||
|
||||
override protected def initialize() {
|
||||
super.initialize()
|
||||
Rack.list += this
|
||||
Rack.list += this -> Unit
|
||||
}
|
||||
|
||||
override protected def dispose() {
|
||||
@ -387,5 +389,12 @@ class Rack extends traits.PowerAcceptor with traits.Hub with traits.PowerBalance
|
||||
}
|
||||
|
||||
object Rack {
|
||||
val list = mutable.Set.empty[Rack]
|
||||
val list = mutable.WeakHashMap.empty[Rack, Unit]
|
||||
|
||||
@ForgeSubscribe
|
||||
def onWorldUnload(e: WorldEvent.Unload) {
|
||||
if (e.world.isRemote) {
|
||||
list.clear()
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user