mirror of
https://gitlab.com/cc-ru/ocelot/ocelot-desktop.git
synced 2025-12-20 02:59:19 +01:00
Make BoomCardFxHandler a supertrait of ComputerAwareNode
This commit is contained in:
parent
7ecb9a6fe7
commit
a5a9b18771
@ -22,7 +22,7 @@ abstract class ComputerAwareNode(entity: Entity with Environment with WorkspaceA
|
|||||||
with SyncedInventory
|
with SyncedInventory
|
||||||
with DiskActivityHandler
|
with DiskActivityHandler
|
||||||
with OcelotLogParticleNode
|
with OcelotLogParticleNode
|
||||||
with SmokeParticleNode
|
with BoomCardFxHandler
|
||||||
with ShiftClickNode {
|
with ShiftClickNode {
|
||||||
|
|
||||||
private lazy val soundCardSounds: (SoundStream, SoundSource) = Audio.newStream(SoundCategory.Records)
|
private lazy val soundCardSounds: (SoundStream, SoundSource) = Audio.newStream(SoundCategory.Records)
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import ocelot.desktop.color.Color
|
|||||||
import ocelot.desktop.graphics.{Graphics, IconSource}
|
import ocelot.desktop.graphics.{Graphics, IconSource}
|
||||||
import ocelot.desktop.inventory.item.SelfDestructingCardItem
|
import ocelot.desktop.inventory.item.SelfDestructingCardItem
|
||||||
import ocelot.desktop.node.Node.HighlightThickness
|
import ocelot.desktop.node.Node.HighlightThickness
|
||||||
import ocelot.desktop.node.{BoomCardFxHandler, ComputerAwareNode, WindowedNode}
|
import ocelot.desktop.node.{ComputerAwareNode, WindowedNode}
|
||||||
import ocelot.desktop.ui.event.ClickEvent
|
import ocelot.desktop.ui.event.ClickEvent
|
||||||
import ocelot.desktop.ui.widget.contextmenu.ContextMenu
|
import ocelot.desktop.ui.widget.contextmenu.ContextMenu
|
||||||
import ocelot.desktop.ui.widget.slot._
|
import ocelot.desktop.ui.widget.slot._
|
||||||
@ -18,8 +18,7 @@ import totoro.ocelot.brain.util.Tier
|
|||||||
class ComputerNode(val computerCase: Case)
|
class ComputerNode(val computerCase: Case)
|
||||||
extends ComputerAwareNode(computerCase)
|
extends ComputerAwareNode(computerCase)
|
||||||
with AudibleComputerAware
|
with AudibleComputerAware
|
||||||
with WindowedNode[ComputerWindow]
|
with WindowedNode[ComputerWindow] {
|
||||||
with BoomCardFxHandler {
|
|
||||||
|
|
||||||
override val iconSource: IconSource = IconSource.Nodes.Computer.Default
|
override val iconSource: IconSource = IconSource.Nodes.Computer.Default
|
||||||
override def iconColor: Color = TierColor.get(computerCase.tier)
|
override def iconColor: Color = TierColor.get(computerCase.tier)
|
||||||
|
|||||||
@ -20,6 +20,7 @@ class MicrocontrollerNode(val microcontroller: Microcontroller)
|
|||||||
with ComputerAware
|
with ComputerAware
|
||||||
with DefaultSlotItemsFillable
|
with DefaultSlotItemsFillable
|
||||||
with WindowedNode[ComputerWindow] {
|
with WindowedNode[ComputerWindow] {
|
||||||
|
|
||||||
override val iconSource: IconSource = IconSource.Nodes.Microcontroller.Default
|
override val iconSource: IconSource = IconSource.Nodes.Microcontroller.Default
|
||||||
|
|
||||||
override def setupContextMenu(menu: ContextMenu, event: ClickEvent): Unit = {
|
override def setupContextMenu(menu: ContextMenu, event: ClickEvent): Unit = {
|
||||||
@ -67,6 +68,12 @@ class MicrocontrollerNode(val microcontroller: Microcontroller)
|
|||||||
override def computerType: ComputerType = ComputerType.Microcontroller
|
override def computerType: ComputerType = ComputerType.Microcontroller
|
||||||
override def brainInventory: Inventory = microcontroller.inventory.owner
|
override def brainInventory: Inventory = microcontroller.inventory.owner
|
||||||
|
|
||||||
|
override protected def selfDestructingCards: IterableOnce[SelfDestructingCardItem] = {
|
||||||
|
inventoryIterator.flatMap(_.get).collect {
|
||||||
|
case item: SelfDestructingCardItem => item
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override def addSlotsBasedOnTier(): Unit = {
|
override def addSlotsBasedOnTier(): Unit = {
|
||||||
microcontroller.tier match {
|
microcontroller.tier match {
|
||||||
case Tier.One =>
|
case Tier.One =>
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import ocelot.desktop.inventory.Item
|
|||||||
import ocelot.desktop.inventory.item.{DiskDriveMountableItem, SelfDestructingCardItem, ServerItem}
|
import ocelot.desktop.inventory.item.{DiskDriveMountableItem, SelfDestructingCardItem, ServerItem}
|
||||||
import ocelot.desktop.inventory.traits.RackMountableItem
|
import ocelot.desktop.inventory.traits.RackMountableItem
|
||||||
import ocelot.desktop.node.Node.{HighlightThickness, NoHighlightSize, Size, TexelCount}
|
import ocelot.desktop.node.Node.{HighlightThickness, NoHighlightSize, Size, TexelCount}
|
||||||
import ocelot.desktop.node.{BoomCardFxHandler, ComputerAwareNode, NodePort, WindowedNode}
|
import ocelot.desktop.node.{ComputerAwareNode, NodePort, WindowedNode}
|
||||||
import ocelot.desktop.ui.event.{BrainEvent, ClickEvent}
|
import ocelot.desktop.ui.event.{BrainEvent, ClickEvent}
|
||||||
import ocelot.desktop.ui.widget.contextmenu.{ContextMenu, ContextMenuEntry}
|
import ocelot.desktop.ui.widget.contextmenu.{ContextMenu, ContextMenuEntry}
|
||||||
import ocelot.desktop.util.DrawUtils
|
import ocelot.desktop.util.DrawUtils
|
||||||
@ -17,11 +17,7 @@ import totoro.ocelot.brain.event.NetworkActivityEvent
|
|||||||
import totoro.ocelot.brain.network
|
import totoro.ocelot.brain.network
|
||||||
import totoro.ocelot.brain.util.Direction
|
import totoro.ocelot.brain.util.Direction
|
||||||
|
|
||||||
class RackNode(val rack: Rack)
|
class RackNode(val rack: Rack) extends ComputerAwareNode(rack) with WindowedNode[RackWindow] {
|
||||||
extends ComputerAwareNode(rack)
|
|
||||||
with WindowedNode[RackWindow]
|
|
||||||
with BoomCardFxHandler {
|
|
||||||
|
|
||||||
override val iconSource: IconSource = IconSource.Nodes.Rack.Empty
|
override val iconSource: IconSource = IconSource.Nodes.Rack.Empty
|
||||||
override def exposeAddress = false
|
override def exposeAddress = false
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user