Remove screen tier changing functionality

Closes #7
This commit is contained in:
LeshaInc 2021-08-10 12:17:01 +03:00
parent f6ebed04b5
commit 9ef6bba5ee
No known key found for this signature in database
GPG Key ID: B4855290FC36DE72

View File

@ -46,40 +46,10 @@ class ScreenNode(var screen: Screen, setup: Boolean = true) extends Node {
else
menu.addEntry(new ContextMenuEntry("Turn on", () => screen.setPowerState(true)))
menu.addEntry(new ContextMenuSubmenu("Set tier") {
addEntry(new ContextMenuEntry("Tier 1", () => changeTier(Tier.One)))
addEntry(new ContextMenuEntry("Tier 2", () => changeTier(Tier.Two)))
addEntry(new ContextMenuEntry("Tier 3", () => changeTier(Tier.Three)))
})
menu.addSeparator()
super.setupContextMenu(menu)
}
private def changeTier(newTier: Int): Unit = {
if (newTier == screen.tier) return
val connections = screen.node.neighbors.toArray
val gpus = screen.node.network.nodes
.filter(_.host.isInstanceOf[GenericGPU])
.map(_.host.asInstanceOf[GenericGPU]).toArray
.filter(_.isBoundTo(screen.node.address))
connections.foreach(screen.disconnect)
OcelotDesktop.workspace.remove(screen)
val newScreen = new Screen(newTier)
newScreen.node.address = screen.node.address
newScreen.node.network = screen.node.network
newScreen.node.network.connect(newScreen.node)
OcelotDesktop.workspace.add(newScreen)
screen = newScreen
connections.foreach(screen.connect)
gpus.foreach(_.forceBind(screen.node))
}
override def draw(g: Graphics): Unit = {
super.draw(g)