ocelot-desktop/src/main/scala/ocelot/desktop/node/SyncedInventoryEntityNode.scala
Fingercomp 7155032563
Add an Ocelot Card
So far it can do logging.
2023-07-08 23:49:32 +07:00

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)
}
}
}