aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament/events/CustomItemModelEvent.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/events/CustomItemModelEvent.kt')
-rw-r--r--src/main/kotlin/moe/nea/firmament/events/CustomItemModelEvent.kt43
1 files changed, 0 insertions, 43 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/events/CustomItemModelEvent.kt b/src/main/kotlin/moe/nea/firmament/events/CustomItemModelEvent.kt
deleted file mode 100644
index 27524a9..0000000
--- a/src/main/kotlin/moe/nea/firmament/events/CustomItemModelEvent.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-package moe.nea.firmament.events
-
-import java.util.*
-import net.minecraft.client.render.model.BakedModel
-import net.minecraft.client.render.model.BakedModelManager
-import net.minecraft.client.util.ModelIdentifier
-import net.minecraft.item.ItemStack
-
-data class CustomItemModelEvent(
- val itemStack: ItemStack,
- var overrideModel: ModelIdentifier? = null,
-) : FirmamentEvent() {
- companion object : FirmamentEventBus<CustomItemModelEvent>() {
- private val cache = IdentityHashMap<ItemStack?, Any>()
- private val sentinelNull = Object()
-
- fun clearCache() {
- cache.clear()
- }
-
- @JvmStatic
- fun getModelIdentifier(itemStack: ItemStack?): ModelIdentifier? {
- if (itemStack == null) return null
- return publish(CustomItemModelEvent(itemStack)).overrideModel
- }
-
- @JvmStatic
- fun getModel(itemStack: ItemStack?, thing: BakedModelManager): BakedModel? {
- if (itemStack == null) return null
- val cachedValue = cache.getOrPut(itemStack) {
- val modelId = getModelIdentifier(itemStack) ?: return@getOrPut sentinelNull
- val bakedModel = thing.getModel(modelId)
- if (bakedModel === thing.missingModel) return@getOrPut sentinelNull
- bakedModel
- }
- if (cachedValue === sentinelNull)
- return null
- return cachedValue as BakedModel
- }
- }
-}