feat: Add license viewer /firm licenses
This commit is contained in:
@@ -38,6 +38,8 @@ object ErrorUtil {
|
||||
}
|
||||
|
||||
class Catch<T> private constructor(val value: T?, val exc: Throwable?) {
|
||||
fun orNull(): T? = value
|
||||
|
||||
inline fun or(block: (exc: Throwable) -> T): T {
|
||||
contract {
|
||||
callsInPlace(block, InvocationKind.AT_MOST_ONCE)
|
||||
|
||||
@@ -21,10 +21,10 @@ import net.minecraft.registry.Registry
|
||||
import net.minecraft.registry.RegistryKey
|
||||
import net.minecraft.registry.RegistryKeys
|
||||
import net.minecraft.registry.RegistryWrapper
|
||||
import net.minecraft.registry.entry.RegistryEntry
|
||||
import net.minecraft.resource.ReloadableResourceManagerImpl
|
||||
import net.minecraft.text.Text
|
||||
import net.minecraft.util.Identifier
|
||||
import net.minecraft.util.Util
|
||||
import net.minecraft.util.math.BlockPos
|
||||
import net.minecraft.world.World
|
||||
import moe.nea.firmament.events.TickEvent
|
||||
@@ -127,6 +127,10 @@ object MC {
|
||||
private set
|
||||
|
||||
|
||||
fun openUrl(uri: String) {
|
||||
Util.getOperatingSystem().open(uri)
|
||||
}
|
||||
|
||||
fun <T> unsafeGetRegistryEntry(registry: RegistryKey<out Registry<T>>, identifier: Identifier) =
|
||||
unsafeGetRegistryEntry(RegistryKey.of(registry, identifier))
|
||||
|
||||
|
||||
@@ -37,6 +37,19 @@ import moe.nea.firmament.gui.TickComponent
|
||||
import moe.nea.firmament.util.render.isUntranslatedGuiDrawContext
|
||||
|
||||
object MoulConfigUtils {
|
||||
@JvmStatic
|
||||
fun main(args: Array<out String>) {
|
||||
generateXSD(File("MoulConfig.xsd"), XMLUniverse.MOULCONFIG_XML_NS)
|
||||
generateXSD(File("MoulConfig.Firmament.xsd"), firmUrl)
|
||||
File("wrapper.xsd").writeText("""
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:import namespace="http://notenoughupdates.org/moulconfig" schemaLocation="MoulConfig.xsd"/>
|
||||
<xs:import namespace="http://firmament.nea.moe/moulconfig" schemaLocation="MoulConfig.Firmament.xsd"/>
|
||||
</xs:schema>
|
||||
""".trimIndent())
|
||||
}
|
||||
|
||||
val firmUrl = "http://firmament.nea.moe/moulconfig"
|
||||
val universe = XMLUniverse.getDefaultUniverse().also { uni ->
|
||||
uni.registerMapper(java.awt.Color::class.java) {
|
||||
@@ -181,10 +194,8 @@ object MoulConfigUtils {
|
||||
uni.registerLoader(object : XMLGuiLoader.Basic<FixedComponent> {
|
||||
override fun createInstance(context: XMLContext<*>, element: Element): FixedComponent {
|
||||
return FixedComponent(
|
||||
context.getPropertyFromAttribute(element, QName("width"), Int::class.java)
|
||||
?: error("Requires width specified"),
|
||||
context.getPropertyFromAttribute(element, QName("height"), Int::class.java)
|
||||
?: error("Requires height specified"),
|
||||
context.getPropertyFromAttribute(element, QName("width"), Int::class.java),
|
||||
context.getPropertyFromAttribute(element, QName("height"), Int::class.java),
|
||||
context.getChildFragment(element)
|
||||
)
|
||||
}
|
||||
@@ -198,7 +209,7 @@ object MoulConfigUtils {
|
||||
}
|
||||
|
||||
override fun getAttributeNames(): Map<String, Boolean> {
|
||||
return mapOf("width" to true, "height" to true)
|
||||
return mapOf("width" to false, "height" to false)
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -212,19 +223,6 @@ object MoulConfigUtils {
|
||||
generator.dumpToFile(file)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun main(args: Array<out String>) {
|
||||
generateXSD(File("MoulConfig.xsd"), XMLUniverse.MOULCONFIG_XML_NS)
|
||||
generateXSD(File("MoulConfig.Firmament.xsd"), firmUrl)
|
||||
File("wrapper.xsd").writeText("""
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:import namespace="http://notenoughupdates.org/moulconfig" schemaLocation="MoulConfig.xsd"/>
|
||||
<xs:import namespace="http://firmament.nea.moe/moulconfig" schemaLocation="MoulConfig.Firmament.xsd"/>
|
||||
</xs:schema>
|
||||
""".trimIndent())
|
||||
}
|
||||
|
||||
fun loadScreen(name: String, bindTo: Any, parent: Screen?): Screen {
|
||||
return object : GuiComponentWrapper(loadGui(name, bindTo)) {
|
||||
override fun close() {
|
||||
|
||||
Reference in New Issue
Block a user