From f3df23f71fd2c9d60095e688a4e8d4c6d5a85c05 Mon Sep 17 00:00:00 2001 From: cph101 Date: Mon, 10 Jun 2024 15:47:16 +0100 Subject: [PATCH] Port to 1.20.1 I never want to see a TextureAtlas again. Ever. Signed-off-by: cph101 --- build.gradle | 17 +- common/build.gradle | 2 +- .../api/animation/v1/AnimationRuntime.java | 2 +- .../api/crafting/v1/PollenBrewingRecipe.java | 5 +- .../api/crafting/v1/PollenRecipeTypes.java | 5 +- .../registry/v1/RegisterAtlasSpriteEvent.java | 4 +- .../itemgroup/v1/CreativeModeTabBuilder.java | 154 ------------------ .../pollen/api/joml/v1/JomlBridge.java | 128 ++------------- .../api/registry/resource/v1/TagRegistry.java | 9 +- .../wrapper/v1/AccessibleLevelResource.java | 9 + .../wrapper/v1/PollinatedBlockRegistry.java | 4 +- .../wrapper/v1/PollinatedEntityRegistry.java | 4 +- .../wrapper/v1/PollinatedRegistry.java | 3 +- .../v1/PollinatedVillagerRegistry.java | 3 +- .../render/item/v1/DynamicItemRenderer.java | 3 +- .../render/particle/v1/BedrockParticle.java | 6 +- .../api/render/util/v1/ShapeRenderer.java | 6 +- .../moonflower/pollen/core/PollenClient.java | 2 - .../compat/jei/PollenGrindstoneCategory.java | 8 +- .../core/compat/jei/PollenRecipeMaker.java | 8 +- .../crafting/PollenBrewingRecipeImpl.java | 14 +- .../PollenShapelessGrindstoneRecipeImpl.java | 5 +- .../java/gg/moonflower/pollen/impl/.DS_Store | Bin 0 -> 6148 bytes .../runtime/ClientAnimationRuntime.java | 4 +- .../runtime/CommonAnimationRuntime.java | 8 +- .../gg/moonflower/pollen/impl/mixin/.DS_Store | Bin 0 -> 6148 bytes .../pollen/impl/mixin/PoiTypesAccessor.java | 5 - .../ServerGamePacketListenerImplAccessor.java | 12 ++ ...ServerLoginPacketListenerImplAccessor.java | 12 ++ .../client/ClientPacketListenerAccessor.java | 12 ++ .../impl/mixin/client/ItemRendererMixin.java | 4 +- .../impl/mixin/client/Matrix3fAccessor.java | 63 ------- .../impl/mixin/client/Matrix4fAccessor.java | 105 ------------ .../mixin/crafting/GrindstoneMenuMixin.java | 17 +- .../impl/particle/BedrockParticleOption.java | 3 +- .../pollen/impl/particle/PollenParticles.java | 3 +- .../wrapper/PollinatedEntityRegistryImpl.java | 11 +- .../wrapper/PollinatedRegistryImpl.java | 9 +- .../PollinatedVillagerRegistryImpl.java | 6 +- .../RegistrarPollinatedRegistryImpl.java | 6 +- .../GeometryTextureSpriteUploader.java | 26 ++- .../render/geometry/PoseStackWrapper.java | 27 ++- ...ticleAppearanceBillboardComponentImpl.java | 8 +- .../ParticleExpireInBlocksComponentImpl.java | 5 +- ...articleExpireNotInBlocksComponentImpl.java | 5 +- .../instance/BedrockParticleInstanceImpl.java | 4 +- .../main/resources/pollen-common.mixins.json | 5 +- .../src/main/resources/pollen.accesswidener | 5 +- fabric/build.gradle | 10 +- .../pollen/core/fabric/PollenFabric.java | 3 +- .../client/registry/TextureAtlasMixin.java | 29 +++- .../event/entity/ModifyTradesEventsImpl.java | 8 +- .../CreativeModeTabBuilderImplImpl.java | 19 --- .../fabric/PollinatedFabricLoginChannel.java | 8 +- .../fabric/PollinatedFabricPlayChannel.java | 7 +- .../PollinatedVillagerRegistryImplImpl.java | 2 +- forge/build.gradle | 14 +- .../pollen/core/forge/PollenForgeClient.java | 6 - .../forge/CreativeModeTabBuilderImplImpl.java | 34 ---- .../forge/ItemRendererRegistryImplImpl.java | 3 +- gradle.properties | 22 +-- gradle/wrapper/gradle-wrapper.properties | 2 +- 62 files changed, 292 insertions(+), 641 deletions(-) delete mode 100644 common/src/main/java/gg/moonflower/pollen/api/itemgroup/v1/CreativeModeTabBuilder.java create mode 100644 common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/AccessibleLevelResource.java create mode 100644 common/src/main/java/gg/moonflower/pollen/impl/.DS_Store create mode 100644 common/src/main/java/gg/moonflower/pollen/impl/mixin/.DS_Store create mode 100644 common/src/main/java/gg/moonflower/pollen/impl/mixin/ServerGamePacketListenerImplAccessor.java create mode 100644 common/src/main/java/gg/moonflower/pollen/impl/mixin/ServerLoginPacketListenerImplAccessor.java create mode 100644 common/src/main/java/gg/moonflower/pollen/impl/mixin/client/ClientPacketListenerAccessor.java delete mode 100644 common/src/main/java/gg/moonflower/pollen/impl/mixin/client/Matrix3fAccessor.java delete mode 100644 common/src/main/java/gg/moonflower/pollen/impl/mixin/client/Matrix4fAccessor.java delete mode 100644 fabric/src/main/java/gg/moonflower/pollen/impl/itemgroup/fabric/CreativeModeTabBuilderImplImpl.java delete mode 100644 forge/src/main/java/gg/moonflower/pollen/impl/itemgroup/forge/CreativeModeTabBuilderImplImpl.java diff --git a/build.gradle b/build.gradle index fab011db..d6de0979 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.0-SNAPSHOT" apply false + id "dev.architectury.loom" version "1.5-SNAPSHOT" apply false id "io.github.juuxel.loom-quiltflower" version "1.7.1" apply false } @@ -62,6 +62,21 @@ allprojects { } } + publishing { + publications { + mavenJava(MavenPublication) { + from components.java + } + } + repositories { + maven { + name = "cph101Releases" + url = "https://maven.cph101.com/snapshots/" + credentials(PasswordCredentials) + } + } + } + tasks.withType(JavaCompile) { options.encoding = "UTF-8" options.release.set(17) diff --git a/common/build.gradle b/common/build.gradle index be74dd1f..a8550b09 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -23,7 +23,7 @@ dependencies { modCompileOnlyApi("mezz.jei:jei-${rootProject.minecraft_version}-common-api:${rootProject.jei_version}") - implementation(annotationProcessor("com.github.llamalad7.mixinextras:mixinextras-common:${rootProject.mixinextras_version}")) + implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:${rootProject.mixinextras_version}")) } processResources { diff --git a/common/src/main/java/gg/moonflower/pollen/api/animation/v1/AnimationRuntime.java b/common/src/main/java/gg/moonflower/pollen/api/animation/v1/AnimationRuntime.java index 02b3b671..ed364291 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/animation/v1/AnimationRuntime.java +++ b/common/src/main/java/gg/moonflower/pollen/api/animation/v1/AnimationRuntime.java @@ -56,7 +56,7 @@ static StateAnimationController createState(AnimationState[] states, MolangRunti * @return A new state animation controller */ static StateAnimationController createState(AnimationState[] states, Entity entity) { - boolean client = entity.getLevel().isClientSide(); + boolean client = entity.level().isClientSide(); MolangRuntime.Builder builder = MolangRuntime.runtime(); AnimationRuntime.addEntity(builder, entity, client); return createState(states, builder.create(), client); diff --git a/common/src/main/java/gg/moonflower/pollen/api/crafting/v1/PollenBrewingRecipe.java b/common/src/main/java/gg/moonflower/pollen/api/crafting/v1/PollenBrewingRecipe.java index ab4c6ab8..c71e1a0b 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/crafting/v1/PollenBrewingRecipe.java +++ b/common/src/main/java/gg/moonflower/pollen/api/crafting/v1/PollenBrewingRecipe.java @@ -1,6 +1,7 @@ package gg.moonflower.pollen.api.crafting.v1; import gg.moonflower.pollen.core.crafting.PollenBrewingRecipeImpl; +import net.minecraft.core.RegistryAccess; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; import net.minecraft.world.item.ItemStack; @@ -35,7 +36,7 @@ default boolean matches(Container container, Level level) { } @Override - default ItemStack assemble(Container container) { + default ItemStack assemble(Container container, RegistryAccess registryAccess) { return ItemStack.EMPTY; } @@ -45,7 +46,7 @@ default boolean canCraftInDimensions(int w, int h) { } @Override - default ItemStack getResultItem() { + default ItemStack getResultItem(RegistryAccess registryAccess) { return ItemStack.EMPTY; } diff --git a/common/src/main/java/gg/moonflower/pollen/api/crafting/v1/PollenRecipeTypes.java b/common/src/main/java/gg/moonflower/pollen/api/crafting/v1/PollenRecipeTypes.java index 2ab73e99..3ce4db70 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/crafting/v1/PollenRecipeTypes.java +++ b/common/src/main/java/gg/moonflower/pollen/api/crafting/v1/PollenRecipeTypes.java @@ -6,6 +6,7 @@ import gg.moonflower.pollen.core.crafting.PollenBrewingRecipeImpl; import gg.moonflower.pollen.core.crafting.PollenShapelessGrindstoneRecipeImpl; import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.crafting.Recipe; @@ -26,9 +27,9 @@ public final class PollenRecipeTypes { @ApiStatus.Internal - public static final DeferredRegister> RECIPE_SERIALIZERS = DeferredRegister.create(Pollen.MOD_ID, Registry.RECIPE_SERIALIZER_REGISTRY); + public static final DeferredRegister> RECIPE_SERIALIZERS = DeferredRegister.create(Pollen.MOD_ID, Registries.RECIPE_SERIALIZER); @ApiStatus.Internal - public static final DeferredRegister> RECIPES = DeferredRegister.create(Pollen.MOD_ID, Registry.RECIPE_TYPE_REGISTRY); + public static final DeferredRegister> RECIPES = DeferredRegister.create(Pollen.MOD_ID, Registries.RECIPE_TYPE); public static final Supplier> BREWING_TYPE = register("brewing"); public static final Supplier> BREWING = RECIPE_SERIALIZERS.register("brewing", () -> createSerializer(PollenBrewingRecipeImpl::fromJson, PollenBrewingRecipeImpl::fromNetwork, PollenBrewingRecipeImpl::toNetwork)); diff --git a/common/src/main/java/gg/moonflower/pollen/api/event/registry/v1/RegisterAtlasSpriteEvent.java b/common/src/main/java/gg/moonflower/pollen/api/event/registry/v1/RegisterAtlasSpriteEvent.java index 7a3cdb8e..0924d159 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/event/registry/v1/RegisterAtlasSpriteEvent.java +++ b/common/src/main/java/gg/moonflower/pollen/api/event/registry/v1/RegisterAtlasSpriteEvent.java @@ -4,7 +4,9 @@ import gg.moonflower.pollen.impl.event.registry.RegisterAtlasSpriteEventImpl; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.ResourceManager; +import java.util.function.BiConsumer; import java.util.function.Consumer; /** @@ -32,5 +34,5 @@ static Event event(ResourceLocation atlasId) { * @param atlas The atlas to register into * @param registry The registry to add sprites into the texture */ - void registerSprites(TextureAtlas atlas, Consumer registry); + void registerSprites(TextureAtlas atlas, BiConsumer registry); } diff --git a/common/src/main/java/gg/moonflower/pollen/api/itemgroup/v1/CreativeModeTabBuilder.java b/common/src/main/java/gg/moonflower/pollen/api/itemgroup/v1/CreativeModeTabBuilder.java deleted file mode 100644 index 915fdc49..00000000 --- a/common/src/main/java/gg/moonflower/pollen/api/itemgroup/v1/CreativeModeTabBuilder.java +++ /dev/null @@ -1,154 +0,0 @@ -package gg.moonflower.pollen.api.itemgroup.v1; - -import com.google.common.base.Suppliers; -import gg.moonflower.pollen.impl.itemgroup.CreativeModeTabBuilderImpl; -import net.minecraft.core.NonNullList; -import net.minecraft.core.Registry; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.BiConsumer; -import java.util.function.Consumer; -import java.util.function.Supplier; - -/** - * Constructs new {@link CreativeModeTab} and allows the creation of manually sorted tabs using {@link #sorted(CreativeModeTab)}. - * - * @author Ocelot - * @since 1.0.0 - */ -public final class CreativeModeTabBuilder { - - private final ResourceLocation name; - private Supplier icon; - private BiConsumer, CreativeModeTab> stacksForDisplay; - - private CreativeModeTabBuilder(ResourceLocation name) { - this.name = name; - this.icon = () -> ItemStack.EMPTY; - this.stacksForDisplay = null; - } - - /** - * Constructs a new tab builder. - * - * @param name The name to use for the translation key. It will be formatted as namespace.path - * @return A new builder - */ - public static CreativeModeTabBuilder builder(ResourceLocation name) { - return new CreativeModeTabBuilder(name); - } - - /** - * Wraps the specified tab in a sorted tab. - * - * @param tab The tab to wrap - * @return A new {@link SortedCreativeModeTab} that will reflect the original tab - */ - public static SortedCreativeModeTab sorted(CreativeModeTab tab) { - if (SortedCreativeModeTab.class.isAssignableFrom(tab.getClass())) - throw new IllegalStateException("Tab is already sorted!"); - return new SortedCreativeModeTab(tab, tab.getId(), tab.getRecipeFolderName()); - } - - /** - * Sets the icon of the tab. - * - * @param icon The new icon - */ - public CreativeModeTabBuilder setIcon(Supplier icon) { - this.icon = icon; - return this; - } - - /** - * Sets the items that will appear in the tab. - * - * @param stacksForDisplay The consumer to add all items - */ - public CreativeModeTabBuilder setItems(Consumer> stacksForDisplay) { - this.stacksForDisplay = (itemStacks, creativeModeTab) -> stacksForDisplay.accept(itemStacks); - return this; - } - - /** - * Sets the items that will appear in the tab. - * - * @param stacksForDisplay The consumer to add all items - */ - public CreativeModeTabBuilder setItems(BiConsumer, CreativeModeTab> stacksForDisplay) { - this.stacksForDisplay = stacksForDisplay; - return this; - } - - /** - * @return A new creative mode tab - */ - public CreativeModeTab build() { - return CreativeModeTabBuilderImpl.build(this.name, this.icon, this.stacksForDisplay); - } - - /** - * Automatically indexes and sorts an item group by add order. - * - * @author Ocelot - * @since 1.0.0 - */ - public static class SortedCreativeModeTab extends CreativeModeTab { - - private final CreativeModeTab parent; - private final List> orderedItems; - private final Supplier> indexedItems; - - private SortedCreativeModeTab(CreativeModeTab parent, int index, String label) { - super(index, label); - this.parent = parent; - this.orderedItems = new ArrayList<>(); - this.indexedItems = Suppliers.memoize(this::indexItems); - } - - private Map indexItems() { - Map indexMap = new HashMap<>(); - for (int i = 0; i < this.orderedItems.size(); i++) - indexMap.put(this.orderedItems.get(i).get(), i); - return indexMap; - } - - private int getIndex(Item item) { - Map indexes = this.indexedItems.get(); - return indexes.containsKey(item) ? indexes.get(item) : indexes.size(); - } - - @Override - public ItemStack makeIcon() { - return this.parent.makeIcon(); - } - - @Override - public void fillItemList(NonNullList items) { - super.fillItemList(items); - items.sort((stack1, stack2) -> - { - int index1 = this.getIndex(stack1.getItem()); - int index2 = this.getIndex(stack2.getItem()); - if (this.indexedItems.get().containsKey(stack1.getItem()) || this.indexedItems.get().containsKey(stack2.getItem())) - return Integer.compare(index1, index2); // Index by specified position - - return 1 + Registry.ITEM.getKey(stack1.getItem()).compareTo(Registry.ITEM.getKey(stack2.getItem())); // Index by registry name at end - }); - } - - /** - * @return The order items should be sorted in - */ - public List> getOrderedItems() { - return orderedItems; - } - } -} diff --git a/common/src/main/java/gg/moonflower/pollen/api/joml/v1/JomlBridge.java b/common/src/main/java/gg/moonflower/pollen/api/joml/v1/JomlBridge.java index ab040cb2..b4e7ecc9 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/joml/v1/JomlBridge.java +++ b/common/src/main/java/gg/moonflower/pollen/api/joml/v1/JomlBridge.java @@ -1,8 +1,7 @@ package gg.moonflower.pollen.api.joml.v1; -import com.mojang.math.Quaternion; -import gg.moonflower.pollen.impl.mixin.client.Matrix3fAccessor; -import gg.moonflower.pollen.impl.mixin.client.Matrix4fAccessor; +import net.minecraft.util.Mth; +import net.minecraft.world.phys.Vec3; import org.joml.*; /** @@ -13,123 +12,28 @@ */ public interface JomlBridge { - static Quaternion set(Quaternion minecraftQuaternion, Quaternionfc jomlQuaternion) { - minecraftQuaternion.set(jomlQuaternion.x(), jomlQuaternion.y(), jomlQuaternion.z(), jomlQuaternion.w()); - return minecraftQuaternion; - } - - static Quaternionf set(Quaternionf jomlQuaternion, Quaternion minecraftQuaternion) { - return jomlQuaternion.set(minecraftQuaternion.i(), minecraftQuaternion.j(), minecraftQuaternion.k(), minecraftQuaternion.r()); - } - - static com.mojang.math.Matrix4f set(com.mojang.math.Matrix4f minecraftMatrix, Matrix4fc jomlMatrix) { - Matrix4fAccessor accessor = (Matrix4fAccessor) (Object) minecraftMatrix; - accessor.m00(jomlMatrix.m00()); - accessor.m10(jomlMatrix.m01()); - accessor.m20(jomlMatrix.m02()); - accessor.m30(jomlMatrix.m03()); + static Quaternionf quaternionFromAxisAngle(Vector3f axis, float rotationAngle, boolean degrees) { + if (degrees) { + rotationAngle *= 0.017453292F; + } - accessor.m01(jomlMatrix.m10()); - accessor.m11(jomlMatrix.m11()); - accessor.m21(jomlMatrix.m12()); - accessor.m31(jomlMatrix.m13()); + Quaternionf it = new Quaternionf(); - accessor.m02(jomlMatrix.m20()); - accessor.m12(jomlMatrix.m21()); - accessor.m22(jomlMatrix.m22()); - accessor.m32(jomlMatrix.m23()); + float f = Mth.sin(rotationAngle / 2.0F); + it.x = axis.x() * f; + it.y = axis.y() * f; + it.z = axis.z() * f; + it.w = Mth.cos(rotationAngle / 2.0F); - accessor.m03(jomlMatrix.m30()); - accessor.m13(jomlMatrix.m31()); - accessor.m23(jomlMatrix.m32()); - accessor.m33(jomlMatrix.m33()); - return minecraftMatrix; + return it; } - static Matrix4f set(Matrix4f jomlMatrix, com.mojang.math.Matrix4f minecraftMatrix) { - Matrix4fAccessor accessor = (Matrix4fAccessor) (Object) minecraftMatrix; - jomlMatrix.m00(accessor.m00()); - jomlMatrix.m10(accessor.m01()); - jomlMatrix.m20(accessor.m02()); - jomlMatrix.m30(accessor.m03()); - - jomlMatrix.m01(accessor.m10()); - jomlMatrix.m11(accessor.m11()); - jomlMatrix.m21(accessor.m12()); - jomlMatrix.m31(accessor.m13()); - - jomlMatrix.m02(accessor.m20()); - jomlMatrix.m12(accessor.m21()); - jomlMatrix.m22(accessor.m22()); - jomlMatrix.m32(accessor.m23()); - - jomlMatrix.m03(accessor.m30()); - jomlMatrix.m13(accessor.m31()); - jomlMatrix.m23(accessor.m32()); - jomlMatrix.m33(accessor.m33()); - return jomlMatrix; - } - - static com.mojang.math.Matrix3f set(com.mojang.math.Matrix3f minecraftMatrix, Matrix3fc jomlMatrix) { - Matrix3fAccessor accessor = (Matrix3fAccessor) (Object) minecraftMatrix; - accessor.m00(jomlMatrix.m00()); - accessor.m10(jomlMatrix.m01()); - accessor.m20(jomlMatrix.m02()); - - accessor.m01(jomlMatrix.m10()); - accessor.m11(jomlMatrix.m11()); - accessor.m21(jomlMatrix.m12()); - - accessor.m02(jomlMatrix.m20()); - accessor.m12(jomlMatrix.m21()); - accessor.m22(jomlMatrix.m22()); - return minecraftMatrix; - } - - static Matrix3f set(Matrix3f jomlMatrix, com.mojang.math.Matrix3f minecraftMatrix) { - Matrix3fAccessor accessor = (Matrix3fAccessor) (Object) minecraftMatrix; - jomlMatrix.m00(accessor.m00()); - jomlMatrix.m10(accessor.m01()); - jomlMatrix.m20(accessor.m02()); - - jomlMatrix.m01(accessor.m10()); - jomlMatrix.m11(accessor.m11()); - jomlMatrix.m21(accessor.m12()); - - jomlMatrix.m02(accessor.m20()); - jomlMatrix.m12(accessor.m21()); - jomlMatrix.m22(accessor.m22()); - return jomlMatrix; - } - - static com.mojang.math.Vector3d set(com.mojang.math.Vector3d minecraftVector, Vector3dc jomlVector) { - minecraftVector.set(jomlVector.x(), jomlVector.y(), jomlVector.z()); + static Vec3 set(Vec3 minecraftVector, Vector3dc jomlVector) { + minecraftVector = new Vec3(jomlVector.x(), jomlVector.y(), jomlVector.z()); return minecraftVector; } - static Vector3d set(Vector3d jomlVector, com.mojang.math.Vector3d minecraftVector) { + static Vector3d set(Vector3d jomlVector, Vec3 minecraftVector) { return jomlVector.set(minecraftVector.x, minecraftVector.y, minecraftVector.z); } - - static com.mojang.math.Vector3f set(com.mojang.math.Vector3f minecraftVector, Vector3fc jomlVector) { - minecraftVector.set(jomlVector.x(), jomlVector.y(), jomlVector.z()); - return minecraftVector; - } - - static Vector3f set(Vector3f jomlVector, com.mojang.math.Vector3f minecraftVector) { - return jomlVector.set(minecraftVector.x(), minecraftVector.y(), minecraftVector.z()); - } - - static com.mojang.math.Vector4f set(com.mojang.math.Vector4f minecraftVector, Vector4fc jomlVector) { - minecraftVector.set(jomlVector.x(), jomlVector.y(), jomlVector.z(), jomlVector.w()); - return minecraftVector; - } - - static Vector4f set(Vector4f jomlVector, com.mojang.math.Vector3f minecraftVector) { - return jomlVector.set(minecraftVector.x(), minecraftVector.y(), minecraftVector.z()); - } - - static Vector4f set(Vector4f jomlVector, com.mojang.math.Vector4f minecraftVector) { - return jomlVector.set(minecraftVector.x(), minecraftVector.y(), minecraftVector.z(), minecraftVector.w()); - } } diff --git a/common/src/main/java/gg/moonflower/pollen/api/registry/resource/v1/TagRegistry.java b/common/src/main/java/gg/moonflower/pollen/api/registry/resource/v1/TagRegistry.java index f1691c8a..53c22602 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/registry/resource/v1/TagRegistry.java +++ b/common/src/main/java/gg/moonflower/pollen/api/registry/resource/v1/TagRegistry.java @@ -1,6 +1,7 @@ package gg.moonflower.pollen.api.registry.resource.v1; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; @@ -29,19 +30,19 @@ public static TagKey bind(Registry registry, ResourceLocation name) { } public static TagKey bindItem(ResourceLocation name) { - return bind(Registry.ITEM_REGISTRY, name); + return bind(BuiltInRegistries.ITEM, name); } public static TagKey bindBlock(ResourceLocation name) { - return bind(Registry.BLOCK_REGISTRY, name); + return bind(BuiltInRegistries.BLOCK, name); } public static TagKey> bindEntityType(ResourceLocation name) { - return bind(Registry.ENTITY_TYPE_REGISTRY, name); + return bind(BuiltInRegistries.ENTITY_TYPE, name); } public static TagKey bindFluid(ResourceLocation name) { - return bind(Registry.FLUID_REGISTRY, name); + return bind(BuiltInRegistries.FLUID, name); } } diff --git a/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/AccessibleLevelResource.java b/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/AccessibleLevelResource.java new file mode 100644 index 00000000..32163a66 --- /dev/null +++ b/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/AccessibleLevelResource.java @@ -0,0 +1,9 @@ +package gg.moonflower.pollen.api.registry.wrapper.v1; + +import net.minecraft.world.level.storage.LevelResource; + +public class AccessibleLevelResource extends LevelResource { + public AccessibleLevelResource(String string) { + super(string); + } +} diff --git a/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedBlockRegistry.java b/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedBlockRegistry.java index 7d1f5f86..8dde450e 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedBlockRegistry.java +++ b/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedBlockRegistry.java @@ -4,6 +4,8 @@ import dev.architectury.registry.registries.RegistrySupplier; import gg.moonflower.pollen.impl.registry.wrapper.PollinatedBlockRegistryImpl; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; @@ -19,7 +21,7 @@ public interface PollinatedBlockRegistry extends PollinatedRegistry { static PollinatedBlockRegistry create(DeferredRegister itemRegistry) { - return new PollinatedBlockRegistryImpl(DeferredRegister.create(itemRegistry.getRegistries().getModId(), Registry.BLOCK_REGISTRY), itemRegistry); + return new PollinatedBlockRegistryImpl(DeferredRegister.create(itemRegistry.getRegistrarManager().getModId(), ResourceKey.createRegistryKey(BuiltInRegistries.BLOCK.getDefaultKey())), itemRegistry); } /** diff --git a/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedEntityRegistry.java b/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedEntityRegistry.java index de1a3fc3..521c8a9c 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedEntityRegistry.java +++ b/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedEntityRegistry.java @@ -5,6 +5,8 @@ import dev.architectury.registry.registries.RegistrySupplier; import gg.moonflower.pollen.impl.registry.wrapper.PollinatedEntityRegistryImpl; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.ai.memory.MemoryModuleType; import net.minecraft.world.entity.ai.sensing.Sensor; @@ -26,7 +28,7 @@ public interface PollinatedEntityRegistry extends PollinatedRegistry> { static PollinatedEntityRegistry create(String modId) { - return new PollinatedEntityRegistryImpl(DeferredRegister.create(modId, Registry.ENTITY_TYPE_REGISTRY)); + return new PollinatedEntityRegistryImpl(DeferredRegister.create(modId, Registries.ENTITY_TYPE)); } /** diff --git a/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedRegistry.java b/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedRegistry.java index 9bd9f91c..40432374 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedRegistry.java +++ b/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedRegistry.java @@ -3,6 +3,7 @@ import dev.architectury.registry.registries.*; import gg.moonflower.pollen.impl.registry.wrapper.RegistrarPollinatedRegistryImpl; import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.Nullable; @@ -28,7 +29,7 @@ public interface PollinatedRegistry { Iterator> iterator(); - Registries getRegistries(); + RegistrarManager getRegistries(); Registrar getRegistrar(); diff --git a/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedVillagerRegistry.java b/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedVillagerRegistry.java index 16f3b2cf..cf5632bf 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedVillagerRegistry.java +++ b/common/src/main/java/gg/moonflower/pollen/api/registry/wrapper/v1/PollinatedVillagerRegistry.java @@ -4,6 +4,7 @@ import dev.architectury.registry.registries.RegistrySupplier; import gg.moonflower.pollen.impl.registry.wrapper.PollinatedVillagerRegistryImpl; import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.ai.village.poi.PoiType; import net.minecraft.world.entity.npc.VillagerProfession; @@ -12,7 +13,7 @@ public interface PollinatedVillagerRegistry extends PollinatedRegistry { static PollinatedVillagerRegistry create(String modId) { - return new PollinatedVillagerRegistryImpl(DeferredRegister.create(modId, Registry.VILLAGER_PROFESSION_REGISTRY)); + return new PollinatedVillagerRegistryImpl(DeferredRegister.create(modId, Registries.VILLAGER_PROFESSION)); } /** diff --git a/common/src/main/java/gg/moonflower/pollen/api/render/item/v1/DynamicItemRenderer.java b/common/src/main/java/gg/moonflower/pollen/api/render/item/v1/DynamicItemRenderer.java index 5a2a2688..955b87ff 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/render/item/v1/DynamicItemRenderer.java +++ b/common/src/main/java/gg/moonflower/pollen/api/render/item/v1/DynamicItemRenderer.java @@ -3,6 +3,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.block.model.ItemTransforms; +import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; /** @@ -10,5 +11,5 @@ */ public interface DynamicItemRenderer { - void render(ItemStack stack, ItemTransforms.TransformType transformType, PoseStack matrixStack, MultiBufferSource multiBufferSource, int packedLight, int combinedOverlay); + void render(ItemStack stack, ItemDisplayContext displayContext, PoseStack matrixStack, MultiBufferSource multiBufferSource, int packedLight, int combinedOverlay); } diff --git a/common/src/main/java/gg/moonflower/pollen/api/render/particle/v1/BedrockParticle.java b/common/src/main/java/gg/moonflower/pollen/api/render/particle/v1/BedrockParticle.java index cb2ea56c..8179aa93 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/render/particle/v1/BedrockParticle.java +++ b/common/src/main/java/gg/moonflower/pollen/api/render/particle/v1/BedrockParticle.java @@ -10,10 +10,14 @@ import gg.moonflower.pollen.api.render.particle.v1.listener.BedrockParticleListener; import gg.moonflower.pollen.impl.particle.BedrockParticleOption; import gg.moonflower.pollen.impl.particle.PollenParticles; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.commands.arguments.ParticleArgument; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; import org.jetbrains.annotations.Nullable; @@ -40,7 +44,7 @@ static ParticleOptions getOptions(String effect) throws CommandSyntaxException { return new BedrockParticleOption(PollenParticles.CUSTOM.get(), id); } - return ParticleArgument.readParticle(new StringReader(effect)); + return ParticleArgument.readParticle(new StringReader(effect), Minecraft.getInstance().level.holderLookup(BuiltInRegistries.PARTICLE_TYPE.key())); } /** diff --git a/common/src/main/java/gg/moonflower/pollen/api/render/util/v1/ShapeRenderer.java b/common/src/main/java/gg/moonflower/pollen/api/render/util/v1/ShapeRenderer.java index 1c7402a9..ed6ecfc9 100644 --- a/common/src/main/java/gg/moonflower/pollen/api/render/util/v1/ShapeRenderer.java +++ b/common/src/main/java/gg/moonflower/pollen/api/render/util/v1/ShapeRenderer.java @@ -7,11 +7,11 @@ import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexFormat; -import com.mojang.math.Matrix4f; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.ShaderInstance; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.Mth; +import org.joml.Matrix4f; import org.lwjgl.opengl.GL11C; import java.util.function.Supplier; @@ -214,9 +214,9 @@ public static void drawSunburst(PoseStack matrixStack, float x, float y, float w RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); - RenderSystem.disableTexture(); + //RenderSystem.disableTexture(); end(); - RenderSystem.enableTexture(); + //RenderSystem.enableTexture(); RenderSystem.disableBlend(); } diff --git a/common/src/main/java/gg/moonflower/pollen/core/PollenClient.java b/common/src/main/java/gg/moonflower/pollen/core/PollenClient.java index 2324f20f..c44ff5b8 100644 --- a/common/src/main/java/gg/moonflower/pollen/core/PollenClient.java +++ b/common/src/main/java/gg/moonflower/pollen/core/PollenClient.java @@ -8,7 +8,6 @@ import gg.moonflower.pollen.impl.particle.PollenParticles; import gg.moonflower.pollen.impl.render.animation.AnimationManagerImpl; import gg.moonflower.pollen.impl.render.geometry.GeometryModelManagerImpl; -import gg.moonflower.pollen.impl.render.geometry.texture.GeometryTextureManagerImpl; import gg.moonflower.pollen.impl.render.particle.BedrockParticleManagerImpl; import gg.moonflower.pollen.impl.render.particle.instance.BedrockParticleEmitterImpl; import gg.moonflower.pollen.impl.render.particle.instance.BedrockParticleInstanceImpl; @@ -18,7 +17,6 @@ public class PollenClient { public static void init() { GeometryModelManagerImpl.init(); - GeometryTextureManagerImpl.init(); BedrockParticleManagerImpl.init(); AnimationManagerImpl.init(); PollenShaderTypes.init(); diff --git a/common/src/main/java/gg/moonflower/pollen/core/compat/jei/PollenGrindstoneCategory.java b/common/src/main/java/gg/moonflower/pollen/core/compat/jei/PollenGrindstoneCategory.java index 1fdc7f8d..b2e08187 100644 --- a/common/src/main/java/gg/moonflower/pollen/core/compat/jei/PollenGrindstoneCategory.java +++ b/common/src/main/java/gg/moonflower/pollen/core/compat/jei/PollenGrindstoneCategory.java @@ -14,7 +14,9 @@ import mezz.jei.api.recipe.category.IRecipeCategory; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.core.NonNullList; +import net.minecraft.core.RegistryAccess; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; @@ -70,7 +72,7 @@ public void setRecipe(IRecipeLayoutBuilder builder, PollenGrindstoneRecipe recip builder.addSlot(RecipeIngredientRole.INPUT, 19, 25).addIngredients(ingredients.get(1)).setSlotName(BOTTOM_SLOT); } } - builder.addSlot(RecipeIngredientRole.OUTPUT, 99, 19).addItemStack(recipe.getResultItem()); + builder.addSlot(RecipeIngredientRole.OUTPUT, 99, 19).addItemStack(recipe.getResultItem(RegistryAccess.EMPTY)); } private static int getExperienceFromItem(ItemStack stack) { @@ -91,7 +93,7 @@ private static int getExperienceFromItem(ItemStack stack) { } @Override - public void draw(PollenGrindstoneRecipe recipe, IRecipeSlotsView view, PoseStack matrixStack, double mouseX, double mouseY) { + public void draw(PollenGrindstoneRecipe recipe, IRecipeSlotsView view, GuiGraphics guiGraphics, double mouseX, double mouseY) { int experience = recipe.getResultExperience(); if (experience == -1) { @@ -107,7 +109,7 @@ public void draw(PollenGrindstoneRecipe recipe, IRecipeSlotsView view, PoseStack if (experience > 0) { Component experienceString = Component.translatable("gui.jei.category." + Pollen.MOD_ID + ".grindstone.experience", (int) Math.ceil((double) experience / 2.0), experience); Font font = Minecraft.getInstance().font; - font.draw(matrixStack, experienceString, background.getWidth() - font.width(experienceString), 0, 0xFF808080); + guiGraphics.drawString(font, experienceString, background.getWidth() - font.width(experienceString), 0, 0xFF808080); } } diff --git a/common/src/main/java/gg/moonflower/pollen/core/compat/jei/PollenRecipeMaker.java b/common/src/main/java/gg/moonflower/pollen/core/compat/jei/PollenRecipeMaker.java index 8a6adadd..9d6b30fc 100644 --- a/common/src/main/java/gg/moonflower/pollen/core/compat/jei/PollenRecipeMaker.java +++ b/common/src/main/java/gg/moonflower/pollen/core/compat/jei/PollenRecipeMaker.java @@ -11,6 +11,8 @@ import net.minecraft.core.NonNullList; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; import net.minecraft.world.item.Item; @@ -42,8 +44,8 @@ public static List getGrindstoneRecipes(IRecipeCategory< List recipes = getRecipes(clientLevel.getRecipeManager(), category, PollenRecipeTypes.GRINDSTONE_TYPE.get()); RegistryAccess registryAccess = clientLevel.registryAccess(); - Registry itemRegistry = registryAccess.registryOrThrow(Registry.ITEM_REGISTRY); - Registry enchantmentRegistry = registryAccess.registryOrThrow(Registry.ENCHANTMENT_REGISTRY); + Registry itemRegistry = registryAccess.registryOrThrow(Registries.ITEM); + Registry enchantmentRegistry = registryAccess.registryOrThrow(Registries.ENCHANTMENT); Collection ingredients = ingredientManager.getAllIngredients(VanillaTypes.ITEM_STACK); for (ItemStack ingredient : ingredients) { @@ -52,7 +54,7 @@ public static List getGrindstoneRecipes(IRecipeCategory< } ResourceLocation id = itemRegistry.getKey(ingredient.getItem()); - if (id == null || id == Registry.ITEM.getDefaultKey()) { + if (id == null || id == BuiltInRegistries.ITEM.getDefaultKey()) { continue; } diff --git a/common/src/main/java/gg/moonflower/pollen/core/crafting/PollenBrewingRecipeImpl.java b/common/src/main/java/gg/moonflower/pollen/core/crafting/PollenBrewingRecipeImpl.java index 0db312d6..9939cff6 100644 --- a/common/src/main/java/gg/moonflower/pollen/core/crafting/PollenBrewingRecipeImpl.java +++ b/common/src/main/java/gg/moonflower/pollen/core/crafting/PollenBrewingRecipeImpl.java @@ -5,6 +5,8 @@ import gg.moonflower.pollen.api.crafting.v1.PollenRecipeTypes; import net.minecraft.core.NonNullList; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; @@ -42,27 +44,27 @@ public PollenBrewingRecipeImpl(ResourceLocation id, String group, Potion from, I @ApiStatus.Internal public static PollenBrewingRecipe fromJson(ResourceLocation resourceLocation, JsonObject jsonObject) { String group = GsonHelper.getAsString(jsonObject, "group", ""); - Potion from = Registry.POTION.get(new ResourceLocation(GsonHelper.getAsString(jsonObject, "from"))); + Potion from = BuiltInRegistries.POTION.get(new ResourceLocation(GsonHelper.getAsString(jsonObject, "from"))); Ingredient ingredient = Ingredient.fromJson(GsonHelper.getAsJsonObject(jsonObject, "ingredient")); - Potion result = Registry.POTION.get(new ResourceLocation(GsonHelper.getAsString(jsonObject, "result"))); + Potion result = BuiltInRegistries.POTION.get(new ResourceLocation(GsonHelper.getAsString(jsonObject, "result"))); return new PollenBrewingRecipeImpl(resourceLocation, group, from, ingredient, result); } @ApiStatus.Internal public static PollenBrewingRecipe fromNetwork(ResourceLocation id, FriendlyByteBuf buf) { String group = buf.readUtf(); - Potion from = Registry.POTION.get(buf.readResourceLocation()); + Potion from = BuiltInRegistries.POTION.get(buf.readResourceLocation()); Ingredient ingredient = Ingredient.fromNetwork(buf); - Potion result = Registry.POTION.get(buf.readResourceLocation()); + Potion result = BuiltInRegistries.POTION.get(buf.readResourceLocation()); return new PollenBrewingRecipeImpl(id, group, from, ingredient, result); } @ApiStatus.Internal public static void toNetwork(FriendlyByteBuf buf, PollenBrewingRecipe recipe) { buf.writeUtf(recipe.getGroup()); - buf.writeResourceLocation(Registry.POTION.getKey(recipe.getFrom())); + buf.writeResourceLocation(BuiltInRegistries.POTION.getKey(recipe.getFrom())); recipe.getIngredient().toNetwork(buf); - buf.writeResourceLocation(Registry.POTION.getKey(recipe.getResult())); + buf.writeResourceLocation(BuiltInRegistries.POTION.getKey(recipe.getResult())); } public Potion getFrom() { diff --git a/common/src/main/java/gg/moonflower/pollen/core/crafting/PollenShapelessGrindstoneRecipeImpl.java b/common/src/main/java/gg/moonflower/pollen/core/crafting/PollenShapelessGrindstoneRecipeImpl.java index cd1719de..fda7bdaf 100644 --- a/common/src/main/java/gg/moonflower/pollen/core/crafting/PollenShapelessGrindstoneRecipeImpl.java +++ b/common/src/main/java/gg/moonflower/pollen/core/crafting/PollenShapelessGrindstoneRecipeImpl.java @@ -6,6 +6,7 @@ import gg.moonflower.pollen.api.crafting.v1.PollenRecipeTypes; import gg.moonflower.pollen.api.crafting.v1.PollenGrindstoneRecipe; import net.minecraft.core.NonNullList; +import net.minecraft.core.RegistryAccess; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; @@ -103,7 +104,7 @@ public boolean matches(Container container, Level level) { } @Override - public ItemStack assemble(Container container) { + public ItemStack assemble(Container container, RegistryAccess registryAccess) { return this.result.copy(); } @@ -113,7 +114,7 @@ public boolean canCraftInDimensions(int w, int h) { } @Override - public ItemStack getResultItem() { + public ItemStack getResultItem(RegistryAccess registryAccess) { return result; } diff --git a/common/src/main/java/gg/moonflower/pollen/impl/.DS_Store b/common/src/main/java/gg/moonflower/pollen/impl/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9cd39e5a49e15729bae8a84ae0bad91f6bc5eb35 GIT binary patch literal 6148 zcmeHK%}T>S5Z<+|O({YS3Oz1(E!ZECikA@U3mDOZN=-=7V45vWYK2nBSzpK}@p+ut z-9U@Mqlle>*>84!cC#O3e;8xjorhhBAo`Y3`&Oi zn=btJ8k?|)y@IZP|3@&5qcrPuKKV|iTHCE#b*pLJdrxxVWqvkKU4M3qy(=l>ps@Ym zIvOuV_Wrp{GCxYjGgT0UV@SEXiIPw*Tscp|RMmPqU^T49$Zjo{{qCSGdV|5LEtaRf zPFo!JPgbjjb#Qoeb~$>ECy9L1L~>wU$)3Ri-oaQ~(Tg`rVwpUGx2PyG35fw>fEXYK zwvz#K9$3xoTt2Ou7$63IU;y_A0gC7t%r&a50~)+OW4wxp0ye%S5QRaQZi=7+jZwUzj|{V6IV@Gp=Taam>uc builder, Entity entity, boolea } // Level - if (entity.level instanceof ClientLevel clientLevel) { + if (entity.level() instanceof ClientLevel clientLevel) { builder.setQuery("actor_count", MolangExpression.of(() -> (float) clientLevel.getEntityCount())); } - builder.setQuery("time_of_day", MolangExpression.of(() -> entity.level.getTimeOfDay(Minecraft.getInstance().getFrameTime()) / 24_000L)); + builder.setQuery("time_of_day", MolangExpression.of(() -> entity.level().getTimeOfDay(Minecraft.getInstance().getFrameTime()) / 24_000L)); // Basic queries builder.setQuery("is_first_person", MolangExpression.of(() -> entity == Minecraft.getInstance().getCameraEntity() && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON)); diff --git a/common/src/main/java/gg/moonflower/pollen/impl/animation/runtime/CommonAnimationRuntime.java b/common/src/main/java/gg/moonflower/pollen/impl/animation/runtime/CommonAnimationRuntime.java index f68e72bc..9ec832df 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/animation/runtime/CommonAnimationRuntime.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/animation/runtime/CommonAnimationRuntime.java @@ -68,12 +68,12 @@ public void addEntity(MolangEnvironmentBuilder builder, Entity entity, boolea builder.setVariables(provider); } - builder.setQuery("day", MolangExpression.of(() -> (float) (entity.level.getDayTime() / 24000L + 1))); - builder.setQuery("moon_phase", MolangExpression.of(() -> (float) entity.level.getMoonPhase())); - builder.setQuery("moon_brightness", MolangExpression.of(() -> entity.level.getMoonBrightness())); + builder.setQuery("day", MolangExpression.of(() -> (float) (entity.level().getDayTime() / 24000L + 1))); + builder.setQuery("moon_phase", MolangExpression.of(() -> (float) entity.level().getMoonPhase())); + builder.setQuery("moon_brightness", MolangExpression.of(() -> entity.level().getMoonBrightness())); // Basic queries - builder.setQuery("is_on_ground", MolangExpression.of(entity::isOnGround)); + builder.setQuery("is_on_ground", MolangExpression.of(entity::onGround)); builder.setQuery("is_in_water", MolangExpression.of(entity::isInWater)); builder.setQuery("is_in_water_or_rain", MolangExpression.of(entity::isInWaterOrRain)); builder.setQuery("is_in_contact_with_water", MolangExpression.of(entity::isInWaterRainOrBubble)); diff --git a/common/src/main/java/gg/moonflower/pollen/impl/mixin/.DS_Store b/common/src/main/java/gg/moonflower/pollen/impl/mixin/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..86513bd4a8707eedc723fcb882fda9255388dc37 GIT binary patch literal 6148 zcmeHKQA+|r5dPLAtX_O6f(Wk1d=UBvml+`x2=)U~GqJQ2HL16I@2>>?zMkrv*{!@Y zMT#P7M|Qrwxt*Dv@9uV80H$W=UT00mL zC0+{yRM118Ui%!;q-DroM0*jJ^ctf+v1YvHe3;0&lgK$Q(`Pf}IIjWca=}?kHSN@l z9#brAp{zCbwZ@@VSz?8ea+Q-&MNt@lR0_gPRQb|KFJyHSf-td#mj#u+_Ob;YZkrs40r}S z18)q-`Vg=Qh7Mzkx^z(K5rCMbS%rPs!o??W7&?qC@(#sVSE6+_?ucQmJMDoR7dnhB zT6Y+C_%JTBaVHd`*%?33;V_{^uRQ~vfg}S<_A)Q~|KaTOf6~ccc?LWKe~JN4cN}uL}XlSQC+CqcB~!QiZ|I*crTC+F?1MPq=n-D2q+C+c?N!zffs}X B$esWI literal 0 HcmV?d00001 diff --git a/common/src/main/java/gg/moonflower/pollen/impl/mixin/PoiTypesAccessor.java b/common/src/main/java/gg/moonflower/pollen/impl/mixin/PoiTypesAccessor.java index 5f602419..21f40318 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/mixin/PoiTypesAccessor.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/mixin/PoiTypesAccessor.java @@ -18,9 +18,4 @@ public interface PoiTypesAccessor { static Map> getTypeByState() { return Pollen.expect(); } - - @Accessor("ALL_STATES") - static Set getAllStates() { - return Pollen.expect(); - } } diff --git a/common/src/main/java/gg/moonflower/pollen/impl/mixin/ServerGamePacketListenerImplAccessor.java b/common/src/main/java/gg/moonflower/pollen/impl/mixin/ServerGamePacketListenerImplAccessor.java new file mode 100644 index 00000000..a84a27ec --- /dev/null +++ b/common/src/main/java/gg/moonflower/pollen/impl/mixin/ServerGamePacketListenerImplAccessor.java @@ -0,0 +1,12 @@ +package gg.moonflower.pollen.impl.mixin; + +import net.minecraft.network.Connection; +import net.minecraft.server.network.ServerGamePacketListenerImpl; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(ServerGamePacketListenerImpl.class) +public interface ServerGamePacketListenerImplAccessor { + @Accessor("connection") + Connection getConnection(); +} diff --git a/common/src/main/java/gg/moonflower/pollen/impl/mixin/ServerLoginPacketListenerImplAccessor.java b/common/src/main/java/gg/moonflower/pollen/impl/mixin/ServerLoginPacketListenerImplAccessor.java new file mode 100644 index 00000000..1b038f26 --- /dev/null +++ b/common/src/main/java/gg/moonflower/pollen/impl/mixin/ServerLoginPacketListenerImplAccessor.java @@ -0,0 +1,12 @@ +package gg.moonflower.pollen.impl.mixin; + +import net.minecraft.network.Connection; +import net.minecraft.server.network.ServerLoginPacketListenerImpl; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(ServerLoginPacketListenerImpl.class) +public interface ServerLoginPacketListenerImplAccessor { + @Accessor("connection") + Connection getConnection(); +} diff --git a/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/ClientPacketListenerAccessor.java b/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/ClientPacketListenerAccessor.java new file mode 100644 index 00000000..47a6e1e8 --- /dev/null +++ b/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/ClientPacketListenerAccessor.java @@ -0,0 +1,12 @@ +package gg.moonflower.pollen.impl.mixin.client; + +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.network.Connection; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(ClientPacketListener.class) +public interface ClientPacketListenerAccessor { + @Accessor("connection") + Connection getConnection(); +} diff --git a/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/ItemRendererMixin.java b/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/ItemRendererMixin.java index e3ac26a9..6760fea5 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/ItemRendererMixin.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/ItemRendererMixin.java @@ -4,12 +4,12 @@ import gg.moonflower.pollen.api.registry.render.v1.ItemRendererRegistry; import net.minecraft.client.renderer.ItemModelShaper; import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.entity.ItemRenderer; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import org.spongepowered.asm.mixin.Final; @@ -36,7 +36,7 @@ public class ItemRendererMixin { private Item pollen$capturedHandItem; @Inject(method = "render", at = @At("HEAD")) - public void capture(ItemStack itemStack, ItemTransforms.TransformType transformType, boolean bl, PoseStack poseStack, MultiBufferSource multiBufferSource, int i, int j, BakedModel bakedModel, CallbackInfo ci) { + public void capture(ItemStack itemStack, ItemDisplayContext itemDisplayContext, boolean bl, PoseStack poseStack, MultiBufferSource multiBufferSource, int i, int j, BakedModel bakedModel, CallbackInfo ci) { this.pollen$capturedItem = itemStack.getItem(); } diff --git a/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/Matrix3fAccessor.java b/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/Matrix3fAccessor.java deleted file mode 100644 index aa72bfe2..00000000 --- a/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/Matrix3fAccessor.java +++ /dev/null @@ -1,63 +0,0 @@ -package gg.moonflower.pollen.impl.mixin.client; - -import com.mojang.math.Matrix3f; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(Matrix3f.class) -public interface Matrix3fAccessor { - - @Accessor("m00") - float m00(); - - @Accessor("m01") - float m01(); - - @Accessor("m02") - float m02(); - - @Accessor("m10") - float m10(); - - @Accessor("m11") - float m11(); - - @Accessor("m12") - float m12(); - - @Accessor("m20") - float m20(); - - @Accessor("m21") - float m21(); - - @Accessor("m22") - float m22(); - - @Accessor("m00") - void m00(float value); - - @Accessor("m01") - void m01(float value); - - @Accessor("m02") - void m02(float value); - - @Accessor("m10") - void m10(float value); - - @Accessor("m11") - void m11(float value); - - @Accessor("m12") - void m12(float value); - - @Accessor("m20") - void m20(float value); - - @Accessor("m21") - void m21(float value); - - @Accessor("m22") - void m22(float value); -} diff --git a/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/Matrix4fAccessor.java b/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/Matrix4fAccessor.java deleted file mode 100644 index c6c9c750..00000000 --- a/common/src/main/java/gg/moonflower/pollen/impl/mixin/client/Matrix4fAccessor.java +++ /dev/null @@ -1,105 +0,0 @@ -package gg.moonflower.pollen.impl.mixin.client; - -import com.mojang.math.Matrix4f; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; - -@Mixin(Matrix4f.class) -public interface Matrix4fAccessor { - - @Accessor("m00") - float m00(); - - @Accessor("m01") - float m01(); - - @Accessor("m02") - float m02(); - - @Accessor("m03") - float m03(); - - @Accessor("m10") - float m10(); - - @Accessor("m11") - float m11(); - - @Accessor("m12") - float m12(); - - @Accessor("m13") - float m13(); - - @Accessor("m20") - float m20(); - - @Accessor("m21") - float m21(); - - @Accessor("m22") - float m22(); - - @Accessor("m23") - float m23(); - - @Accessor("m30") - float m30(); - - @Accessor("m31") - float m31(); - - @Accessor("m32") - float m32(); - - @Accessor("m33") - float m33(); - - @Accessor("m00") - void m00(float value); - - @Accessor("m01") - void m01(float value); - - @Accessor("m02") - void m02(float value); - - @Accessor("m03") - void m03(float value); - - @Accessor("m10") - void m10(float value); - - @Accessor("m11") - void m11(float value); - - @Accessor("m12") - void m12(float value); - - @Accessor("m13") - void m13(float value); - - @Accessor("m20") - void m20(float value); - - @Accessor("m21") - void m21(float value); - - @Accessor("m22") - void m22(float value); - - @Accessor("m23") - void m23(float value); - - @Accessor("m30") - void m30(float value); - - @Accessor("m31") - void m31(float value); - - @Accessor("m32") - void m32(float value); - - @Accessor("m33") - void m33(float value); -} diff --git a/common/src/main/java/gg/moonflower/pollen/impl/mixin/crafting/GrindstoneMenuMixin.java b/common/src/main/java/gg/moonflower/pollen/impl/mixin/crafting/GrindstoneMenuMixin.java index c743c6fc..0a76c0c0 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/mixin/crafting/GrindstoneMenuMixin.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/mixin/crafting/GrindstoneMenuMixin.java @@ -5,9 +5,11 @@ import gg.moonflower.pollen.api.platform.v1.Platform; import gg.moonflower.pollen.impl.extensions.GrindstoneMenuExtension; import net.minecraft.core.NonNullList; +import net.minecraft.core.RegistryAccess; import net.minecraft.world.Container; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ContainerLevelAccess; import net.minecraft.world.inventory.GrindstoneMenu; import net.minecraft.world.inventory.MenuType; import net.minecraft.world.item.ItemStack; @@ -36,6 +38,7 @@ public abstract class GrindstoneMenuMixin extends AbstractContainerMenu implemen @Final private Container resultSlots; + @Shadow @Final private ContainerLevelAccess access; @Nullable @Unique private PollenGrindstoneRecipe recipe; @@ -60,10 +63,12 @@ public void modifyAllowed(CallbackInfo ci) { RecipeManager recipeManager = recipeManagerOptional.get(); Optional optional = recipeManager.getRecipeFor(PollenRecipeTypes.GRINDSTONE_TYPE.get(), this.repairSlots, null); if (optional.isPresent()) { - this.recipe = optional.get(); - this.resultSlots.setItem(0, this.recipe.assemble(this.repairSlots)); - ci.cancel(); - this.broadcastChanges(); + this.access.execute((world, pos) -> { + this.recipe = optional.get(); + this.resultSlots.setItem(0, this.recipe.assemble(this.repairSlots, world.registryAccess())); + ci.cancel(); + this.broadcastChanges(); + }); return; } } @@ -80,7 +85,7 @@ public void modifyAllowed(CallbackInfo ci) { @Override public void pollen_craft(Player player) { - NonNullList nonNullList = player.level.getRecipeManager().getRemainingItemsFor(PollenRecipeTypes.GRINDSTONE_TYPE.get(), this.repairSlots, player.level); + NonNullList nonNullList = player.level().getRecipeManager().getRemainingItemsFor(PollenRecipeTypes.GRINDSTONE_TYPE.get(), this.repairSlots, player.level()); for (int i = 0; i < nonNullList.size(); ++i) { ItemStack itemStack = this.repairSlots.getItem(i); @@ -93,7 +98,7 @@ public void pollen_craft(Player player) { if (!itemStack2.isEmpty()) { if (itemStack.isEmpty()) { this.repairSlots.setItem(i, itemStack2); - } else if (ItemStack.isSame(itemStack, itemStack2) && ItemStack.tagMatches(itemStack, itemStack2)) { + } else if (ItemStack.isSameItem(itemStack, itemStack2) && ItemStack.isSameItemSameTags(itemStack, itemStack2)) { itemStack2.grow(itemStack.getCount()); this.repairSlots.setItem(i, itemStack2); } else if (!player.getInventory().add(itemStack2)) { diff --git a/common/src/main/java/gg/moonflower/pollen/impl/particle/BedrockParticleOption.java b/common/src/main/java/gg/moonflower/pollen/impl/particle/BedrockParticleOption.java index 04a3b57b..0a8e5d8e 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/particle/BedrockParticleOption.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/particle/BedrockParticleOption.java @@ -6,6 +6,7 @@ import net.minecraft.core.Registry; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleType; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.ApiStatus; @@ -42,7 +43,7 @@ public void writeToNetwork(FriendlyByteBuf buf) { @Override public String writeToString() { - return Registry.PARTICLE_TYPE.getKey(this.getType()) + " " + this.name; + return BuiltInRegistries.PARTICLE_TYPE.getKey(this.getType()) + " " + this.name; } @Override diff --git a/common/src/main/java/gg/moonflower/pollen/impl/particle/PollenParticles.java b/common/src/main/java/gg/moonflower/pollen/impl/particle/PollenParticles.java index 4a3c6f6b..ff5e21b9 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/particle/PollenParticles.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/particle/PollenParticles.java @@ -6,12 +6,13 @@ import gg.moonflower.pollen.core.Pollen; import net.minecraft.core.Registry; import net.minecraft.core.particles.ParticleType; +import net.minecraft.core.registries.Registries; import org.jetbrains.annotations.ApiStatus; @ApiStatus.Internal public final class PollenParticles { - public static final DeferredRegister> PARTICLE_TYPES = DeferredRegister.create(Pollen.MOD_ID, Registry.PARTICLE_TYPE_REGISTRY); + public static final DeferredRegister> PARTICLE_TYPES = DeferredRegister.create(Pollen.MOD_ID, Registries.PARTICLE_TYPE); public static final RegistrySupplier> CUSTOM = PARTICLE_TYPES.register("custom", () -> new ParticleType<>(true, BedrockParticleOption.DESERIALIZER) { @Override diff --git a/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedEntityRegistryImpl.java b/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedEntityRegistryImpl.java index 1fc9f068..7030a440 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedEntityRegistryImpl.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedEntityRegistryImpl.java @@ -5,6 +5,9 @@ import dev.architectury.registry.registries.RegistrySupplier; import gg.moonflower.pollen.api.registry.wrapper.v1.PollinatedEntityRegistry; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.ai.memory.MemoryModuleType; import net.minecraft.world.entity.ai.sensing.Sensor; @@ -29,10 +32,10 @@ public class PollinatedEntityRegistryImpl extends PollinatedRegistryImpl> entityRegistry) { super(entityRegistry); - this.memoryModuleTypeRegistry = DeferredRegister.create(this.getModId(), Registry.MEMORY_MODULE_TYPE_REGISTRY); - this.sensorTypeRegistry = DeferredRegister.create(this.getModId(), Registry.SENSOR_TYPE_REGISTRY); - this.scheduleRegistry = DeferredRegister.create(this.getModId(), Registry.SCHEDULE_REGISTRY); - this.activityRegistry = DeferredRegister.create(this.getModId(), Registry.ACTIVITY_REGISTRY); + this.memoryModuleTypeRegistry = DeferredRegister.create(this.getModId(), Registries.MEMORY_MODULE_TYPE); + this.sensorTypeRegistry = DeferredRegister.create(this.getModId(), Registries.SENSOR_TYPE); + this.scheduleRegistry = DeferredRegister.create(this.getModId(), Registries.SCHEDULE); + this.activityRegistry = DeferredRegister.create(this.getModId(), Registries.ACTIVITY); } diff --git a/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedRegistryImpl.java b/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedRegistryImpl.java index ce2ce3b5..692d7ffa 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedRegistryImpl.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedRegistryImpl.java @@ -2,9 +2,10 @@ import dev.architectury.registry.registries.DeferredRegister; import dev.architectury.registry.registries.Registrar; -import dev.architectury.registry.registries.Registries; +import dev.architectury.registry.registries.RegistrarManager; import dev.architectury.registry.registries.RegistrySupplier; import gg.moonflower.pollen.api.registry.wrapper.v1.PollinatedRegistry; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import java.util.Iterator; @@ -24,7 +25,7 @@ public class PollinatedRegistryImpl implements PollinatedRegistry { protected PollinatedRegistryImpl(DeferredRegister parent) { this.parent = parent; - this.modId = this.parent.getRegistries().getModId(); + this.modId = this.parent.getRegistrarManager().getModId(); } @Override @@ -48,8 +49,8 @@ public Iterator> iterator() { } @Override - public Registries getRegistries() { - return this.parent.getRegistries(); + public RegistrarManager getRegistries() { + return this.parent.getRegistrarManager(); } @Override diff --git a/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedVillagerRegistryImpl.java b/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedVillagerRegistryImpl.java index 50f9231e..fb410643 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedVillagerRegistryImpl.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/PollinatedVillagerRegistryImpl.java @@ -8,6 +8,8 @@ import gg.moonflower.pollen.impl.mixin.PoiTypesAccessor; import net.minecraft.core.Holder; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; import net.minecraft.world.entity.ai.village.poi.PoiType; import net.minecraft.world.entity.npc.VillagerProfession; @@ -30,7 +32,7 @@ public static void registerPoiStates(Holder holder, Set sta public PollinatedVillagerRegistryImpl(DeferredRegister villagerProfessionRegistry) { super(villagerProfessionRegistry); - this.poiTypeRegistry = DeferredRegister.create(this.getModId(), Registry.POINT_OF_INTEREST_TYPE_REGISTRY); + this.poiTypeRegistry = DeferredRegister.create(this.getModId(), Registries.POINT_OF_INTEREST_TYPE); } @Override @@ -42,7 +44,7 @@ public void register() { public RegistrySupplier registerPoiType(String id, Supplier supplier) { RegistrySupplier poiType = this.poiTypeRegistry.register(id, supplier); poiType.listen(entry -> { - Holder typeHolder = Registry.POINT_OF_INTEREST_TYPE.getHolderOrThrow(ResourceKey.create(Registry.POINT_OF_INTEREST_TYPE_REGISTRY, poiType.getId())); + Holder typeHolder = BuiltInRegistries.POINT_OF_INTEREST_TYPE.getHolderOrThrow(ResourceKey.create(Registries.POINT_OF_INTEREST_TYPE, poiType.getId())); PollinatedVillagerRegistryImpl.registerPoiStates(typeHolder, entry.matchingStates()); }); return poiType; diff --git a/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/RegistrarPollinatedRegistryImpl.java b/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/RegistrarPollinatedRegistryImpl.java index 7457d6ab..d0acd5f6 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/RegistrarPollinatedRegistryImpl.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/RegistrarPollinatedRegistryImpl.java @@ -21,12 +21,12 @@ @ApiStatus.Internal public class RegistrarPollinatedRegistryImpl implements PollinatedRegistry { - private final Supplier registries; + private final Supplier registries; private final Supplier> registrar; private final ResourceKey> key; public RegistrarPollinatedRegistryImpl(ResourceKey> key, @Nullable Consumer> consumer) { - this.registries = Suppliers.memoize(() -> Registries.get(this.getModId())); + this.registries = Suppliers.memoize(() -> RegistrarManager.get(this.getModId())); this.registrar = Suppliers.memoize(() -> { RegistrarBuilder builder = this.registries.get().builder(key.location()); if (consumer != null) { @@ -69,7 +69,7 @@ public RegistrySupplier next() { } @Override - public Registries getRegistries() { + public RegistrarManager getRegistries() { return this.registries.get(); } diff --git a/common/src/main/java/gg/moonflower/pollen/impl/render/geometry/GeometryTextureSpriteUploader.java b/common/src/main/java/gg/moonflower/pollen/impl/render/geometry/GeometryTextureSpriteUploader.java index 804d5f04..d6ef8b72 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/render/geometry/GeometryTextureSpriteUploader.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/render/geometry/GeometryTextureSpriteUploader.java @@ -7,12 +7,13 @@ import gg.moonflower.pollen.api.render.geometry.v1.GeometryAtlasTexture; import gg.moonflower.pollen.core.Pollen; import net.minecraft.Util; -import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.SpriteLoader; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.PackResources; +import net.minecraft.server.packs.PathPackResources; import net.minecraft.server.packs.resources.Resource; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.server.packs.resources.ResourceMetadata; @@ -37,6 +38,7 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Predicate; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -46,17 +48,19 @@ * @author Ocelot */ @ApiStatus.Internal -public class GeometryTextureSpriteUploader extends SimplePreparableReloadListener implements GeometryAtlasTexture, AutoCloseable { +public class GeometryTextureSpriteUploader extends SimplePreparableReloadListener implements GeometryAtlasTexture, AutoCloseable { public static final ResourceLocation ATLAS_LOCATION = new ResourceLocation(Pollen.MOD_ID, "textures/atlas/geometry.png"); private static final Pattern FROM_LOCATION = Pattern.compile("_"); private static final Logger LOGGER = LogManager.getLogger(); private final TextureAtlas textureAtlas; private final Set textures; + private final SpriteLoader spriteLoader; public GeometryTextureSpriteUploader(TextureManager textureManager) { this.textureAtlas = new TextureAtlas(ATLAS_LOCATION); this.textures = new HashSet<>(); + this.spriteLoader = SpriteLoader.create(textureAtlas); textureManager.register(this.textureAtlas.location(), this.textureAtlas); } @@ -75,12 +79,20 @@ public TextureAtlasSprite getSprite(ResourceLocation location) { } @Override - protected TextureAtlas.Preparations prepare(ResourceManager resourceManager, ProfilerFiller profiler) { + protected SpriteLoader.Preparations prepare(ResourceManager resourceManager, ProfilerFiller profiler) { try (OnlineRepository onlineRepository = new OnlineRepository()) { profiler.startTick(); profiler.push("stitching"); ResourceManager onlineResources = new OnlineResourceManager(resourceManager, onlineRepository, this.textures.stream().filter(texture -> texture.type() == ModelTexture.Type.ONLINE).collect(Collectors.toSet())); - TextureAtlas.Preparations sheetData = this.textureAtlas.prepareToStitch(onlineResources, this.textures.stream().filter(texture -> texture.type() != ModelTexture.Type.UNKNOWN).map(texture -> PinwheelBridge.toLocation(texture.location())).distinct(), profiler, Minecraft.getInstance().options.mipmapLevels().get()); + SpriteLoader.Preparations sheetData = new SpriteLoader.Preparations( + textureAtlas.maxSupportedTextureSize(), + textureAtlas.getWidth(), + textureAtlas.getHeight(), + textureAtlas.getSprite(this.getAtlasLocation()), + this.textures.stream().filter(texture -> texture.type() != ModelTexture.Type.UNKNOWN).map(texture -> PinwheelBridge.toLocation(texture.location())).collect(Collectors.toMap(sprite -> sprite, this.textureAtlas::getSprite)), + CompletableFuture.completedFuture(null) + ); + sheetData.readyForUpload().complete(null); profiler.pop(); profiler.endTick(); return sheetData; @@ -88,10 +100,10 @@ protected TextureAtlas.Preparations prepare(ResourceManager resourceManager, Pro } @Override - protected void apply(TextureAtlas.Preparations sheetData, ResourceManager resourceManager, ProfilerFiller profiler) { + protected void apply(SpriteLoader.Preparations sheetData, ResourceManager resourceManager, ProfilerFiller profiler) { profiler.startTick(); profiler.push("upload"); - this.textureAtlas.reload(sheetData); + this.textureAtlas.upload(sheetData); profiler.pop(); profiler.endTick(); } @@ -175,7 +187,7 @@ private Optional getOnlineResource(ResourceLocation location) { private Resource createResource(String url) { Pair, CompletableFuture> files = this.onlineLocations.get(url); - return new Resource("online", () -> read(files.getLeft()), () -> files.getRight().join()); + return new Resource(this.listPacks().filter((pack) -> pack instanceof PathPackResources).findFirst().get(), () -> read(files.getLeft()), () -> files.getRight().join()); } @Override diff --git a/common/src/main/java/gg/moonflower/pollen/impl/render/geometry/PoseStackWrapper.java b/common/src/main/java/gg/moonflower/pollen/impl/render/geometry/PoseStackWrapper.java index 73904ec4..fb1ad073 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/render/geometry/PoseStackWrapper.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/render/geometry/PoseStackWrapper.java @@ -1,14 +1,11 @@ package gg.moonflower.pollen.impl.render.geometry; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Quaternion; -import com.mojang.math.Vector3f; +import com.mojang.math.Axis; import gg.moonflower.pinwheel.api.transform.MatrixStack; import gg.moonflower.pollen.api.joml.v1.JomlBridge; import org.jetbrains.annotations.ApiStatus; -import org.joml.Matrix3f; -import org.joml.Matrix4f; -import org.joml.Quaternionfc; +import org.joml.*; @ApiStatus.Internal public class PoseStackWrapper implements MatrixStack { @@ -36,27 +33,27 @@ public void translate(float x, float y, float z) { @Override public void rotate(Quaternionfc rotation) { - this.poseStack.mulPose(new Quaternion(rotation.x(), rotation.y(), rotation.z(), rotation.w())); + this.poseStack.mulPose(new Quaternionf(rotation)); } @Override public void rotate(float amount, float x, float y, float z) { this.axis.set(x, y, z); - this.poseStack.mulPose(new Quaternion(this.axis, amount, false)); + this.poseStack.mulPose(JomlBridge.quaternionFromAxisAngle(this.axis, amount, false)); } @Override public void rotateXYZ(float x, float y, float z) { - this.poseStack.mulPose(Vector3f.XP.rotation(x)); - this.poseStack.mulPose(Vector3f.YP.rotation(y)); - this.poseStack.mulPose(Vector3f.ZP.rotation(z)); + this.poseStack.mulPose(Axis.XP.rotation(x)); + this.poseStack.mulPose(Axis.YP.rotation(y)); + this.poseStack.mulPose(Axis.ZP.rotation(z)); } @Override public void rotateZYX(float z, float y, float x) { - this.poseStack.mulPose(Vector3f.ZP.rotation(z)); - this.poseStack.mulPose(Vector3f.YP.rotation(y)); - this.poseStack.mulPose(Vector3f.XP.rotation(x)); + this.poseStack.mulPose(Axis.ZP.rotation(z)); + this.poseStack.mulPose(Axis.YP.rotation(y)); + this.poseStack.mulPose(Axis.XP.rotation(x)); } @Override @@ -76,11 +73,11 @@ public void popMatrix() { @Override public Matrix4f position() { - return JomlBridge.set(new Matrix4f(), this.poseStack.last().pose()); + return this.poseStack.last().pose(); } @Override public Matrix3f normal() { - return JomlBridge.set(new Matrix3f(), this.poseStack.last().normal()); + return this.poseStack.last().normal(); } } diff --git a/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleAppearanceBillboardComponentImpl.java b/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleAppearanceBillboardComponentImpl.java index 70c888c4..15b9734a 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleAppearanceBillboardComponentImpl.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleAppearanceBillboardComponentImpl.java @@ -1,6 +1,6 @@ package gg.moonflower.pollen.impl.render.particle.component; -import com.mojang.math.Vector3f; +import com.mojang.math.Axis; import gg.moonflower.molangcompiler.api.MolangEnvironment; import gg.moonflower.molangcompiler.api.MolangExpression; import gg.moonflower.pinwheel.api.particle.component.ParticleAppearanceBillboardComponent; @@ -46,7 +46,7 @@ public void render(Camera camera, float partialTicks) { this.data.textureSetter().setUV(this.particle, environment, renderProperties); switch (this.data.cameraMode()) { - case ROTATE_XYZ -> JomlBridge.set(renderProperties.getRotation(), camera.rotation()); + case ROTATE_XYZ -> renderProperties.getRotation().set(camera.rotation()); case ROTATE_Y -> renderProperties.getRotation().setAngleAxis((float) -(camera.getYRot() * Math.PI / 180.0F), 0, 1, 0); case LOOK_AT_XYZ -> { @@ -159,9 +159,9 @@ public void onCreate(BedrockParticle particle) { SingleQuadRenderProperties renderProperties = getRenderProperties(particle); switch (this.data.cameraMode()) { case EMITTER_TRANSFORM_XZ -> - JomlBridge.set(renderProperties.getRotation(), Vector3f.XP.rotationDegrees(90)); + renderProperties.getRotation().set(Axis.XP.rotationDegrees(90)); case EMITTER_TRANSFORM_YZ -> - JomlBridge.set(renderProperties.getRotation(), Vector3f.YP.rotationDegrees(90)); + renderProperties.getRotation().set(Axis.YP.rotationDegrees(90)); } } } diff --git a/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleExpireInBlocksComponentImpl.java b/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleExpireInBlocksComponentImpl.java index f2ec5861..c5fe3c62 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleExpireInBlocksComponentImpl.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleExpireInBlocksComponentImpl.java @@ -5,6 +5,7 @@ import gg.moonflower.pollen.api.render.particle.v1.BedrockParticle; import gg.moonflower.pollen.api.render.particle.v1.component.BedrockParticleTickComponent; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; @@ -29,12 +30,12 @@ public ParticleExpireInBlocksComponentImpl(BedrockParticle particle, ParticleExp return null; } - if (!Registry.BLOCK.containsKey(id)) { + if (!BuiltInRegistries.BLOCK.containsKey(id)) { LOGGER.error("Unknown block: " + name); return null; } - return Registry.BLOCK.get(id); + return BuiltInRegistries.BLOCK.get(id); }).filter(Objects::nonNull).toArray(Block[]::new); } diff --git a/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleExpireNotInBlocksComponentImpl.java b/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleExpireNotInBlocksComponentImpl.java index 82c3e394..83554605 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleExpireNotInBlocksComponentImpl.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/render/particle/component/ParticleExpireNotInBlocksComponentImpl.java @@ -5,6 +5,7 @@ import gg.moonflower.pollen.api.render.particle.v1.BedrockParticle; import gg.moonflower.pollen.api.render.particle.v1.component.BedrockParticleTickComponent; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; @@ -29,12 +30,12 @@ public ParticleExpireNotInBlocksComponentImpl(BedrockParticle particle, Particle return null; } - if (!Registry.BLOCK.containsKey(id)) { + if (!BuiltInRegistries.BLOCK.containsKey(id)) { LOGGER.error("Unknown block: " + name); return null; } - return Registry.BLOCK.get(id); + return BuiltInRegistries.BLOCK.get(id); }).filter(Objects::nonNull).toArray(Block[]::new); } diff --git a/common/src/main/java/gg/moonflower/pollen/impl/render/particle/instance/BedrockParticleInstanceImpl.java b/common/src/main/java/gg/moonflower/pollen/impl/render/particle/instance/BedrockParticleInstanceImpl.java index 132829d2..32632332 100644 --- a/common/src/main/java/gg/moonflower/pollen/impl/render/particle/instance/BedrockParticleInstanceImpl.java +++ b/common/src/main/java/gg/moonflower/pollen/impl/render/particle/instance/BedrockParticleInstanceImpl.java @@ -5,7 +5,6 @@ import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexMultiConsumer; -import com.mojang.math.Matrix4f; import gg.moonflower.molangcompiler.api.MolangEnvironment; import gg.moonflower.molangcompiler.api.MolangEnvironmentBuilder; import gg.moonflower.molangcompiler.api.bridge.MolangVariableProvider; @@ -37,6 +36,7 @@ import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; +import org.joml.Matrix4f; import org.joml.Vector3dc; import java.util.*; @@ -191,7 +191,7 @@ private void renderQuad(VertexConsumer consumer, MinecraftSingleQuadRenderProper float a = properties.getAlpha(); int light = properties.getPackedLight(); - Matrix4f matrix4f = JomlBridge.set(POSITION, MATRIX_STACK.position()); + Matrix4f matrix4f = POSITION.set(MATRIX_STACK.position()); consumer.vertex(matrix4f, -1.0F, -1.0F, 0.0F); consumer.uv(uMax, vMax); diff --git a/common/src/main/resources/pollen-common.mixins.json b/common/src/main/resources/pollen-common.mixins.json index cbd3b85d..cb7efa76 100644 --- a/common/src/main/resources/pollen-common.mixins.json +++ b/common/src/main/resources/pollen-common.mixins.json @@ -6,7 +6,10 @@ "mixins": [ "DispenserBlockAccessor", "PoiTypesAccessor", + "ServerGamePacketListenerImplAccessor", + "ServerLoginPacketListenerImplAccessor", "ServerPlayerMixin", + "client.ClientPacketListenerAccessor", "crafting.GrindstoneMenuMixin", "crafting.GrindstoneMenuRepairSlotMixin", "crafting.GrindstoneMenuResultSlotMixin", @@ -14,8 +17,6 @@ ], "client": [ "client.ItemRendererMixin", - "client.Matrix3fAccessor", - "client.Matrix4fAccessor", "client.ParticleEngineMixin" ], "injectors": { diff --git a/common/src/main/resources/pollen.accesswidener b/common/src/main/resources/pollen.accesswidener index fc48b5b1..82295763 100644 --- a/common/src/main/resources/pollen.accesswidener +++ b/common/src/main/resources/pollen.accesswidener @@ -1,4 +1,7 @@ accessWidener v2 named transitive-accessible method net/minecraft/world/entity/ai/memory/MemoryModuleType (Ljava/util/Optional;)V transitive-accessible method net/minecraft/world/entity/ai/sensing/SensorType (Ljava/util/function/Supplier;)V -transitive-accessible method net/minecraft/world/entity/schedule/Activity (Ljava/lang/String;)V \ No newline at end of file +transitive-accessible method net/minecraft/world/entity/schedule/Activity (Ljava/lang/String;)V +accessible method net/minecraft/client/renderer/texture/TextureAtlas getWidth ()I +accessible method net/minecraft/client/renderer/texture/TextureAtlas getHeight ()I +accessible class net/minecraft/world/level/storage/LevelResource \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle index 238ab9fd..3c14ef50 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -28,7 +28,7 @@ dependencies { include(implementation("com.electronwill.night-config:core:${rootProject.nightconfig_version}")) include(implementation("com.electronwill.night-config:toml:${rootProject.nightconfig_version}")) - include(implementation(annotationProcessor("com.github.llamalad7.mixinextras:mixinextras-fabric:${rootProject.mixinextras_version}"))) + include(implementation(annotationProcessor("io.github.llamalad7:mixinextras-fabric:${rootProject.mixinextras_version}"))) // Pinwheel include(implementation("gg.moonflower.pinwheel:pinwheel:${rootProject.pinwheel_version}")) @@ -68,18 +68,12 @@ shadowJar { configurations = [project.configurations.shadowCommon] relocate "org.joml.joml", "gg.moonflower.pollen.joml" - classifier "dev-shadow" } remapJar { injectAccessWidener = true input.set shadowJar.archiveFile dependsOn shadowJar - classifier null -} - -jar { - classifier "dev" } components.java { @@ -91,7 +85,7 @@ components.java { publishing { publications { mavenFabric(MavenPublication) { - artifactId = project.archivesBaseName + artifactId = rootProject.archives_base_name + "-" + project.name from components.java } } diff --git a/fabric/src/main/java/gg/moonflower/pollen/core/fabric/PollenFabric.java b/fabric/src/main/java/gg/moonflower/pollen/core/fabric/PollenFabric.java index a5430c3a..fe44a930 100644 --- a/fabric/src/main/java/gg/moonflower/pollen/core/fabric/PollenFabric.java +++ b/fabric/src/main/java/gg/moonflower/pollen/core/fabric/PollenFabric.java @@ -3,6 +3,7 @@ import gg.moonflower.pollen.api.config.v1.PollinatedConfigType; import gg.moonflower.pollen.api.event.entity.v1.EntityTrackingEvent; import gg.moonflower.pollen.api.event.level.v1.ServerChunkLoadingEvent; +import gg.moonflower.pollen.api.registry.wrapper.v1.AccessibleLevelResource; import gg.moonflower.pollen.core.Pollen; import gg.moonflower.pollen.core.network.PollenMessages; import gg.moonflower.pollen.core.network.fabric.ClientboundSyncConfigDataPacket; @@ -23,7 +24,7 @@ public class PollenFabric implements ModInitializer { - private static final LevelResource SERVERCONFIG = new LevelResource("serverconfig"); + private static final LevelResource SERVERCONFIG = new AccessibleLevelResource("serverconfig"); private static Path getServerConfigPath(MinecraftServer server) { Path serverConfig = server.getWorldPath(SERVERCONFIG); diff --git a/fabric/src/main/java/gg/moonflower/pollen/core/mixin/fabric/client/registry/TextureAtlasMixin.java b/fabric/src/main/java/gg/moonflower/pollen/core/mixin/fabric/client/registry/TextureAtlasMixin.java index b31df9a8..ea31e52b 100644 --- a/fabric/src/main/java/gg/moonflower/pollen/core/mixin/fabric/client/registry/TextureAtlasMixin.java +++ b/fabric/src/main/java/gg/moonflower/pollen/core/mixin/fabric/client/registry/TextureAtlasMixin.java @@ -1,13 +1,25 @@ package gg.moonflower.pollen.core.mixin.fabric.client.registry; +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import gg.moonflower.pollen.api.event.registry.v1.RegisterAtlasSpriteEvent; +import net.minecraft.client.renderer.texture.SpriteContents; +import net.minecraft.client.renderer.texture.SpriteLoader; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.Resource; +import net.minecraft.server.packs.resources.ResourceManager; 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.ModifyVariable; +import java.io.FileNotFoundException; +import java.util.Collection; +import java.util.List; +import java.util.Map; import java.util.Set; @Mixin(TextureAtlas.class) @@ -16,9 +28,18 @@ public abstract class TextureAtlasMixin { @Shadow public abstract ResourceLocation location(); - @ModifyVariable(method = "prepareToStitch", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/texture/TextureAtlas;getBasicSpriteInfos(Lnet/minecraft/server/packs/resources/ResourceManager;Ljava/util/Set;)Ljava/util/Collection;")) - public Set injectSprites(Set sprites) { - RegisterAtlasSpriteEvent.event(this.location()).invoker().registerSprites((TextureAtlas) (Object) this, sprites::add); - return sprites; + @WrapOperation(method = "upload", at = @At(value = "INVOKE", target = "Ljava/util/Map;values()Ljava/util/Collection;", ordinal = 0)) + public Collection injectSprites(Map instance, Operation> original) { + RegisterAtlasSpriteEvent.event(this.location()).invoker().registerSprites((TextureAtlas) (Object) this, (loc, resourceManager) -> { + try { + instance.put( + loc, + SpriteLoader.loadSprite(loc, resourceManager.getResourceOrThrow(loc)) + ); + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } + }); + return instance.values(); } } diff --git a/fabric/src/main/java/gg/moonflower/pollen/impl/event/entity/ModifyTradesEventsImpl.java b/fabric/src/main/java/gg/moonflower/pollen/impl/event/entity/ModifyTradesEventsImpl.java index 2db8d4f8..7ac2dace 100644 --- a/fabric/src/main/java/gg/moonflower/pollen/impl/event/entity/ModifyTradesEventsImpl.java +++ b/fabric/src/main/java/gg/moonflower/pollen/impl/event/entity/ModifyTradesEventsImpl.java @@ -5,6 +5,8 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.npc.VillagerProfession; import net.minecraft.world.entity.npc.VillagerTrades; import org.apache.commons.lang3.Validate; @@ -63,7 +65,7 @@ public ModifyTradesEvents.TradeRegistry getRare() { } private static void registerVillagerTrades() { - for (VillagerProfession prof : Registry.VILLAGER_PROFESSION) { + for (VillagerProfession prof : BuiltInRegistries.VILLAGER_PROFESSION) { Map vanillaTrades = VANILLA_TRADES.get(prof); Map newTrades = new Int2ObjectOpenHashMap<>(); @@ -87,7 +89,7 @@ private static void registerVillagerTrades() { // Sanity check to make sure all tiers actually exist for (int i = minTier; i <= maxTier; i++) { if (!newTrades.containsKey(i)) { - LOGGER.warn(Registry.VILLAGER_PROFESSION.getKey(prof) + " Villager Trades for tier: " + i + " didn't exist, adding"); + LOGGER.warn(BuiltInRegistries.VILLAGER_PROFESSION.getKey(prof) + " Villager Trades for tier: " + i + " didn't exist, adding"); newTrades.put(i, new ModifyTradesEvents.TradeRegistry()); } } @@ -103,7 +105,7 @@ public ModifyTradesEvents.TradeRegistry getTrades(int tier) { Validate.inclusiveBetween(minTier, maxTier, tier, "Tier must be between " + minTier + " and " + maxTier); ModifyTradesEvents.TradeRegistry registry = newTrades.get(tier); if (registry == null) - throw new IllegalStateException("No registered " + Registry.VILLAGER_PROFESSION.getKey(prof) + " Villager Trades for tier: " + tier + ". Valid tiers: " + newTrades.keySet().stream().sorted().map(i -> Integer.toString(i)).collect(Collectors.joining(", "))); + throw new IllegalStateException("No registered " + BuiltInRegistries.VILLAGER_PROFESSION.getKey(prof) + " Villager Trades for tier: " + tier + ". Valid tiers: " + newTrades.keySet().stream().sorted().map(i -> Integer.toString(i)).collect(Collectors.joining(", "))); return registry; } diff --git a/fabric/src/main/java/gg/moonflower/pollen/impl/itemgroup/fabric/CreativeModeTabBuilderImplImpl.java b/fabric/src/main/java/gg/moonflower/pollen/impl/itemgroup/fabric/CreativeModeTabBuilderImplImpl.java deleted file mode 100644 index a64080eb..00000000 --- a/fabric/src/main/java/gg/moonflower/pollen/impl/itemgroup/fabric/CreativeModeTabBuilderImplImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -package gg.moonflower.pollen.impl.itemgroup.fabric; - -import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.ApiStatus; - -import java.util.List; -import java.util.function.BiConsumer; -import java.util.function.Supplier; - -@ApiStatus.Internal -public class CreativeModeTabBuilderImplImpl { - - public static CreativeModeTab build(ResourceLocation name, Supplier icon, BiConsumer, CreativeModeTab> stacksForDisplay) { - return FabricItemGroupBuilder.create(name).appendItems(stacksForDisplay).icon(icon).build(); - } -} diff --git a/fabric/src/main/java/gg/moonflower/pollen/impl/network/fabric/PollinatedFabricLoginChannel.java b/fabric/src/main/java/gg/moonflower/pollen/impl/network/fabric/PollinatedFabricLoginChannel.java index 74e0188a..309b8581 100644 --- a/fabric/src/main/java/gg/moonflower/pollen/impl/network/fabric/PollinatedFabricLoginChannel.java +++ b/fabric/src/main/java/gg/moonflower/pollen/impl/network/fabric/PollinatedFabricLoginChannel.java @@ -6,6 +6,8 @@ import gg.moonflower.pollen.api.network.v1.packet.PollinatedPacketDirection; import gg.moonflower.pollen.api.network.v1.packet.login.PollinatedLoginPacket; import gg.moonflower.pollen.core.extensions.fabric.ServerLoginPacketListenerImplExtension; +import gg.moonflower.pollen.impl.mixin.client.ClientPacketListenerAccessor; +import gg.moonflower.pollen.impl.mixin.ServerLoginPacketListenerImplAccessor; import gg.moonflower.pollen.impl.network.context.fabric.PollinatedFabricLoginPacketContext; import gg.moonflower.pollen.impl.network.context.fabric.PollinatedFabricPacketContext; import gg.moonflower.pollen.impl.registry.network.PollinatedNetworkRegistryImpl; @@ -54,7 +56,7 @@ public PollinatedFabricLoginChannel(ResourceLocation channelId) { // Don't wait because the player is already being placed into the level }, responseSender)); - ServerLoginConnectionEvents.QUERY_START.register((handler, server, sender, synchronizer) -> this.loginPackets.stream().flatMap(function -> function.apply(handler.getConnection().isMemoryConnection()).stream()).forEach(pair -> { + ServerLoginConnectionEvents.QUERY_START.register((handler, server, sender, synchronizer) -> this.loginPackets.stream().flatMap(function -> function.apply(((ServerLoginPacketListenerImplAccessor)handler).getConnection().isMemoryConnection()).stream()).forEach(pair -> { Packet packet = sender.createPacket(this.channelId, this.serialize((PollinatedPacket) pair.getValue(), PollinatedPacketDirection.LOGIN_CLIENTBOUND)); if (packet instanceof ClientboundCustomQueryPacket) { ((ServerLoginPacketListenerImplExtension) handler).pollen$trackPacket((ClientboundCustomQueryPacket) packet); @@ -72,7 +74,7 @@ public PollinatedFabricLoginChannel(ResourceLocation channelId) { t.printStackTrace(); future.completeExceptionally(t); } - }, listener.getConnection(), __ -> { + }, ((ClientPacketListenerAccessor)listener).getConnection(), __ -> { }, PollinatedPacketDirection.LOGIN_CLIENTBOUND), this.clientMessageHandler); return future; } @@ -89,7 +91,7 @@ private void processServer(MinecraftServer server, PacketListener listener, bool return; } - PollinatedNetworkRegistryImpl.processMessage(this.deserialize(data, PollinatedPacketDirection.LOGIN_SERVERBOUND), new PollinatedFabricPacketContext(listener.getConnection(), synchronizer, PollinatedPacketDirection.LOGIN_SERVERBOUND) { + PollinatedNetworkRegistryImpl.processMessage(this.deserialize(data, PollinatedPacketDirection.LOGIN_SERVERBOUND), new PollinatedFabricPacketContext(((ServerLoginPacketListenerImplAccessor)listener).getConnection(), synchronizer, PollinatedPacketDirection.LOGIN_SERVERBOUND) { @Override public void reply(PollinatedPacket packet) { throw new UnsupportedOperationException("The server is not allowed to reply during the login phase."); diff --git a/fabric/src/main/java/gg/moonflower/pollen/impl/network/fabric/PollinatedFabricPlayChannel.java b/fabric/src/main/java/gg/moonflower/pollen/impl/network/fabric/PollinatedFabricPlayChannel.java index 422c87de..f03c7601 100644 --- a/fabric/src/main/java/gg/moonflower/pollen/impl/network/fabric/PollinatedFabricPlayChannel.java +++ b/fabric/src/main/java/gg/moonflower/pollen/impl/network/fabric/PollinatedFabricPlayChannel.java @@ -4,6 +4,9 @@ import gg.moonflower.pollen.api.network.v1.PollinatedPlayNetworkChannel; import gg.moonflower.pollen.api.network.v1.packet.PollinatedPacket; import gg.moonflower.pollen.api.network.v1.packet.PollinatedPacketDirection; +import gg.moonflower.pollen.impl.mixin.ServerGamePacketListenerImplAccessor; +import gg.moonflower.pollen.impl.mixin.client.ClientPacketListenerAccessor; +import gg.moonflower.pollen.impl.mixin.ServerLoginPacketListenerImplAccessor; import gg.moonflower.pollen.impl.network.context.fabric.PollinatedFabricPlayPacketContext; import gg.moonflower.pollen.impl.registry.network.PollinatedNetworkRegistryImpl; import gg.moonflower.pollen.impl.registry.network.fabric.PollinatedNetworkRegistryImplImpl; @@ -43,11 +46,11 @@ public PollinatedFabricPlayChannel(ResourceLocation channelId) { } private void processClientPlay(PacketListener listener, FriendlyByteBuf data, PacketSender responseSender) { - PollinatedNetworkRegistryImpl.processMessage(this.deserialize(data, PollinatedPacketDirection.PLAY_CLIENTBOUND), new PollinatedFabricPlayPacketContext(listener.getConnection(), pkt -> responseSender.sendPacket(responseSender.createPacket(this.channelId, this.serialize(pkt, PollinatedPacketDirection.PLAY_SERVERBOUND))), PollinatedPacketDirection.PLAY_CLIENTBOUND), this.clientMessageHandler); + PollinatedNetworkRegistryImpl.processMessage(this.deserialize(data, PollinatedPacketDirection.PLAY_CLIENTBOUND), new PollinatedFabricPlayPacketContext(((ClientPacketListenerAccessor)listener).getConnection(), pkt -> responseSender.sendPacket(responseSender.createPacket(this.channelId, this.serialize(pkt, PollinatedPacketDirection.PLAY_SERVERBOUND))), PollinatedPacketDirection.PLAY_CLIENTBOUND), this.clientMessageHandler); } private void processServerPlay(MinecraftServer server, ServerPlayer player, ServerGamePacketListenerImpl listener, FriendlyByteBuf data, PacketSender responseSender) { - PollinatedNetworkRegistryImpl.processMessage(this.deserialize(data, PollinatedPacketDirection.PLAY_SERVERBOUND), new PollinatedFabricPlayPacketContext(listener.getConnection(), pkt -> responseSender.sendPacket(responseSender.createPacket(this.channelId, this.serialize(pkt, PollinatedPacketDirection.PLAY_CLIENTBOUND))), PollinatedPacketDirection.PLAY_SERVERBOUND), this.serverMessageHandler); + PollinatedNetworkRegistryImpl.processMessage(this.deserialize(data, PollinatedPacketDirection.PLAY_SERVERBOUND), new PollinatedFabricPlayPacketContext(((ServerGamePacketListenerImplAccessor)listener).getConnection(), pkt -> responseSender.sendPacket(responseSender.createPacket(this.channelId, this.serialize(pkt, PollinatedPacketDirection.PLAY_CLIENTBOUND))), PollinatedPacketDirection.PLAY_SERVERBOUND), this.serverMessageHandler); } @Override diff --git a/fabric/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/fabric/PollinatedVillagerRegistryImplImpl.java b/fabric/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/fabric/PollinatedVillagerRegistryImplImpl.java index e2a05aca..881efd48 100644 --- a/fabric/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/fabric/PollinatedVillagerRegistryImplImpl.java +++ b/fabric/src/main/java/gg/moonflower/pollen/impl/registry/wrapper/fabric/PollinatedVillagerRegistryImplImpl.java @@ -12,7 +12,7 @@ public class PollinatedVillagerRegistryImplImpl { @org.jetbrains.annotations.ApiStatus.Internal public static void registerPoiStates(Holder holder, Set states) { states.forEach(state -> { - PoiTypesAccessor.getAllStates().add(state); + PoiTypesAccessor.getTypeByState().keySet().add(state); PoiTypesAccessor.getTypeByState().put(state, holder); }); } diff --git a/forge/build.gradle b/forge/build.gradle index bfe65205..b5e15a92 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -33,8 +33,8 @@ dependencies { forge "net.minecraftforge:forge:${rootProject.minecraft_version}-${rootProject.forge_major_version}.${rootProject.forge_minor_version}.${rootProject.forge_build_version}" modApi "dev.architectury:architectury-forge:${rootProject.architectury_version}" - implementation(annotationProcessor("com.github.llamalad7.mixinextras:mixinextras-common:${rootProject.mixinextras_version}")) - implementation(include("com.github.llamalad7.mixinextras:mixinextras-forge:${rootProject.mixinextras_version}")) + implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:${rootProject.mixinextras_version}")) + implementation(include("io.github.llamalad7:mixinextras-forge:${rootProject.mixinextras_version}")) // Pinwheel include(forgeRuntimeLibrary("gg.moonflower.pinwheel:pinwheel:${rootProject.pinwheel_version}")) @@ -76,18 +76,18 @@ shadowJar { configurations = [project.configurations.shadowCommon] relocate "org.joml.joml", "gg.moonflower.pollen.joml" - classifier "dev-shadow" + //classifier "dev-shadow" } remapJar { input.set shadowJar.archiveFile dependsOn shadowJar - classifier null + //classifier null } -jar { +/*jar { classifier "dev" -} +}*/ components.java { withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { @@ -98,7 +98,7 @@ components.java { publishing { publications { mavenForge(MavenPublication) { - artifactId = project.archivesBaseName + artifactId = rootProject.archivesBaseName + "-" + project.name from components.java } } diff --git a/forge/src/main/java/gg/moonflower/pollen/core/forge/PollenForgeClient.java b/forge/src/main/java/gg/moonflower/pollen/core/forge/PollenForgeClient.java index 6fc1cea4..8ad63655 100644 --- a/forge/src/main/java/gg/moonflower/pollen/core/forge/PollenForgeClient.java +++ b/forge/src/main/java/gg/moonflower/pollen/core/forge/PollenForgeClient.java @@ -10,10 +10,4 @@ @Mod.EventBusSubscriber(modid = Pollen.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) public class PollenForgeClient { - - @SubscribeEvent - public static void registerSprites(TextureStitchEvent.Pre event) { - TextureAtlas atlas = event.getAtlas(); - RegisterAtlasSpriteEvent.event(atlas.location()).invoker().registerSprites(atlas, event::addSprite); - } } diff --git a/forge/src/main/java/gg/moonflower/pollen/impl/itemgroup/forge/CreativeModeTabBuilderImplImpl.java b/forge/src/main/java/gg/moonflower/pollen/impl/itemgroup/forge/CreativeModeTabBuilderImplImpl.java deleted file mode 100644 index 43109854..00000000 --- a/forge/src/main/java/gg/moonflower/pollen/impl/itemgroup/forge/CreativeModeTabBuilderImplImpl.java +++ /dev/null @@ -1,34 +0,0 @@ -package gg.moonflower.pollen.impl.itemgroup.forge; - -import net.minecraft.core.NonNullList; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; -import org.jetbrains.annotations.ApiStatus; - -import java.util.List; -import java.util.function.BiConsumer; -import java.util.function.Supplier; - -@ApiStatus.Internal -public class CreativeModeTabBuilderImplImpl { - - public static CreativeModeTab build(ResourceLocation name, Supplier icon, BiConsumer, CreativeModeTab> stacksForDisplay) { - return new CreativeModeTab(String.format("%s.%s", name.getNamespace(), name.getPath())) { - @Override - public ItemStack makeIcon() { - return icon.get(); - } - - @Override - public void fillItemList(NonNullList stacks) { - if (stacksForDisplay != null) { - stacksForDisplay.accept(stacks, this); - return; - } - - super.fillItemList(stacks); - } - }; - } -} diff --git a/forge/src/main/java/gg/moonflower/pollen/impl/registry/render/forge/ItemRendererRegistryImplImpl.java b/forge/src/main/java/gg/moonflower/pollen/impl/registry/render/forge/ItemRendererRegistryImplImpl.java index 7d3cca55..6b42f95d 100644 --- a/forge/src/main/java/gg/moonflower/pollen/impl/registry/render/forge/ItemRendererRegistryImplImpl.java +++ b/forge/src/main/java/gg/moonflower/pollen/impl/registry/render/forge/ItemRendererRegistryImplImpl.java @@ -12,6 +12,7 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.ItemLike; import net.minecraftforge.client.extensions.common.IClientItemExtensions; @@ -50,7 +51,7 @@ private ForgeWrapper(DynamicItemRenderer renderer) { } @Override - public void renderByItem(ItemStack stack, ItemTransforms.TransformType transformType, PoseStack matrixStack, MultiBufferSource multiBufferSource, int packedLight, int combinedOverlay) { + public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource multiBufferSource, int packedLight, int combinedOverlay) { this.renderer.render(stack, transformType, matrixStack, multiBufferSource, packedLight, combinedOverlay); } } diff --git a/gradle.properties b/gradle.properties index da1c6f5b..4c8d839f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,31 +1,31 @@ org.gradle.jvmargs=-Xmx2048M ## Minecraft -minecraft_version=1.19.2 +minecraft_version=1.20.1 enabled_platforms=fabric,forge ## Mod mod_id=pollen -mod_version=2.1.1 +mod_version=2.1.2-pre.3 mod_name=Pollen mod_description=Pollen is a feature filled library built for ease of use and maximum compatibility between Forge and Fabric using Architectury with a wide range of utilities to make developing mods a whole lot easier. archives_base_name=pollen maven_group=gg.moonflower ## Dependencies -architectury_version=6.5.69 -mixinextras_version=0.2.0-beta.6 -nightconfig_version=3.6.4 +architectury_version=9.2.14 +mixinextras_version=0.3.5 +nightconfig_version=3.6.7 pinwheel_version=1.2.0.3 -molangcompiler_version=3.0.4.15 -jei_version=11.5.0.297 +molangcompiler_version=3.1.1.19 +jei_version=15.3.0.4 joml_version=1.10.5 # Fabric -fabric_loader_version=0.14.12 -fabric_api_version=0.76.0+1.19.2 +fabric_loader_version=0.15.7 +fabric_api_version=0.92.2+1.20.1 # Forge -forge_major_version=43 +forge_major_version=47 forge_minor_version=2 -forge_build_version=7 \ No newline at end of file +forge_build_version=21 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index aa991fce..a5952066 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists