mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-18 03:36:47 -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 address = stack.getTagCompound.getString(Settings.namespace + "server")
|
||||||
val key = stack.getTagCompound.getString(Settings.namespace + "key")
|
val key = stack.getTagCompound.getString(Settings.namespace + "key")
|
||||||
if (key != null && !key.isEmpty && address != null && !address.isEmpty) {
|
if (key != null && !key.isEmpty && address != null && !address.isEmpty) {
|
||||||
tileentity.Rack.list.
|
tileentity.Rack.list.keys.
|
||||||
flatMap(_.terminals).
|
flatMap(_.terminals).
|
||||||
find(term => term.rack.isPresent(term.number) match {
|
find(term => term.rack.isPresent(term.number) match {
|
||||||
case Some(value) => value == address
|
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.client.renderer.{TextBufferRenderCache, WirelessNetworkDebugRenderer}
|
||||||
import li.cil.oc.common.{Proxy => CommonProxy, tileentity}
|
import li.cil.oc.common.{Proxy => CommonProxy, tileentity}
|
||||||
import li.cil.oc.common.component.TextBuffer
|
import li.cil.oc.common.component.TextBuffer
|
||||||
|
import li.cil.oc.common.tileentity.Rack
|
||||||
import li.cil.oc.{Items, OpenComputers}
|
import li.cil.oc.{Items, OpenComputers}
|
||||||
import net.minecraft.client.Minecraft
|
import net.minecraft.client.Minecraft
|
||||||
import net.minecraft.client.resources.ReloadableResourceManager
|
import net.minecraft.client.resources.ReloadableResourceManager
|
||||||
@ -65,6 +66,7 @@ private[oc] class Proxy extends CommonProxy {
|
|||||||
TickRegistry.registerTickHandler(HologramRenderer, Side.CLIENT)
|
TickRegistry.registerTickHandler(HologramRenderer, Side.CLIENT)
|
||||||
TickRegistry.registerTickHandler(TextBufferRenderCache, Side.CLIENT)
|
TickRegistry.registerTickHandler(TextBufferRenderCache, Side.CLIENT)
|
||||||
MinecraftForge.EVENT_BUS.register(WirelessNetworkDebugRenderer)
|
MinecraftForge.EVENT_BUS.register(WirelessNetworkDebugRenderer)
|
||||||
|
MinecraftForge.EVENT_BUS.register(Rack)
|
||||||
MinecraftForge.EVENT_BUS.register(TextBuffer)
|
MinecraftForge.EVENT_BUS.register(TextBuffer)
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -18,6 +18,8 @@ import net.minecraft.util.ChatMessageComponent
|
|||||||
import net.minecraftforge.common.ForgeDirection
|
import net.minecraftforge.common.ForgeDirection
|
||||||
import stargatetech2.api.bus.IBusDevice
|
import stargatetech2.api.bus.IBusDevice
|
||||||
import scala.collection.mutable
|
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.
|
// See AbstractBusAware as to why we have to define the IBusDevice here.
|
||||||
@Optional.Interface(iface = "stargatetech2.api.bus.IBusDevice", modid = "StargateTech2")
|
@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() {
|
override protected def initialize() {
|
||||||
super.initialize()
|
super.initialize()
|
||||||
Rack.list += this
|
Rack.list += this -> Unit
|
||||||
}
|
}
|
||||||
|
|
||||||
override protected def dispose() {
|
override protected def dispose() {
|
||||||
@ -387,5 +389,12 @@ class Rack extends traits.PowerAcceptor with traits.Hub with traits.PowerBalance
|
|||||||
}
|
}
|
||||||
|
|
||||||
object Rack {
|
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