diff --git a/common/src/main/java/dev/dhyces/trimmed/Trimmed.java b/common/src/main/java/dev/dhyces/trimmed/Trimmed.java index ed78b3af..81fa599a 100644 --- a/common/src/main/java/dev/dhyces/trimmed/Trimmed.java +++ b/common/src/main/java/dev/dhyces/trimmed/Trimmed.java @@ -8,7 +8,7 @@ public class Trimmed { public static final String MODID = "trimmed"; public static ResourceLocation id(String id) { - return new ResourceLocation(MODID, id); + return ResourceLocation.fromNamespaceAndPath(MODID, id); } public static final Logger LOGGER = LoggerFactory.getLogger("Trimmed"); diff --git a/common/src/main/java/dev/dhyces/trimmed/TrimmedClient.java b/common/src/main/java/dev/dhyces/trimmed/TrimmedClient.java index c622afad..43015928 100644 --- a/common/src/main/java/dev/dhyces/trimmed/TrimmedClient.java +++ b/common/src/main/java/dev/dhyces/trimmed/TrimmedClient.java @@ -1,5 +1,6 @@ package dev.dhyces.trimmed; +import com.mojang.serialization.MapCodec; import dev.dhyces.trimmed.api.client.TrimmedClientApiEntrypoint; import dev.dhyces.trimmed.api.client.ClientKeyResolvers; import dev.dhyces.trimmed.api.client.map.ClientMapKeys; @@ -7,6 +8,7 @@ import dev.dhyces.trimmed.impl.ModApiConsumer; import dev.dhyces.trimmed.impl.client.GameRegistryHolder; import dev.dhyces.trimmed.impl.client.TrimmedClientRegistrationImpl; +import dev.dhyces.trimmed.impl.client.atlas.OpenPalettedPermutations; import dev.dhyces.trimmed.impl.client.atlas.TrimmedSpriteSourceTypes; import dev.dhyces.trimmed.impl.client.maps.KeyResolvers; import dev.dhyces.trimmed.impl.client.models.override.ItemOverrideReloadListener; @@ -20,8 +22,11 @@ import dev.dhyces.trimmed.impl.client.maps.manager.ClientMapManager; import dev.dhyces.trimmed.modhelper.services.Services; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.atlas.SpriteSource; +import net.minecraft.client.renderer.texture.atlas.SpriteSourceType; import net.minecraft.core.RegistryAccess; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.PreparableReloadListener; import net.minecraft.server.packs.resources.ResourceManager; @@ -29,6 +34,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; import java.util.function.BiConsumer; +import java.util.function.BiFunction; public class TrimmedClient { private static GameRegistryHolder staticAccess; @@ -38,9 +44,6 @@ public static GameRegistryHolder getStaticHolder() { } return staticAccess; } - public static boolean isSyncedAccess() { - return getStaticHolder().isSynced(); - } public static void init() { KeyResolvers.register(Trimmed.id("texture"), ClientKeyResolvers.TEXTURE); @@ -49,7 +52,6 @@ public static void init() { ClientMapManager.registerBaseKey(ClientMapKeys.TRIM_MATERIAL_OVERRIDES); ClientMapManager.registerBaseKey(ClientMapKeys.TRIM_OVERLAYS); ModelSourceRegistry.init(); - TrimmedSpriteSourceTypes.bootstrap(); ItemOverrideProviderRegistry.init(); } @@ -60,6 +62,10 @@ public static void initApi() { } } + public static void registerSpriteSourceTypes(BiFunction, SpriteSourceType> registrar) { + TrimmedSpriteSourceTypes.bootstrap(registrar); + } + public static void registerClientReloadListener(BiConsumer eventConsumer) { eventConsumer.accept("item_model_overrides", new ItemOverrideReloadListener()); } diff --git a/common/src/main/java/dev/dhyces/trimmed/api/client/override/provider/providers/AnyTrimItemOverrideProvider.java b/common/src/main/java/dev/dhyces/trimmed/api/client/override/provider/providers/AnyTrimItemOverrideProvider.java index a114d57e..358a5e38 100644 --- a/common/src/main/java/dev/dhyces/trimmed/api/client/override/provider/providers/AnyTrimItemOverrideProvider.java +++ b/common/src/main/java/dev/dhyces/trimmed/api/client/override/provider/providers/AnyTrimItemOverrideProvider.java @@ -49,7 +49,7 @@ public Optional getModelLocation(ItemStack itemStack, @Nu .map(ArmorTrim::material) .flatMap(holder -> holder.unwrapKey().map(key -> key.location().withPath(holder.value().overrideArmorMaterials().getOrDefault(armorItem.getMaterial(), holder.value().assetName())))); if (materialIdOptional.isPresent()) { - ResourceLocation id = new ResourceLocation(modelIdTemplate.process(s -> { + ResourceLocation id = ResourceLocation.parse(modelIdTemplate.process(s -> { if (s.equals("material_suffix")) { return materialIdOptional.get().getPath(); } else { diff --git a/common/src/main/java/dev/dhyces/trimmed/api/data/BaseTrimDatagenSuite.java b/common/src/main/java/dev/dhyces/trimmed/api/data/BaseTrimDatagenSuite.java index 01b5ecaa..03678374 100644 --- a/common/src/main/java/dev/dhyces/trimmed/api/data/BaseTrimDatagenSuite.java +++ b/common/src/main/java/dev/dhyces/trimmed/api/data/BaseTrimDatagenSuite.java @@ -124,8 +124,8 @@ public BaseTrimDatagenSuite makePattern(ResourceKey patternKey, Ite config.altTranslations.forEach(altTranslation -> altTranslation.finish(translationKey)); if (config.mainTexture == null) { - patternTextures.add(new ResourceLocation(patternKey.location().getNamespace(), "trims/models/armor/" + patternKey.location().getPath())); - patternTextures.add(new ResourceLocation(patternKey.location().getNamespace(), "trims/models/armor/" + patternKey.location().getPath() + "_leggings")); + patternTextures.add(ResourceLocation.fromNamespaceAndPath(patternKey.location().getNamespace(), "trims/models/armor/" + patternKey.location().getPath())); + patternTextures.add(ResourceLocation.fromNamespaceAndPath(patternKey.location().getNamespace(), "trims/models/armor/" + patternKey.location().getPath() + "_leggings")); } else { patternTextures.add(config.mainTexture); patternTextures.add(config.leggingsTexture); diff --git a/common/src/main/java/dev/dhyces/trimmed/api/maps/MapKey.java b/common/src/main/java/dev/dhyces/trimmed/api/maps/MapKey.java index 68a5d366..681d7fdc 100644 --- a/common/src/main/java/dev/dhyces/trimmed/api/maps/MapKey.java +++ b/common/src/main/java/dev/dhyces/trimmed/api/maps/MapKey.java @@ -59,7 +59,7 @@ public static MapKey of(MapType mapType, ResourceLocation id) baseKey = Trimmed.id(id.getPath().substring(0, firstSlashIndex)); subKey = id.withPath(s -> s.substring(firstSlashIndex+1)); } else { - baseKey = new ResourceLocation(id.getPath().substring(0, firstSlashIndex), id.getPath().substring(firstSlashIndex+1, secondSlashIndex)); + baseKey = ResourceLocation.fromNamespaceAndPath(id.getPath().substring(0, firstSlashIndex), id.getPath().substring(firstSlashIndex+1, secondSlashIndex)); subKey = id.withPath(s -> s.substring(secondSlashIndex+1)); } return fromBase(MapKey.baseKeyOf(mapType, baseKey), subKey); diff --git a/common/src/main/java/dev/dhyces/trimmed/api/util/CodecUtil.java b/common/src/main/java/dev/dhyces/trimmed/api/util/CodecUtil.java index b4b84401..125f24f5 100644 --- a/common/src/main/java/dev/dhyces/trimmed/api/util/CodecUtil.java +++ b/common/src/main/java/dev/dhyces/trimmed/api/util/CodecUtil.java @@ -21,15 +21,15 @@ public final class CodecUtil { if (s.contains("#")) { String[] identifierModelSplit = s.split("#"); try { - ResourceLocation id = new ResourceLocation(identifierModelSplit[0]); + ResourceLocation id = ResourceLocation.parse(identifierModelSplit[0]); return DataResult.success(new ModelResourceLocation(id, identifierModelSplit[1])); } catch (Exception e) { return DataResult.error(e::getMessage); } } - return DataResult.success(new ModelResourceLocation(new ResourceLocation(s), "inventory")); + return DataResult.success(new ModelResourceLocation(ResourceLocation.parse(s), "inventory")); }, - modelId -> modelId.getVariant().equals("inventory") ? modelId.getNamespace() + ":" + modelId.getPath() : modelId.toString() + modelId -> modelId.getVariant().equals("inventory") ? modelId.id().getNamespace() + ":" + modelId.id().getPath() : modelId.toString() ); public static LenientUnboundedMapCodec lenientMapCodec(Codec keyCodec, Codec valueCodec, BiPredicate, V> skipFunction) { diff --git a/common/src/main/java/dev/dhyces/trimmed/impl/client/InfoToast.java b/common/src/main/java/dev/dhyces/trimmed/impl/client/InfoToast.java index dab71136..43d20b93 100644 --- a/common/src/main/java/dev/dhyces/trimmed/impl/client/InfoToast.java +++ b/common/src/main/java/dev/dhyces/trimmed/impl/client/InfoToast.java @@ -13,7 +13,7 @@ import java.util.List; public class InfoToast implements Toast { - public static final ResourceLocation TEXTURE = new ResourceLocation("toast/advancement"); + public static final ResourceLocation TEXTURE = ResourceLocation.withDefaultNamespace("toast/advancement"); private static final int MIDDLE_OF_TOAST = 24; private final Component title; private final List messageLines; diff --git a/common/src/main/java/dev/dhyces/trimmed/impl/client/atlas/OpenPalettedPermutations.java b/common/src/main/java/dev/dhyces/trimmed/impl/client/atlas/OpenPalettedPermutations.java index 0f465b6e..bfa14fc8 100644 --- a/common/src/main/java/dev/dhyces/trimmed/impl/client/atlas/OpenPalettedPermutations.java +++ b/common/src/main/java/dev/dhyces/trimmed/impl/client/atlas/OpenPalettedPermutations.java @@ -81,7 +81,7 @@ public void run(ResourceManager pResourceManager, Output pOutput) { @Override public SpriteSourceType type() { - return TrimmedSpriteSourceTypes.OPEN_PALETTED_PERMUTATIONS; + return TrimmedSpriteSourceTypes.OPEN_PALETTED_PERMUTATIONS.get(); } public record OptionalSupplier(boolean isRequired, Supplier mapper) {} @@ -95,7 +95,7 @@ public SpriteContents apply(SpriteResourceLoader spriteResourceLoader) { return new SpriteContents(permutedId, new FrameSize(image.getWidth(), image.getHeight()), image, ResourceMetadata.EMPTY); } catch (IOException e) { if (optionalSupplier.isRequired) { - Trimmed.LOGGER.error("Could not create paletted image for " + permutedId); + Trimmed.LOGGER.error("Could not create paletted image for {}", permutedId); } } finally { lazyLoadedImage.release(); diff --git a/common/src/main/java/dev/dhyces/trimmed/impl/client/atlas/TrimmedSpriteSourceTypes.java b/common/src/main/java/dev/dhyces/trimmed/impl/client/atlas/TrimmedSpriteSourceTypes.java index 5c3b789c..0c23dc10 100644 --- a/common/src/main/java/dev/dhyces/trimmed/impl/client/atlas/TrimmedSpriteSourceTypes.java +++ b/common/src/main/java/dev/dhyces/trimmed/impl/client/atlas/TrimmedSpriteSourceTypes.java @@ -1,10 +1,20 @@ package dev.dhyces.trimmed.impl.client.atlas; +import com.mojang.serialization.MapCodec; +import dev.dhyces.trimmed.Trimmed; import dev.dhyces.trimmed.impl.mixin.client.AtlasSourceManagerAccessor; +import net.minecraft.client.renderer.texture.atlas.SpriteSource; import net.minecraft.client.renderer.texture.atlas.SpriteSourceType; +import net.minecraft.resources.ResourceLocation; + +import java.util.function.BiFunction; +import java.util.function.Supplier; public class TrimmedSpriteSourceTypes { - public static final SpriteSourceType OPEN_PALETTED_PERMUTATIONS = AtlasSourceManagerAccessor.invokeRegister("trimmed:open_paletted_permutations", OpenPalettedPermutations.CODEC); + private static SpriteSourceType openPalettedPermutationsRegistered; + public static final Supplier OPEN_PALETTED_PERMUTATIONS = () -> openPalettedPermutationsRegistered; - public static void bootstrap() {} + public static void bootstrap(BiFunction, SpriteSourceType> registrar) { + openPalettedPermutationsRegistered = registrar.apply(Trimmed.id("open_paletted_permutations"), OpenPalettedPermutations.CODEC); + } } diff --git a/common/src/main/java/dev/dhyces/trimmed/impl/client/maps/KeyResolvers.java b/common/src/main/java/dev/dhyces/trimmed/impl/client/maps/KeyResolvers.java index 49a6534d..121d5907 100644 --- a/common/src/main/java/dev/dhyces/trimmed/impl/client/maps/KeyResolvers.java +++ b/common/src/main/java/dev/dhyces/trimmed/impl/client/maps/KeyResolvers.java @@ -57,6 +57,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BannerPattern; import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.entity.DecoratedPotPattern; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.chunk.status.ChunkStatus; import net.minecraft.world.level.dimension.DimensionType; @@ -123,7 +124,7 @@ public final class KeyResolvers { public static final KeyResolver.Static CUSTOM_STAT = registerStaticRegistry(BuiltInRegistries.CUSTOM_STAT); public static final KeyResolver.Dynamic DAMAGE_TYPE = registerDynamicRegistry(Registries.DAMAGE_TYPE); public static final KeyResolver.Static> DENSITY_FUNCTION_TYPE = registerStaticRegistry(BuiltInRegistries.DENSITY_FUNCTION_TYPE); - public static final KeyResolver.Static ENCHANTMENT = registerStaticRegistry(BuiltInRegistries.ENCHANTMENT); + public static final KeyResolver.Dynamic ENCHANTMENT = registerDynamicRegistry(Registries.ENCHANTMENT); public static final KeyResolver.Static> ENTITY_TYPE = registerStaticRegistry(BuiltInRegistries.ENTITY_TYPE); public static final KeyResolver.Static> FEATURE = registerStaticRegistry(BuiltInRegistries.FEATURE); public static final KeyResolver.Static> FEATURE_SIZE_TYPE = registerStaticRegistry(BuiltInRegistries.FEATURE_SIZE_TYPE); @@ -147,7 +148,7 @@ public final class KeyResolvers { public static final KeyResolver.Static> MEMORY_MODULE_TYPE = registerStaticRegistry(BuiltInRegistries.MEMORY_MODULE_TYPE); public static final KeyResolver.Static> MENU = registerStaticRegistry(BuiltInRegistries.MENU); public static final KeyResolver.Static MOB_EFFECT = registerStaticRegistry(BuiltInRegistries.MOB_EFFECT); - public static final KeyResolver.Static PAINTING_VARIANT = registerStaticRegistry(BuiltInRegistries.PAINTING_VARIANT); + public static final KeyResolver.Dynamic PAINTING_VARIANT = registerDynamicRegistry(Registries.PAINTING_VARIANT); public static final KeyResolver.Static> PARTICLE_TYPE = registerStaticRegistry(BuiltInRegistries.PARTICLE_TYPE); public static final KeyResolver.Static> PLACEMENT_MODIFIER_TYPE = registerStaticRegistry(BuiltInRegistries.PLACEMENT_MODIFIER_TYPE); public static final KeyResolver.Static POINT_OF_INTEREST_TYPE = registerStaticRegistry(BuiltInRegistries.POINT_OF_INTEREST_TYPE); @@ -173,7 +174,7 @@ public final class KeyResolvers { public static final KeyResolver.Static> TRUNK_PLACER_TYPE = registerStaticRegistry(BuiltInRegistries.TRUNK_PLACER_TYPE); public static final KeyResolver.Static VILLAGER_PROFESSION = registerStaticRegistry(BuiltInRegistries.VILLAGER_PROFESSION); public static final KeyResolver.Static VILLAGER_TYPE = registerStaticRegistry(BuiltInRegistries.VILLAGER_TYPE); - public static final KeyResolver.Static DECORATED_POT_PATTERNS = registerStaticRegistry(BuiltInRegistries.DECORATED_POT_PATTERNS); + public static final KeyResolver.Static DECORATED_POT_PATTERNS = registerStaticRegistry(BuiltInRegistries.DECORATED_POT_PATTERN); public static final KeyResolver.Static> NUMBER_FORMAT_TYPE = registerStaticRegistry(BuiltInRegistries.NUMBER_FORMAT_TYPE); public static final KeyResolver.Static ARMOR_MATERIAL = registerStaticRegistry(BuiltInRegistries.ARMOR_MATERIAL); public static final KeyResolver.Static> DATA_COMPONENT_TYPE = registerStaticRegistry(BuiltInRegistries.DATA_COMPONENT_TYPE); diff --git a/fabric/src/main/java/dev/dhyces/trimmed/FabricTrimmedClient.java b/fabric/src/main/java/dev/dhyces/trimmed/FabricTrimmedClient.java index 8198abb8..a787b132 100644 --- a/fabric/src/main/java/dev/dhyces/trimmed/FabricTrimmedClient.java +++ b/fabric/src/main/java/dev/dhyces/trimmed/FabricTrimmedClient.java @@ -6,10 +6,12 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.model.loading.v1.PreparableModelLoadingPlugin; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.client.rendering.v1.AtlasSourceTypeRegistry; import net.fabricmc.fabric.api.event.lifecycle.v1.CommonLifecycleEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener; import net.fabricmc.fabric.api.resource.ResourceManagerHelper; +import net.minecraft.client.renderer.texture.atlas.SpriteSourceType; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.PackType; import net.minecraft.server.packs.resources.PreparableReloadListener; @@ -25,6 +27,11 @@ public class FabricTrimmedClient implements ClientModInitializer { @Override public void onInitializeClient() { TrimmedClient.init(); + TrimmedClient.registerSpriteSourceTypes((id, codec) -> { + SpriteSourceType type = new SpriteSourceType(codec); + AtlasSourceTypeRegistry.register(id, type); + return type; + }); TrimmedClient.registerClientReloadListener((id, listener) -> { ResourceManagerHelper.get(PackType.CLIENT_RESOURCES).registerReloadListener(new WrappedReloadListener(Trimmed.id(id), listener)); }); @@ -33,7 +40,7 @@ public void onInitializeClient() { Map modelMapByFileId = new Object2ObjectOpenHashMap<>(); for (NamedModel namedModel : data) { // Need to add as ModelResourceLocations - pluginContext.addModels(namedModel.modelId()); + pluginContext.addModels(namedModel.id()); // But the context ids are in regular ResourceLocations modelMapByFileId.put(namedModel.id(), namedModel); } diff --git a/fabric/src/main/java/dev/dhyces/trimmed/api/data/TrimDatagenSuite.java b/fabric/src/main/java/dev/dhyces/trimmed/api/data/TrimDatagenSuite.java index 7c22c9ec..4695421a 100644 --- a/fabric/src/main/java/dev/dhyces/trimmed/api/data/TrimDatagenSuite.java +++ b/fabric/src/main/java/dev/dhyces/trimmed/api/data/TrimDatagenSuite.java @@ -31,7 +31,7 @@ public class TrimDatagenSuite extends BaseTrimDatagenSuite { public TrimDatagenSuite(FabricDataGenerator.Pack pack, String modid, @Nullable String mainLanguageCode) { super(modid, (key, translation) -> { if (mainLanguageCode != null) { - TRANSLATIONS.put(new ResourceLocation(modid, mainLanguageCode), Pair.of(key, translation)); + TRANSLATIONS.put(ResourceLocation.fromNamespaceAndPath(modid, mainLanguageCode), Pair.of(key, translation)); } }); pack.addProvider((output, registriesFuture) -> @@ -127,6 +127,6 @@ public static TrimDatagenSuite create(FabricDataGenerator.Pack pack, String modi * translations themselves. */ public void resolveTranslationsFor(String languageCode, FabricLanguageProvider.TranslationBuilder builder) { - TRANSLATIONS.get(new ResourceLocation(modid, languageCode)).forEach(pair -> builder.add(pair.getFirst(), pair.getSecond())); + TRANSLATIONS.get(ResourceLocation.fromNamespaceAndPath(modid, languageCode)).forEach(pair -> builder.add(pair.getFirst(), pair.getSecond())); } } diff --git a/neo/src/main/java/dev/dhyces/trimmed/NeoTrimmedClient.java b/neo/src/main/java/dev/dhyces/trimmed/NeoTrimmedClient.java index 18315217..a9356e18 100644 --- a/neo/src/main/java/dev/dhyces/trimmed/NeoTrimmedClient.java +++ b/neo/src/main/java/dev/dhyces/trimmed/NeoTrimmedClient.java @@ -1,5 +1,6 @@ package dev.dhyces.trimmed; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.resources.ResourceLocation; import net.neoforged.api.distmarker.Dist; import net.neoforged.bus.api.IEventBus; @@ -8,6 +9,7 @@ import net.neoforged.neoforge.client.event.ClientPlayerNetworkEvent; import net.neoforged.neoforge.client.event.ModelEvent; import net.neoforged.neoforge.client.event.RegisterClientReloadListenersEvent; +import net.neoforged.neoforge.client.event.RegisterSpriteSourceTypesEvent; import net.neoforged.neoforge.common.NeoForge; import net.neoforged.neoforge.event.TagsUpdatedEvent; import net.neoforged.neoforge.event.server.ServerStoppingEvent; @@ -17,10 +19,11 @@ @SuppressWarnings("unused") @Mod(value = Trimmed.MODID, dist = Dist.CLIENT) public class NeoTrimmedClient { - private static Set additionalGeneratedModels; + private static Set additionalGeneratedModels; public NeoTrimmedClient(IEventBus modBus, ModContainer container) { TrimmedClient.init(); + modBus.addListener(this::registerSpriteSourceTypes); modBus.addListener(this::registerClientReloadListener); modBus.addListener(this::addModels); @@ -31,6 +34,10 @@ public NeoTrimmedClient(IEventBus modBus, ModContainer container) { TrimmedClient.initApi(); } + private void registerSpriteSourceTypes(final RegisterSpriteSourceTypesEvent event) { + TrimmedClient.registerSpriteSourceTypes(event::register); + } + private void registerClientReloadListener(final RegisterClientReloadListenersEvent event) { TrimmedClient.registerClientReloadListener((s, preparableReloadListener) -> event.registerReloadListener(preparableReloadListener)); TrimmedClient.injectListenersAtBeginning(); @@ -52,7 +59,7 @@ private void onLogout(final ClientPlayerNetworkEvent.LoggingOut event) { TrimmedClient.resetSyncedStatus(); } - public static void setModels(Set models) { + public static void setModels(Set models) { additionalGeneratedModels = models; } } diff --git a/neo/src/main/java/dev/dhyces/trimmed/impl/mixin/client/BakedModelManagerMixin.java b/neo/src/main/java/dev/dhyces/trimmed/impl/mixin/client/BakedModelManagerMixin.java index d0ffb92e..ee2f5c6c 100644 --- a/neo/src/main/java/dev/dhyces/trimmed/impl/mixin/client/BakedModelManagerMixin.java +++ b/neo/src/main/java/dev/dhyces/trimmed/impl/mixin/client/BakedModelManagerMixin.java @@ -9,6 +9,7 @@ import it.unimi.dsi.fastutil.objects.*; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.resources.model.ModelManager; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; import org.spongepowered.asm.mixin.Mixin; @@ -28,7 +29,7 @@ private static CompletableFuture> injectGenera return original.thenCombineAsync(TrimmedClient.startGeneratingModels(resourceManager, executor), (originalMap, generatedModels) -> { Object2ObjectMap newMap = new Object2ObjectOpenHashMap<>(); - Set generatedModelIds = new ObjectOpenHashSet<>(); + Set generatedModelIds = new ObjectOpenHashSet<>(); generatedModels.forEach(namedModel -> { ResourceLocation path = namedModel.id().withPrefix("models/").withSuffix(".json"); if (!originalMap.containsKey(path)) { diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimMaterials.java b/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimMaterials.java index 5e979ed6..d1e6f937 100644 --- a/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimMaterials.java +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimMaterials.java @@ -14,6 +14,6 @@ public class ModTrimMaterials { public static final ResourceKey ADAMANTIUM = registryKey("adamantium"); private static ResourceKey registryKey(String id) { - return ResourceKey.create(Registries.TRIM_MATERIAL, new ResourceLocation(TrimmedTest.MODID, id)); + return ResourceKey.create(Registries.TRIM_MATERIAL, TrimmedTest.id(id)); } } diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimPatterns.java b/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimPatterns.java index 44906dee..acbd04b8 100644 --- a/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimPatterns.java +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/ModTrimPatterns.java @@ -9,6 +9,6 @@ public class ModTrimPatterns { public static final ResourceKey SPIRAL = registryKey("spiral"); private static ResourceKey registryKey(String id) { - return ResourceKey.create(Registries.TRIM_PATTERN, new ResourceLocation(TrimmedTest.MODID, id)); + return ResourceKey.create(Registries.TRIM_PATTERN, TrimmedTest.id(id)); } } diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTest.java b/testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTest.java index 1c7bd9df..41363e12 100644 --- a/testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTest.java +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/TrimmedTest.java @@ -25,7 +25,7 @@ public class TrimmedTest { public static final Logger LOGGER = LoggerFactory.getLogger(MODID); public static ResourceLocation id(String id) { - return new ResourceLocation(MODID, id); + return ResourceLocation.fromNamespaceAndPath(MODID, id); } public static final MapHolder TEST_DELEGATE = TrimmedClientMapApi.getInstance().getSimpleMap(TestClientMapKeys.DATAGEN_TEST_DAMAGE_TYPE_MAP); diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientMapProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientMapProvider.java index d9b3eb30..7aa95693 100644 --- a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientMapProvider.java +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestClientMapProvider.java @@ -18,10 +18,10 @@ public TestClientMapProvider(PackOutput packOutput, ExistingFileHelper existingF protected void addMaps() { map(TestClientMapKeys.DATAGEN_TEST_MAP_2).put(TrimmedTest.id("some/kind/of/key"), "aValue"); map(TestClientMapKeys.ADAMANTIUM_ARMOR) - .put(TrimmedTest.id("item/adamantium_helmet"), new ResourceLocation("trims/items/helmet_trim")) - .put(TrimmedTest.id("item/adamantium_chestplate"), new ResourceLocation("trims/items/chestplate_trim")) - .put(TrimmedTest.id("item/adamantium_leggings"), new ResourceLocation("trims/items/leggings_trim")) - .put(TrimmedTest.id("item/adamantium_boots"), new ResourceLocation("trims/items/boots_trim")); + .put(TrimmedTest.id("item/adamantium_helmet"), ResourceLocation.withDefaultNamespace("trims/items/helmet_trim")) + .put(TrimmedTest.id("item/adamantium_chestplate"), ResourceLocation.withDefaultNamespace("trims/items/chestplate_trim")) + .put(TrimmedTest.id("item/adamantium_leggings"), ResourceLocation.withDefaultNamespace("trims/items/leggings_trim")) + .put(TrimmedTest.id("item/adamantium_boots"), ResourceLocation.withDefaultNamespace("trims/items/boots_trim")); map(ClientMapKeys.TRIM_OVERLAYS) .append(TestClientMapKeys.ADAMANTIUM_ARMOR); map(TestClientMapKeys.ADAMANTIUM_MATERIAL_OVERRIDES) diff --git a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestItemOverrideProvider.java b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestItemOverrideProvider.java index e3d40461..e6ec7414 100644 --- a/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestItemOverrideProvider.java +++ b/testmods/neo/src/main/java/dev/dhyces/testmod/data/trimmed/TestItemOverrideProvider.java @@ -7,6 +7,7 @@ import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.core.component.DataComponents; import net.minecraft.data.PackOutput; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.component.BlockItemStateProperties; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.GrassBlock; @@ -19,7 +20,7 @@ public TestItemOverrideProvider(PackOutput output) { @Override protected void addItemOverrides() { - addComponentOverride(Blocks.GRASS_BLOCK, builder -> builder.set(DataComponents.BLOCK_STATE, BlockItemStateProperties.EMPTY.with(GrassBlock.SNOWY, true)), new ModelResourceLocation("minecraft", "grass_block", "snowy=true")); + addComponentOverride(Blocks.GRASS_BLOCK, builder -> builder.set(DataComponents.BLOCK_STATE, BlockItemStateProperties.EMPTY.with(GrassBlock.SNOWY, true)), new ModelResourceLocation(ResourceLocation.withDefaultNamespace("grass_block"), "snowy=true")); addItemOverrides(Blocks.BAMBOO_STAIRS, new BlockStateItemOverrideProvider()); anyTrimBuilder(new ArmorSet(ModItems.ADAMANTIUM_HELMET, ModItems.ADAMANTIUM_CHESTPLATE, ModItems.ADAMANTIUM_LEGGINGS, ModItems.ADAMANTIUM_BOOTS)) .defaultTemplate()