aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--REUSE.toml2
-rw-r--r--build.gradle.kts55
-rw-r--r--gradle/libs.versions.toml42
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/EntityWidget.kt40
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiCommonPlugin.kt10
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/FirmamentReiPlugin.kt11
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/HoveredItemStackProvider.kt1
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/NEUItemEntryRenderer.kt271
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/NEUItemEntrySerializer.kt31
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/math.kt6
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBCraftingRecipe.kt70
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBEssenceUpgradeRecipe.kt79
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBForgeRecipe.kt90
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBKatRecipe.kt370
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBMobDropRecipe.kt167
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBRecipe.kt47
-rw-r--r--src/compat/sodium/java/SodiumChunkReloader.kt2
-rw-r--r--src/compat/sodium/java/moe/nea/firmament/mixins/accessor/sodium/AccessorSodiumWorldRenderer.java8
-rw-r--r--src/compat/sodium/java/moe/nea/firmament/mixins/custommodels/PatchBlockModelInSodiumChunkGenerator.java4
-rw-r--r--src/main/java/moe/nea/firmament/mixins/CustomDurabilityBarPatch.java6
-rw-r--r--src/main/java/moe/nea/firmament/mixins/CustomModelBakerPatch.java49
-rw-r--r--src/main/java/moe/nea/firmament/mixins/CustomModelEventPatch.java18
-rw-r--r--src/main/java/moe/nea/firmament/mixins/CustomSkullTexturePatch.java9
-rw-r--r--src/main/java/moe/nea/firmament/mixins/DFUEntityIdFixPatch.java1
-rw-r--r--src/main/java/moe/nea/firmament/mixins/InjectCustomShaderPrograms.java31
-rw-r--r--src/main/java/moe/nea/firmament/mixins/MainWindowFirstLoadPatch.java31
-rw-r--r--src/main/java/moe/nea/firmament/mixins/MixinHandledScreen.java22
-rw-r--r--src/main/java/moe/nea/firmament/mixins/ReplaceTextColorInHandledScreen.java9
-rw-r--r--src/main/java/moe/nea/firmament/mixins/SlotUpdateListener.java8
-rw-r--r--src/main/java/moe/nea/firmament/mixins/WorldReadyEventPatch.java11
-rw-r--r--src/main/java/moe/nea/firmament/mixins/WorldRenderLastEventPatch.java46
-rw-r--r--src/main/java/moe/nea/firmament/mixins/accessor/AccessorGameRenderer.java14
-rw-r--r--src/main/java/moe/nea/firmament/mixins/customgui/PatchHandledScreen.java24
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/ApplyHeadModelInItemRenderer.java40
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/GlobalModelOverridePatch.java18
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/HeadModelReplacerPatch.java57
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/ItemRendererTintContextPatch.java22
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/JsonUnbakedModelDataHolder.java69
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/PatchArmorTexture.java28
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/PatchHeadFeatureRenderer.java45
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/PatchLegacyArmorLayerSupport.java22
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/PatchOverrideDeserializer.java46
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/ProvideBakerToJsonUnbakedModelPatch.java27
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/ReferenceCustomModelsPatch.java37
-rw-r--r--src/main/java/moe/nea/firmament/mixins/custommodels/TestForFirmamentOverridePredicatesPatch.java56
-rw-r--r--src/main/kotlin/events/BakeExtraModelsEvent.kt25
-rw-r--r--src/main/kotlin/events/CustomItemModelEvent.kt46
-rw-r--r--src/main/kotlin/events/DebugInstantiateEvent.kt9
-rw-r--r--src/main/kotlin/events/FinalizeResourceManagerEvent.kt41
-rw-r--r--src/main/kotlin/events/IsSlotProtectedEvent.kt2
-rw-r--r--src/main/kotlin/events/RegisterCustomShadersEvent.kt24
-rw-r--r--src/main/kotlin/events/SlotRenderEvents.kt15
-rw-r--r--src/main/kotlin/events/WorldReadyEvent.kt9
-rw-r--r--src/main/kotlin/events/WorldRenderLastEvent.kt3
-rw-r--r--src/main/kotlin/features/chat/ChatLinks.kt3
-rw-r--r--src/main/kotlin/features/debug/DeveloperFeatures.kt4
-rw-r--r--src/main/kotlin/features/debug/PowerUserTools.kt17
-rw-r--r--src/main/kotlin/features/diana/AncestralSpadeSolver.kt5
-rw-r--r--src/main/kotlin/features/diana/NearbyBurrowsSolver.kt238
-rw-r--r--src/main/kotlin/features/inventory/CraftingOverlay.kt2
-rw-r--r--src/main/kotlin/features/inventory/ItemRarityCosmetics.kt16
-rw-r--r--src/main/kotlin/features/inventory/PetFeatures.kt5
-rw-r--r--src/main/kotlin/features/inventory/SlotLocking.kt36
-rw-r--r--src/main/kotlin/features/inventory/buttons/InventoryButton.kt5
-rw-r--r--src/main/kotlin/features/inventory/buttons/InventoryButtonEditor.kt1
-rw-r--r--src/main/kotlin/features/inventory/storageoverlay/StorageBackingHandle.kt1
-rw-r--r--src/main/kotlin/features/inventory/storageoverlay/StorageOverlayScreen.kt7
-rw-r--r--src/main/kotlin/features/inventory/storageoverlay/StorageOverviewScreen.kt2
-rw-r--r--src/main/kotlin/features/mining/CommissionFeatures.kt8
-rw-r--r--src/main/kotlin/features/mining/HotmPresets.kt7
-rw-r--r--src/main/kotlin/features/texturepack/BakedModelExtra.kt23
-rw-r--r--src/main/kotlin/features/texturepack/CustomBlockTextures.kt4
-rw-r--r--src/main/kotlin/features/texturepack/CustomGlobalArmorOverrides.kt213
-rw-r--r--src/main/kotlin/features/texturepack/CustomGlobalTextures.kt2
-rw-r--r--src/main/kotlin/features/texturepack/JsonUnbakedModelFirmExtra.kt2
-rw-r--r--src/main/kotlin/features/texturepack/TintOverrides.kt18
-rw-r--r--src/main/kotlin/features/world/FairySouls.kt4
-rw-r--r--src/main/kotlin/features/world/Waypoints.kt493
-rw-r--r--src/main/kotlin/gui/BarComponent.kt182
-rw-r--r--src/main/kotlin/gui/entity/EntityRenderer.kt331
-rw-r--r--src/main/kotlin/gui/entity/FakeWorld.kt702
-rw-r--r--src/main/kotlin/gui/entity/GuiPlayer.kt63
-rw-r--r--src/main/kotlin/gui/entity/ModifyHorse.kt11
-rw-r--r--src/main/kotlin/repo/RepoDownloadManager.kt2
-rw-r--r--src/main/kotlin/repo/RepoManager.kt8
-rw-r--r--src/main/kotlin/repo/SBItemStack.kt22
-rw-r--r--src/main/kotlin/repo/recipes/GenericRecipeRenderer.kt19
-rw-r--r--src/main/kotlin/repo/recipes/RecipeLayouter.kt33
-rw-r--r--src/main/kotlin/repo/recipes/SBCraftingRecipeRenderer.kt50
-rw-r--r--src/main/kotlin/util/ErrorUtil.kt25
-rw-r--r--src/main/kotlin/util/MC.kt28
-rw-r--r--src/main/kotlin/util/SBData.kt2
-rw-r--r--src/main/kotlin/util/SkyblockId.kt7
-rw-r--r--src/main/kotlin/util/data/IDataHolder.kt112
-rw-r--r--src/main/kotlin/util/render/DrawContextExt.kt71
-rw-r--r--src/main/kotlin/util/render/FacingThePlayerContext.kt7
-rw-r--r--src/main/kotlin/util/render/FirmamentShaders.kt31
-rw-r--r--src/main/kotlin/util/render/RenderCircleProgress.kt140
-rw-r--r--src/main/kotlin/util/render/RenderInWorldContext.kt550
-rw-r--r--src/main/resources/assets/firmament/shaders/core/rendertype_lines.fsh (renamed from src/main/resources/assets/minecraft/shaders/core/firmament_rendertype_lines.fsh)0
-rw-r--r--src/main/resources/assets/firmament/shaders/core/rendertype_lines.json (renamed from src/main/resources/assets/minecraft/shaders/core/firmament_rendertype_lines.json)6
-rw-r--r--src/main/resources/assets/firmament/shaders/core/rendertype_lines.vsh (renamed from src/main/resources/assets/minecraft/shaders/core/firmament_rendertype_lines.vsh)0
-rw-r--r--src/main/resources/fabric.mod.json3
-rw-r--r--src/main/resources/firmament.accesswidener4
-rw-r--r--src/main/resources/firmament.mixins.json13
105 files changed, 2986 insertions, 2778 deletions
diff --git a/REUSE.toml b/REUSE.toml
index 5563c4e..80bf77d 100644
--- a/REUSE.toml
+++ b/REUSE.toml
@@ -18,7 +18,7 @@ SPDX-License-Identifier = "CC-BY-4.0"
SPDX-FileCopyrightText = ["Linnea Gräf <nea@nea.moe>", "Firmament Contributors"]
[[annotations]]
-path = ["src/main/resources/assets/minecraft/shaders/core/**/*"]
+path = ["src/main/resources/assets/firmament/shaders/**/*"]
SPDX-License-Identifier = "GPL-3.0-or-later"
SPDX-FileCopyrightText = ["Linnea Gräf <nea@nea.moe>", "Firmament Contributors"]
diff --git a/build.gradle.kts b/build.gradle.kts
index 64d80fe..b157f58 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -21,7 +21,9 @@ plugins {
alias(libs.plugins.kotlin.plugin.serialization)
alias(libs.plugins.kotlin.plugin.powerassert)
alias(libs.plugins.kotlin.plugin.ksp)
- alias(libs.plugins.loom)
+ // alias(libs.plugins.loom)
+ // TODO: use arch loom once they update to 1.8
+ id("fabric-loom") version "1.8.9"
id("com.github.johnrengelman.shadow") version "8.1.1"
id("moe.nea.licenseextractificator")
id("moe.nea.mc-auto-translations") version "0.0.1"
@@ -104,16 +106,12 @@ fun String.capitalizeN() = replaceFirstChar { it.uppercaseChar() }
val unpackAllJars by tasks.registering
fun innerJarsOf(name: String, dependency: Dependency): Provider<FileTree> {
val task = tasks.create("unpackInnerJarsFor${name.capitalizeN()}", InnerJarsUnpacker::class) {
- doFirst {
- println("Unpacking JARs for $name")
- }
this.inputJars.setFrom(files(configurations.detachedConfiguration(dependency)))
this.outputDir.set(layout.buildDirectory.dir("unpackedJars/$name").also {
it.get().asFile.mkdirs()
})
}
unpackAllJars { dependsOn(task) }
- println("Constructed innerJars task: ${project.files(task).asFileTree.toList().map {it to it.exists()}}")
return project.provider {
project.files(task).asFileTree
}
@@ -125,15 +123,32 @@ val collectTranslations by tasks.registering(CollectTranslations::class) {
}
val compatSourceSets: MutableSet<SourceSet> = mutableSetOf()
-fun createIsolatedSourceSet(name: String, path: String = "compat/$name"): SourceSet {
+fun createIsolatedSourceSet(name: String, path: String = "compat/$name", isEnabled: Boolean = true): SourceSet {
val ss = sourceSets.create(name) {
- this.java.setSrcDirs(listOf(layout.projectDirectory.dir("src/$path/java")))
- this.kotlin.setSrcDirs(listOf(layout.projectDirectory.dir("src/$path/java")))
+ if (isEnabled) {
+ this.java.setSrcDirs(listOf(layout.projectDirectory.dir("src/$path/java")))
+ this.kotlin.setSrcDirs(listOf(layout.projectDirectory.dir("src/$path/java")))
+ } else {
+ this.java.setSrcDirs(listOf<File>())
+ this.kotlin.setSrcDirs(listOf<File>())
+ }
}
- compatSourceSets.add(ss)
- loom.createRemapConfigurations(ss)
val mainSS = sourceSets.main.get()
val upperName = ss.name.capitalizeN()
+ afterEvaluate {
+ tasks.named("ksp${upperName}Kotlin", KspTaskJvm::class) {
+ this.options.add(SubpluginOption("apoption", "firmament.sourceset=${ss.name}"))
+ }
+ tasks.named("compile${upperName}Kotlin", KotlinCompile::class) {
+ this.enabled = isEnabled
+ }
+ tasks.named("compile${upperName}Java", JavaCompile::class) {
+ this.enabled = isEnabled
+ }
+ }
+ compatSourceSets.add(ss)
+ loom.createRemapConfigurations(ss)
+ if (!isEnabled) return ss
configurations {
(ss.implementationConfigurationName) {
extendsFrom(getByName(mainSS.compileClasspathConfigurationName))
@@ -148,11 +163,6 @@ fun createIsolatedSourceSet(name: String, path: String = "compat/$name"): Source
extendsFrom(ksp.get())
}
}
- afterEvaluate {
- tasks.named("ksp${upperName}Kotlin", KspTaskJvm::class) {
- this.options.add(SubpluginOption("apoption", "firmament.sourceset=${ss.name}"))
- }
- }
dependencies {
runtimeOnly(ss.output)
(ss.implementationConfigurationName)(sourceSets.main.get().output)
@@ -195,14 +205,15 @@ val nonModImplentation by configurations.creating {
}
-val configuredSourceSet = createIsolatedSourceSet("configured")
+val configuredSourceSet = createIsolatedSourceSet("configured",
+ isEnabled = false) // Wait for update (also low prio, because configured sucks)
val sodiumSourceSet = createIsolatedSourceSet("sodium")
-val citResewnSourceSet = createIsolatedSourceSet("citresewn")
+val citResewnSourceSet = createIsol