11package com.mineinabyss.packy
22
33import com.mineinabyss.idofront.resourcepacks.ResourcePacks
4+ import com.mineinabyss.idofront.util.associateFast
5+ import com.mineinabyss.idofront.util.associateFastNotNull
6+ import com.mineinabyss.idofront.util.associateFastWith
47import com.mineinabyss.idofront.util.filterFast
58import com.mineinabyss.idofront.util.mapNotNullFast
69import com.mineinabyss.idofront.util.toFastMap
@@ -16,8 +19,14 @@ import team.unnamed.creative.blockstate.MultiVariant
1619import team.unnamed.creative.blockstate.Selector
1720import team.unnamed.creative.blockstate.Variant
1821import team.unnamed.creative.font.BitMapFontProvider
19- import team.unnamed.creative.item.*
20- import team.unnamed.creative.model.ItemOverride
22+ import team.unnamed.creative.item.CompositeItemModel
23+ import team.unnamed.creative.item.ConditionItemModel
24+ import team.unnamed.creative.item.Item
25+ import team.unnamed.creative.item.ItemModel
26+ import team.unnamed.creative.item.RangeDispatchItemModel
27+ import team.unnamed.creative.item.ReferenceItemModel
28+ import team.unnamed.creative.item.SelectItemModel
29+ import team.unnamed.creative.item.SpecialItemModel
2130import team.unnamed.creative.model.Model
2231import team.unnamed.creative.model.ModelTexture
2332import team.unnamed.creative.model.ModelTextures
@@ -222,7 +231,6 @@ class PackObfuscator(private val resourcePack: ResourceContainer) {
222231 val builder = model.toBuilder()
223232
224233 obfuscateModelTextures(model, builder)
225- obfuscateOverrides(model, builder)
226234 (model.key().takeUnless { model.key() in skippedKeys || ResourcePacks .vanillaResourcePack.model(it) != null }?.obfuscateKey())?.apply (builder::key)
227235
228236 val obfuscatedModel = ObfuscatedModel (model, builder.build()).apply (obfuscatedModels::add)
@@ -252,7 +260,7 @@ class PackObfuscator(private val resourcePack: ResourceContainer) {
252260
253261 private fun Variant.obfuscateVariant (): Variant {
254262 return Variant .builder()
255- .model(obfuscatedModels.findObf(model())? .key() ? : model ())
263+ .model(obfuscatedModels.findObf(model()).key())
256264 .uvLock(uvLock()).weight(weight()).x(x()).y(y()).build()
257265 }
258266
@@ -268,20 +276,6 @@ class PackObfuscator(private val resourcePack: ResourceContainer) {
268276 builder.parent(obfuscatedParent)
269277 }
270278
271- private fun obfuscateOverrides (model : Model , builder : Model .Builder ) {
272- val obfuscatedOverrides = obfuscatedModels.findObfOrNull(model.key())?.overrides() ? : model.overrides().map { override ->
273- val overrideKey = override .model()
274- val modelKey = obfuscatedModels.findObfOrNull(overrideKey)?.key()
275- ? : ResourcePacks .vanillaResourcePack.model(overrideKey)?.let { overrideKey }
276- ? : resourcePack.takeUnless { overrideKey == model.key() }?.model(overrideKey)?.let (::obfuscateModel)?.key()
277- ? : return @map override
278-
279- ItemOverride .of(modelKey, override .predicate())
280- }
281-
282- builder.overrides(obfuscatedOverrides)
283- }
284-
285279
286280 private fun Key.removeSuffix (suffix : String ) = Key .key(asString().removeSuffix(suffix))
287281 private fun Key.appendSuffix (suffix : String ) = Key .key(asString().removeSuffix(suffix).plus(suffix))
@@ -316,18 +310,17 @@ class PackObfuscator(private val resourcePack: ResourceContainer) {
316310 .plus(ResourcePacks .vanillaResourcePack.models())
317311 .distinctBy { it.key().asString() }
318312 .mapNotNull { it.textures().layers() + listOfNotNull(it.textures().particle()) + it.textures().variables().values }.flatten()
319- .mapNotNullFast {
320- val key = it.key()?.appendSuffix(" .png" ) ? : return @mapNotNullFast null
321- key to (resourcePack.texture(key) ? : ResourcePacks .vanillaResourcePack.texture(key) ? : return @mapNotNullFast null )
322- }.toFastMap()
313+ .associateFastNotNull {
314+ val key = it.key()?.appendSuffix(" .png" ) ? : return @associateFastNotNull null
315+ key to (resourcePack.texture(key) ? : ResourcePacks .vanillaResourcePack.texture(key) ? : return @associateFastNotNull null )
316+ }
323317 }
324318
325319 private val vanillaFontTextures by lazy {
326320 resourcePack.fonts().filterFast { ResourcePacks .vanillaResourcePack.font(it.key()) != null }
327321 .plus(ResourcePacks .vanillaResourcePack.fonts())
328322 .distinctBy { it.key().asString() }
329323 .mapNotNull { it.providers().mapNotNullFast { (it as ? BitMapFontProvider )?.file()?.appendSuffix(" .png" ) } }.flatten()
330- .mapNotNullFast { it to (resourcePack.texture(it) ? : ResourcePacks .vanillaResourcePack.texture(it) ? : return @mapNotNullFast null ) }
331- .toFastMap()
324+ .associateFastWith { resourcePack.texture(it) ? : ResourcePacks .vanillaResourcePack.texture(it) ? : return @associateFastWith null }
332325 }
333326}
0 commit comments