aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomScreenLayouts.kt9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomScreenLayouts.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomScreenLayouts.kt
index a68fb2a..4785e90 100644
--- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomScreenLayouts.kt
+++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomScreenLayouts.kt
@@ -8,6 +8,7 @@ import net.minecraft.client.gui.DrawContext
import net.minecraft.client.gui.screen.Screen
import net.minecraft.client.gui.screen.ingame.HandledScreen
import net.minecraft.client.render.RenderLayer
+import net.minecraft.registry.Registries
import net.minecraft.resource.ResourceManager
import net.minecraft.resource.SinglePreparationResourceReloader
import net.minecraft.screen.slot.Slot
@@ -49,11 +50,16 @@ object CustomScreenLayouts : SinglePreparationResourceReloader<List<CustomScreen
@Serializable
data class Preds(
val label: StringMatcher,
+ @Serializable(with = IdentifierSerializer::class)
+ val screenType: Identifier? = null,
) {
fun matches(screen: Screen): Boolean {
// TODO: does this deserve the restriction to handled screen
val s = screen as? HandledScreen<*>? ?: return false
- return label.matches(s.title)
+ val typeMatches = screenType == null || s.screenHandler.type.equals(Registries.SCREEN_HANDLER
+ .get(screenType));
+
+ return label.matches(s.title) && typeMatches
}
}
@@ -215,5 +221,4 @@ object CustomScreenLayouts : SinglePreparationResourceReloader<List<CustomScreen
}
}
}
-
}