···66import com.mojang.serialization.codecs.RecordCodecBuilder
77import com.mojang.serialization.{Codec, DataResult, Decoder, DynamicOps, Encoder, Lifecycle, MapCodec}
88import it.unimi.dsi.fastutil.longs.{Long2FloatMap, Long2IntMap, Long2IntMaps, Long2IntOpenHashMap, Long2LongMap}
99+import net.fabricmc.loader.api.{FabricLoader, Version}
1010+import net.minecraft.Bootstrap
911import net.minecraft.component.`type`.ProfileComponent
1012import net.minecraft.component.{ComponentChanges, ComponentType, DataComponentTypes}
1113import net.minecraft.entity.{Entity, ItemEntity, LivingEntity}
···14311433extension [T] (x: T)
14321434 /**
14331435 * Tries to cast the value to the given type.
14341434- * @tparam R The destination type of the cast.
14361436+ * @tparam R The destination type of the cast.git status-
14351437 * @return [[Some]] if the cast succeeds.
14361438 */
14371439 def cast[R: ClassTag]: Option[R] = x match
14381440 case r: R => Some(r)
14391441 case _ => None
1440144214431443+@tailrec
14441444+def panic(reason: String): Nothing =
14451445+ Bootstrap.SYSOUT.println(s"thread '${Thread.currentThread.getName}' panicked at '$reason'")
14461446+ Bootstrap.SYSOUT.flush()
14471447+ Runtime.getRuntime.halt(101)
14481448+ panic(reason)
14491449+14411450private[mica] class ComponentInitializer extends WorldComponentInitializer:
14421451 def registerWorldComponentFactories(factories: WorldComponentFactoryRegistry): Unit =
14431452 /*dnl*/ () /*
···14471456 Registry.register(Registries.DATA_COMPONENT_TYPE, Identifier.of(modid, "effect"), sideEffectComponent)
14481457 register()
14491458 println(s"Rune registry contains ${registryFor[Rune].size} runes")
14591459+ val klsContainer = FabricLoader.getInstance().getModContainer("krysztal-language-scala").orElseGet(() => panic("no such mod 'krysztal-language-scala'"))
14601460+ val scalaVersion = klsContainer.getMetadata.getVersion.getFriendlyString.split("\\+scala\\.")(1)
14611461+ println(s"KLS version = $scalaVersion")
14621462+ if (Version.parse(scalaVersion) compareTo Version.parse("3.7.1")) < 0 then
14631463+ panic("mod 'krysztal-language-scala' bundles outdated version of scala. please use at least 3.7.1")
14501464 try
14511465 val config = Path.of("config/mica:extra_classes.txt")
14521466 if Files.exists(config) then