fix: Dungeon swords not being recognized for reforges
This commit is contained in:
@@ -171,9 +171,10 @@ class SBReforgeRecipe(
|
||||
|
||||
is Reforge.ReforgeEligibilityFilter.AllowsItemType ->
|
||||
ReforgeStore.resolveItemType(it.itemType)
|
||||
.flatMap {
|
||||
RepoItemTypeCache.byItemType[it] ?: listOf()
|
||||
}
|
||||
.flatMapTo(mutableSetOf()) {
|
||||
(RepoItemTypeCache.byItemType[it] ?: listOf()) +
|
||||
(RepoItemTypeCache.byItemType[it.dungeonVariant] ?: listOf())
|
||||
}.toList()
|
||||
|
||||
is Reforge.ReforgeEligibilityFilter.AllowsVanillaItemType -> {
|
||||
listOf() // TODO: add filter support for this and potentially rework this to search for the declared item type in repo, instead of remapped item type
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
package moe.nea.firmament.events
|
||||
|
||||
import java.util.function.BiConsumer
|
||||
import net.minecraft.client.item.ItemAssetsLoader
|
||||
import net.minecraft.client.render.model.ReferencedModelsCollector
|
||||
import net.minecraft.client.util.ModelIdentifier
|
||||
import net.minecraft.util.Identifier
|
||||
|
||||
// TODO: This event may be removed now since ItemAssetsLoader seems to load all item models now (probably to cope with servers setting the item_model component). Check whether this also applies to blocks now.
|
||||
//@Deprecated(level = DeprecationLevel.ERROR, message = "This is no longer needed, since ItemAssetsLoader loads all item models.")
|
||||
class BakeExtraModelsEvent(
|
||||
private val addAnyModel: BiConsumer<ModelIdentifier, Identifier>,
|
||||
) : FirmamentEvent() {
|
||||
|
||||
fun addNonItemModel(modelIdentifier: ModelIdentifier, identifier: Identifier) {
|
||||
this.addAnyModel.accept(modelIdentifier, identifier)
|
||||
}
|
||||
|
||||
fun addItemModel(modelIdentifier: ModelIdentifier) {
|
||||
// TODO: If this is still needed: ItemAssetsLoader.FINDER
|
||||
// addNonItemModel(
|
||||
// modelIdentifier,
|
||||
// modelIdentifier.id.withPrefixedPath())
|
||||
}
|
||||
|
||||
// @Deprecated(level = DeprecationLevel.ERROR, message = "This is no longer needed, since ItemAssetsLoader loads all item models.")
|
||||
@Suppress("DEPRECATION")
|
||||
companion object : FirmamentEventBus<BakeExtraModelsEvent>()
|
||||
}
|
||||
@@ -68,6 +68,7 @@ object ReforgeStore : ExtraRecipeProvider, IReloadable {
|
||||
val actualItemTypes = resolveItemType(eligibleItem.itemType)
|
||||
for (itemType in actualItemTypes) {
|
||||
byType.getOrPut(itemType, ::mutableListOf).add(reforge)
|
||||
byType.getOrPut(itemType.dungeonVariant, ::mutableListOf).add(reforge)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -65,6 +65,8 @@ value class ItemType private constructor(val name: String) {
|
||||
val PET = ofName("PET")
|
||||
}
|
||||
|
||||
val dungeonVariant get() = ofName("DUNGEON $name")
|
||||
|
||||
override fun toString(): String {
|
||||
return name
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ import net.minecraft.util.math.BlockPos
|
||||
import net.minecraft.util.profiler.Profiler
|
||||
import moe.nea.firmament.Firmament
|
||||
import moe.nea.firmament.annotations.Subscribe
|
||||
import moe.nea.firmament.events.BakeExtraModelsEvent
|
||||
import moe.nea.firmament.events.EarlyResourceReloadEvent
|
||||
import moe.nea.firmament.events.FinalizeResourceManagerEvent
|
||||
import moe.nea.firmament.events.SkyblockServerUpdateEvent
|
||||
@@ -238,15 +237,6 @@ object CustomBlockTextures {
|
||||
{ prepare(event.resourceManager) }, event.preparationExecutor)
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
fun bakeExtraModels(event: BakeExtraModelsEvent) {
|
||||
preparationFuture.join().data.values
|
||||
.flatMap { it.lookup.values }
|
||||
.flatten()
|
||||
.mapTo(mutableSetOf()) { it.replacement.blockModelIdentifier }
|
||||
.forEach { event.addNonItemModel(it, it.id) }
|
||||
}
|
||||
|
||||
private fun prepare(manager: ResourceManager): BakedReplacements {
|
||||
val resources = manager.findResources("overrides/blocks") {
|
||||
it.namespace == "firmskyblock" && it.path.endsWith(".json")
|
||||
|
||||
@@ -16,7 +16,6 @@ import net.minecraft.util.Identifier
|
||||
import net.minecraft.util.profiler.Profiler
|
||||
import moe.nea.firmament.Firmament
|
||||
import moe.nea.firmament.annotations.Subscribe
|
||||
import moe.nea.firmament.events.BakeExtraModelsEvent
|
||||
import moe.nea.firmament.events.CustomItemModelEvent
|
||||
import moe.nea.firmament.events.EarlyResourceReloadEvent
|
||||
import moe.nea.firmament.events.FinalizeResourceManagerEvent
|
||||
@@ -69,15 +68,6 @@ object CustomGlobalTextures : SinglePreparationResourceReloader<CustomGlobalText
|
||||
}, event.preparationExecutor)
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
fun onBakeModels(event: BakeExtraModelsEvent) {
|
||||
for (guiClassOverride in preparationFuture.join().classes) {
|
||||
for (override in guiClassOverride.overrides) {
|
||||
event.addItemModel(ModelIdentifier(override.model, "inventory"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Volatile
|
||||
var preparationFuture: CompletableFuture<CustomGuiTextureOverride> = CompletableFuture.completedFuture(
|
||||
CustomGuiTextureOverride(listOf()))
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
package moe.nea.firmament.mixins.custommodels;
|
||||
|
||||
import com.llamalad7.mixinextras.sugar.Local;
|
||||
import moe.nea.firmament.events.BakeExtraModelsEvent;
|
||||
import net.minecraft.client.item.ItemAssetsLoader;
|
||||
import net.minecraft.client.render.model.BakedModelManager;
|
||||
import net.minecraft.client.render.model.BlockStatesLoader;
|
||||
import net.minecraft.client.render.model.ReferencedModelsCollector;
|
||||
import net.minecraft.client.render.model.UnbakedModel;
|
||||
import net.minecraft.client.util.ModelIdentifier;
|
||||
import net.minecraft.util.Identifier;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Mixin(BakedModelManager.class)
|
||||
public abstract class ReferenceCustomModelsPatch {
|
||||
@Inject(method = "collect", at = @At("RETURN"))
|
||||
private static void addFirmamentReferencedModels(
|
||||
UnbakedModel missingModel, Map<Identifier, UnbakedModel> models, BlockStatesLoader.BlockStateDefinition blockStates, ItemAssetsLoader.Result itemAssets, CallbackInfoReturnable<ReferencedModelsCollector> cir,
|
||||
@Local ReferencedModelsCollector collector) {
|
||||
// TODO: Insert fake models based on firmskyblock models for a smoother transition
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user