repo for my hex addons :3
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

unify compound views

+4 -8
+4 -8
src/main/scala/org/eu/net/pool/hexic/Hexic.scala
··· 2183 2183 object Events: 2184 2184 val forEntity: Event[Entity => ServerWorld ?=> Seq[InventoryView]] = EventFactory.createArrayBacked[Entity => ServerWorld ?=> Seq[InventoryView]](classOf, _ => Seq(), fns => e => fns.flatMap(_(e))) 2185 2185 val forBlock: Event[(BlockPos, BlockState) => ServerWorld ?=> Seq[InventoryView]] = EventFactory.createArrayBacked[(BlockPos, BlockState) => ServerWorld ?=> Seq[InventoryView]](classOf, (_, _) => Seq(), fns => (pos, state) => fns.flatMap(_(pos, state))) 2186 - class OfEntity(entity: => Entity)(using ServerWorld) extends InventoryView: 2187 - def views = Events.forEntity.invoker()(entity) 2188 - override def apply(idx: Int)(using CastingEnvironment): Option[SlotReference] = views.collectFirst(hexicVisibilityHack.unlifted(_(idx))) 2189 - override def tryWithdraw(variant: TransferVariant[?], amount: Long)(using TransactionContext, CastingEnvironment): Long = LazyList.from(views).scanLeft(0L)((n, view) => view.tryWithdraw(variant, amount - n) + n).findFirstOrLast(_ >= amount).getOrElse(0) 2190 - override def entities(using TransactionContext): Iterable[Entity] = views.flatMap(_.entities) 2191 - override def teleportEntity(ent: Entity)(using TransactionContext, CastingEnvironment): Boolean = views.iterator∃(_.teleportEntity(ent)) 2192 - class OfBlock(pos: BlockPos)(using world: ServerWorld) extends InventoryView: 2193 - def views = Events.forBlock.invoker()(pos, world.getBlockState(pos)) 2186 + class OfMerged(views: => Seq[InventoryView]) extends InventoryView: 2187 + def getViews = views 2194 2188 override def apply(idx: Int)(using CastingEnvironment): Option[SlotReference] = views.collectFirst(hexicVisibilityHack.unlifted(_(idx))) 2195 2189 override def tryWithdraw(variant: TransferVariant[?], amount: Long)(using TransactionContext, CastingEnvironment): Long = LazyList.from(views).scanLeft(0L)((n, view) => view.tryWithdraw(variant, amount - n) + n).findFirstOrLast(_ >= amount).getOrElse(0) 2196 2190 override def entities(using TransactionContext): Iterable[Entity] = views.flatMap(_.entities) 2197 2191 override def teleportEntity(ent: Entity)(using TransactionContext, CastingEnvironment): Boolean = views.iterator∃(_.teleportEntity(ent)) 2192 + class OfEntity(entity: => Entity)(using ServerWorld) extends OfMerged(Events.forEntity.invoker()(entity)) 2193 + class OfBlock(pos: BlockPos)(using world: ServerWorld) extends OfMerged(Events.forBlock.invoker()(pos, world.getBlockState(pos))) 2198 2194 2199 2195 object SlotReference extends Registrar[SlotReference.Type[?]]("slot"): 2200 2196 class Type[T <: SlotReference: Codec]