mirror of
https://gitlab.com/cc-ru/ocelot/ocelot-desktop.git
synced 2025-12-20 02:59:19 +01:00
27 lines
808 B
Scala
27 lines
808 B
Scala
package ocelot.desktop.node
|
|
|
|
import ocelot.desktop.inventory.SyncedInventory
|
|
import ocelot.desktop.inventory.traits.ComponentItem
|
|
import ocelot.desktop.ui.event.Event
|
|
import totoro.ocelot.brain.entity.traits.{Entity, Environment}
|
|
|
|
abstract class SyncedInventoryEntityNode(entity: Entity with Environment)
|
|
extends EntityNode(entity)
|
|
with SyncedInventory {
|
|
|
|
override def shouldReceiveEventsFor(address: String): Boolean =
|
|
super.shouldReceiveEventsFor(address) ||
|
|
inventoryIterator
|
|
.flatMap(_.get)
|
|
.collect { case item: ComponentItem => item }
|
|
.exists(_.component.node.address == address)
|
|
|
|
override def handleEvent(event: Event): Unit = {
|
|
super.handleEvent(event)
|
|
|
|
for (slot <- inventoryIterator; item <- slot.get) {
|
|
item.handleEvent(event)
|
|
}
|
|
}
|
|
}
|