repo for my hex addons :3
0
fork

Configure Feed

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

view iotas

+26 -6
+1
TODO.md
··· 11 11 * document demiplanes 12 12 * document snow pattern 13 13 * document parathoth 14 + 14 15 # at some point 15 16 * spellminds
+25 -6
src/main/scala/org/eu/net/pool/hexic/Hexic.scala
··· 915 915 iotaTypeRegistry("map") = MapIota 916 916 iotaTypeRegistry("tripwire") = TripwireIota.getType 917 917 iotaTypeRegistry("access") = PropertyAccessIota.Type 918 + iotaTypeRegistry("reference") = BoxedView 918 919 for ((_, c), i) <- MetatableIotaType.colors.zipWithIndex do iotaTypeRegistry(s"meta/$i") = c 919 920 hexXplat.getContinuationTypeRegistry("tripwire") = TripwireIota.Frame 920 921 for (color, item) <- Mediaweave.colors do ··· 2176 2177 def entities(using TransactionContext): Set[Entity] = Set() 2177 2178 @throws[Mishap] 2178 2179 def teleportEntity(ent: Entity)(using TransactionContext, CastingEnvironment): Boolean = false 2179 - def serialize = NbtCompound() 2180 + def serialize: NbtCompound = NbtCompound().tap(_.putString("id", InventoryView.registry.getId(viewType).toString)) 2180 2181 2181 2182 object InventoryView extends Registrar[InventoryView.Type[?]]("inventory"): 2182 2183 trait Type[+T <: InventoryView]: 2183 - def deserialize(data: NbtCompound)(using ServerWorld): T 2184 + def deserialize(data: NbtCompound)(using ServerWorld): Option[T] 2184 2185 object Events: 2185 2186 val forEntity: Event[Entity => ServerWorld ?=> Seq[InventoryView]] = EventFactory.createArrayBacked[Entity => ServerWorld ?=> Seq[InventoryView]](classOf, _ => Seq(), fns => e => fns.flatMap(_(e))) 2186 2187 val forBlock: Event[(BlockPos, BlockState) => ServerWorld ?=> Seq[InventoryView]] = EventFactory.createArrayBacked[(BlockPos, BlockState) => ServerWorld ?=> Seq[InventoryView]](classOf, (_, _) => Seq(), fns => (pos, state) => fns.flatMap(_(pos, state))) ··· 2228 2229 // TODO 2229 2230 c 2230 2231 private given typeOfSum: InventoryView.Type[OfSum]: 2231 - override def deserialize(data: NbtCompound)(using ServerWorld): OfSum = ??? 2232 + override def deserialize(data: NbtCompound)(using ServerWorld): Option[OfSum] = ??? 2232 2233 private given typeOfEntity: InventoryView.Type[OfEntity]: 2233 - override def deserialize(data: NbtCompound)(using ServerWorld): OfEntity = ??? 2234 + override def deserialize(data: NbtCompound)(using ServerWorld): Option[OfEntity] = ??? 2234 2235 private given typeOfBlock: InventoryView.Type[OfBlock]: 2235 - override def deserialize(data: NbtCompound)(using ServerWorld): OfBlock = ??? 2236 + override def deserialize(data: NbtCompound)(using ServerWorld): Option[OfBlock] = ??? 2236 2237 private given typeOfExactEntity: InventoryView.Type[OfExactEntity]: 2237 - override def deserialize(data: NbtCompound)(using ServerWorld): OfExactEntity = ??? 2238 + override def deserialize(data: NbtCompound)(using ServerWorld): Option[OfExactEntity] = ??? 2238 2239 registry("sum") = typeOfSum 2239 2240 registry("entity") = typeOfEntity 2240 2241 registry("block") = typeOfBlock 2241 2242 registry("exact") = typeOfExactEntity 2243 + 2244 + object BoxedView extends IotaType[BoxedView.Instance]: 2245 + class Instance(val view: InventoryView) extends Iota(BoxedView, view): 2246 + override def isTruthy = view.isTruthy 2247 + override def toleratesOther(that: Iota): Boolean = that match 2248 + case that: BoxedView.Instance => view == that.view 2249 + case _ => false 2250 + override def serialize: NbtElement = view.serialize 2251 + override def deserialize(tag: NbtElement, world: ServerWorld): Instance = 2252 + given ServerWorld = world; 2253 + (for 2254 + case c: NbtCompound <- Some(tag) 2255 + id <- Option(Identifier.tryParse(c.getString("id"))) 2256 + viewType <- Option(InventoryView.registry.get(id)) 2257 + view <- viewType.deserialize(c) 2258 + yield Instance(view)).orNull 2259 + override def display(tag: NbtElement): Text = "[View]".styled(_.withColor(color)) 2260 + override def color: Int = 0xa59e7c 2242 2261 2243 2262 object SlotReference extends Registrar[SlotReference.Type[?]]("slot"): 2244 2263 class Type[T <: SlotReference: Codec]