diff --git a/common/src/main/java/io/vram/frex/api/buffer/QuadEmitter.java b/common/src/main/java/io/vram/frex/api/buffer/QuadEmitter.java index fe193b16..db9298ed 100644 --- a/common/src/main/java/io/vram/frex/api/buffer/QuadEmitter.java +++ b/common/src/main/java/io/vram/frex/api/buffer/QuadEmitter.java @@ -22,14 +22,12 @@ import org.jetbrains.annotations.Nullable; import org.joml.Vector3f; - -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.core.Direction; - import io.vram.frex.api.material.RenderMaterial; import io.vram.frex.api.mesh.QuadView; import io.vram.frex.api.model.util.FaceUtil; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.core.Direction; public interface QuadEmitter extends QuadView, QuadSink { /** diff --git a/common/src/main/java/io/vram/frex/api/buffer/QuadSink.java b/common/src/main/java/io/vram/frex/api/buffer/QuadSink.java index 50f7a6d7..02d7469c 100644 --- a/common/src/main/java/io/vram/frex/api/buffer/QuadSink.java +++ b/common/src/main/java/io/vram/frex/api/buffer/QuadSink.java @@ -21,12 +21,10 @@ package io.vram.frex.api.buffer; import com.mojang.blaze3d.vertex.VertexConsumer; - -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; - import io.vram.frex.api.model.InputContext; import io.vram.frex.api.rendertype.RenderTypeUtil; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; /** * Universal interface for models to send vertex data to the back end. diff --git a/common/src/main/java/io/vram/frex/api/buffer/VertexEmitter.java b/common/src/main/java/io/vram/frex/api/buffer/VertexEmitter.java index ebdb91d4..6fe944a0 100644 --- a/common/src/main/java/io/vram/frex/api/buffer/VertexEmitter.java +++ b/common/src/main/java/io/vram/frex/api/buffer/VertexEmitter.java @@ -22,10 +22,8 @@ import org.jetbrains.annotations.ApiStatus.Experimental; import org.joml.Matrix4f; - import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; - import io.vram.frex.api.material.RenderMaterial; @Experimental @@ -39,40 +37,38 @@ public interface VertexEmitter extends VertexConsumer, QuadSink { */ VertexEmitter material(RenderMaterial material); - VertexEmitter vertex(float x, float y, float z); - /** * @param color rgba - alpha is high byte, red and blue pre-swapped if needed */ @Override - VertexEmitter color(int color); + VertexEmitter setColor(int color); @Override - default VertexEmitter vertex(double x, double y, double z) { - vertex((float) x, (float) y, (float) z); + default VertexEmitter addVertex(float x, float y, float z) { + addVertex(x, y, z); return this; } @Override - VertexEmitter vertex(Matrix4f matrix, float x, float y, float z); + VertexEmitter addVertex(Matrix4f matrix, float x, float y, float z); @Override - VertexEmitter normal(PoseStack.Pose matrix, float x, float y, float z); + VertexEmitter setNormal(PoseStack.Pose matrix, float x, float y, float z); @Override - VertexEmitter color(int red, int green, int blue, int alpha); + VertexEmitter setColor(int red, int green, int blue, int alpha); @Override - VertexEmitter uv(float u, float v); + VertexEmitter setUv(float u, float v); @Override - VertexEmitter overlayCoords(int u, int v); + VertexEmitter setUv1(int u, int v); @Override - VertexEmitter uv2(int u, int v); + VertexEmitter setUv2(int u, int v); @Override - VertexEmitter normal(float x, float y, float z); + VertexEmitter setNormal(float x, float y, float z); @Override default VertexEmitter asVertexEmitter() { diff --git a/common/src/main/java/io/vram/frex/api/config/ShaderConfig.java b/common/src/main/java/io/vram/frex/api/config/ShaderConfig.java index 8131d97e..5bf85e98 100644 --- a/common/src/main/java/io/vram/frex/api/config/ShaderConfig.java +++ b/common/src/main/java/io/vram/frex/api/config/ShaderConfig.java @@ -21,10 +21,8 @@ package io.vram.frex.api.config; import java.util.function.Supplier; - import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; - import io.vram.frex.impl.config.ShaderConfigImpl; /** diff --git a/common/src/main/java/io/vram/frex/api/light/HeldItemLightListener.java b/common/src/main/java/io/vram/frex/api/light/HeldItemLightListener.java index ab53e620..f5b2a0d7 100644 --- a/common/src/main/java/io/vram/frex/api/light/HeldItemLightListener.java +++ b/common/src/main/java/io/vram/frex/api/light/HeldItemLightListener.java @@ -20,11 +20,10 @@ package io.vram.frex.api.light; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; - import io.vram.frex.api.config.FrexFeature; import io.vram.frex.impl.light.HeldItemLightListenerImpl; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; @FunctionalInterface public interface HeldItemLightListener { diff --git a/common/src/main/java/io/vram/frex/api/light/ItemLight.java b/common/src/main/java/io/vram/frex/api/light/ItemLight.java index 002c61e2..0d6d48bc 100644 --- a/common/src/main/java/io/vram/frex/api/light/ItemLight.java +++ b/common/src/main/java/io/vram/frex/api/light/ItemLight.java @@ -20,10 +20,9 @@ package io.vram.frex.api.light; -import net.minecraft.world.item.ItemStack; - import io.vram.frex.impl.light.ItemLightLoader; import io.vram.frex.impl.light.SimpleItemLight; +import net.minecraft.world.item.ItemStack; @FunctionalInterface public interface ItemLight { diff --git a/common/src/main/java/io/vram/frex/api/material/MaterialCondition.java b/common/src/main/java/io/vram/frex/api/material/MaterialCondition.java index 624091fe..70bbbb46 100644 --- a/common/src/main/java/io/vram/frex/api/material/MaterialCondition.java +++ b/common/src/main/java/io/vram/frex/api/material/MaterialCondition.java @@ -21,9 +21,7 @@ package io.vram.frex.api.material; import java.util.function.BooleanSupplier; - import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.renderer.Renderer; @FunctionalInterface diff --git a/common/src/main/java/io/vram/frex/api/material/MaterialFinder.java b/common/src/main/java/io/vram/frex/api/material/MaterialFinder.java index 83151022..2abd020f 100644 --- a/common/src/main/java/io/vram/frex/api/material/MaterialFinder.java +++ b/common/src/main/java/io/vram/frex/api/material/MaterialFinder.java @@ -21,12 +21,10 @@ package io.vram.frex.api.material; import org.jetbrains.annotations.Nullable; - -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.renderer.Renderer; import io.vram.frex.api.texture.MaterialTexture; import io.vram.frex.impl.material.MaterialFinderPool; +import net.minecraft.resources.ResourceLocation; /** * Finds standard {@link RenderMaterial} instances used to communicate diff --git a/common/src/main/java/io/vram/frex/api/material/MaterialLoader.java b/common/src/main/java/io/vram/frex/api/material/MaterialLoader.java index b6f5354a..e65bdb65 100644 --- a/common/src/main/java/io/vram/frex/api/material/MaterialLoader.java +++ b/common/src/main/java/io/vram/frex/api/material/MaterialLoader.java @@ -21,10 +21,8 @@ package io.vram.frex.api.material; import org.jetbrains.annotations.ApiStatus.Experimental; - -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.impl.material.MaterialLoaderImpl; +import net.minecraft.resources.ResourceLocation; /** * For use by model loading libraries - handles deserialization of material JSON diff --git a/common/src/main/java/io/vram/frex/api/material/MaterialMap.java b/common/src/main/java/io/vram/frex/api/material/MaterialMap.java index 36145b64..9812aeb4 100644 --- a/common/src/main/java/io/vram/frex/api/material/MaterialMap.java +++ b/common/src/main/java/io/vram/frex/api/material/MaterialMap.java @@ -21,7 +21,6 @@ package io.vram.frex.api.material; import org.jetbrains.annotations.Nullable; - import net.minecraft.client.particle.Particle; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.particles.ParticleType; @@ -31,7 +30,6 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.FluidState; - import io.vram.frex.impl.material.map.MaterialMapLoader; public interface MaterialMap { diff --git a/common/src/main/java/io/vram/frex/api/material/MaterialShader.java b/common/src/main/java/io/vram/frex/api/material/MaterialShader.java index b914f20a..20b52a26 100644 --- a/common/src/main/java/io/vram/frex/api/material/MaterialShader.java +++ b/common/src/main/java/io/vram/frex/api/material/MaterialShader.java @@ -21,14 +21,12 @@ package io.vram.frex.api.material; import org.jetbrains.annotations.Nullable; - -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.renderer.Renderer; +import net.minecraft.resources.ResourceLocation; public interface MaterialShader { - ResourceLocation DEFAULT_VERTEX_SOURCE = new ResourceLocation("frex:shaders/material/default.vert"); - ResourceLocation DEFAULT_FRAGMENT_SOURCE = new ResourceLocation("frex:shaders/material/default.frag"); + ResourceLocation DEFAULT_VERTEX_SOURCE = ResourceLocation.parse("frex:shaders/material/default.vert"); + ResourceLocation DEFAULT_FRAGMENT_SOURCE = ResourceLocation.parse("frex:shaders/material/default.frag"); int index(); diff --git a/common/src/main/java/io/vram/frex/api/material/RenderMaterial.java b/common/src/main/java/io/vram/frex/api/material/RenderMaterial.java index bb268f72..8efc1b3d 100644 --- a/common/src/main/java/io/vram/frex/api/material/RenderMaterial.java +++ b/common/src/main/java/io/vram/frex/api/material/RenderMaterial.java @@ -21,10 +21,8 @@ package io.vram.frex.api.material; import org.jetbrains.annotations.Nullable; - -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.renderer.Renderer; +import net.minecraft.resources.ResourceLocation; /** * Immutable material specification, governs practically all aspects of @@ -38,8 +36,8 @@ * */ public interface RenderMaterial extends MaterialView, MaterialTransform { - ResourceLocation STANDARD_MATERIAL_KEY = new ResourceLocation("frex", "standard"); - ResourceLocation MISSING_MATERIAL_KEY = new ResourceLocation("frex", "missing"); + ResourceLocation STANDARD_MATERIAL_KEY = ResourceLocation.fromNamespaceAndPath("frex", "standard"); + ResourceLocation MISSING_MATERIAL_KEY = ResourceLocation.fromNamespaceAndPath("frex", "missing"); int index(); diff --git a/common/src/main/java/io/vram/frex/api/math/MatrixStack.java b/common/src/main/java/io/vram/frex/api/math/MatrixStack.java index e438a4ff..0ee7e051 100644 --- a/common/src/main/java/io/vram/frex/api/math/MatrixStack.java +++ b/common/src/main/java/io/vram/frex/api/math/MatrixStack.java @@ -22,9 +22,6 @@ import org.joml.Matrix3f; import org.joml.Matrix4f; - -import com.mojang.blaze3d.vertex.PoseStack; - import io.vram.frex.mixinterface.PoseStackExt; public interface MatrixStack { @@ -45,13 +42,13 @@ default void setIdentity() { normalMatrix().identity(); } - PoseStack toVanilla(); + com.mojang.blaze3d.vertex.PoseStack toVanilla(); - static MatrixStack fromVanilla(PoseStack poseStack) { + static MatrixStack fromVanilla(com.mojang.blaze3d.vertex.PoseStack poseStack) { return ((PoseStackExt) poseStack).frx_asMatrixStack(); } static MatrixStack create() { - return fromVanilla(new PoseStack()); + return fromVanilla(new com.mojang.blaze3d.vertex.PoseStack()); } } diff --git a/common/src/main/java/io/vram/frex/api/math/PackedVector3f.java b/common/src/main/java/io/vram/frex/api/math/PackedVector3f.java index 04bc7a98..4a2626f5 100644 --- a/common/src/main/java/io/vram/frex/api/math/PackedVector3f.java +++ b/common/src/main/java/io/vram/frex/api/math/PackedVector3f.java @@ -21,12 +21,10 @@ package io.vram.frex.api.math; import org.joml.Vector3f; - -import net.minecraft.core.Direction; -import net.minecraft.core.Vec3i; - import io.vram.frex.api.mesh.QuadView; import io.vram.frex.api.model.util.GeometryUtil; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; /** * Static routines of general utility for renderer implementations. diff --git a/common/src/main/java/io/vram/frex/api/mesh/MeshBuilder.java b/common/src/main/java/io/vram/frex/api/mesh/MeshBuilder.java index 6b699f72..c09b9c20 100644 --- a/common/src/main/java/io/vram/frex/api/mesh/MeshBuilder.java +++ b/common/src/main/java/io/vram/frex/api/mesh/MeshBuilder.java @@ -21,12 +21,10 @@ package io.vram.frex.api.mesh; import com.mojang.blaze3d.vertex.BufferBuilder; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.core.Direction; - import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.api.material.RenderMaterial; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.core.Direction; /** * Similar in purpose to {@link BufferBuilder} but simpler diff --git a/common/src/main/java/io/vram/frex/api/mesh/QuadView.java b/common/src/main/java/io/vram/frex/api/mesh/QuadView.java index 01b70664..fe1a0dfd 100644 --- a/common/src/main/java/io/vram/frex/api/mesh/QuadView.java +++ b/common/src/main/java/io/vram/frex/api/mesh/QuadView.java @@ -23,20 +23,17 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.joml.Vector3f; - import com.mojang.blaze3d.vertex.DefaultVertexFormat; - -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.core.Direction; - import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.api.material.RenderMaterial; import io.vram.frex.api.math.PackedVector3f; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.core.Direction; public interface QuadView { /** Count of integers in a conventional (un-modded) block or item vertex. */ - int VANILLA_VERTEX_STRIDE = DefaultVertexFormat.BLOCK.getIntegerSize(); + int VANILLA_VERTEX_STRIDE = DefaultVertexFormat.BLOCK.getVertexSize() / 4; /** Count of integers in a conventional (un-modded) block or item quad. */ int VANILLA_QUAD_STRIDE = VANILLA_VERTEX_STRIDE * 4; diff --git a/common/src/main/java/io/vram/frex/api/model/BakedInputContext.java b/common/src/main/java/io/vram/frex/api/model/BakedInputContext.java index b894af42..0bde4e6b 100644 --- a/common/src/main/java/io/vram/frex/api/model/BakedInputContext.java +++ b/common/src/main/java/io/vram/frex/api/model/BakedInputContext.java @@ -21,12 +21,6 @@ package io.vram.frex.api.model; import java.util.Random; - -import org.jetbrains.annotations.Nullable; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; - import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.ModelBlockRenderer; import net.minecraft.client.resources.model.BakedModel; @@ -34,7 +28,9 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.state.BlockState; - +import org.jetbrains.annotations.Nullable; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import io.vram.frex.api.material.MaterialConstants; import io.vram.frex.api.material.RenderMaterial; import io.vram.frex.api.model.util.FaceUtil; diff --git a/common/src/main/java/io/vram/frex/api/model/BlockModel.java b/common/src/main/java/io/vram/frex/api/model/BlockModel.java index a00bc63e..115583f5 100644 --- a/common/src/main/java/io/vram/frex/api/model/BlockModel.java +++ b/common/src/main/java/io/vram/frex/api/model/BlockModel.java @@ -21,7 +21,11 @@ package io.vram.frex.api.model; import org.jetbrains.annotations.Nullable; - +import io.vram.frex.api.buffer.QuadSink; +import io.vram.frex.api.model.InputContext.Type; +import io.vram.frex.api.world.BlockEntityRenderData; +import io.vram.frex.impl.model.BiomeLookupHelper; +import io.vram.frex.impl.model.ModelLookups; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.BakedModel; @@ -32,12 +36,6 @@ import net.minecraft.world.level.biome.Biomes; import net.minecraft.world.level.block.state.BlockState; -import io.vram.frex.api.buffer.QuadSink; -import io.vram.frex.api.model.InputContext.Type; -import io.vram.frex.api.world.BlockEntityRenderData; -import io.vram.frex.impl.model.BiomeLookupHelper; -import io.vram.frex.impl.model.ModelLookups; - @FunctionalInterface public interface BlockModel extends DynamicModel { void renderAsBlock(BlockInputContext input, QuadSink output); diff --git a/common/src/main/java/io/vram/frex/api/model/EntityModel.java b/common/src/main/java/io/vram/frex/api/model/EntityModel.java index 1707ee68..bd3b5efc 100644 --- a/common/src/main/java/io/vram/frex/api/model/EntityModel.java +++ b/common/src/main/java/io/vram/frex/api/model/EntityModel.java @@ -20,11 +20,10 @@ package io.vram.frex.api.model; -import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.Entity; - import io.vram.frex.api.buffer.QuadSink; import io.vram.frex.api.model.InputContext.Type; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.Entity; @FunctionalInterface public interface EntityModel extends DynamicModel { diff --git a/common/src/main/java/io/vram/frex/api/model/InputContext.java b/common/src/main/java/io/vram/frex/api/model/InputContext.java index 680a5db0..64439e10 100644 --- a/common/src/main/java/io/vram/frex/api/model/InputContext.java +++ b/common/src/main/java/io/vram/frex/api/model/InputContext.java @@ -20,9 +20,8 @@ package io.vram.frex.api.model; -import net.minecraft.util.RandomSource; - import io.vram.frex.api.math.MatrixStack; +import net.minecraft.util.RandomSource; public interface InputContext { RandomSource random(); diff --git a/common/src/main/java/io/vram/frex/api/model/ItemModel.java b/common/src/main/java/io/vram/frex/api/model/ItemModel.java index 23f3230e..2b95ffbe 100644 --- a/common/src/main/java/io/vram/frex/api/model/ItemModel.java +++ b/common/src/main/java/io/vram/frex/api/model/ItemModel.java @@ -20,16 +20,15 @@ package io.vram.frex.api.model; +import io.vram.frex.api.buffer.QuadSink; +import io.vram.frex.api.model.InputContext.Type; +import io.vram.frex.impl.model.ModelLookups; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.util.RandomSource; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; -import io.vram.frex.api.buffer.QuadSink; -import io.vram.frex.api.model.InputContext.Type; -import io.vram.frex.impl.model.ModelLookups; - @FunctionalInterface public interface ItemModel extends DynamicModel { void renderAsItem(ItemInputContext input, QuadSink output); diff --git a/common/src/main/java/io/vram/frex/api/model/fluid/FluidAppearance.java b/common/src/main/java/io/vram/frex/api/model/fluid/FluidAppearance.java index 76a6e353..6b631253 100644 --- a/common/src/main/java/io/vram/frex/api/model/fluid/FluidAppearance.java +++ b/common/src/main/java/io/vram/frex/api/model/fluid/FluidAppearance.java @@ -20,11 +20,10 @@ package io.vram.frex.api.model.fluid; +import io.vram.frex.impl.model.FluidAppearanceImpl; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.Fluids; -import io.vram.frex.impl.model.FluidAppearanceImpl; - public interface FluidAppearance extends FluidColorProvider, FluidSpriteProvider { static FluidAppearance of(FluidColorProvider colorProvider, FluidSpriteProvider spriteProvider) { return FluidAppearanceImpl.of(colorProvider, spriteProvider); diff --git a/common/src/main/java/io/vram/frex/api/model/fluid/FluidColorProvider.java b/common/src/main/java/io/vram/frex/api/model/fluid/FluidColorProvider.java index fcf244ca..ba458da1 100644 --- a/common/src/main/java/io/vram/frex/api/model/fluid/FluidColorProvider.java +++ b/common/src/main/java/io/vram/frex/api/model/fluid/FluidColorProvider.java @@ -21,15 +21,13 @@ package io.vram.frex.api.model.fluid; import org.jetbrains.annotations.Nullable; - +import io.vram.frex.impl.model.BiomeLookupHelper; import net.minecraft.client.renderer.BiomeColors; import net.minecraft.core.BlockPos; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.biome.Biomes; import net.minecraft.world.level.material.FluidState; -import io.vram.frex.impl.model.BiomeLookupHelper; - /** * Get the tint color for a fluid being rendered at a given position. * diff --git a/common/src/main/java/io/vram/frex/api/model/fluid/FluidModel.java b/common/src/main/java/io/vram/frex/api/model/fluid/FluidModel.java index 6bb33d46..b447c88c 100644 --- a/common/src/main/java/io/vram/frex/api/model/fluid/FluidModel.java +++ b/common/src/main/java/io/vram/frex/api/model/fluid/FluidModel.java @@ -21,10 +21,8 @@ package io.vram.frex.api.model.fluid; import java.util.function.Function; - import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.material.Fluid; - import io.vram.frex.api.model.BlockModel; import io.vram.frex.impl.model.FluidModelImpl; diff --git a/common/src/main/java/io/vram/frex/api/model/fluid/FluidSpriteProvider.java b/common/src/main/java/io/vram/frex/api/model/fluid/FluidSpriteProvider.java index 6d1be67b..5d6f4be0 100644 --- a/common/src/main/java/io/vram/frex/api/model/fluid/FluidSpriteProvider.java +++ b/common/src/main/java/io/vram/frex/api/model/fluid/FluidSpriteProvider.java @@ -21,15 +21,13 @@ package io.vram.frex.api.model.fluid; import org.jetbrains.annotations.Nullable; - +import io.vram.frex.impl.model.SimpleFluidSpriteProvider; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.material.FluidState; -import io.vram.frex.impl.model.SimpleFluidSpriteProvider; - /** * Get the sprites for a fluid being rendered at a given position. * For optimal performance, the sprites should be loaded as part of a @@ -48,7 +46,7 @@ public interface FluidSpriteProvider { TextureAtlasSprite[] getFluidSprites(@Nullable BlockAndTintGetter view, @Nullable BlockPos pos, FluidState state); static FluidSpriteProvider of(String stillSpriteName, String flowingSpriteName, @Nullable String overlaySpriteName) { - return SimpleFluidSpriteProvider.of(new ResourceLocation(stillSpriteName), new ResourceLocation(flowingSpriteName), overlaySpriteName == null ? null : new ResourceLocation(overlaySpriteName)); + return SimpleFluidSpriteProvider.of(ResourceLocation.tryParse(stillSpriteName), ResourceLocation.tryParse(flowingSpriteName), overlaySpriteName == null ? null : ResourceLocation.tryParse(overlaySpriteName)); } static FluidSpriteProvider of(String stillSpriteName, String flowingSpriteName) { diff --git a/common/src/main/java/io/vram/frex/api/model/fluid/SimpleFluidModel.java b/common/src/main/java/io/vram/frex/api/model/fluid/SimpleFluidModel.java index 51fccc04..ce18cd68 100644 --- a/common/src/main/java/io/vram/frex/api/model/fluid/SimpleFluidModel.java +++ b/common/src/main/java/io/vram/frex/api/model/fluid/SimpleFluidModel.java @@ -20,10 +20,15 @@ package io.vram.frex.api.model.fluid; +import io.vram.frex.api.buffer.QuadEmitter; +import io.vram.frex.api.buffer.QuadSink; +import io.vram.frex.api.config.FrexConfig; +import io.vram.frex.api.material.RenderMaterial; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.Mth; +import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.HalfTransparentBlock; @@ -35,11 +40,6 @@ import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import io.vram.frex.api.buffer.QuadEmitter; -import io.vram.frex.api.buffer.QuadSink; -import io.vram.frex.api.config.FrexConfig; -import io.vram.frex.api.material.RenderMaterial; - /** * Implementation of {@link FluidModel} with vanilla-like geometry. */ diff --git a/common/src/main/java/io/vram/frex/api/model/provider/ModelLocationProvider.java b/common/src/main/java/io/vram/frex/api/model/provider/ModelLocationProvider.java index 3981b801..fb06dee1 100644 --- a/common/src/main/java/io/vram/frex/api/model/provider/ModelLocationProvider.java +++ b/common/src/main/java/io/vram/frex/api/model/provider/ModelLocationProvider.java @@ -23,10 +23,8 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; - import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.BlockStateModelLoader; import net.minecraft.resources.ResourceLocation; @FunctionalInterface @@ -36,12 +34,12 @@ public interface ModelLocationProvider { * * @param models Provides access to model resources. * @param blockStates Provides access to block state resources. - * @param target Accepts paths to be loaded. Arguments that are {@link ModelResourceLocation} will be + * @param target Accepts paths to be loaded. Arguments that are {@link ModelIdentifier} will be * parsed as if they are a block or item variant and the load call can be intercepted by a - * {@link VariantModelProvider}. Plain {@link ResourceLocation} arguments will be loaded + * {@link VariantModelProvider}. Plain {@link Identifier} arguments will be loaded * directly as a JSON model unless intercepted by a {@link ResourceModelProvider}. * For example,
new ResourceLocation("mymod", "foo/bar")
will request loading * of the file
/assets/mymod/models/foo/bar.json
*/ - void provideLocations(Map models, Map> blockStates, Consumer target); + void provideLocations(Map models, Map> blockStates, Consumer target); } diff --git a/common/src/main/java/io/vram/frex/api/model/provider/ModelProvider.java b/common/src/main/java/io/vram/frex/api/model/provider/ModelProvider.java index 824881e4..153fe0e3 100644 --- a/common/src/main/java/io/vram/frex/api/model/provider/ModelProvider.java +++ b/common/src/main/java/io/vram/frex/api/model/provider/ModelProvider.java @@ -20,10 +20,9 @@ package io.vram.frex.api.model.provider; -import org.jetbrains.annotations.Nullable; - import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; /** * Interface for functions that intercept model load requests. These functions diff --git a/common/src/main/java/io/vram/frex/api/model/provider/ModelProviderRegistry.java b/common/src/main/java/io/vram/frex/api/model/provider/ModelProviderRegistry.java index bae1b755..8de45fd6 100644 --- a/common/src/main/java/io/vram/frex/api/model/provider/ModelProviderRegistry.java +++ b/common/src/main/java/io/vram/frex/api/model/provider/ModelProviderRegistry.java @@ -24,14 +24,10 @@ import java.util.Map; import java.util.function.BiFunction; import java.util.function.Function; - -import org.spongepowered.include.com.google.common.base.Preconditions; - import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.BlockStateModelLoader; import net.minecraft.resources.ResourceLocation; - +import org.spongepowered.include.com.google.common.base.Preconditions; import io.vram.frex.impl.model.ModelProviderRegistryImpl; /** @@ -64,7 +60,7 @@ public interface ModelProviderRegistry { * @param providerFunction Called each time model loading runs to instantiate the provider, * which is then reused for the entire model loading cycle. */ - static void registerVariantProvider(BiFunction, Map>, ModelProvider> providerFunction) { + static void registerVariantProvider(BiFunction, Map>, ModelProvider> providerFunction) { ModelProviderRegistryImpl.registerVariantProvider(providerFunction); } @@ -76,12 +72,12 @@ static void registerVariantProvider(BiFunction * which is then reused for the entire model loading cycle. * @param paths Identifies one or more blocks or items that share the same provider. */ - static void registerBlockItemProvider(BiFunction, Map>, ModelProvider> providerFunction, ResourceLocation... paths) { + static void registerBlockItemProvider(BiFunction, Map>, ModelProvider> providerFunction, ResourceLocation... paths) { Preconditions.checkNotNull(paths); ModelProviderRegistryImpl.registerBlockItemProvider(providerFunction, paths); } - static void registerBlockItemProvider(BiFunction, Map>, ModelProvider> providerFunction, String... paths) { + static void registerBlockItemProvider(BiFunction, Map>, ModelProvider> providerFunction, String... paths) { Preconditions.checkNotNull(paths); ModelProviderRegistryImpl.registerBlockItemProvider(providerFunction, ModelProviderRegistryImpl.stringsToLocations(paths)); } @@ -94,7 +90,7 @@ static void registerBlockItemProvider(BiFunction, Map>, ModelProvider> providerFunction) { + static void registerResourceProvider(BiFunction, Map>, ModelProvider> providerFunction) { ModelProviderRegistryImpl.registerResourceProvider(providerFunction); } diff --git a/common/src/main/java/io/vram/frex/api/model/provider/SubModelLoader.java b/common/src/main/java/io/vram/frex/api/model/provider/SubModelLoader.java index b9dd517d..6b8bfdd2 100644 --- a/common/src/main/java/io/vram/frex/api/model/provider/SubModelLoader.java +++ b/common/src/main/java/io/vram/frex/api/model/provider/SubModelLoader.java @@ -20,10 +20,9 @@ package io.vram.frex.api.model.provider; -import org.jetbrains.annotations.Nullable; - import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; /** * Passed to model providers as a way for them to retrieve models on diff --git a/common/src/main/java/io/vram/frex/api/model/util/BakedModelUtil.java b/common/src/main/java/io/vram/frex/api/model/util/BakedModelUtil.java index 1dcbbe35..b5176750 100644 --- a/common/src/main/java/io/vram/frex/api/model/util/BakedModelUtil.java +++ b/common/src/main/java/io/vram/frex/api/model/util/BakedModelUtil.java @@ -21,18 +21,15 @@ package io.vram.frex.api.model.util; import java.util.List; - -import com.google.common.collect.ImmutableList; -import org.joml.Math; -import org.joml.Vector3f; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.ItemTransform; import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.core.Direction; import net.minecraft.world.inventory.InventoryMenu; - +import com.google.common.collect.ImmutableList; +import org.joml.Math; +import org.joml.Vector3f; import io.vram.frex.api.mesh.Mesh; import io.vram.frex.api.texture.SpriteFinder; diff --git a/common/src/main/java/io/vram/frex/api/model/util/FaceUtil.java b/common/src/main/java/io/vram/frex/api/model/util/FaceUtil.java index a2b3c4e7..f4ca824b 100644 --- a/common/src/main/java/io/vram/frex/api/model/util/FaceUtil.java +++ b/common/src/main/java/io/vram/frex/api/model/util/FaceUtil.java @@ -21,11 +21,9 @@ package io.vram.frex.api.model.util; import java.util.Arrays; - -import org.jetbrains.annotations.Contract; - import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import org.jetbrains.annotations.Contract; public abstract class FaceUtil { private FaceUtil() { } diff --git a/common/src/main/java/io/vram/frex/api/model/util/GeometryUtil.java b/common/src/main/java/io/vram/frex/api/model/util/GeometryUtil.java index a68bce65..49fd4bee 100644 --- a/common/src/main/java/io/vram/frex/api/model/util/GeometryUtil.java +++ b/common/src/main/java/io/vram/frex/api/model/util/GeometryUtil.java @@ -23,16 +23,14 @@ import static net.minecraft.util.Mth.equal; import org.joml.Vector3f; - +import io.vram.frex.api.math.PackedVector3f; +import io.vram.frex.api.mesh.QuadView; import net.minecraft.client.renderer.FaceInfo.Constants; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; -import io.vram.frex.api.math.PackedVector3f; -import io.vram.frex.api.mesh.QuadView; - /** * Static routines of general utility for renderer implementations. * Renderers are not required to use these helpers, but they were diff --git a/common/src/main/java/io/vram/frex/api/renderer/ConditionManager.java b/common/src/main/java/io/vram/frex/api/renderer/ConditionManager.java index 373cff27..9f4ecfd0 100644 --- a/common/src/main/java/io/vram/frex/api/renderer/ConditionManager.java +++ b/common/src/main/java/io/vram/frex/api/renderer/ConditionManager.java @@ -21,9 +21,7 @@ package io.vram.frex.api.renderer; import java.util.function.BooleanSupplier; - import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.material.MaterialCondition; public interface ConditionManager { diff --git a/common/src/main/java/io/vram/frex/api/renderer/MaterialManager.java b/common/src/main/java/io/vram/frex/api/renderer/MaterialManager.java index c768ffb9..323f9ac5 100644 --- a/common/src/main/java/io/vram/frex/api/renderer/MaterialManager.java +++ b/common/src/main/java/io/vram/frex/api/renderer/MaterialManager.java @@ -21,11 +21,9 @@ package io.vram.frex.api.renderer; import org.jetbrains.annotations.Nullable; - -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.RenderMaterial; +import net.minecraft.resources.ResourceLocation; public interface MaterialManager { /** diff --git a/common/src/main/java/io/vram/frex/api/renderer/MaterialShaderManager.java b/common/src/main/java/io/vram/frex/api/renderer/MaterialShaderManager.java index 3cba0942..fbb8c389 100644 --- a/common/src/main/java/io/vram/frex/api/renderer/MaterialShaderManager.java +++ b/common/src/main/java/io/vram/frex/api/renderer/MaterialShaderManager.java @@ -21,10 +21,8 @@ package io.vram.frex.api.renderer; import org.jetbrains.annotations.Nullable; - -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.material.MaterialShader; +import net.minecraft.resources.ResourceLocation; public interface MaterialShaderManager { MaterialShader shaderFromIndex(int index); diff --git a/common/src/main/java/io/vram/frex/api/renderer/MaterialTextureManager.java b/common/src/main/java/io/vram/frex/api/renderer/MaterialTextureManager.java index 49506cf4..cb9998b0 100644 --- a/common/src/main/java/io/vram/frex/api/renderer/MaterialTextureManager.java +++ b/common/src/main/java/io/vram/frex/api/renderer/MaterialTextureManager.java @@ -20,9 +20,8 @@ package io.vram.frex.api.renderer; -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.texture.MaterialTexture; +import net.minecraft.resources.ResourceLocation; public interface MaterialTextureManager { MaterialTexture textureFromId(ResourceLocation id); diff --git a/common/src/main/java/io/vram/frex/api/renderloop/BlockOutlineListener.java b/common/src/main/java/io/vram/frex/api/renderloop/BlockOutlineListener.java index 6470f0ab..51c4c921 100644 --- a/common/src/main/java/io/vram/frex/api/renderloop/BlockOutlineListener.java +++ b/common/src/main/java/io/vram/frex/api/renderloop/BlockOutlineListener.java @@ -20,13 +20,12 @@ package io.vram.frex.api.renderloop; +import io.vram.frex.impl.renderloop.BlockOutlineListenerImpl; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.block.state.BlockState; -import io.vram.frex.impl.renderloop.BlockOutlineListenerImpl; - /** * Called after block outline render checks are made and before the * default block outline render runs. Will NOT be called if the default outline diff --git a/common/src/main/java/io/vram/frex/api/renderloop/BlockOutlinePreListener.java b/common/src/main/java/io/vram/frex/api/renderloop/BlockOutlinePreListener.java index ba7ff128..8fd4d020 100644 --- a/common/src/main/java/io/vram/frex/api/renderloop/BlockOutlinePreListener.java +++ b/common/src/main/java/io/vram/frex/api/renderloop/BlockOutlinePreListener.java @@ -21,12 +21,10 @@ package io.vram.frex.api.renderloop; import org.jetbrains.annotations.Nullable; - +import io.vram.frex.impl.renderloop.BlockOutlinePreListenerImpl; import net.minecraft.client.Minecraft; import net.minecraft.world.phys.HitResult; -import io.vram.frex.impl.renderloop.BlockOutlinePreListenerImpl; - /** * Called before default block outline rendering and before checks are * done to determine if it should happen. Can optionally cancel the default diff --git a/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderContext.java b/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderContext.java index 1bff467d..fe80b80b 100644 --- a/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderContext.java +++ b/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderContext.java @@ -20,11 +20,7 @@ package io.vram.frex.api.renderloop; -import org.jetbrains.annotations.Nullable; -import org.joml.Matrix4f; - import com.mojang.blaze3d.vertex.PoseStack; - import net.minecraft.client.Camera; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.GameRenderer; @@ -33,6 +29,8 @@ import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.culling.Frustum; import net.minecraft.util.profiling.ProfilerFiller; +import org.jetbrains.annotations.Nullable; +import org.joml.Matrix4f; /** * Except as noted below, the properties exposed here match the parameters passed to diff --git a/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderContextBase.java b/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderContextBase.java index f23c1d89..65689c28 100644 --- a/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderContextBase.java +++ b/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderContextBase.java @@ -21,10 +21,9 @@ package io.vram.frex.api.renderloop; import org.joml.Matrix4f; - import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; - +import io.vram.frex.api.renderloop.BlockOutlineListener.BlockOutlineContext; import net.minecraft.client.Camera; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.GameRenderer; @@ -38,8 +37,6 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.level.block.state.BlockState; -import io.vram.frex.api.renderloop.BlockOutlineListener.BlockOutlineContext; - /** * Recommended base class for renderers that need to provide context objects to world events. */ diff --git a/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderStartListener.java b/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderStartListener.java index 2ba1c23e..5985beb4 100644 --- a/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderStartListener.java +++ b/common/src/main/java/io/vram/frex/api/renderloop/WorldRenderStartListener.java @@ -20,9 +20,8 @@ package io.vram.frex.api.renderloop; -import net.minecraft.client.renderer.LevelRenderer; - import io.vram.frex.impl.renderloop.WorldRenderStartListenerImpl; +import net.minecraft.client.renderer.LevelRenderer; /** * Called before world rendering executes. Input parameters are available but frustum is not. diff --git a/common/src/main/java/io/vram/frex/api/rendertype/BlockPresets.java b/common/src/main/java/io/vram/frex/api/rendertype/BlockPresets.java index 30ce84cc..c0533fbd 100644 --- a/common/src/main/java/io/vram/frex/api/rendertype/BlockPresets.java +++ b/common/src/main/java/io/vram/frex/api/rendertype/BlockPresets.java @@ -20,12 +20,11 @@ package io.vram.frex.api.rendertype; +import io.vram.frex.impl.material.BlockPresetsImpl; import net.minecraft.client.renderer.RenderType; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.material.Fluid; -import io.vram.frex.impl.material.BlockPresetsImpl; - /** * Use to associate blocks or fluids with render types other than default. * They can be retrieved via the vanilla utility {@code ItemBlockRenderTypes}. diff --git a/common/src/main/java/io/vram/frex/api/rendertype/RenderTypeExclusion.java b/common/src/main/java/io/vram/frex/api/rendertype/RenderTypeExclusion.java index 775a60f6..e2fbb0a9 100644 --- a/common/src/main/java/io/vram/frex/api/rendertype/RenderTypeExclusion.java +++ b/common/src/main/java/io/vram/frex/api/rendertype/RenderTypeExclusion.java @@ -21,12 +21,9 @@ package io.vram.frex.api.rendertype; import java.util.function.Predicate; - -import org.jetbrains.annotations.ApiStatus.NonExtendable; - import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType.CompositeRenderType; - +import org.jetbrains.annotations.ApiStatus.NonExtendable; import io.vram.frex.impl.material.RenderTypeExclusionImpl; @NonExtendable diff --git a/common/src/main/java/io/vram/frex/api/rendertype/VanillaShaderInfo.java b/common/src/main/java/io/vram/frex/api/rendertype/VanillaShaderInfo.java index 19c88604..0043e41a 100644 --- a/common/src/main/java/io/vram/frex/api/rendertype/VanillaShaderInfo.java +++ b/common/src/main/java/io/vram/frex/api/rendertype/VanillaShaderInfo.java @@ -21,10 +21,6 @@ package io.vram.frex.api.rendertype; import org.jetbrains.annotations.ApiStatus.NonExtendable; - -import net.minecraft.client.renderer.RenderStateShard.ShaderStateShard; -import net.minecraft.client.renderer.ShaderInstance; - import io.vram.frex.impl.material.VanillaShaderInfoImpl; @NonExtendable @@ -47,10 +43,10 @@ public interface VanillaShaderInfo { * RenderState instances into renderable materials * *

To use this method, your mod will need an access widener to reference - * the {@link ShaderStateShard} class. That class is not exposed here to prevent + * the {@link ShaderProgram} class. That class is not exposed here to prevent * compilation or validation problems in dependent mods without visibility to it. * - * @param shaderStateShard MUST be an instance of {@link ShaderStateShard}. + * @param shaderStateShard MUST be an instance of {@link ShaderProgram}. * @return VanillaShaderInfo instance describing the shader, or * {@link #MISSING} if not found. */ @@ -64,7 +60,7 @@ static VanillaShaderInfo get(Object shaderStateShard) { * visibility to ShaderStateShard and/or have some way to obtain the shader * instance name without it. * - * @param shaderName The name of the vanilla shader, corresponding to {@link ShaderInstance#name}. + * @param shaderName The name of the vanilla shader, corresponding to {@link net.minecraft.client.renderer.ShaderInstance#name}. * @return VanillaShaderInfo instance describing the shader, or * {@link #MISSING} if not found. */ diff --git a/common/src/main/java/io/vram/frex/api/texture/MaterialTexture.java b/common/src/main/java/io/vram/frex/api/texture/MaterialTexture.java index f7118ac7..5cfa6651 100644 --- a/common/src/main/java/io/vram/frex/api/texture/MaterialTexture.java +++ b/common/src/main/java/io/vram/frex/api/texture/MaterialTexture.java @@ -21,13 +21,11 @@ package io.vram.frex.api.texture; import org.jetbrains.annotations.Nullable; - +import io.vram.frex.api.renderer.Renderer; import net.minecraft.client.renderer.texture.AbstractTexture; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.resources.ResourceLocation; -import io.vram.frex.api.renderer.Renderer; - public interface MaterialTexture { ResourceLocation id(); diff --git a/common/src/main/java/io/vram/frex/api/texture/PhysicalTextureSet.java b/common/src/main/java/io/vram/frex/api/texture/PhysicalTextureSet.java index fa13a676..58f0c923 100644 --- a/common/src/main/java/io/vram/frex/api/texture/PhysicalTextureSet.java +++ b/common/src/main/java/io/vram/frex/api/texture/PhysicalTextureSet.java @@ -21,12 +21,10 @@ package io.vram.frex.api.texture; import java.nio.ByteBuffer; - -import org.jetbrains.annotations.Nullable; - import net.minecraft.client.resources.metadata.animation.AnimationMetadataSection; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; +import org.jetbrains.annotations.Nullable; public interface PhysicalTextureSet extends AutoCloseable { ResourceLocation baseColorId(); diff --git a/common/src/main/java/io/vram/frex/api/texture/SpriteFinder.java b/common/src/main/java/io/vram/frex/api/texture/SpriteFinder.java index 6bb75ac2..c0087329 100644 --- a/common/src/main/java/io/vram/frex/api/texture/SpriteFinder.java +++ b/common/src/main/java/io/vram/frex/api/texture/SpriteFinder.java @@ -20,12 +20,11 @@ package io.vram.frex.api.texture; -import net.minecraft.client.renderer.texture.TextureAtlas; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.api.mesh.QuadView; import io.vram.frex.impl.texture.SpriteFinderImpl; +import net.minecraft.client.renderer.texture.TextureAtlas; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; /** * Indexes a texture atlas to allow fast lookup of Sprites from diff --git a/common/src/main/java/io/vram/frex/api/texture/SpriteIndex.java b/common/src/main/java/io/vram/frex/api/texture/SpriteIndex.java index 308431b0..621bd1b8 100644 --- a/common/src/main/java/io/vram/frex/api/texture/SpriteIndex.java +++ b/common/src/main/java/io/vram/frex/api/texture/SpriteIndex.java @@ -20,12 +20,11 @@ package io.vram.frex.api.texture; +import io.vram.frex.impl.texture.SpriteIndexImpl; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.resources.ResourceLocation; -import io.vram.frex.impl.texture.SpriteIndexImpl; - public interface SpriteIndex { TextureAtlasSprite fromIndex(int spriteId); diff --git a/common/src/main/java/io/vram/frex/api/texture/SpriteInjector.java b/common/src/main/java/io/vram/frex/api/texture/SpriteInjector.java index e31a6025..9d2c29fe 100644 --- a/common/src/main/java/io/vram/frex/api/texture/SpriteInjector.java +++ b/common/src/main/java/io/vram/frex/api/texture/SpriteInjector.java @@ -21,9 +21,7 @@ package io.vram.frex.api.texture; import java.util.function.Consumer; - import net.minecraft.resources.ResourceLocation; - import io.vram.frex.impl.texture.SpriteInjectorImpl; /** @@ -52,7 +50,7 @@ static void injectAlways(ResourceLocation atlasId, ResourceLocation spriteId) { } static void injectAlways(ResourceLocation atlasId, String spriteId) { - injectAlways(atlasId, new ResourceLocation(spriteId)); + injectAlways(atlasId, ResourceLocation.parse(spriteId)); } /** diff --git a/common/src/main/java/io/vram/frex/api/world/BlockColorRegistry.java b/common/src/main/java/io/vram/frex/api/world/BlockColorRegistry.java index 372247b1..9306390d 100644 --- a/common/src/main/java/io/vram/frex/api/world/BlockColorRegistry.java +++ b/common/src/main/java/io/vram/frex/api/world/BlockColorRegistry.java @@ -22,11 +22,9 @@ import org.jetbrains.annotations.ApiStatus.NonExtendable; import org.jetbrains.annotations.Nullable; - import net.minecraft.client.color.block.BlockColor; import net.minecraft.client.color.block.BlockColors; import net.minecraft.world.level.block.Block; - import io.vram.frex.impl.world.ColorRegistryImpl; /** diff --git a/common/src/main/java/io/vram/frex/api/world/BlockEntityRenderData.java b/common/src/main/java/io/vram/frex/api/world/BlockEntityRenderData.java index 81703f3b..12e8cb5f 100644 --- a/common/src/main/java/io/vram/frex/api/world/BlockEntityRenderData.java +++ b/common/src/main/java/io/vram/frex/api/world/BlockEntityRenderData.java @@ -21,12 +21,9 @@ package io.vram.frex.api.world; import java.util.function.Function; - -import org.jetbrains.annotations.ApiStatus.NonExtendable; - import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; - +import org.jetbrains.annotations.ApiStatus.NonExtendable; import io.vram.frex.impl.world.BlockEntityRenderDataImpl; /** diff --git a/common/src/main/java/io/vram/frex/api/world/ItemColorRegistry.java b/common/src/main/java/io/vram/frex/api/world/ItemColorRegistry.java index 7854544d..2afefc75 100644 --- a/common/src/main/java/io/vram/frex/api/world/ItemColorRegistry.java +++ b/common/src/main/java/io/vram/frex/api/world/ItemColorRegistry.java @@ -22,11 +22,9 @@ import org.jetbrains.annotations.ApiStatus.NonExtendable; import org.jetbrains.annotations.Nullable; - import net.minecraft.client.color.item.ItemColor; import net.minecraft.client.color.item.ItemColors; import net.minecraft.world.level.ItemLike; - import io.vram.frex.impl.world.ColorRegistryImpl; /** diff --git a/common/src/main/java/io/vram/frex/api/world/RenderRegionBakeListener.java b/common/src/main/java/io/vram/frex/api/world/RenderRegionBakeListener.java index af6fa166..5b426dbd 100644 --- a/common/src/main/java/io/vram/frex/api/world/RenderRegionBakeListener.java +++ b/common/src/main/java/io/vram/frex/api/world/RenderRegionBakeListener.java @@ -22,13 +22,11 @@ import java.util.List; import java.util.function.Predicate; - import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; - import io.vram.frex.impl.world.RenderRegionBakeListenerImpl; @FunctionalInterface diff --git a/common/src/main/java/io/vram/frex/base/client/model/BaseModel.java b/common/src/main/java/io/vram/frex/base/client/model/BaseModel.java index 6b0fea0a..5147d0e5 100644 --- a/common/src/main/java/io/vram/frex/base/client/model/BaseModel.java +++ b/common/src/main/java/io/vram/frex/base/client/model/BaseModel.java @@ -21,14 +21,12 @@ package io.vram.frex.base.client.model; import java.util.function.Function; - import net.minecraft.client.renderer.block.model.ItemOverrides; import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.Material; import net.minecraft.world.inventory.InventoryMenu; - import io.vram.frex.api.model.BlockItemModel; public abstract class BaseModel implements BlockItemModel, BakedModel { diff --git a/common/src/main/java/io/vram/frex/base/client/model/BaseModelBuilder.java b/common/src/main/java/io/vram/frex/base/client/model/BaseModelBuilder.java index 7ebd1a9e..f4e3dd92 100644 --- a/common/src/main/java/io/vram/frex/base/client/model/BaseModelBuilder.java +++ b/common/src/main/java/io/vram/frex/base/client/model/BaseModelBuilder.java @@ -23,9 +23,6 @@ import java.util.Collection; import java.util.Collections; import java.util.function.Function; - -import it.unimi.dsi.fastutil.objects.ObjectArrayList; - import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureAtlasSprite; @@ -36,7 +33,7 @@ import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.inventory.InventoryMenu; - +import it.unimi.dsi.fastutil.objects.ObjectArrayList; import io.vram.frex.api.model.util.BakedModelUtil; /** @@ -74,7 +71,7 @@ public T defaultParticleSprite(ResourceLocation sprite) { } public T defaultParticleSprite(String sprite) { - defaultParticleSprite = new ResourceLocation(sprite); + defaultParticleSprite = ResourceLocation.parse(sprite); return (T) this; } @@ -128,14 +125,14 @@ public void resolveParents(Function function) { // unsure if we need this } - protected abstract BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState, ResourceLocation modelLocation); + protected abstract BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState); @Override - public final BakedModel bake(ModelBaker baker, Function spriteFunc, ModelState modelState, ResourceLocation modelLocation) { + public final BakedModel bake(ModelBaker baker, Function spriteFunc, ModelState modelState) { var result = this.result; if (result == null) { - result = bakeOnce(baker, spriteFunc, modelState, modelLocation); + result = bakeOnce(baker, spriteFunc, modelState); this.result = result; } diff --git a/common/src/main/java/io/vram/frex/base/client/model/CachedMeshModel.java b/common/src/main/java/io/vram/frex/base/client/model/CachedMeshModel.java index cfe05ba4..1bfb9d79 100644 --- a/common/src/main/java/io/vram/frex/base/client/model/CachedMeshModel.java +++ b/common/src/main/java/io/vram/frex/base/client/model/CachedMeshModel.java @@ -26,25 +26,21 @@ import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; - -import com.google.common.collect.ImmutableList; -import it.unimi.dsi.fastutil.ints.Int2ObjectFunction; -import org.spongepowered.include.com.google.common.base.Preconditions; - import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.Material; import net.minecraft.client.resources.model.ModelBaker; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.BlockStateModelLoader; import net.minecraft.client.resources.model.ModelState; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.state.BlockState; - +import com.google.common.collect.ImmutableList; +import it.unimi.dsi.fastutil.ints.Int2ObjectFunction; +import org.spongepowered.include.com.google.common.base.Preconditions; import io.vram.frex.api.buffer.QuadSink; import io.vram.frex.api.mesh.Mesh; import io.vram.frex.api.model.provider.ModelProvider; @@ -171,12 +167,12 @@ public Builder vanillaKeyFunction(VanillaKeyFunction vanillaKeyFunction) { } @Override - public BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState, ResourceLocation modelLocation) { + public BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState) { return new CachedMeshModel(this, spriteFunc); } } - public static BiFunction, Map>, ModelProvider> createProvider(Consumer setupFunc) { + public static BiFunction, Map>, ModelProvider> createProvider(Consumer setupFunc) { return (models, blockStates) -> { final var builder = new Builder(); setupFunc.accept(builder); diff --git a/common/src/main/java/io/vram/frex/base/client/model/ItemOverrideProxy.java b/common/src/main/java/io/vram/frex/base/client/model/ItemOverrideProxy.java index 40780333..e8aef006 100644 --- a/common/src/main/java/io/vram/frex/base/client/model/ItemOverrideProxy.java +++ b/common/src/main/java/io/vram/frex/base/client/model/ItemOverrideProxy.java @@ -21,14 +21,12 @@ package io.vram.frex.base.client.model; import java.util.Collections; - -import org.jetbrains.annotations.Nullable; - import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.block.model.ItemOverrides; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.ItemStack; +import org.jetbrains.annotations.Nullable; public class ItemOverrideProxy extends ItemOverrides { private final BakedModel delegate; diff --git a/common/src/main/java/io/vram/frex/base/client/model/ProceduralModel.java b/common/src/main/java/io/vram/frex/base/client/model/ProceduralModel.java index 3dbf8904..f6f10ad0 100644 --- a/common/src/main/java/io/vram/frex/base/client/model/ProceduralModel.java +++ b/common/src/main/java/io/vram/frex/base/client/model/ProceduralModel.java @@ -26,23 +26,19 @@ import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; - -import com.google.common.collect.ImmutableList; -import org.spongepowered.include.com.google.common.base.Preconditions; - import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.Material; import net.minecraft.client.resources.model.ModelBaker; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.BlockStateModelLoader; import net.minecraft.client.resources.model.ModelState; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.state.BlockState; - +import com.google.common.collect.ImmutableList; +import org.spongepowered.include.com.google.common.base.Preconditions; import io.vram.frex.api.buffer.QuadSink; import io.vram.frex.api.model.BlockModel; import io.vram.frex.api.model.ItemModel; @@ -117,12 +113,12 @@ public Builder defaultMeshFactory(MeshFactory defaultMeshFactory) { } @Override - public BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState, ResourceLocation modelLocation) { + public BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState) { return new ProceduralModel(this, spriteFunc); } } - public static BiFunction, Map>, ModelProvider> createProvider(Consumer setupFunc) { + public static BiFunction, Map>, ModelProvider> createProvider(Consumer setupFunc) { return (models, blockStates) -> { final var builder = new Builder(); setupFunc.accept(builder); diff --git a/common/src/main/java/io/vram/frex/base/client/model/SpriteProvider.java b/common/src/main/java/io/vram/frex/base/client/model/SpriteProvider.java index 9f1887a2..a0d0abc0 100644 --- a/common/src/main/java/io/vram/frex/base/client/model/SpriteProvider.java +++ b/common/src/main/java/io/vram/frex/base/client/model/SpriteProvider.java @@ -30,7 +30,7 @@ public interface SpriteProvider { TextureAtlasSprite getSprite(ResourceLocation path); default TextureAtlasSprite getSprite(String path) { - return getSprite(new ResourceLocation(path)); + return getSprite(ResourceLocation.parse(path)); } @SuppressWarnings("resource") diff --git a/common/src/main/java/io/vram/frex/base/client/model/StaticMeshModel.java b/common/src/main/java/io/vram/frex/base/client/model/StaticMeshModel.java index 3998452d..8dcb96f0 100644 --- a/common/src/main/java/io/vram/frex/base/client/model/StaticMeshModel.java +++ b/common/src/main/java/io/vram/frex/base/client/model/StaticMeshModel.java @@ -26,24 +26,20 @@ import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; - -import com.google.common.collect.ImmutableList; - import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.Material; import net.minecraft.client.resources.model.ModelBaker; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.BlockStateModelLoader; import net.minecraft.client.resources.model.ModelState; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.RandomSource; import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.level.block.state.BlockState; - +import com.google.common.collect.ImmutableList; import io.vram.frex.api.buffer.QuadSink; import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.RenderMaterial; @@ -96,12 +92,12 @@ protected Builder(MeshFactory meshFactory) { } @Override - public BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState, ResourceLocation modelLocation) { + public BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState) { return new StaticMeshModel(this, spriteFunc); } } - public static BiFunction, Map>, ModelProvider> createProvider(Consumer setupFunc, MeshFactory meshFactory) { + public static BiFunction, Map>, ModelProvider> createProvider(Consumer setupFunc, MeshFactory meshFactory) { return (models, blockStates) -> { final var builder = new Builder(meshFactory); setupFunc.accept(builder); @@ -125,6 +121,6 @@ public static void createAndRegisterCube(ResourceLocation blockPath, ResourceLoc } public static void createAndRegisterCube(String blockPath, String spritePath, int color, Function materialFunc) { - createAndRegisterCube(new ResourceLocation(blockPath), new ResourceLocation(spritePath), color, materialFunc); + createAndRegisterCube(ResourceLocation.parse(blockPath), ResourceLocation.parse(spritePath), color, materialFunc); } } diff --git a/common/src/main/java/io/vram/frex/base/client/model/TransformingMeshModel.java b/common/src/main/java/io/vram/frex/base/client/model/TransformingMeshModel.java index 1002bbf6..2f50c586 100644 --- a/common/src/main/java/io/vram/frex/base/client/model/TransformingMeshModel.java +++ b/common/src/main/java/io/vram/frex/base/client/model/TransformingMeshModel.java @@ -26,25 +26,21 @@ import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Function; - -import com.google.common.collect.ImmutableList; -import org.spongepowered.include.com.google.common.base.Preconditions; - import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.Material; import net.minecraft.client.resources.model.ModelBaker; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.BlockStateModelLoader; import net.minecraft.client.resources.model.ModelState; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.RandomSource; import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.level.block.state.BlockState; - +import com.google.common.collect.ImmutableList; +import org.spongepowered.include.com.google.common.base.Preconditions; import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.api.buffer.QuadSink; import io.vram.frex.api.buffer.QuadTransform; @@ -111,12 +107,12 @@ protected Builder(MeshFactory meshFactory, QuadTransform transform) { } @Override - public BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState, ResourceLocation modelLocation) { + public BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState) { return new TransformingMeshModel(this, spriteFunc); } } - public static BiFunction, Map>, ModelProvider> createProvider(Consumer setupFunc, MeshFactory meshFactory, QuadTransform transform) { + public static BiFunction, Map>, ModelProvider> createProvider(Consumer setupFunc, MeshFactory meshFactory, QuadTransform transform) { return (models, blockStates) -> { final var builder = new Builder(meshFactory, transform); setupFunc.accept(builder); @@ -141,6 +137,6 @@ public static void createAndRegisterCube(ResourceLocation spritePath, int color, public static void createAndRegisterCube(String spritePath, int color, Function materialFunc, QuadTransform transform, String... paths) { Preconditions.checkNotNull(paths); - createAndRegisterCube(new ResourceLocation(spritePath), color, materialFunc, transform, ModelProviderRegistryImpl.stringsToLocations(paths)); + createAndRegisterCube(ResourceLocation.parse(spritePath), color, materialFunc, transform, ModelProviderRegistryImpl.stringsToLocations(paths)); } } diff --git a/common/src/main/java/io/vram/frex/base/client/model/TransformingModel.java b/common/src/main/java/io/vram/frex/base/client/model/TransformingModel.java index 379afedf..b8d477e9 100644 --- a/common/src/main/java/io/vram/frex/base/client/model/TransformingModel.java +++ b/common/src/main/java/io/vram/frex/base/client/model/TransformingModel.java @@ -26,21 +26,18 @@ import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; - import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.BlockModel; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.client.resources.model.Material; import net.minecraft.client.resources.model.ModelBaker; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.BlockStateModelLoader; import net.minecraft.client.resources.model.ModelState; import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.state.BlockState; - import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.api.buffer.QuadSink; import io.vram.frex.api.buffer.QuadTransform; @@ -104,12 +101,12 @@ protected Builder(Supplier modelFunction, QuadTransform transfor } @Override - public BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState, ResourceLocation modelLocation) { + public BakedModel bakeOnce(ModelBaker baker, Function spriteFunc, ModelState modelState) { return new TransformingModel(this, spriteFunc); } } - public static BiFunction, Map>, ModelProvider> createProvider(Consumer setupFunc, Supplier modelSupplier, QuadTransform transform) { + public static BiFunction, Map>, ModelProvider> createProvider(Consumer setupFunc, Supplier modelSupplier, QuadTransform transform) { return (models, blockStates) -> { final var builder = new Builder(modelSupplier, transform); setupFunc.accept(builder); diff --git a/common/src/main/java/io/vram/frex/base/client/world/ForwardingBlockView.java b/common/src/main/java/io/vram/frex/base/client/world/ForwardingBlockView.java index c59fa35c..628ae313 100644 --- a/common/src/main/java/io/vram/frex/base/client/world/ForwardingBlockView.java +++ b/common/src/main/java/io/vram/frex/base/client/world/ForwardingBlockView.java @@ -23,7 +23,6 @@ import java.util.Optional; import java.util.function.Supplier; import java.util.stream.Stream; - import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.BlockAndTintGetter; diff --git a/common/src/main/java/io/vram/frex/base/renderer/BaseConditionManager.java b/common/src/main/java/io/vram/frex/base/renderer/BaseConditionManager.java index 87666f6a..1e9b97b6 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/BaseConditionManager.java +++ b/common/src/main/java/io/vram/frex/base/renderer/BaseConditionManager.java @@ -21,11 +21,8 @@ package io.vram.frex.base.renderer; import java.util.function.BooleanSupplier; - -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; - import net.minecraft.resources.ResourceLocation; - +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import io.vram.frex.api.material.MaterialCondition; import io.vram.frex.api.material.MaterialConstants; import io.vram.frex.api.renderer.ConditionManager; diff --git a/common/src/main/java/io/vram/frex/base/renderer/BaseMaterialShader.java b/common/src/main/java/io/vram/frex/base/renderer/BaseMaterialShader.java index ddaf0d31..981e0e46 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/BaseMaterialShader.java +++ b/common/src/main/java/io/vram/frex/base/renderer/BaseMaterialShader.java @@ -20,9 +20,8 @@ package io.vram.frex.base.renderer; -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.material.MaterialShader; +import net.minecraft.resources.ResourceLocation; public class BaseMaterialShader implements MaterialShader { public final int index; diff --git a/common/src/main/java/io/vram/frex/base/renderer/BaseMaterialShaderManager.java b/common/src/main/java/io/vram/frex/base/renderer/BaseMaterialShaderManager.java index b40446e5..52a7b0c9 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/BaseMaterialShaderManager.java +++ b/common/src/main/java/io/vram/frex/base/renderer/BaseMaterialShaderManager.java @@ -23,10 +23,8 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import org.jetbrains.annotations.Nullable; - import net.minecraft.resources.ResourceLocation; - +import org.jetbrains.annotations.Nullable; import io.vram.frex.api.material.MaterialShader; import io.vram.frex.api.renderer.MaterialShaderManager; diff --git a/common/src/main/java/io/vram/frex/base/renderer/ao/AoCalculator.java b/common/src/main/java/io/vram/frex/base/renderer/ao/AoCalculator.java index 9b6773a0..ed873ee4 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/ao/AoCalculator.java +++ b/common/src/main/java/io/vram/frex/base/renderer/ao/AoCalculator.java @@ -25,16 +25,16 @@ import static io.vram.frex.api.model.util.GeometryUtil.LIGHT_FACE_FLAG; import static io.vram.frex.base.renderer.ao.AoFaceData.OPAQUE; -import net.minecraft.core.Direction; -import net.minecraft.util.Mth; - import io.vram.frex.api.math.FixedMath255; import io.vram.frex.api.math.PackedSectionPos; import io.vram.frex.api.math.PackedVector3f; import io.vram.frex.api.model.util.ColorUtil; import io.vram.frex.api.model.util.FaceUtil; +import io.vram.frex.base.renderer.ao.AoFace.WeightFunction; import io.vram.frex.base.renderer.mesh.BaseQuadEmitter; import io.vram.frex.base.renderer.mesh.BaseQuadView; +import net.minecraft.core.Direction; +import net.minecraft.util.Mth; /** * Adaptation of inner, non-static class in BlockModelRenderer that serves same purpose. diff --git a/common/src/main/java/io/vram/frex/base/renderer/ao/AoFace.java b/common/src/main/java/io/vram/frex/base/renderer/ao/AoFace.java index f5626d73..1e6d0915 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/ao/AoFace.java +++ b/common/src/main/java/io/vram/frex/base/renderer/ao/AoFace.java @@ -28,12 +28,11 @@ import static net.minecraft.core.Direction.UP; import static net.minecraft.core.Direction.WEST; -import net.minecraft.core.Direction; -import net.minecraft.core.Vec3i; - import io.vram.frex.api.math.FixedMath255; import io.vram.frex.api.math.PackedSectionPos; import io.vram.frex.base.renderer.mesh.BaseQuadView; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; /** * Adapted from vanilla. Holds positional data in related functions for each block face. diff --git a/common/src/main/java/io/vram/frex/base/renderer/ao/AoFaceCalc.java b/common/src/main/java/io/vram/frex/base/renderer/ao/AoFaceCalc.java index 2ea7b1ef..0260f63c 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/ao/AoFaceCalc.java +++ b/common/src/main/java/io/vram/frex/base/renderer/ao/AoFaceCalc.java @@ -21,7 +21,6 @@ package io.vram.frex.base.renderer.ao; import java.util.function.IntBinaryOperator; - import io.vram.frex.api.math.FixedMath255; /** diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/input/AbsentInputContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/input/AbsentInputContext.java index 03aa9e47..c4d86ad5 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/input/AbsentInputContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/input/AbsentInputContext.java @@ -20,10 +20,9 @@ package io.vram.frex.base.renderer.context.input; -import net.minecraft.client.renderer.texture.OverlayTexture; - import io.vram.frex.api.math.MatrixStack; import io.vram.frex.base.renderer.mesh.BaseQuadEmitter; +import net.minecraft.client.renderer.texture.OverlayTexture; public class AbsentInputContext extends BaseInputContext { public AbsentInputContext() { diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseBakedInputContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseBakedInputContext.java index 22ce9ad3..f464effc 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseBakedInputContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseBakedInputContext.java @@ -20,11 +20,10 @@ package io.vram.frex.base.renderer.context.input; +import io.vram.frex.api.model.BakedInputContext; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.resources.model.BakedModel; -import io.vram.frex.api.model.BakedInputContext; - public abstract class BaseBakedInputContext extends BaseInputContext implements BakedInputContext { protected BakedModel bakedModel; protected RenderType defaultRenderType; diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseBlockInputContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseBlockInputContext.java index c8ffb435..2b9f4aa9 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseBlockInputContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseBlockInputContext.java @@ -21,11 +21,11 @@ package io.vram.frex.base.renderer.context.input; import org.jetbrains.annotations.Nullable; - import net.minecraft.client.Minecraft; import net.minecraft.client.color.block.BlockColors; import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.LevelRenderer; +import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; @@ -33,7 +33,6 @@ import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; - import io.vram.frex.api.math.MatrixStack; import io.vram.frex.api.model.BlockModel.BlockInputContext; import io.vram.frex.api.model.util.FaceUtil; diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseInputContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseInputContext.java index fa1006ff..04686b12 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseInputContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseInputContext.java @@ -20,11 +20,10 @@ package io.vram.frex.base.renderer.context.input; -import net.minecraft.util.RandomSource; - import io.vram.frex.api.math.MatrixStack; import io.vram.frex.api.model.InputContext; import io.vram.frex.base.renderer.mesh.BaseQuadEmitter; +import net.minecraft.util.RandomSource; public abstract class BaseInputContext implements InputContext { protected final Type type; diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseItemInputContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseItemInputContext.java index 18cbf418..2a46d4df 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseItemInputContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/input/BaseItemInputContext.java @@ -22,11 +22,11 @@ import net.minecraft.client.color.item.ItemColors; import net.minecraft.client.renderer.ItemBlockRenderTypes; +import net.minecraft.client.renderer.RenderType; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; - import io.vram.frex.api.math.MatrixStack; import io.vram.frex.api.model.ItemModel.ItemInputContext; import io.vram.frex.api.rendertype.RenderTypeUtil; diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/render/BakedRenderContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/render/BakedRenderContext.java index 8e748a27..db903c68 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/render/BakedRenderContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/render/BakedRenderContext.java @@ -20,11 +20,10 @@ package io.vram.frex.base.renderer.context.render; -import net.minecraft.client.renderer.texture.OverlayTexture; - import io.vram.frex.api.material.MaterialConstants; import io.vram.frex.base.renderer.context.input.BaseBakedInputContext; import io.vram.frex.base.renderer.mesh.BaseQuadEmitter; +import net.minecraft.client.renderer.texture.OverlayTexture; /** * Base class for block and item contexts, or "baked" models. diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/render/BaseRenderContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/render/BaseRenderContext.java index 3939a2f4..d8127e60 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/render/BaseRenderContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/render/BaseRenderContext.java @@ -20,8 +20,6 @@ package io.vram.frex.base.renderer.context.render; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.MaterialMap; @@ -32,6 +30,7 @@ import io.vram.frex.base.renderer.mesh.MeshEncodingHelper; import io.vram.frex.base.renderer.mesh.RootQuadEmitter; import io.vram.frex.pastel.PastelTerrainRenderContext; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; /** * Base class for all render contexts. ender contexts handle state management diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/render/BlockRenderContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/render/BlockRenderContext.java index 69a20c4a..c2f1e0d2 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/render/BlockRenderContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/render/BlockRenderContext.java @@ -20,16 +20,16 @@ package io.vram.frex.base.renderer.context.render; +import io.vram.frex.api.material.MaterialMap; +import io.vram.frex.api.model.util.ColorUtil; +import io.vram.frex.base.renderer.context.input.BaseBlockInputContext; +import io.vram.frex.base.renderer.util.EncoderUtil; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.state.BlockState; - -import io.vram.frex.api.material.MaterialMap; -import io.vram.frex.api.model.util.ColorUtil; -import io.vram.frex.base.renderer.context.input.BaseBlockInputContext; -import io.vram.frex.base.renderer.util.EncoderUtil; +import net.minecraft.world.level.material.FluidState; public abstract class BlockRenderContext extends BakedRenderContext> { /** diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/render/EntityBlockRenderContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/render/EntityBlockRenderContext.java index 19776f8c..8cd18b0c 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/render/EntityBlockRenderContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/render/EntityBlockRenderContext.java @@ -21,10 +21,11 @@ package io.vram.frex.base.renderer.context.render; import org.jetbrains.annotations.Nullable; - -import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; - +import io.vram.frex.api.material.MaterialMap; +import io.vram.frex.api.math.MatrixStack; +import io.vram.frex.api.model.BlockModel; +import io.vram.frex.base.renderer.context.input.BaseBlockInputContext; import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.Sheets; @@ -39,11 +40,6 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; -import io.vram.frex.api.material.MaterialMap; -import io.vram.frex.api.math.MatrixStack; -import io.vram.frex.api.model.BlockModel; -import io.vram.frex.base.renderer.context.input.BaseBlockInputContext; - /** * Context used when blocks are rendered as part of an entity. * Vanilla examples include blocks held be endermen, blocks in minecarts, @@ -89,7 +85,7 @@ public void setPosAndWorldFromEntity(Entity entity) { /** * Assumes region and block pos set earlier via {@link #setPosAndWorldFromEntity(Entity)}. */ - public void render(ModelBlockRenderer vanillaRenderer, BakedModel model, BlockState state, PoseStack poseStack, MultiBufferSource consumers, int overlay, int light) { + public void render(ModelBlockRenderer vanillaRenderer, BakedModel model, BlockState state, com.mojang.blaze3d.vertex.PoseStack poseStack, MultiBufferSource consumers, int overlay, int light) { defaultConsumer = consumers.getBuffer(ItemBlockRenderTypes.getRenderType(state, false)); this.light = light; inputContext.prepareForWorld(level, false, MatrixStack.fromVanilla(poseStack)); @@ -100,7 +96,7 @@ public void render(ModelBlockRenderer vanillaRenderer, BakedModel model, BlockSt } // item frames don't have a block state but render like a block - public void renderItemFrame(ModelBlockRenderer modelRenderer, BakedModel model, PoseStack poseStack, MultiBufferSource consumers, int overlay, int light, ItemFrame itemFrameEntity) { + public void renderItemFrame(ModelBlockRenderer modelRenderer, BakedModel model, com.mojang.blaze3d.vertex.PoseStack poseStack, MultiBufferSource consumers, int overlay, int light, ItemFrame itemFrameEntity) { defaultConsumer = consumers.getBuffer(Sheets.solidBlockSheet()); this.light = light; inputContext.prepareForWorld(level, false, MatrixStack.fromVanilla(poseStack)); diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/render/ItemRenderContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/render/ItemRenderContext.java index eab4ab01..3940867e 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/render/ItemRenderContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/render/ItemRenderContext.java @@ -20,23 +20,21 @@ package io.vram.frex.base.renderer.context.render; -import com.mojang.blaze3d.vertex.PoseStack; - +import io.vram.frex.api.material.MaterialConstants; +import io.vram.frex.api.material.MaterialMap; +import io.vram.frex.api.math.MatrixStack; +import io.vram.frex.api.model.ItemModel; +import io.vram.frex.base.renderer.context.input.BaseItemInputContext; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; import net.minecraft.client.renderer.ItemModelShaper; import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import io.vram.frex.api.material.MaterialConstants; -import io.vram.frex.api.material.MaterialMap; -import io.vram.frex.api.math.MatrixStack; -import io.vram.frex.api.model.ItemModel; -import io.vram.frex.base.renderer.context.input.BaseItemInputContext; - public abstract class ItemRenderContext extends BakedRenderContext { @Override protected BaseItemInputContext createInputContext() { @@ -46,7 +44,7 @@ protected BaseItemInputContext createInputContext() { protected abstract void prepareEncoding(MultiBufferSource vertexConsumers); @SuppressWarnings("resource") - public void renderItem(ItemModelShaper models, ItemStack stack, ItemDisplayContext renderMode, boolean isLeftHand, PoseStack poseStack, MultiBufferSource vertexConsumers, int light, int overlay, BakedModel model) { + public void renderItem(ItemModelShaper models, ItemStack stack, ItemDisplayContext renderMode, boolean isLeftHand, com.mojang.blaze3d.vertex.PoseStack poseStack, MultiBufferSource vertexConsumers, int light, int overlay, BakedModel model) { if (stack.isEmpty()) return; final boolean detachedPerspective = renderMode == ItemDisplayContext.GUI || renderMode == ItemDisplayContext.GROUND || renderMode == ItemDisplayContext.FIXED; diff --git a/common/src/main/java/io/vram/frex/base/renderer/context/render/SimpleBlockRenderContext.java b/common/src/main/java/io/vram/frex/base/renderer/context/render/SimpleBlockRenderContext.java index d10651a4..1f2f4b73 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/context/render/SimpleBlockRenderContext.java +++ b/common/src/main/java/io/vram/frex/base/renderer/context/render/SimpleBlockRenderContext.java @@ -21,26 +21,22 @@ package io.vram.frex.base.renderer.context.render; import org.jetbrains.annotations.Nullable; - -import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; - +import io.vram.frex.api.math.MatrixStack; +import io.vram.frex.api.model.BlockModel; import net.minecraft.client.renderer.block.ModelBlockRenderer; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.state.BlockState; -import io.vram.frex.api.math.MatrixStack; -import io.vram.frex.api.model.BlockModel; - /** * Context for non-terrain block rendering. */ public abstract class SimpleBlockRenderContext extends BlockRenderContext { @Nullable protected VertexConsumer defaultConsumer; - public void render(ModelBlockRenderer vanillaRenderer, BlockAndTintGetter blockView, BakedModel model, BlockState state, BlockPos pos, PoseStack poseStack, VertexConsumer buffer, boolean checkSides, long seed, int overlay) { + public void render(ModelBlockRenderer vanillaRenderer, BlockAndTintGetter blockView, BakedModel model, BlockState state, BlockPos pos, com.mojang.blaze3d.vertex.PoseStack poseStack, VertexConsumer buffer, boolean checkSides, long seed, int overlay) { defaultConsumer = buffer; inputContext.prepareForWorld(blockView, checkSides, MatrixStack.fromVanilla(poseStack)); prepareForBlock(model, state, pos, seed, overlay); diff --git a/common/src/main/java/io/vram/frex/base/renderer/material/BaseMaterialManager.java b/common/src/main/java/io/vram/frex/base/renderer/material/BaseMaterialManager.java index 96151771..67ff3b9e 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/material/BaseMaterialManager.java +++ b/common/src/main/java/io/vram/frex/base/renderer/material/BaseMaterialManager.java @@ -23,13 +23,10 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; - -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import org.jetbrains.annotations.Nullable; - import net.minecraft.resources.ResourceLocation; import net.minecraft.world.inventory.InventoryMenu; - +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import org.jetbrains.annotations.Nullable; import io.vram.frex.api.material.MaterialConstants; import io.vram.frex.api.material.RenderMaterial; import io.vram.frex.api.renderer.ConditionManager; diff --git a/common/src/main/java/io/vram/frex/base/renderer/material/BaseMaterialTexture.java b/common/src/main/java/io/vram/frex/base/renderer/material/BaseMaterialTexture.java index af148f6b..36f6df62 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/material/BaseMaterialTexture.java +++ b/common/src/main/java/io/vram/frex/base/renderer/material/BaseMaterialTexture.java @@ -20,17 +20,16 @@ package io.vram.frex.base.renderer.material; +import io.vram.frex.api.texture.MaterialTexture; +import io.vram.frex.api.texture.SpriteFinder; +import io.vram.frex.api.texture.SpriteIndex; +import io.vram.frex.base.renderer.util.ResourceCache; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.AbstractTexture; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.resources.ResourceLocation; -import io.vram.frex.api.texture.MaterialTexture; -import io.vram.frex.api.texture.SpriteFinder; -import io.vram.frex.api.texture.SpriteIndex; -import io.vram.frex.base.renderer.util.ResourceCache; - public class BaseMaterialTexture implements MaterialTexture { protected final int index; protected final ResourceLocation id; diff --git a/common/src/main/java/io/vram/frex/base/renderer/material/BaseTextureManager.java b/common/src/main/java/io/vram/frex/base/renderer/material/BaseTextureManager.java index bd564b74..e64f27e5 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/material/BaseTextureManager.java +++ b/common/src/main/java/io/vram/frex/base/renderer/material/BaseTextureManager.java @@ -22,10 +22,8 @@ import it.unimi.dsi.fastutil.Hash; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; - import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.material.MaterialConstants; import io.vram.frex.api.renderer.MaterialTextureManager; import io.vram.frex.api.texture.MaterialTexture; diff --git a/common/src/main/java/io/vram/frex/base/renderer/material/UnsupportedConditionManager.java b/common/src/main/java/io/vram/frex/base/renderer/material/UnsupportedConditionManager.java index 344487b4..134f989e 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/material/UnsupportedConditionManager.java +++ b/common/src/main/java/io/vram/frex/base/renderer/material/UnsupportedConditionManager.java @@ -21,9 +21,7 @@ package io.vram.frex.base.renderer.material; import java.util.function.BooleanSupplier; - import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.material.MaterialCondition; import io.vram.frex.api.renderer.ConditionManager; diff --git a/common/src/main/java/io/vram/frex/base/renderer/mesh/BaseQuadEmitter.java b/common/src/main/java/io/vram/frex/base/renderer/mesh/BaseQuadEmitter.java index 6854034e..84ce43fd 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/mesh/BaseQuadEmitter.java +++ b/common/src/main/java/io/vram/frex/base/renderer/mesh/BaseQuadEmitter.java @@ -44,15 +44,10 @@ import static io.vram.frex.base.renderer.mesh.MeshEncodingHelper.VERTEX_U0; import static io.vram.frex.base.renderer.mesh.MeshEncodingHelper.VERTEX_X0; +import com.mojang.blaze3d.vertex.PoseStack; import org.jetbrains.annotations.Nullable; +import org.joml.Matrix3f; import org.joml.Matrix4f; - -import com.mojang.blaze3d.vertex.PoseStack; - -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.core.Direction; - import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.api.buffer.VertexEmitter; import io.vram.frex.api.material.RenderMaterial; @@ -60,7 +55,11 @@ import io.vram.frex.api.model.BakedInputContext; import io.vram.frex.api.model.util.ColorUtil; import io.vram.frex.api.model.util.FaceUtil; +import io.vram.frex.api.texture.SpriteIndex; import io.vram.frex.impl.texture.IndexedSprite; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.core.Direction; /** * Almost-concrete implementation of a mutable quad. The only missing part is {@link #emit()}, @@ -464,46 +463,46 @@ public void unsetDefaultColor() { @Override public void vertex(float x, float y, float z, float red, float green, float blue, float alpha, float u, float v, int overlay, int light, float normalX, float normalY, float normalZ) { - vertex(x, y, z); - color(MeshEncodingHelper.packColor(red, green, blue, alpha)); - uv(u, v); - setOverlay(overlay); - uv2(light); - normal(normalX, normalY, normalZ); + addVertex(x, y, z); + setColor(MeshEncodingHelper.packColor(red, green, blue, alpha)); + setUv(u, v); + setOverlayValue(overlay); + setLight(light); + setNormal(normalX, normalY, normalZ); endVertex(); } @Override - public VertexEmitter vertex(float x, float y, float z) { + public VertexEmitter addVertex(float x, float y, float z) { pos(vertexIndex, x, y, z); return this; } @Override - public VertexEmitter color(int color) { + public VertexEmitter setColor(int color) { vertexColor(vertexIndex, color); return this; } @Override - public VertexEmitter uv(float u, float v) { + public VertexEmitter setUv(float u, float v) { uv(vertexIndex, u, v); return this; } @Override - public VertexEmitter overlayCoords(int u, int v) { - setOverlay(u, v); + public VertexEmitter setUv1(int u, int v) { + setOverlayValue(u, v); return this; } @Override - public VertexEmitter overlayCoords(int uv) { - setOverlay(uv); + public VertexEmitter setOverlay(int uv) { + setOverlayValue(uv); return this; } - protected void setOverlay(int uv) { + protected void setOverlayValue(int uv) { final var mat = material(); final var oMat = mat.withOverlay(uv); @@ -512,7 +511,7 @@ protected void setOverlay(int uv) { } } - protected void setOverlay (int u, int v) { + protected void setOverlayValue(int u, int v) { final var mat = material(); final var oMat = mat.withOverlay(u, v); @@ -522,44 +521,44 @@ protected void setOverlay (int u, int v) { } @Override - public VertexEmitter uv2(int block, int sky) { + public VertexEmitter setUv2(int block, int sky) { this.lightmap(vertexIndex, (block & 0xFF) | ((sky & 0xFF) << 8)); return this; } @Override - public VertexEmitter uv2(int lightmap) { + public VertexEmitter setLight(int lightmap) { this.lightmap(vertexIndex, lightmap); return this; } @Override - public VertexEmitter normal(float x, float y, float z) { + public VertexEmitter setNormal(float x, float y, float z) { this.normal(vertexIndex, x, y, z); return this; } @Override - public VertexEmitter color(int red, int green, int blue, int alpha) { - return color(MeshEncodingHelper.packColor(red, green, blue, alpha)); + public VertexEmitter setColor(int red, int green, int blue, int alpha) { + return setColor(MeshEncodingHelper.packColor(red, green, blue, alpha)); } @Override - public VertexEmitter vertex(Matrix4f mat, float x, float y, float z) { + public VertexEmitter addVertex(Matrix4f mat, float x, float y, float z) { final float tx = mat.m00() * x + mat.m10() * y + mat.m20() * z + mat.m30(); final float ty = mat.m01() * x + mat.m11() * y + mat.m21() * z + mat.m31(); final float tz = mat.m02() * x + mat.m12() * y + mat.m22() * z + mat.m32(); - return this.vertex(tx, ty, tz); + return this.addVertex(tx, ty, tz); } @Override - public VertexEmitter normal(PoseStack.Pose pose, float x, float y, float z) { + public VertexEmitter setNormal(PoseStack.Pose pose, float x, float y, float z) { final var mat = pose.normal(); final float tx = mat.m00() * x + mat.m10() * y + mat.m20() * z; final float ty = mat.m01() * x + mat.m11() * y + mat.m21() * z; final float tz = mat.m02() * x + mat.m12() * y + mat.m22() * z; - return this.normal(tx, ty, tz); + return this.setNormal(tx, ty, tz); } } diff --git a/common/src/main/java/io/vram/frex/base/renderer/mesh/BaseQuadView.java b/common/src/main/java/io/vram/frex/base/renderer/mesh/BaseQuadView.java index a4ef2be8..9ed302bf 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/mesh/BaseQuadView.java +++ b/common/src/main/java/io/vram/frex/base/renderer/mesh/BaseQuadView.java @@ -44,13 +44,9 @@ import static io.vram.frex.base.renderer.mesh.MeshEncodingHelper.VERTEX_Y0; import static io.vram.frex.base.renderer.mesh.MeshEncodingHelper.VERTEX_Z0; +import com.mojang.blaze3d.vertex.VertexConsumer; import org.joml.Matrix4f; import org.joml.Vector3f; - -import com.mojang.blaze3d.vertex.VertexConsumer; - -import net.minecraft.core.Direction; - import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.api.config.FrexConfig; import io.vram.frex.api.material.RenderMaterial; @@ -58,6 +54,7 @@ import io.vram.frex.api.mesh.QuadView; import io.vram.frex.api.model.util.FaceUtil; import io.vram.frex.api.model.util.GeometryUtil; +import net.minecraft.core.Direction; /** * Base class for all quads / quad makers. Handles the ugly bits @@ -482,6 +479,6 @@ public void transformAndAppendVertex(final int vertexIndex, final Matrix4f matri final float yOut = matrix.m01() * x + matrix.m11() * y + matrix.m21() * z + matrix.m31(); final float zOut = matrix.m02() * x + matrix.m12() * y + matrix.m22() * z + matrix.m32(); - buff.vertex(xOut, yOut, zOut); + buff.addVertex(xOut, yOut, zOut); } } diff --git a/common/src/main/java/io/vram/frex/base/renderer/mesh/TextureHelper.java b/common/src/main/java/io/vram/frex/base/renderer/mesh/TextureHelper.java index d72a0abb..660350ad 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/mesh/TextureHelper.java +++ b/common/src/main/java/io/vram/frex/base/renderer/mesh/TextureHelper.java @@ -22,11 +22,10 @@ import static io.vram.frex.base.renderer.mesh.MeshEncodingHelper.UV_PRECISE_UNIT_VALUE; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.core.Direction; - import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.impl.texture.IndexedSprite; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.core.Direction; /** * Handles most texture-baking use cases for model loaders and model libraries diff --git a/common/src/main/java/io/vram/frex/base/renderer/util/BakedModelTranscoder.java b/common/src/main/java/io/vram/frex/base/renderer/util/BakedModelTranscoder.java index 52b5a5d4..c875accd 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/util/BakedModelTranscoder.java +++ b/common/src/main/java/io/vram/frex/base/renderer/util/BakedModelTranscoder.java @@ -21,15 +21,13 @@ package io.vram.frex.base.renderer.util; import java.util.List; - -import org.jetbrains.annotations.Nullable; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.state.BlockState; - +import org.jetbrains.annotations.Nullable; import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.api.material.MaterialConstants; import io.vram.frex.api.material.MaterialFinder; diff --git a/common/src/main/java/io/vram/frex/base/renderer/util/EncoderUtil.java b/common/src/main/java/io/vram/frex/base/renderer/util/EncoderUtil.java index fb559530..28e491bd 100644 --- a/common/src/main/java/io/vram/frex/base/renderer/util/EncoderUtil.java +++ b/common/src/main/java/io/vram/frex/base/renderer/util/EncoderUtil.java @@ -22,17 +22,16 @@ import org.joml.Matrix3f; import org.joml.Matrix4f; - import com.mojang.blaze3d.vertex.VertexConsumer; - -import net.minecraft.core.Direction; -import net.minecraft.world.level.BlockAndTintGetter; - +import io.vram.frex.api.material.RenderMaterial; import io.vram.frex.api.math.FrexMathUtil; +import io.vram.frex.api.math.MatrixStack; import io.vram.frex.api.math.PackedVector3f; import io.vram.frex.api.model.InputContext; import io.vram.frex.base.renderer.mesh.BaseQuadEmitter; import io.vram.frex.base.renderer.mesh.MeshEncodingHelper; +import net.minecraft.core.Direction; +import net.minecraft.world.level.BlockAndTintGetter; public abstract class EncoderUtil { public static void encodeQuad(BaseQuadEmitter quad, InputContext inputContext, VertexConsumer buff) { @@ -60,11 +59,11 @@ public static void encodeQuad(BaseQuadEmitter quad, InputContext inputContext, V quad.transformAndAppendVertex(i, matrix, buff); final int color = quad.vertexColor(i); - buff.color(color & 0xFF, (color >> 8) & 0xFF, (color >> 16) & 0xFF, (color >> 24) & 0xFF); + buff.setColor(color & 0xFF, (color >> 8) & 0xFF, (color >> 16) & 0xFF, (color >> 24) & 0xFF); - buff.uv(quad.u(i), quad.v(i)); - buff.overlayCoords(overlayU, overlayV); - buff.uv2(emissive ? MeshEncodingHelper.FULL_BRIGHTNESS : quad.lightmap(i)); + buff.setUv(quad.u(i), quad.v(i)); + buff.setUv1(overlayU, overlayV); + buff.setLight(emissive ? MeshEncodingHelper.FULL_BRIGHTNESS : quad.lightmap(i)); final int p = ((quadNormalFlags & 1 << i) == 0) ? faceNormal : quad.packedNormal(i); @@ -76,7 +75,7 @@ public static void encodeQuad(BaseQuadEmitter quad, InputContext inputContext, V nz = PackedVector3f.unpackZ(transformedNormal); } - buff.normal(nx, ny, nz); + buff.setNormal(nx, ny, nz); buff.endVertex(); } } diff --git a/common/src/main/java/io/vram/frex/impl/FrexLoadManager.java b/common/src/main/java/io/vram/frex/impl/FrexLoadManager.java index dbb28588..53c6c5ca 100644 --- a/common/src/main/java/io/vram/frex/impl/FrexLoadManager.java +++ b/common/src/main/java/io/vram/frex/impl/FrexLoadManager.java @@ -20,8 +20,6 @@ package io.vram.frex.impl; -import net.minecraft.server.packs.resources.ResourceManager; - import io.vram.frex.api.renderloop.RenderReloadListener; import io.vram.frex.base.renderer.util.ResourceCache; import io.vram.frex.impl.light.ItemLightLoader; @@ -31,6 +29,7 @@ import io.vram.frex.pastel.PastelBlockRenderContext; import io.vram.frex.pastel.PastelEntityBlockRenderContext; import io.vram.frex.pastel.PastelItemRenderContext; +import net.minecraft.server.packs.resources.ResourceManager; public class FrexLoadManager { public static void firstTimeLoad() { diff --git a/common/src/main/java/io/vram/frex/impl/config/ShaderConfigImpl.java b/common/src/main/java/io/vram/frex/impl/config/ShaderConfigImpl.java index f30ae0e5..a69d2a89 100644 --- a/common/src/main/java/io/vram/frex/impl/config/ShaderConfigImpl.java +++ b/common/src/main/java/io/vram/frex/impl/config/ShaderConfigImpl.java @@ -21,13 +21,10 @@ package io.vram.frex.impl.config; import java.util.function.Supplier; - +import net.minecraft.resources.ResourceLocation; import com.google.common.base.Preconditions; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import org.jetbrains.annotations.ApiStatus.Internal; - -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.impl.FrexLog; @Internal diff --git a/common/src/main/java/io/vram/frex/impl/light/HeldItemLightListenerImpl.java b/common/src/main/java/io/vram/frex/impl/light/HeldItemLightListenerImpl.java index ac4dbea0..e9d6f74a 100644 --- a/common/src/main/java/io/vram/frex/impl/light/HeldItemLightListenerImpl.java +++ b/common/src/main/java/io/vram/frex/impl/light/HeldItemLightListenerImpl.java @@ -21,10 +21,8 @@ package io.vram.frex.impl.light; import it.unimi.dsi.fastutil.objects.ObjectArrayList; - import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.ItemStack; - import io.vram.frex.api.light.HeldItemLightListener; import io.vram.frex.api.light.ItemLight; diff --git a/common/src/main/java/io/vram/frex/impl/light/ItemLightDeserializer.java b/common/src/main/java/io/vram/frex/impl/light/ItemLightDeserializer.java index 0b40ef2c..1d322257 100644 --- a/common/src/main/java/io/vram/frex/impl/light/ItemLightDeserializer.java +++ b/common/src/main/java/io/vram/frex/impl/light/ItemLightDeserializer.java @@ -21,12 +21,9 @@ package io.vram.frex.impl.light; import java.io.InputStreamReader; - +import net.minecraft.util.GsonHelper; import com.google.gson.JsonObject; import org.jetbrains.annotations.ApiStatus.Internal; - -import net.minecraft.util.GsonHelper; - import io.vram.frex.api.light.ItemLight; @Internal diff --git a/common/src/main/java/io/vram/frex/impl/light/ItemLightLoader.java b/common/src/main/java/io/vram/frex/impl/light/ItemLightLoader.java index 8d986b04..de9a5b49 100644 --- a/common/src/main/java/io/vram/frex/impl/light/ItemLightLoader.java +++ b/common/src/main/java/io/vram/frex/impl/light/ItemLightLoader.java @@ -23,13 +23,12 @@ import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.util.IdentityHashMap; - +import java.util.Optional; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; - import io.vram.frex.api.light.ItemLight; import io.vram.frex.impl.FrexLog; @@ -46,7 +45,7 @@ public void reload(ResourceManager manager) { private void loadItem(ResourceManager manager, Item item) { final ResourceLocation itemId = BuiltInRegistries.ITEM.getKey(item); - final ResourceLocation id = new ResourceLocation(itemId.getNamespace(), "lights/item/" + itemId.getPath() + ".json"); + final ResourceLocation id = ResourceLocation.fromNamespaceAndPath(itemId.getNamespace(), "lights/item/" + itemId.getPath() + ".json"); try { final var res = manager.getResource(id); diff --git a/common/src/main/java/io/vram/frex/impl/material/BlockPresetsImpl.java b/common/src/main/java/io/vram/frex/impl/material/BlockPresetsImpl.java index c847ebf2..200d2a9b 100644 --- a/common/src/main/java/io/vram/frex/impl/material/BlockPresetsImpl.java +++ b/common/src/main/java/io/vram/frex/impl/material/BlockPresetsImpl.java @@ -21,14 +21,11 @@ package io.vram.frex.impl.material; import java.util.function.BiConsumer; - -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.client.renderer.RenderType; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.material.Fluid; - +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import org.jetbrains.annotations.ApiStatus.Internal; import io.vram.frex.api.material.MaterialConstants; @Internal diff --git a/common/src/main/java/io/vram/frex/impl/material/MaterialDeserializer.java b/common/src/main/java/io/vram/frex/impl/material/MaterialDeserializer.java index 79a722a6..c5b128d6 100644 --- a/common/src/main/java/io/vram/frex/impl/material/MaterialDeserializer.java +++ b/common/src/main/java/io/vram/frex/impl/material/MaterialDeserializer.java @@ -51,14 +51,11 @@ import static io.vram.frex.api.material.MaterialConstants.WRITE_MASK_DEPTH; import java.util.Locale; - +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.GsonHelper; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import org.jetbrains.annotations.ApiStatus.Internal; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.GsonHelper; - import io.vram.frex.api.material.MaterialConstants; import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.RenderMaterial; @@ -94,10 +91,10 @@ private static void readMaterial(JsonObject obj, io.vram.frex.api.material.Mater final String depthVertexSource = GsonHelper.getAsString(obj, "depthVertexSource", null); final String depthFragmentSource = GsonHelper.getAsString(obj, "depthFragmentSource", null); - final ResourceLocation vertexSourceId = vertexSource != null && ResourceLocation.isValidResourceLocation(vertexSource) ? new ResourceLocation(vertexSource) : null; - final ResourceLocation fragmentSourceId = fragmentSource != null && ResourceLocation.isValidResourceLocation(fragmentSource) ? new ResourceLocation(fragmentSource) : null; - final ResourceLocation depthVertexSourceId = depthVertexSource != null && ResourceLocation.isValidResourceLocation(depthVertexSource) ? new ResourceLocation(depthVertexSource) : null; - final ResourceLocation depthFragmentSourceId = depthFragmentSource != null && ResourceLocation.isValidResourceLocation(depthFragmentSource) ? new ResourceLocation(depthFragmentSource) : null; + final ResourceLocation vertexSourceId = vertexSource != null ? ResourceLocation.tryParse(vertexSource) : null; + final ResourceLocation fragmentSourceId = fragmentSource != null ? ResourceLocation.tryParse(fragmentSource) : null; + final ResourceLocation depthVertexSourceId = depthVertexSource != null ? ResourceLocation.tryParse(depthVertexSource) : null; + final ResourceLocation depthFragmentSourceId = depthFragmentSource != null ? ResourceLocation.tryParse(depthFragmentSource) : null; if (fragmentSourceId != null || vertexSourceId != null || depthFragmentSourceId != null || depthVertexSourceId != null) { finder.shader(vertexSourceId, fragmentSourceId, depthVertexSourceId, depthFragmentSourceId); @@ -181,7 +178,7 @@ private static void readMaterial(JsonObject obj, io.vram.frex.api.material.Mater } if (obj.has("texture")) { - finder.texture(new ResourceLocation(GsonHelper.getAsString(obj, "texture"))); + finder.texture(ResourceLocation.parse(GsonHelper.getAsString(obj, "texture"))); } if (obj.has("transparency")) { diff --git a/common/src/main/java/io/vram/frex/impl/material/MaterialLoaderImpl.java b/common/src/main/java/io/vram/frex/impl/material/MaterialLoaderImpl.java index c7d5bc4d..2eda0568 100644 --- a/common/src/main/java/io/vram/frex/impl/material/MaterialLoaderImpl.java +++ b/common/src/main/java/io/vram/frex/impl/material/MaterialLoaderImpl.java @@ -23,13 +23,6 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; - -import com.google.gson.JsonObject; -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; -import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; @@ -37,7 +30,11 @@ import net.minecraft.server.packs.resources.Resource; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.util.GsonHelper; - +import com.google.gson.JsonObject; +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; +import org.jetbrains.annotations.ApiStatus.Internal; import io.vram.frex.api.config.FrexConfig; import io.vram.frex.api.material.RenderMaterial; import io.vram.frex.impl.FrexLog; @@ -52,7 +49,7 @@ private MaterialLoaderImpl() { } private static final ObjectArrayList STANDARD_MATERIAL_IDS = new ObjectArrayList<>(); static { - STANDARD_MATERIAL_IDS.add(new ResourceLocation ("fabric", "standard")); + STANDARD_MATERIAL_IDS.add(ResourceLocation.fromNamespaceAndPath("fabric", "standard")); STANDARD_MATERIAL_IDS.add(RenderMaterial.STANDARD_MATERIAL_KEY); } @@ -63,7 +60,7 @@ public static void reset() { } public static RenderMaterial loadMaterial(String materialString, RenderMaterial defaultValue) { - final ResourceLocation id = new ResourceLocation(materialString); + final ResourceLocation id = ResourceLocation.parse(materialString); RenderMaterial result = loadMaterialCached(id); @@ -98,7 +95,7 @@ private static RenderMaterial loadMaterialInner(ResourceLocation idIn) { return RenderMaterial.defaultMaterial(); } - final ResourceLocation id = new ResourceLocation(idIn.getNamespace(), "materials/" + idIn.getPath() + ".json"); + final ResourceLocation id = ResourceLocation.fromNamespaceAndPath(idIn.getNamespace(), "materials/" + idIn.getPath() + ".json"); RenderMaterial result = null; final ResourceManager rm = Minecraft.getInstance().getResourceManager(); @@ -118,7 +115,7 @@ private static RenderMaterial loadMaterialInner(ResourceLocation idIn) { } public static TextureAtlasSprite loadSprite(String idForLog, String spriteId, TextureAtlas atlas, TextureAtlasSprite missingSprite) { - final TextureAtlasSprite sprite = atlas.getSprite(new ResourceLocation(spriteId)); + final TextureAtlasSprite sprite = atlas.getSprite(ResourceLocation.parse(spriteId)); if (sprite == null || sprite == missingSprite) { FrexLog.warn("Unable to find sprite " + spriteId + " for material map " + idForLog + ". Using default material."); diff --git a/common/src/main/java/io/vram/frex/impl/material/MaterialTransformDeserializer.java b/common/src/main/java/io/vram/frex/impl/material/MaterialTransformDeserializer.java index c4095c5b..4d23d466 100644 --- a/common/src/main/java/io/vram/frex/impl/material/MaterialTransformDeserializer.java +++ b/common/src/main/java/io/vram/frex/impl/material/MaterialTransformDeserializer.java @@ -22,11 +22,9 @@ import com.google.gson.JsonObject; import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; - +import org.jetbrains.annotations.ApiStatus.Internal; import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.MaterialTransform; @@ -74,8 +72,8 @@ private static void readTransforms(JsonObject json, ObjectArrayList finder.shader(vs, fs)); } @@ -183,7 +181,7 @@ private static void readTransforms(JsonObject json, ObjectArrayList finder.texture(texture)); } diff --git a/common/src/main/java/io/vram/frex/impl/material/MaterialTransformLoader.java b/common/src/main/java/io/vram/frex/impl/material/MaterialTransformLoader.java index 0c5a5694..5307a055 100644 --- a/common/src/main/java/io/vram/frex/impl/material/MaterialTransformLoader.java +++ b/common/src/main/java/io/vram/frex/impl/material/MaterialTransformLoader.java @@ -21,13 +21,11 @@ package io.vram.frex.impl.material; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; -import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.Resource; import net.minecraft.server.packs.resources.ResourceManager; - +import org.jetbrains.annotations.ApiStatus.Internal; import io.vram.frex.api.config.FrexConfig; import io.vram.frex.api.material.MaterialTransform; import io.vram.frex.impl.FrexLog; @@ -40,7 +38,7 @@ private MaterialTransformLoader() { } public static MaterialTransform loadTransform(String idForLog, String materialString, MaterialTransform defaultValue) { try { - final MaterialTransform result = loadTransformInner(new ResourceLocation(materialString)); + final MaterialTransform result = loadTransformInner(ResourceLocation.parse(materialString)); return result == null ? defaultValue : result; } catch (final Exception e) { FrexLog.warn("Unable to load material transform " + materialString + " for material map " + idForLog + " because of exception. Using default transform.", e); @@ -49,7 +47,7 @@ public static MaterialTransform loadTransform(String idForLog, String materialSt } private static MaterialTransform loadTransformInner(ResourceLocation idIn) { - final ResourceLocation id = new ResourceLocation(idIn.getNamespace(), "materials/" + idIn.getPath() + ".json"); + final ResourceLocation id = ResourceLocation.fromNamespaceAndPath(idIn.getNamespace(), "materials/" + idIn.getPath() + ".json"); MaterialTransform result = null; final ResourceManager rm = Minecraft.getInstance().getResourceManager(); diff --git a/common/src/main/java/io/vram/frex/impl/material/RenderTypeExclusionImpl.java b/common/src/main/java/io/vram/frex/impl/material/RenderTypeExclusionImpl.java index eec2afb4..e70ca4a4 100644 --- a/common/src/main/java/io/vram/frex/impl/material/RenderTypeExclusionImpl.java +++ b/common/src/main/java/io/vram/frex/impl/material/RenderTypeExclusionImpl.java @@ -21,14 +21,12 @@ package io.vram.frex.impl.material; import java.util.function.Predicate; - +import net.minecraft.client.renderer.RenderType; import it.unimi.dsi.fastutil.Hash; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; import org.jetbrains.annotations.ApiStatus.Internal; -import net.minecraft.client.renderer.RenderType; - @Internal public class RenderTypeExclusionImpl { private static final ReferenceOpenHashSet EXCLUSIONS = new ReferenceOpenHashSet<>(64, Hash.VERY_FAST_LOAD_FACTOR); diff --git a/common/src/main/java/io/vram/frex/impl/material/RenderTypeShardHelper.java b/common/src/main/java/io/vram/frex/impl/material/RenderTypeShardHelper.java index 68b340f2..5b28beab 100644 --- a/common/src/main/java/io/vram/frex/impl/material/RenderTypeShardHelper.java +++ b/common/src/main/java/io/vram/frex/impl/material/RenderTypeShardHelper.java @@ -96,4 +96,4 @@ public static int toMaterialTransparency(TransparencyStateShard phase) { return MaterialConstants.TRANSPARENCY_NONE; } } -} +} \ No newline at end of file diff --git a/common/src/main/java/io/vram/frex/impl/material/map/BlockEntityMaterialMapDeserializer.java b/common/src/main/java/io/vram/frex/impl/material/map/BlockEntityMaterialMapDeserializer.java index 3125f0a3..73510d9d 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/BlockEntityMaterialMapDeserializer.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/BlockEntityMaterialMapDeserializer.java @@ -28,22 +28,19 @@ import java.util.IdentityHashMap; import java.util.List; import java.util.function.BiPredicate; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import org.jetbrains.annotations.ApiStatus.Internal; -import org.spongepowered.include.com.google.gson.JsonParseException; - -import com.mojang.serialization.JsonOps; - import net.minecraft.advancements.critereon.StatePropertiesPredicate; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.Resource; import net.minecraft.util.GsonHelper; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import org.jetbrains.annotations.ApiStatus.Internal; +import org.spongepowered.include.com.google.gson.JsonParseException; +import com.mojang.serialization.JsonOps; import io.vram.frex.api.config.FrexConfig; import io.vram.frex.api.material.MaterialMap; import io.vram.frex.api.material.MaterialTransform; diff --git a/common/src/main/java/io/vram/frex/impl/material/map/DefaultedSpriteMaterialMap.java b/common/src/main/java/io/vram/frex/impl/material/map/DefaultedSpriteMaterialMap.java index 7acdae05..a1d893e3 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/DefaultedSpriteMaterialMap.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/DefaultedSpriteMaterialMap.java @@ -21,12 +21,9 @@ package io.vram.frex.impl.material.map; import java.util.IdentityHashMap; - +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import org.jetbrains.annotations.ApiStatus.Internal; import org.jetbrains.annotations.Nullable; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.MaterialMap; import io.vram.frex.api.material.MaterialTransform; diff --git a/common/src/main/java/io/vram/frex/impl/material/map/EntityMaterialMapDeserializer.java b/common/src/main/java/io/vram/frex/impl/material/map/EntityMaterialMapDeserializer.java index 6483467b..72beb7ff 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/EntityMaterialMapDeserializer.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/EntityMaterialMapDeserializer.java @@ -28,18 +28,15 @@ import java.util.IdentityHashMap; import java.util.List; import java.util.function.BiPredicate; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.Resource; import net.minecraft.util.GsonHelper; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; - +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import org.jetbrains.annotations.ApiStatus.Internal; import io.vram.frex.api.config.FrexConfig; import io.vram.frex.api.material.MaterialMap; import io.vram.frex.api.material.MaterialTransform; diff --git a/common/src/main/java/io/vram/frex/impl/material/map/ItemMaterialMapDeserializer.java b/common/src/main/java/io/vram/frex/impl/material/map/ItemMaterialMapDeserializer.java index 0d4422a2..a189b218 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/ItemMaterialMapDeserializer.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/ItemMaterialMapDeserializer.java @@ -22,16 +22,13 @@ import java.io.InputStreamReader; import java.util.IdentityHashMap; - -import com.google.gson.JsonObject; -import org.jetbrains.annotations.ApiStatus.Internal; -import org.jetbrains.annotations.Nullable; - import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; - +import com.google.gson.JsonObject; +import org.jetbrains.annotations.ApiStatus.Internal; +import org.jetbrains.annotations.Nullable; import io.vram.frex.api.material.MaterialMap; import io.vram.frex.api.material.MaterialTransform; import io.vram.frex.impl.FrexLog; diff --git a/common/src/main/java/io/vram/frex/impl/material/map/MaterialMapDeserializer.java b/common/src/main/java/io/vram/frex/impl/material/map/MaterialMapDeserializer.java index 7e935915..0cf5a01f 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/MaterialMapDeserializer.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/MaterialMapDeserializer.java @@ -23,12 +23,6 @@ import java.io.InputStreamReader; import java.util.IdentityHashMap; import java.util.List; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import org.jetbrains.annotations.ApiStatus.Internal; -import org.jetbrains.annotations.Nullable; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.block.BlockModelShaper; import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite; @@ -38,7 +32,10 @@ import net.minecraft.util.GsonHelper; import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.level.block.state.StateHolder; - +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import org.jetbrains.annotations.ApiStatus.Internal; +import org.jetbrains.annotations.Nullable; import io.vram.frex.api.material.MaterialMap; import io.vram.frex.api.material.MaterialTransform; import io.vram.frex.api.material.RenderMaterial; diff --git a/common/src/main/java/io/vram/frex/impl/material/map/MaterialMapLoader.java b/common/src/main/java/io/vram/frex/impl/material/map/MaterialMapLoader.java index c4b0a6a6..ad4d2e18 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/MaterialMapLoader.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/MaterialMapLoader.java @@ -24,9 +24,8 @@ import java.nio.charset.StandardCharsets; import java.util.IdentityHashMap; import java.util.List; - +import java.util.Optional; import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.client.particle.Particle; import net.minecraft.core.particles.ParticleType; import net.minecraft.core.registries.BuiltInRegistries; @@ -43,7 +42,6 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.FluidState; - import io.vram.frex.api.material.MaterialMap; import io.vram.frex.impl.FrexLog; import io.vram.frex.impl.material.MaterialLoaderImpl; @@ -120,7 +118,7 @@ public void reload(ResourceManager manager) { private void loadBlock(ResourceManager manager, Block block) { final ResourceLocation blockId = BuiltInRegistries.BLOCK.getKey(block); - final ResourceLocation id = new ResourceLocation(blockId.getNamespace(), "materialmaps/block/" + blockId.getPath() + ".json"); + final ResourceLocation id = ResourceLocation.fromNamespaceAndPath(blockId.getNamespace(), "materialmaps/block/" + blockId.getPath() + ".json"); try { final var res = manager.getResource(id); @@ -136,7 +134,7 @@ private void loadBlock(ResourceManager manager, Block block) { private void loadFluid(ResourceManager manager, Fluid fluid) { final ResourceLocation blockId = BuiltInRegistries.FLUID.getKey(fluid); - final ResourceLocation id = new ResourceLocation(blockId.getNamespace(), "materialmaps/fluid/" + blockId.getPath() + ".json"); + final ResourceLocation id = ResourceLocation.fromNamespaceAndPath(blockId.getNamespace(), "materialmaps/fluid/" + blockId.getPath() + ".json"); try { final var res = manager.getResource(id); @@ -152,7 +150,7 @@ private void loadFluid(ResourceManager manager, Fluid fluid) { private void loadItem(ResourceManager manager, Item item) { final ResourceLocation itemId = BuiltInRegistries.ITEM.getKey(item); - final ResourceLocation id = new ResourceLocation(itemId.getNamespace(), "materialmaps/item/" + itemId.getPath() + ".json"); + final ResourceLocation id = ResourceLocation.fromNamespaceAndPath(itemId.getNamespace(), "materialmaps/item/" + itemId.getPath() + ".json"); try { final var res = manager.getResource(id); @@ -181,7 +179,7 @@ private void loadParticle(ResourceManager manager, ParticleType particleType) if (particleId == null) return; - final ResourceLocation id = new ResourceLocation(particleId.getNamespace(), "materialmaps/particle/" + particleId.getPath() + ".json"); + final ResourceLocation id = ResourceLocation.fromNamespaceAndPath(particleId.getNamespace(), "materialmaps/particle/" + particleId.getPath() + ".json"); try { final var res = manager.getResource(id); @@ -199,7 +197,7 @@ private void loadBlockEntity(ResourceManager manager, BlockEntityType blockEn if (blockEntityId == null) return; - final ResourceLocation id = new ResourceLocation(blockEntityId.getNamespace(), "materialmaps/block_entity/" + blockEntityId.getPath() + ".json"); + final ResourceLocation id = ResourceLocation.fromNamespaceAndPath(blockEntityId.getNamespace(), "materialmaps/block_entity/" + blockEntityId.getPath() + ".json"); try { final List resources = manager.getResourceStack(id); @@ -214,7 +212,7 @@ private void loadBlockEntity(ResourceManager manager, BlockEntityType blockEn private void loadEntity(ResourceManager manager, EntityType entityType) { final ResourceLocation entityId = BuiltInRegistries.ENTITY_TYPE.getKey(entityType); - final ResourceLocation id = new ResourceLocation(entityId.getNamespace(), "materialmaps/entity/" + entityId.getPath() + ".json"); + final ResourceLocation id = ResourceLocation.fromNamespaceAndPath(entityId.getNamespace(), "materialmaps/entity/" + entityId.getPath() + ".json"); try { final List resources = manager.getResourceStack(id); diff --git a/common/src/main/java/io/vram/frex/impl/material/map/MultiMaterialMap.java b/common/src/main/java/io/vram/frex/impl/material/map/MultiMaterialMap.java index 093f8b16..5426d659 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/MultiMaterialMap.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/MultiMaterialMap.java @@ -21,12 +21,9 @@ package io.vram.frex.impl.material.map; import java.util.function.BiPredicate; - +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import org.jetbrains.annotations.ApiStatus.Internal; import org.jetbrains.annotations.Nullable; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.MaterialMap; import io.vram.frex.api.material.MaterialTransform; diff --git a/common/src/main/java/io/vram/frex/impl/material/map/ParticleMaterialMapDeserializer.java b/common/src/main/java/io/vram/frex/impl/material/map/ParticleMaterialMapDeserializer.java index 2dcd875d..4712f647 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/ParticleMaterialMapDeserializer.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/ParticleMaterialMapDeserializer.java @@ -30,7 +30,6 @@ import net.minecraft.core.particles.ParticleType; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; - import io.vram.frex.api.material.MaterialMap; import io.vram.frex.impl.FrexLog; import io.vram.frex.impl.material.MaterialLoaderImpl; diff --git a/common/src/main/java/io/vram/frex/impl/material/map/SingleInvariantMaterialMap.java b/common/src/main/java/io/vram/frex/impl/material/map/SingleInvariantMaterialMap.java index 5b3a1c80..b850069d 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/SingleInvariantMaterialMap.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/SingleInvariantMaterialMap.java @@ -22,12 +22,10 @@ import org.jetbrains.annotations.ApiStatus.Internal; import org.jetbrains.annotations.Nullable; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.MaterialMap; import io.vram.frex.api.material.MaterialTransform; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; @Internal class SingleInvariantMaterialMap implements MaterialMap { diff --git a/common/src/main/java/io/vram/frex/impl/material/map/SingleMaterialMap.java b/common/src/main/java/io/vram/frex/impl/material/map/SingleMaterialMap.java index 89697cb3..07cdd7b1 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/SingleMaterialMap.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/SingleMaterialMap.java @@ -21,12 +21,9 @@ package io.vram.frex.impl.material.map; import java.util.function.BiPredicate; - +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import org.jetbrains.annotations.ApiStatus.Internal; import org.jetbrains.annotations.Nullable; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.MaterialTransform; import io.vram.frex.api.material.MaterialView; diff --git a/common/src/main/java/io/vram/frex/impl/material/map/SpriteMaterialMap.java b/common/src/main/java/io/vram/frex/impl/material/map/SpriteMaterialMap.java index 80fb26b7..0633a9bb 100644 --- a/common/src/main/java/io/vram/frex/impl/material/map/SpriteMaterialMap.java +++ b/common/src/main/java/io/vram/frex/impl/material/map/SpriteMaterialMap.java @@ -21,12 +21,9 @@ package io.vram.frex.impl.material.map; import java.util.IdentityHashMap; - +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import org.jetbrains.annotations.ApiStatus.Internal; import org.jetbrains.annotations.Nullable; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.MaterialMap; import io.vram.frex.api.material.MaterialTransform; diff --git a/common/src/main/java/io/vram/frex/impl/material/predicate/EntityBiPredicate.java b/common/src/main/java/io/vram/frex/impl/material/predicate/EntityBiPredicate.java index 26639186..d8cc6fa8 100644 --- a/common/src/main/java/io/vram/frex/impl/material/predicate/EntityBiPredicate.java +++ b/common/src/main/java/io/vram/frex/impl/material/predicate/EntityBiPredicate.java @@ -21,9 +21,7 @@ package io.vram.frex.impl.material.predicate; import java.util.function.BiPredicate; - import net.minecraft.world.entity.Entity; - import io.vram.frex.api.material.MaterialView; public abstract class EntityBiPredicate implements BiPredicate { diff --git a/common/src/main/java/io/vram/frex/impl/material/predicate/EntityMaterialBoth.java b/common/src/main/java/io/vram/frex/impl/material/predicate/EntityMaterialBoth.java index 126773d5..26f38f49 100644 --- a/common/src/main/java/io/vram/frex/impl/material/predicate/EntityMaterialBoth.java +++ b/common/src/main/java/io/vram/frex/impl/material/predicate/EntityMaterialBoth.java @@ -20,9 +20,8 @@ package io.vram.frex.impl.material.predicate; -import net.minecraft.world.entity.Entity; - import io.vram.frex.api.material.MaterialView; +import net.minecraft.world.entity.Entity; public class EntityMaterialBoth extends EntityBiPredicate { private final EntityOnly entityOnly; diff --git a/common/src/main/java/io/vram/frex/impl/material/predicate/EntityMaterialOnly.java b/common/src/main/java/io/vram/frex/impl/material/predicate/EntityMaterialOnly.java index 951e3ec5..ebe9980c 100644 --- a/common/src/main/java/io/vram/frex/impl/material/predicate/EntityMaterialOnly.java +++ b/common/src/main/java/io/vram/frex/impl/material/predicate/EntityMaterialOnly.java @@ -20,9 +20,8 @@ package io.vram.frex.impl.material.predicate; -import net.minecraft.world.entity.Entity; - import io.vram.frex.api.material.MaterialView; +import net.minecraft.world.entity.Entity; public class EntityMaterialOnly extends EntityBiPredicate { private final MaterialPredicate materialPredicate; diff --git a/common/src/main/java/io/vram/frex/impl/material/predicate/EntityOnly.java b/common/src/main/java/io/vram/frex/impl/material/predicate/EntityOnly.java index 701269bd..d50e58a3 100644 --- a/common/src/main/java/io/vram/frex/impl/material/predicate/EntityOnly.java +++ b/common/src/main/java/io/vram/frex/impl/material/predicate/EntityOnly.java @@ -27,7 +27,7 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.JsonOps; - +import io.vram.frex.api.material.MaterialView; import net.minecraft.advancements.critereon.EntityEquipmentPredicate; import net.minecraft.advancements.critereon.EntityFlagsPredicate; import net.minecraft.advancements.critereon.MobEffectsPredicate; @@ -38,8 +38,6 @@ import net.minecraft.world.entity.animal.Cat; import net.minecraft.world.scores.Team; -import io.vram.frex.api.material.MaterialView; - /** * Stripped-down adaptation of vanilla class used for entity loot predicates. * @@ -109,7 +107,7 @@ public static EntityOnly fromJson(@Nullable JsonElement json) { //final PlayerPredicate player = PlayerPredicate.fromJson(jsonObject.get("player")); //final FishingHookPredicate fishHook = FishingHookPredicate.fromJson(jsonObject.get("fishing_hook")); final String team = GsonHelper.getAsString(jsonObject, "team", (String) null); - final ResourceLocation catType = jsonObject.has("catType") ? new ResourceLocation(GsonHelper.getAsString(jsonObject, "catType")) : null; + final ResourceLocation catType = jsonObject.has("catType") ? ResourceLocation.parse(GsonHelper.getAsString(jsonObject, "catType")) : null; return new EntityOnly(effects, nbt, flags, equipment, team, catType); } else { diff --git a/common/src/main/java/io/vram/frex/impl/material/predicate/StateBiPredicate.java b/common/src/main/java/io/vram/frex/impl/material/predicate/StateBiPredicate.java index 9cf94b33..4e417266 100644 --- a/common/src/main/java/io/vram/frex/impl/material/predicate/StateBiPredicate.java +++ b/common/src/main/java/io/vram/frex/impl/material/predicate/StateBiPredicate.java @@ -21,9 +21,7 @@ package io.vram.frex.impl.material.predicate; import java.util.function.BiPredicate; - import net.minecraft.world.level.block.state.BlockState; - import io.vram.frex.api.material.MaterialView; public abstract class StateBiPredicate implements BiPredicate { diff --git a/common/src/main/java/io/vram/frex/impl/material/predicate/StateMaterialBoth.java b/common/src/main/java/io/vram/frex/impl/material/predicate/StateMaterialBoth.java index 727c1f47..dda0b9e2 100644 --- a/common/src/main/java/io/vram/frex/impl/material/predicate/StateMaterialBoth.java +++ b/common/src/main/java/io/vram/frex/impl/material/predicate/StateMaterialBoth.java @@ -20,11 +20,10 @@ package io.vram.frex.impl.material.predicate; +import io.vram.frex.api.material.MaterialView; import net.minecraft.advancements.critereon.StatePropertiesPredicate; import net.minecraft.world.level.block.state.BlockState; -import io.vram.frex.api.material.MaterialView; - public class StateMaterialBoth extends StateBiPredicate { private final StatePropertiesPredicate statePredicate; private final MaterialPredicate materialPredicate; diff --git a/common/src/main/java/io/vram/frex/impl/material/predicate/StateMaterialOnly.java b/common/src/main/java/io/vram/frex/impl/material/predicate/StateMaterialOnly.java index 23534235..c95c7dcd 100644 --- a/common/src/main/java/io/vram/frex/impl/material/predicate/StateMaterialOnly.java +++ b/common/src/main/java/io/vram/frex/impl/material/predicate/StateMaterialOnly.java @@ -20,9 +20,8 @@ package io.vram.frex.impl.material.predicate; -import net.minecraft.world.level.block.state.BlockState; - import io.vram.frex.api.material.MaterialView; +import net.minecraft.world.level.block.state.BlockState; public class StateMaterialOnly extends StateBiPredicate { private MaterialPredicate materialPredicate; diff --git a/common/src/main/java/io/vram/frex/impl/material/predicate/StateOnly.java b/common/src/main/java/io/vram/frex/impl/material/predicate/StateOnly.java index 13ea0dfd..d2e91093 100644 --- a/common/src/main/java/io/vram/frex/impl/material/predicate/StateOnly.java +++ b/common/src/main/java/io/vram/frex/impl/material/predicate/StateOnly.java @@ -20,11 +20,10 @@ package io.vram.frex.impl.material.predicate; +import io.vram.frex.api.material.MaterialView; import net.minecraft.advancements.critereon.StatePropertiesPredicate; import net.minecraft.world.level.block.state.BlockState; -import io.vram.frex.api.material.MaterialView; - public class StateOnly extends StateBiPredicate { private final StatePropertiesPredicate statePredicate; diff --git a/common/src/main/java/io/vram/frex/impl/math/MatrixStackEntryHelper.java b/common/src/main/java/io/vram/frex/impl/math/MatrixStackEntryHelper.java index ea0b7ef4..1eaa46c8 100644 --- a/common/src/main/java/io/vram/frex/impl/math/MatrixStackEntryHelper.java +++ b/common/src/main/java/io/vram/frex/impl/math/MatrixStackEntryHelper.java @@ -20,13 +20,11 @@ package io.vram.frex.impl.math; +import com.mojang.blaze3d.vertex.PoseStack; import java.lang.reflect.Constructor; - import org.joml.Matrix3f; import org.joml.Matrix4f; -import com.mojang.blaze3d.vertex.PoseStack; - public class MatrixStackEntryHelper { private static final Constructor CONSTRUCTOR; diff --git a/common/src/main/java/io/vram/frex/impl/math/MatrixStackImpl.java b/common/src/main/java/io/vram/frex/impl/math/MatrixStackImpl.java index 70ae589d..dc80b906 100644 --- a/common/src/main/java/io/vram/frex/impl/math/MatrixStackImpl.java +++ b/common/src/main/java/io/vram/frex/impl/math/MatrixStackImpl.java @@ -21,23 +21,20 @@ package io.vram.frex.impl.math; import java.util.Deque; - import it.unimi.dsi.fastutil.objects.ObjectArrayList; import org.joml.Matrix3f; import org.joml.Matrix4f; - -import com.mojang.blaze3d.vertex.PoseStack; - +import com.mojang.blaze3d.vertex.PoseStack.Pose; import io.vram.frex.api.math.MatrixStack; public class MatrixStackImpl implements MatrixStack { - private final Deque stack; - private final PoseStack wrapped; - private final ObjectArrayList pool = new ObjectArrayList<>(); + private final Deque stack; + private final com.mojang.blaze3d.vertex.PoseStack wrapped; + private final ObjectArrayList pool = new ObjectArrayList<>(); private Matrix4f modelMatrix; private Matrix3f normalMatrix; - public MatrixStackImpl(Deque stack, PoseStack wrapped) { + public MatrixStackImpl(Deque stack, com.mojang.blaze3d.vertex.PoseStack wrapped) { this.stack = stack; this.wrapped = wrapped; refresh(); @@ -51,8 +48,8 @@ protected void refresh() { @Override public void push() { - final PoseStack.Pose current = stack.getLast(); - PoseStack.Pose add; + final com.mojang.blaze3d.vertex.PoseStack.Pose current = stack.getLast(); + com.mojang.blaze3d.vertex.PoseStack.Pose add; if (pool.isEmpty()) { add = MatrixStackEntryHelper.create(new Matrix4f(current.pose()), new Matrix3f(current.normal())); @@ -83,7 +80,7 @@ public Matrix3f normalMatrix() { } @Override - public PoseStack toVanilla() { + public com.mojang.blaze3d.vertex.PoseStack toVanilla() { return wrapped; } } diff --git a/common/src/main/java/io/vram/frex/impl/model/FluidAppearanceImpl.java b/common/src/main/java/io/vram/frex/impl/model/FluidAppearanceImpl.java index b1efdb58..c649b5f2 100644 --- a/common/src/main/java/io/vram/frex/impl/model/FluidAppearanceImpl.java +++ b/common/src/main/java/io/vram/frex/impl/model/FluidAppearanceImpl.java @@ -21,15 +21,13 @@ package io.vram.frex.impl.model; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import org.jetbrains.annotations.ApiStatus.Internal; -import org.jetbrains.annotations.Nullable; - import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.BlockPos; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.FluidState; - +import org.jetbrains.annotations.ApiStatus.Internal; +import org.jetbrains.annotations.Nullable; import io.vram.frex.api.model.fluid.FluidAppearance; import io.vram.frex.api.model.fluid.FluidColorProvider; import io.vram.frex.api.model.fluid.FluidSpriteProvider; diff --git a/common/src/main/java/io/vram/frex/impl/model/FluidModelImpl.java b/common/src/main/java/io/vram/frex/impl/model/FluidModelImpl.java index fa6ee8f3..adcdf074 100644 --- a/common/src/main/java/io/vram/frex/impl/model/FluidModelImpl.java +++ b/common/src/main/java/io/vram/frex/impl/model/FluidModelImpl.java @@ -22,15 +22,12 @@ import java.util.IdentityHashMap; import java.util.function.Function; - -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.Fluids; - +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import org.jetbrains.annotations.ApiStatus.Internal; import io.vram.frex.api.material.MaterialConstants; import io.vram.frex.api.material.MaterialFinder; import io.vram.frex.api.material.RenderMaterial; diff --git a/common/src/main/java/io/vram/frex/impl/model/ModelLookups.java b/common/src/main/java/io/vram/frex/impl/model/ModelLookups.java index 4d28dbbe..8e1a6323 100644 --- a/common/src/main/java/io/vram/frex/impl/model/ModelLookups.java +++ b/common/src/main/java/io/vram/frex/impl/model/ModelLookups.java @@ -20,11 +20,10 @@ package io.vram.frex.impl.model; -import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemModelShaper; import net.minecraft.client.renderer.block.BlockModelShaper; +import org.jetbrains.annotations.ApiStatus.Internal; /** * Avoids a few pointer chases. diff --git a/common/src/main/java/io/vram/frex/impl/model/ModelProviderRegistryImpl.java b/common/src/main/java/io/vram/frex/impl/model/ModelProviderRegistryImpl.java index ec44a049..918e4877 100644 --- a/common/src/main/java/io/vram/frex/impl/model/ModelProviderRegistryImpl.java +++ b/common/src/main/java/io/vram/frex/impl/model/ModelProviderRegistryImpl.java @@ -49,20 +49,18 @@ import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; - +import net.minecraft.client.renderer.block.model.BlockModel; +import net.minecraft.client.resources.model.BlockStateModelLoader; +import net.minecraft.client.resources.model.ModelBakery; +import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.UnbakedModel; +import net.minecraft.resources.ResourceLocation; import com.google.common.collect.Lists; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import org.apache.commons.lang3.tuple.Pair; import org.jetbrains.annotations.Nullable; import org.spongepowered.include.com.google.common.base.Preconditions; - -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.client.resources.model.UnbakedModel; -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.config.FrexConfig; import io.vram.frex.api.model.provider.ModelLocationProvider; import io.vram.frex.api.model.provider.ModelProvider; @@ -72,13 +70,13 @@ public class ModelProviderRegistryImpl { public static class LoaderInstance implements SubModelLoader { - private final List> modelVariantProviders; + private final List> modelVariantProviders; private final List> modelResourceProviders; - private final Object2ObjectOpenHashMap> blockItemProviders = new Object2ObjectOpenHashMap<>(); + private final Object2ObjectOpenHashMap> blockItemProviders = new Object2ObjectOpenHashMap<>(); private ModelBakery loader; - private LoaderInstance(ModelBakery loader, Map models, Map> blockStates) { + private LoaderInstance(ModelBakery loader, Map models, Map> blockStates) { this.loader = loader; this.modelVariantProviders = variantProviderFunctions.stream().map((s) -> s.apply(models, blockStates)).collect(Collectors.toList()); this.modelResourceProviders = resourceProviderFunctions.stream().map((s) -> s.apply(models, blockStates)).collect(Collectors.toList()); @@ -111,8 +109,8 @@ public UnbakedModel loadModelFromVariant(ResourceLocation path) { if (!(path instanceof final ModelResourceLocation modelId)) { return loadModelFromResource(path); } else { - final var variantId = (ModelResourceLocation) path; - final ModelProvider pathProvider = blockItemProviders.get(new ResourceLocation(path.getNamespace(), path.getPath())); + final var variantId = (ResourceLocation) path; + final ModelProvider pathProvider = blockItemProviders.get(ResourceLocation.fromNamespaceAndPath(path.getNamespace(), path.getPath())); UnbakedModel model = null; if (pathProvider != null) { @@ -135,7 +133,7 @@ public UnbakedModel loadModelFromVariant(ResourceLocation path) { // Replicating the special-case from ModelBakery as loadModelFromJson is insufficiently patchable if (Objects.equals(modelId.getVariant(), "inventory")) { - final ResourceLocation resourceId = new ResourceLocation(modelId.getNamespace(), "item/" + modelId.getPath()); + final ResourceLocation resourceId = ResourceLocation.fromNamespaceAndPath(modelId.getNamespace(), "item/" + modelId.getPath()); model = loadModelFromResource(resourceId); if (model != null) { @@ -208,39 +206,39 @@ private static UnbakedModel loadCustomModel(Function functi } } - private static final ObjectArrayList, Map>, ModelProvider>> variantProviderFunctions = new ObjectArrayList<>(); - private static final ObjectArrayList, Map>, ModelProvider>> resourceProviderFunctions = new ObjectArrayList<>(); - private static final ObjectArrayList, Map>, ModelProvider>, ResourceLocation[]>> blockItemProviderFunctions = new ObjectArrayList<>(); + private static final ObjectArrayList, Map>, ModelProvider>> variantProviderFunctions = new ObjectArrayList<>(); + private static final ObjectArrayList, Map>, ModelProvider>> resourceProviderFunctions = new ObjectArrayList<>(); + private static final ObjectArrayList, Map>, ModelProvider>, ResourceLocation[]>> blockItemProviderFunctions = new ObjectArrayList<>(); private static final ObjectArrayList locationProviders = new ObjectArrayList<>(); public static void registerLocationProvider(ModelLocationProvider provider) { locationProviders.add(provider); } - public static void registerResourceProvider(BiFunction, Map>, ModelProvider> providerFunction) { + public static void registerResourceProvider(BiFunction, Map>, ModelProvider> providerFunction) { resourceProviderFunctions.add(providerFunction); } - public static void registerVariantProvider(BiFunction, Map>, ModelProvider> providerFunction) { + public static void registerVariantProvider(BiFunction, Map>, ModelProvider> providerFunction) { variantProviderFunctions.add(providerFunction); } - public static LoaderInstance begin(ModelBakery loader, Map models, Map> blockStates) { + public static LoaderInstance begin(ModelBakery loader, Map models, Map> blockStates) { return new LoaderInstance(loader, models, blockStates); } - public static void onModelPopulation(Map models, Map> blockStates, Consumer target) { + public static void onModelPopulation(Map models, Map> blockStates, Consumer target) { for (final ModelLocationProvider appender : locationProviders) { appender.provideLocations(models, blockStates, target); } } - public static void registerBlockItemProvider(BiFunction, Map>, ModelProvider> providerFunction, ResourceLocation... paths) { + public static void registerBlockItemProvider(BiFunction, Map>, ModelProvider> providerFunction, ResourceLocation... paths) { blockItemProviderFunctions.add(Pair.of(providerFunction, paths)); } public static ResourceLocation[] stringsToLocations(String... paths) { Preconditions.checkNotNull(paths); - return Stream.of(paths).map(p -> new ResourceLocation(p)).collect(Collectors.toList()).toArray(new ResourceLocation[paths.length]); + return Stream.of(paths).map(p -> ResourceLocation.parse(p)).collect(Collectors.toList()).toArray(new ResourceLocation[paths.length]); } } diff --git a/common/src/main/java/io/vram/frex/impl/model/SimpleFluidSpriteProvider.java b/common/src/main/java/io/vram/frex/impl/model/SimpleFluidSpriteProvider.java index 5050a5c8..e076cc81 100644 --- a/common/src/main/java/io/vram/frex/impl/model/SimpleFluidSpriteProvider.java +++ b/common/src/main/java/io/vram/frex/impl/model/SimpleFluidSpriteProvider.java @@ -21,10 +21,6 @@ package io.vram.frex.impl.model; import java.util.function.Function; - -import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import org.jetbrains.annotations.Nullable; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.BlockPos; @@ -32,7 +28,8 @@ import net.minecraft.world.inventory.InventoryMenu; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.material.FluidState; - +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import org.jetbrains.annotations.Nullable; import io.vram.frex.api.model.fluid.FluidSpriteProvider; public class SimpleFluidSpriteProvider implements FluidSpriteProvider { diff --git a/common/src/main/java/io/vram/frex/impl/renderloop/BlockOutlinePreListenerImpl.java b/common/src/main/java/io/vram/frex/impl/renderloop/BlockOutlinePreListenerImpl.java index e84d9214..4f653edb 100644 --- a/common/src/main/java/io/vram/frex/impl/renderloop/BlockOutlinePreListenerImpl.java +++ b/common/src/main/java/io/vram/frex/impl/renderloop/BlockOutlinePreListenerImpl.java @@ -21,9 +21,7 @@ package io.vram.frex.impl.renderloop; import it.unimi.dsi.fastutil.objects.ObjectArrayList; - import net.minecraft.world.phys.HitResult; - import io.vram.frex.api.renderloop.BlockOutlinePreListener; import io.vram.frex.api.renderloop.WorldRenderContext; diff --git a/common/src/main/java/io/vram/frex/impl/texture/SpriteFinderImpl.java b/common/src/main/java/io/vram/frex/impl/texture/SpriteFinderImpl.java index 93e90d1a..e2e2b67e 100644 --- a/common/src/main/java/io/vram/frex/impl/texture/SpriteFinderImpl.java +++ b/common/src/main/java/io/vram/frex/impl/texture/SpriteFinderImpl.java @@ -22,13 +22,11 @@ import java.util.Map; import java.util.function.Consumer; - import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite; import net.minecraft.client.renderer.texture.SpriteLoader; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.texture.SpriteFinder; /** diff --git a/common/src/main/java/io/vram/frex/impl/texture/SpriteIndexImpl.java b/common/src/main/java/io/vram/frex/impl/texture/SpriteIndexImpl.java index 12593f4f..bba34fe7 100644 --- a/common/src/main/java/io/vram/frex/impl/texture/SpriteIndexImpl.java +++ b/common/src/main/java/io/vram/frex/impl/texture/SpriteIndexImpl.java @@ -23,12 +23,10 @@ import it.unimi.dsi.fastutil.Hash; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectArrayList; - import net.minecraft.client.renderer.texture.SpriteLoader; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.texture.SpriteIndex; public class SpriteIndexImpl implements SpriteIndex { diff --git a/common/src/main/java/io/vram/frex/impl/texture/SpriteInjectorImpl.java b/common/src/main/java/io/vram/frex/impl/texture/SpriteInjectorImpl.java index 9a4c91e9..20e48271 100644 --- a/common/src/main/java/io/vram/frex/impl/texture/SpriteInjectorImpl.java +++ b/common/src/main/java/io/vram/frex/impl/texture/SpriteInjectorImpl.java @@ -21,13 +21,10 @@ package io.vram.frex.impl.texture; import java.util.function.Consumer; - +import net.minecraft.resources.ResourceLocation; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; - -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.api.texture.SpriteInjector; public class SpriteInjectorImpl { diff --git a/common/src/main/java/io/vram/frex/impl/world/BlockEntityRenderDataImpl.java b/common/src/main/java/io/vram/frex/impl/world/BlockEntityRenderDataImpl.java index 57d1dd9b..df88180a 100644 --- a/common/src/main/java/io/vram/frex/impl/world/BlockEntityRenderDataImpl.java +++ b/common/src/main/java/io/vram/frex/impl/world/BlockEntityRenderDataImpl.java @@ -21,11 +21,9 @@ package io.vram.frex.impl.world; import java.util.function.Function; - -import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; +import org.jetbrains.annotations.ApiStatus.Internal; @Internal public class BlockEntityRenderDataImpl { diff --git a/common/src/main/java/io/vram/frex/impl/world/BlockEntityRenderDataProviderAccess.java b/common/src/main/java/io/vram/frex/impl/world/BlockEntityRenderDataProviderAccess.java index 3dbc789c..4741b333 100644 --- a/common/src/main/java/io/vram/frex/impl/world/BlockEntityRenderDataProviderAccess.java +++ b/common/src/main/java/io/vram/frex/impl/world/BlockEntityRenderDataProviderAccess.java @@ -21,10 +21,8 @@ package io.vram.frex.impl.world; import java.util.function.Function; - -import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.world.level.block.entity.BlockEntity; +import org.jetbrains.annotations.ApiStatus.Internal; @Internal public interface BlockEntityRenderDataProviderAccess { diff --git a/common/src/main/java/io/vram/frex/impl/world/ChunkRenderConditionContext.java b/common/src/main/java/io/vram/frex/impl/world/ChunkRenderConditionContext.java index 1e326519..a50ce47a 100644 --- a/common/src/main/java/io/vram/frex/impl/world/ChunkRenderConditionContext.java +++ b/common/src/main/java/io/vram/frex/impl/world/ChunkRenderConditionContext.java @@ -21,12 +21,10 @@ package io.vram.frex.impl.world; import it.unimi.dsi.fastutil.objects.ObjectArrayList; -import org.jetbrains.annotations.Nullable; - import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.Level; - +import org.jetbrains.annotations.Nullable; import io.vram.frex.api.world.RenderRegionBakeListener; import io.vram.frex.api.world.RenderRegionBakeListener.RenderRegionContext; diff --git a/common/src/main/java/io/vram/frex/impl/world/ColorRegistryImpl.java b/common/src/main/java/io/vram/frex/impl/world/ColorRegistryImpl.java index 1a9059c8..35d1cb15 100644 --- a/common/src/main/java/io/vram/frex/impl/world/ColorRegistryImpl.java +++ b/common/src/main/java/io/vram/frex/impl/world/ColorRegistryImpl.java @@ -23,7 +23,6 @@ import it.unimi.dsi.fastutil.objects.ObjectArrayList; import org.apache.commons.lang3.tuple.Pair; import org.jetbrains.annotations.ApiStatus.Internal; - import net.minecraft.client.color.block.BlockColor; import net.minecraft.client.color.block.BlockColors; import net.minecraft.client.color.item.ItemColor; diff --git a/common/src/main/java/io/vram/frex/impl/world/RenderRegionBakeListenerImpl.java b/common/src/main/java/io/vram/frex/impl/world/RenderRegionBakeListenerImpl.java index 502cc364..af3cbe21 100644 --- a/common/src/main/java/io/vram/frex/impl/world/RenderRegionBakeListenerImpl.java +++ b/common/src/main/java/io/vram/frex/impl/world/RenderRegionBakeListenerImpl.java @@ -22,11 +22,8 @@ import java.util.List; import java.util.function.Predicate; - -import it.unimi.dsi.fastutil.objects.ObjectArrayList; - import net.minecraft.world.level.Level; - +import it.unimi.dsi.fastutil.objects.ObjectArrayList; import io.vram.frex.api.world.RenderRegionBakeListener; import io.vram.frex.api.world.RenderRegionBakeListener.RenderRegionContext; diff --git a/common/src/main/java/io/vram/frex/mixin/MixinBlockEntityType.java b/common/src/main/java/io/vram/frex/mixin/MixinBlockEntityType.java index 8eb959fd..1a703cec 100644 --- a/common/src/main/java/io/vram/frex/mixin/MixinBlockEntityType.java +++ b/common/src/main/java/io/vram/frex/mixin/MixinBlockEntityType.java @@ -21,12 +21,9 @@ package io.vram.frex.mixin; import java.util.function.Function; - -import org.spongepowered.asm.mixin.Mixin; - import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; - +import org.spongepowered.asm.mixin.Mixin; import io.vram.frex.impl.world.BlockEntityRenderDataImpl; import io.vram.frex.impl.world.BlockEntityRenderDataProviderAccess; diff --git a/common/src/main/java/io/vram/frex/mixin/MixinItemBlockRenderTypes.java b/common/src/main/java/io/vram/frex/mixin/MixinItemBlockRenderTypes.java index e10aab17..6e057569 100644 --- a/common/src/main/java/io/vram/frex/mixin/MixinItemBlockRenderTypes.java +++ b/common/src/main/java/io/vram/frex/mixin/MixinItemBlockRenderTypes.java @@ -21,18 +21,15 @@ package io.vram.frex.mixin; import java.util.Map; - +import net.minecraft.client.renderer.ItemBlockRenderTypes; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.material.Fluid; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.material.Fluid; - import io.vram.frex.impl.material.BlockPresetsImpl; @Mixin(ItemBlockRenderTypes.class) diff --git a/common/src/main/java/io/vram/frex/mixin/MixinLevelRenderer.java b/common/src/main/java/io/vram/frex/mixin/MixinLevelRenderer.java index 29135767..925539e8 100644 --- a/common/src/main/java/io/vram/frex/mixin/MixinLevelRenderer.java +++ b/common/src/main/java/io/vram/frex/mixin/MixinLevelRenderer.java @@ -24,10 +24,8 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import net.minecraft.client.renderer.LevelRenderer; - import io.vram.frex.api.renderloop.RenderReloadListener; +import net.minecraft.client.renderer.LevelRenderer; @Mixin(LevelRenderer.class) public class MixinLevelRenderer { diff --git a/common/src/main/java/io/vram/frex/mixin/MixinModelBakery.java b/common/src/main/java/io/vram/frex/mixin/MixinModelBakery.java index 2b7b9f16..b54e00ea 100644 --- a/common/src/main/java/io/vram/frex/mixin/MixinModelBakery.java +++ b/common/src/main/java/io/vram/frex/mixin/MixinModelBakery.java @@ -43,78 +43,67 @@ import java.util.List; import java.util.Map; import java.util.Set; - +import net.minecraft.client.color.block.BlockColors; +import net.minecraft.client.renderer.block.model.BlockModel; +import net.minecraft.client.resources.model.BlockStateModelLoader; +import net.minecraft.client.resources.model.ModelBakery; +import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.UnbakedModel; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.profiling.ProfilerFiller; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import net.minecraft.client.renderer.block.model.BlockModel; -import net.minecraft.client.resources.model.ModelBakery; -import net.minecraft.client.resources.model.ModelResourceLocation; -import net.minecraft.client.resources.model.UnbakedModel; -import net.minecraft.resources.ResourceLocation; - import io.vram.frex.impl.model.ModelProviderRegistryImpl; +import io.vram.frex.impl.model.ModelProviderRegistryImpl.LoaderInstance; import io.vram.frex.mixinterface.ModelBakeryExt; @Mixin(ModelBakery.class) public abstract class MixinModelBakery implements ModelBakeryExt { - @Shadow @Final private Map modelResources; - @Shadow @Final private Map> blockStateResources; @Shadow @Final private Set loadingStack; @Shadow @Final private Map unbakedCache; @Shadow @Final private Map topLevelModels; @Unique private ModelProviderRegistryImpl.LoaderInstance frexHandler; - @Shadow private void loadTopLevel(ModelResourceLocation id) { } - @Shadow private void cacheAndQueueDependencies(ResourceLocation id, UnbakedModel unbakedModel) { } - @Shadow private void loadModel(ResourceLocation id) { } @Shadow public abstract UnbakedModel getModel(ResourceLocation id); - private ModelProviderRegistryImpl.LoaderInstance frexHandler() { - var result = frexHandler; - - if (result == null) { - result = ModelProviderRegistryImpl.begin((ModelBakery) (Object) this, modelResources, blockStateResources); - frexHandler = result; - ModelProviderRegistryImpl.onModelPopulation(modelResources, blockStateResources, this::frx_addModel); + @Inject(method = "(Lnet/minecraft/client/color/block/BlockColors;Lnet/minecraft/util/profiling/ProfilerFiller;Ljava/util/Map;Ljava/util/Map;)V", + at = @At(value = "RETURN")) + private void initFrexHandler(BlockColors arg1, ProfilerFiller arg2, Map arg3, Map> arg4, CallbackInfo info) { + if (frexHandler == null) { + frexHandler = ModelProviderRegistryImpl.begin((ModelBakery) (Object) this, arg3, arg4); + ModelProviderRegistryImpl.onModelPopulation(arg3, arg4, this::frx_addModel); } - - return result; } - @Inject(at = @At("HEAD"), method = "loadModel", cancellable = true) - private void loadModelHook(ResourceLocation id, CallbackInfo ci) { - final UnbakedModel customModel = frexHandler().loadModelFromVariant(id); + // TODO: ??? + @Redirect(method = "getModel(Lnet/minecraft/resources/ResourceLocation;)Lnet/minecraft/client/resources/UnbakedModel;", + at = @At(value = "INVOKE", target = "Lnet/minecraft/client/resources/model/ModelBakery;loadBlockModel(Lnet/minecraft/resources/ResourceLocation;)Lnet/minecraft/client/resources/model/UnbakedModel;")) + private UnbakedModel loadModelHook(ModelBakery this_, ResourceLocation id) { + final UnbakedModel customModel = frexHandler.loadModelFromVariant(id); if (customModel != null) { - cacheAndQueueDependencies(id, customModel); - ci.cancel(); + return customModel; } + return this_.loadBlockModel(id); } @Inject(at = @At("RETURN"), method = "") private void initFinishedHook(CallbackInfo info) { - frexHandler().finish(); + frexHandler.finish(); } @Override @Unique public void frx_addModel(ResourceLocation id) { - if (id instanceof ModelResourceLocation) { - loadTopLevel((ModelResourceLocation) id); - } else { - // The vanilla addModel method is arbitrarily limited to ModelIdentifiers, - // but it's useful to tell the game to just load and bake a direct model path as well. - // Replicate the vanilla logic of addModel here. - final UnbakedModel unbakedModel = getModel(id); - this.unbakedCache.put(id, unbakedModel); - this.topLevelModels.put(id, unbakedModel); - } + final UnbakedModel unbakedModel = getModel(id); + this.unbakedCache.put(id, unbakedModel); + this.topLevelModels.put(id, unbakedModel); } @Override @Unique @@ -123,8 +112,11 @@ public UnbakedModel frx_loadModel(ResourceLocation id) { throw new IllegalStateException("Circular reference while loading model " + id); } + // TODO: ??? + return loadModelHook(this, id); + /* loadModel(id); loadingStack.remove(id); - return unbakedCache.get(id); + return unbakedCache.get(id);*/ } } diff --git a/common/src/main/java/io/vram/frex/mixin/MixinPoseStack.java b/common/src/main/java/io/vram/frex/mixin/MixinPoseStack.java index b9820a0c..21b39ab5 100644 --- a/common/src/main/java/io/vram/frex/mixin/MixinPoseStack.java +++ b/common/src/main/java/io/vram/frex/mixin/MixinPoseStack.java @@ -30,21 +30,18 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import com.mojang.blaze3d.vertex.PoseStack; - import io.vram.frex.api.math.MatrixStack; import io.vram.frex.impl.math.MatrixStackImpl; import io.vram.frex.mixinterface.PoseStackExt; -@Mixin(PoseStack.class) +@Mixin(com.mojang.blaze3d.vertex.PoseStack.class) public class MixinPoseStack implements PoseStackExt { - @Shadow @Final private Deque poseStack; + @Shadow @Final private Deque poseStack; private MatrixStackImpl frxStack; @Inject(method = "", at = @At("RETURN")) public void onNew(CallbackInfo ci) { - frxStack = new MatrixStackImpl(poseStack, (PoseStack) (Object) this); + frxStack = new MatrixStackImpl(poseStack, (com.mojang.blaze3d.vertex.PoseStack) (Object) this); } /** diff --git a/common/src/main/java/io/vram/frex/mixin/MixinSpriteLoader.java b/common/src/main/java/io/vram/frex/mixin/MixinSpriteLoader.java index 0fb96da8..5e0b936f 100644 --- a/common/src/main/java/io/vram/frex/mixin/MixinSpriteLoader.java +++ b/common/src/main/java/io/vram/frex/mixin/MixinSpriteLoader.java @@ -22,19 +22,17 @@ import java.util.List; import java.util.concurrent.Executor; - +import net.minecraft.client.renderer.texture.SpriteContents; +import net.minecraft.client.renderer.texture.SpriteLoader; +import net.minecraft.client.renderer.texture.SpriteLoader.Preparations; +import net.minecraft.client.renderer.texture.TextureAtlas; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -import net.minecraft.client.renderer.texture.SpriteContents; -import net.minecraft.client.renderer.texture.SpriteLoader; -import net.minecraft.client.renderer.texture.TextureAtlas; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - import io.vram.frex.impl.texture.IndexedSprite; import io.vram.frex.impl.texture.SpriteFinderImpl; import io.vram.frex.impl.texture.SpriteIndexImpl; diff --git a/common/src/main/java/io/vram/frex/mixin/MixinSpriteSourceList.java b/common/src/main/java/io/vram/frex/mixin/MixinSpriteSourceList.java index b9beda37..b0d7da2e 100644 --- a/common/src/main/java/io/vram/frex/mixin/MixinSpriteSourceList.java +++ b/common/src/main/java/io/vram/frex/mixin/MixinSpriteSourceList.java @@ -22,18 +22,15 @@ import java.util.List; import java.util.Optional; - +import net.minecraft.client.renderer.texture.atlas.SpriteSourceList; +import net.minecraft.client.renderer.texture.atlas.sources.SingleFile; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.resources.ResourceManager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; - -import net.minecraft.client.renderer.texture.atlas.SpriteSourceList; -import net.minecraft.client.renderer.texture.atlas.sources.SingleFile; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.resources.ResourceManager; - import io.vram.frex.impl.texture.SpriteInjectorImpl; @Mixin(SpriteSourceList.class) diff --git a/common/src/main/java/io/vram/frex/mixin/MixinTerrainParticle.java b/common/src/main/java/io/vram/frex/mixin/MixinTerrainParticle.java index a741065e..ebd615bf 100644 --- a/common/src/main/java/io/vram/frex/mixin/MixinTerrainParticle.java +++ b/common/src/main/java/io/vram/frex/mixin/MixinTerrainParticle.java @@ -24,17 +24,16 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - +import io.vram.frex.api.model.BlockModel; +import io.vram.frex.api.model.BlockModel.TerrainParticleDelegate; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.TerrainParticle; import net.minecraft.client.particle.TextureSheetParticle; import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.state.BlockState; -import io.vram.frex.api.model.BlockModel; -import io.vram.frex.api.model.BlockModel.TerrainParticleDelegate; - @Mixin(TerrainParticle.class) public abstract class MixinTerrainParticle extends TextureSheetParticle implements TerrainParticleDelegate { // not used diff --git a/common/src/main/java/io/vram/frex/mixin/MixinTextureAtlas.java b/common/src/main/java/io/vram/frex/mixin/MixinTextureAtlas.java index 8c2d5675..daf4be50 100644 --- a/common/src/main/java/io/vram/frex/mixin/MixinTextureAtlas.java +++ b/common/src/main/java/io/vram/frex/mixin/MixinTextureAtlas.java @@ -22,12 +22,10 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; - +import io.vram.frex.impl.texture.SpriteFinderImpl; import net.minecraft.client.renderer.texture.SpriteLoader; import net.minecraft.client.renderer.texture.TextureAtlas; -import io.vram.frex.impl.texture.SpriteFinderImpl; - @Mixin(TextureAtlas.class) public class MixinTextureAtlas implements SpriteFinderImpl.SpriteFinderAccess { @Unique diff --git a/common/src/main/java/io/vram/frex/mixin/MixinTextureAtlasSprite.java b/common/src/main/java/io/vram/frex/mixin/MixinTextureAtlasSprite.java index 0750a4ef..27e8a378 100644 --- a/common/src/main/java/io/vram/frex/mixin/MixinTextureAtlasSprite.java +++ b/common/src/main/java/io/vram/frex/mixin/MixinTextureAtlasSprite.java @@ -21,10 +21,8 @@ package io.vram.frex.mixin; import org.spongepowered.asm.mixin.Mixin; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - import io.vram.frex.impl.texture.IndexedSprite; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; @Mixin(TextureAtlasSprite.class) public class MixinTextureAtlasSprite implements IndexedSprite { diff --git a/common/src/main/java/io/vram/frex/pastel/PastelBlockStateRenderer.java b/common/src/main/java/io/vram/frex/pastel/PastelBlockStateRenderer.java index 8bb95e4d..b75bd36d 100644 --- a/common/src/main/java/io/vram/frex/pastel/PastelBlockStateRenderer.java +++ b/common/src/main/java/io/vram/frex/pastel/PastelBlockStateRenderer.java @@ -21,16 +21,14 @@ package io.vram.frex.pastel; import com.mojang.blaze3d.vertex.PoseStack; - +import io.vram.frex.api.model.BlockModel; +import io.vram.frex.api.world.RenderRegionBakeListener.BlockStateRenderer; +import io.vram.frex.pastel.mixinterface.RenderChunkRegionExt; import net.minecraft.client.renderer.chunk.RenderChunkRegion; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.state.BlockState; -import io.vram.frex.api.model.BlockModel; -import io.vram.frex.api.world.RenderRegionBakeListener.BlockStateRenderer; -import io.vram.frex.pastel.mixinterface.RenderChunkRegionExt; - public class PastelBlockStateRenderer implements BlockStateRenderer { private PoseStack matrixStack; private RenderChunkRegion chunkRendererRegion; diff --git a/common/src/main/java/io/vram/frex/pastel/PastelEntityBlockRenderContext.java b/common/src/main/java/io/vram/frex/pastel/PastelEntityBlockRenderContext.java index d3cc9f34..fce19075 100644 --- a/common/src/main/java/io/vram/frex/pastel/PastelEntityBlockRenderContext.java +++ b/common/src/main/java/io/vram/frex/pastel/PastelEntityBlockRenderContext.java @@ -21,13 +21,12 @@ package io.vram.frex.pastel; import java.util.function.Supplier; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.Sheets; - import io.vram.frex.api.material.MaterialConstants; +import io.vram.frex.api.material.RenderMaterial; import io.vram.frex.base.renderer.context.render.EntityBlockRenderContext; import io.vram.frex.base.renderer.util.EncoderUtil; diff --git a/common/src/main/java/io/vram/frex/pastel/PastelItemRenderContext.java b/common/src/main/java/io/vram/frex/pastel/PastelItemRenderContext.java index 61c03d59..3f53d5a8 100644 --- a/common/src/main/java/io/vram/frex/pastel/PastelItemRenderContext.java +++ b/common/src/main/java/io/vram/frex/pastel/PastelItemRenderContext.java @@ -21,9 +21,6 @@ package io.vram.frex.pastel; import java.util.function.Supplier; - -import com.mojang.blaze3d.vertex.VertexConsumer; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; import net.minecraft.client.renderer.MultiBufferSource; @@ -32,8 +29,10 @@ import net.minecraft.client.renderer.entity.ItemRenderer; import net.minecraft.tags.ItemTags; import net.minecraft.world.item.ItemDisplayContext; - +import com.mojang.blaze3d.vertex.VertexConsumer; import io.vram.frex.api.material.MaterialConstants; +import io.vram.frex.api.material.RenderMaterial; +import io.vram.frex.api.math.MatrixStack; import io.vram.frex.base.renderer.context.render.ItemRenderContext; import io.vram.frex.base.renderer.util.EncoderUtil; diff --git a/common/src/main/java/io/vram/frex/pastel/PastelTerrainRenderContext.java b/common/src/main/java/io/vram/frex/pastel/PastelTerrainRenderContext.java index 8b46a0ff..85da0d6b 100644 --- a/common/src/main/java/io/vram/frex/pastel/PastelTerrainRenderContext.java +++ b/common/src/main/java/io/vram/frex/pastel/PastelTerrainRenderContext.java @@ -20,22 +20,13 @@ package io.vram.frex.pastel; -import java.util.Set; - -import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import org.jetbrains.annotations.Nullable; - -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.DefaultVertexFormat; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexFormat; - +import java.util.Map; import net.minecraft.CrashReport; import net.minecraft.CrashReportCategory; import net.minecraft.ReportedException; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.chunk.RenderChunkRegion; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.BlockPos; @@ -43,8 +34,13 @@ import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.state.BlockState; - +import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; +import org.jetbrains.annotations.Nullable; +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.VertexFormat; import io.vram.frex.api.material.MaterialConstants; +import io.vram.frex.api.material.RenderMaterial; import io.vram.frex.api.math.FixedMath255; import io.vram.frex.api.math.MatrixStack; import io.vram.frex.api.math.PackedSectionPos; @@ -60,8 +56,7 @@ public class PastelTerrainRenderContext extends BlockRenderContext usedBuffers = new Object2ObjectOpenHashMap<>(); + protected Map initializedBuffers; private final AoCalculator aoCalc = new AoCalculator() { @Override @@ -110,11 +105,10 @@ public boolean hasBiomeAccess() { }; } - public PastelTerrainRenderContext prepareForRegion(RenderChunkRegion region, PoseStack poseStack, BlockPos origin, SectionBufferBuilderPack buffers, @SuppressWarnings("rawtypes") Set set) { + public PastelTerrainRenderContext prepareForRegion(RenderChunkRegion region, com.mojang.blaze3d.vertex.PoseStack poseStack, BlockPos origin, SectionBufferBuilderPack buffers, @SuppressWarnings("rawtypes") Map map) { inputContext.prepareForWorld(region, true, MatrixStack.fromVanilla(poseStack)); regionExt = (RenderChunkRegionExt) region; - usedBuffers.clear(); - this.initializedBuffers = set; + this.initializedBuffers = map; regionExt.frx_setContext(this, origin); this.buffers = buffers; return this; @@ -207,16 +201,11 @@ protected void shadeQuad() { /** Lazily retrieves output buffer for given layer, initializing as needed. */ @SuppressWarnings("unchecked") protected BufferBuilder getInitializedBuffer(RenderType renderLayer) { - BufferBuilder result = usedBuffers.get(renderLayer); + BufferBuilder result = (BufferBuilder)initializedBuffers.get(renderLayer); if (result == null) { - final BufferBuilder builder = buffers.builder(renderLayer); - result = builder; - usedBuffers.put(renderLayer, result); - - if (initializedBuffers.add(renderLayer)) { - result.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.BLOCK); - } + result = new BufferBuilder(buffers.buffer(renderLayer), VertexFormat.Mode.QUADS, DefaultVertexFormat.BLOCK); + initializedBuffers.put(renderLayer, result); } return result; diff --git a/fabric/build.gradle b/fabric/build.gradle index daf40abd..12b550de 100755 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -1,4 +1,4 @@ -// VRAM STANDARD GRADLE BUILD FOR FABRIC 1.20 +// VRAM STANDARD GRADLE BUILD FOR FABRIC 1.21 // DO NOT MAKE CHANGES HERE - THEY WILL BE OVERWRITTEN BY AUTOMATED UPDATE buildscript { @@ -8,7 +8,7 @@ buildscript { } plugins { - id 'fabric-loom' version '1.6-SNAPSHOT' + id 'fabric-loom' version '1.7-SNAPSHOT' id 'maven-publish' id 'org.cadixdev.licenser' version '0.6.1' id 'org.ajoberstar.grgit' version '4.1.1' @@ -19,7 +19,7 @@ plugins { ext.platform_name = 'fabric' ext.loader_version = '0.15.11' -ext.fabric_version = '0.97.8+1.20.5' +ext.fabric_version = '0.100.8+1.21' // Hat tip to JellySquid configurations { diff --git a/fabric/src/main/java/grondag/frex/api/model/LazyForwardingBakedModel.java b/fabric/src/main/java/grondag/frex/api/model/LazyForwardingBakedModel.java index bac4d056..7754c0e8 100644 --- a/fabric/src/main/java/grondag/frex/api/model/LazyForwardingBakedModel.java +++ b/fabric/src/main/java/grondag/frex/api/model/LazyForwardingBakedModel.java @@ -22,7 +22,8 @@ import java.util.List; import java.util.function.Supplier; - +import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel; +import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.ItemOverrides; import net.minecraft.client.renderer.block.model.ItemTransforms; @@ -35,9 +36,6 @@ import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.state.BlockState; -import net.fabricmc.fabric.api.renderer.v1.model.FabricBakedModel; -import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; - // WIP: create go-forward version of this for BakedModels if seems to have any use (see request from Pepper) // WIP: also a non-lazy version diff --git a/fabric/src/main/java/io/vram/frex/fabric/FrexMod.java b/fabric/src/main/java/io/vram/frex/fabric/FrexMod.java index 1d809f90..914fc784 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/FrexMod.java +++ b/fabric/src/main/java/io/vram/frex/fabric/FrexMod.java @@ -26,17 +26,14 @@ import java.util.function.Function; import com.google.common.collect.ImmutableList; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.packs.PackType; -import net.minecraft.server.packs.resources.ResourceManager; - import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.resource.ResourceManagerHelper; import net.fabricmc.fabric.api.resource.ResourceReloadListenerKeys; import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener; import net.fabricmc.loader.api.FabricLoader; - +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.resources.ResourceManager; import io.vram.frex.api.config.FrexConfig; import io.vram.frex.impl.FrexLoadManager; import io.vram.frex.impl.config.FlawlessFramesImpl; @@ -68,7 +65,7 @@ private static void setupRenderer() { private final SimpleSynchronousResourceReloadListener modelTextureListener = new SimpleSynchronousResourceReloadListener() { private final List deps = ImmutableList.of(ResourceReloadListenerKeys.MODELS, ResourceReloadListenerKeys.TEXTURES); - private final ResourceLocation id = new ResourceLocation("frex:models_and_textures"); + private final ResourceLocation id = ResourceLocation.parse("frex:models_and_textures"); @Override public ResourceLocation getFabricId() { @@ -88,7 +85,7 @@ public void onResourceManagerReload(ResourceManager resourceManager) { private final SimpleSynchronousResourceReloadListener lightListener = new SimpleSynchronousResourceReloadListener() { private final List deps = ImmutableList.of(); - private final ResourceLocation id = new ResourceLocation("frex:general"); + private final ResourceLocation id = ResourceLocation.parse("frex:general"); @Override public ResourceLocation getFabricId() { diff --git a/fabric/src/main/java/io/vram/frex/fabric/compat/FabricContextWrapper.java b/fabric/src/main/java/io/vram/frex/fabric/compat/FabricContextWrapper.java index 0caffb7f..45efe60c 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/compat/FabricContextWrapper.java +++ b/fabric/src/main/java/io/vram/frex/fabric/compat/FabricContextWrapper.java @@ -24,16 +24,13 @@ import it.unimi.dsi.fastutil.objects.ObjectArrayList; import org.jetbrains.annotations.Nullable; - +import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh; +import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter; +import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.Direction; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.level.block.state.BlockState; - -import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh; -import net.fabricmc.fabric.api.renderer.v1.mesh.QuadEmitter; -import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; - import io.vram.frex.api.buffer.QuadSink; import io.vram.frex.api.model.BakedInputContext; import io.vram.frex.api.model.ItemModel; diff --git a/fabric/src/main/java/io/vram/frex/fabric/compat/FabricQuadEmitter.java b/fabric/src/main/java/io/vram/frex/fabric/compat/FabricQuadEmitter.java index abeeb6b0..d7bc4aff 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/compat/FabricQuadEmitter.java +++ b/fabric/src/main/java/io/vram/frex/fabric/compat/FabricQuadEmitter.java @@ -21,13 +21,10 @@ package io.vram.frex.fabric.compat; import org.jetbrains.annotations.Nullable; - +import net.fabricmc.fabric.api.renderer.v1.mesh.QuadView; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.core.Direction; - -import net.fabricmc.fabric.api.renderer.v1.mesh.QuadView; - import io.vram.frex.api.buffer.QuadEmitter; import io.vram.frex.api.material.RenderMaterial; diff --git a/fabric/src/main/java/io/vram/frex/fabric/compat/FabricQuadView.java b/fabric/src/main/java/io/vram/frex/fabric/compat/FabricQuadView.java index 43d98479..3d2a0b12 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/compat/FabricQuadView.java +++ b/fabric/src/main/java/io/vram/frex/fabric/compat/FabricQuadView.java @@ -24,11 +24,8 @@ import org.jetbrains.annotations.Nullable; import org.joml.Vector2f; import org.joml.Vector3f; - -import net.minecraft.core.Direction; - import net.fabricmc.fabric.api.renderer.v1.mesh.MutableQuadView; - +import net.minecraft.core.Direction; import io.vram.frex.api.math.PackedVector3f; import io.vram.frex.api.mesh.QuadView; diff --git a/fabric/src/main/java/io/vram/frex/fabric/compat/FrexCompatibilityWrapper.java b/fabric/src/main/java/io/vram/frex/fabric/compat/FrexCompatibilityWrapper.java index 9f13ebf5..1e25e4ee 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/compat/FrexCompatibilityWrapper.java +++ b/fabric/src/main/java/io/vram/frex/fabric/compat/FrexCompatibilityWrapper.java @@ -21,13 +21,10 @@ package io.vram.frex.fabric.compat; import org.jetbrains.annotations.Nullable; - -import net.minecraft.resources.ResourceLocation; - import net.fabricmc.fabric.api.renderer.v1.material.MaterialFinder; import net.fabricmc.fabric.api.renderer.v1.material.RenderMaterial; import net.fabricmc.fabric.api.renderer.v1.mesh.MeshBuilder; - +import net.minecraft.resources.ResourceLocation; import io.vram.frex.api.renderer.Renderer; public class FrexCompatibilityWrapper implements net.fabricmc.fabric.api.renderer.v1.Renderer { diff --git a/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinBlockEntityRenderDataImpl.java b/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinBlockEntityRenderDataImpl.java index 9f9117a6..bf27a1e7 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinBlockEntityRenderDataImpl.java +++ b/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinBlockEntityRenderDataImpl.java @@ -24,11 +24,8 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; - -import net.minecraft.world.level.block.entity.BlockEntity; - import net.fabricmc.fabric.api.blockview.v2.RenderDataBlockEntity; - +import net.minecraft.world.level.block.entity.BlockEntity; import io.vram.frex.impl.world.BlockEntityRenderDataImpl; @Mixin(BlockEntityRenderDataImpl.class) diff --git a/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinFabricSpriteFinder.java b/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinFabricSpriteFinder.java index 5d08ab9d..d47c3a19 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinFabricSpriteFinder.java +++ b/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinFabricSpriteFinder.java @@ -22,11 +22,8 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; - -import net.minecraft.client.renderer.texture.TextureAtlas; - import net.fabricmc.fabric.api.renderer.v1.model.SpriteFinder; - +import net.minecraft.client.renderer.texture.TextureAtlas; import io.vram.frex.impl.texture.SpriteFinderImpl; @Mixin(SpriteFinder.class) diff --git a/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinFluidAppearanceImpl.java b/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinFluidAppearanceImpl.java index d71abcc9..6a4297ad 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinFluidAppearanceImpl.java +++ b/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinFluidAppearanceImpl.java @@ -22,12 +22,9 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; - -import net.minecraft.world.level.material.Fluid; - import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandler; import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry; - +import net.minecraft.world.level.material.Fluid; import io.vram.frex.api.model.fluid.FluidAppearance; import io.vram.frex.impl.model.FluidAppearanceImpl; diff --git a/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinSpriteFinderImpl.java b/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinSpriteFinderImpl.java index 44a7f8b4..bf77aa2e 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinSpriteFinderImpl.java +++ b/fabric/src/main/java/io/vram/frex/fabric/mixin/MixinSpriteFinderImpl.java @@ -21,12 +21,9 @@ package io.vram.frex.fabric.mixin; import org.spongepowered.asm.mixin.Mixin; - -import net.minecraft.client.renderer.texture.TextureAtlasSprite; - import net.fabricmc.fabric.api.renderer.v1.mesh.QuadView; import net.fabricmc.fabric.api.renderer.v1.model.SpriteFinder; - +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import io.vram.frex.impl.texture.SpriteFinderImpl; @SuppressWarnings("NonExtendableApiUsage") diff --git a/fabric/src/main/java/io/vram/frex/fabric/mixin/events/MixinFabricWorldRenderContext.java b/fabric/src/main/java/io/vram/frex/fabric/mixin/events/MixinFabricWorldRenderContext.java index e92018dc..894e2f1c 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/mixin/events/MixinFabricWorldRenderContext.java +++ b/fabric/src/main/java/io/vram/frex/fabric/mixin/events/MixinFabricWorldRenderContext.java @@ -22,13 +22,9 @@ import org.joml.Matrix4f; import org.spongepowered.asm.mixin.Mixin; - -import com.mojang.blaze3d.vertex.PoseStack; - -import net.minecraft.client.renderer.LightTexture; - import net.fabricmc.fabric.impl.client.rendering.WorldRenderContextImpl; - +import net.minecraft.client.renderer.LightTexture; +import com.mojang.blaze3d.vertex.PoseStack; import io.vram.frex.api.renderloop.BlockOutlineListener.BlockOutlineContext; import io.vram.frex.api.renderloop.WorldRenderContext; diff --git a/fabric/src/main/java/io/vram/frex/fabric/mixin/events/MixinLevelRendererEvents.java b/fabric/src/main/java/io/vram/frex/fabric/mixin/events/MixinLevelRendererEvents.java index 2eddd1b2..f2ca9c73 100644 --- a/fabric/src/main/java/io/vram/frex/fabric/mixin/events/MixinLevelRendererEvents.java +++ b/fabric/src/main/java/io/vram/frex/fabric/mixin/events/MixinLevelRendererEvents.java @@ -21,6 +21,8 @@ package io.vram.frex.fabric.mixin.events; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import org.joml.Matrix4f; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -29,10 +31,17 @@ import org.spongepowered.asm.mixin.injection.At.Shift; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; - +import io.vram.frex.api.renderloop.BlockOutlineListener; +import io.vram.frex.api.renderloop.BlockOutlinePreListener; +import io.vram.frex.api.renderloop.DebugRenderListener; +import io.vram.frex.api.renderloop.EntityRenderPostListener; +import io.vram.frex.api.renderloop.EntityRenderPreListener; +import io.vram.frex.api.renderloop.FrustumSetupListener; +import io.vram.frex.api.renderloop.TranslucentPostListener; +import io.vram.frex.api.renderloop.WorldRenderContextBase; +import io.vram.frex.api.renderloop.WorldRenderLastListener; +import io.vram.frex.api.renderloop.WorldRenderPostListener; +import io.vram.frex.api.renderloop.WorldRenderStartListener; import net.minecraft.client.Camera; import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; @@ -47,18 +56,6 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.level.block.state.BlockState; -import io.vram.frex.api.renderloop.BlockOutlineListener; -import io.vram.frex.api.renderloop.BlockOutlinePreListener; -import io.vram.frex.api.renderloop.DebugRenderListener; -import io.vram.frex.api.renderloop.EntityRenderPostListener; -import io.vram.frex.api.renderloop.EntityRenderPreListener; -import io.vram.frex.api.renderloop.FrustumSetupListener; -import io.vram.frex.api.renderloop.TranslucentPostListener; -import io.vram.frex.api.renderloop.WorldRenderContextBase; -import io.vram.frex.api.renderloop.WorldRenderLastListener; -import io.vram.frex.api.renderloop.WorldRenderPostListener; -import io.vram.frex.api.renderloop.WorldRenderStartListener; - // Only loaded when Fabric API is not present @Mixin(LevelRenderer.class) public class MixinLevelRendererEvents { diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index c28aaf45..de546e4f 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -26,7 +26,7 @@ }, "depends": { "fabricloader": ">=0.15.11", - "minecraft": ">=1.20.5", + "minecraft": ">=1.21", "java": ">=21" }, "custom": { diff --git a/fabriquilt/src/main/java/io/vram/frex/pastel/mixin/MixinChunkRebuildTask.java b/fabriquilt/src/main/java/io/vram/frex/pastel/mixin/MixinChunkRebuildTask.java index f6b244a6..07847222 100644 --- a/fabriquilt/src/main/java/io/vram/frex/pastel/mixin/MixinChunkRebuildTask.java +++ b/fabriquilt/src/main/java/io/vram/frex/pastel/mixin/MixinChunkRebuildTask.java @@ -20,6 +20,7 @@ package io.vram.frex.pastel.mixin; +import java.util.Map; import java.util.Set; import org.spongepowered.asm.mixin.Mixin; @@ -33,16 +34,17 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; +import com.mojang.blaze3d.vertex.VertexSorting; import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.block.BlockRenderDispatcher; -import net.minecraft.client.renderer.chunk.SectionRenderDispatcher.RenderSection; -import net.minecraft.client.renderer.chunk.SectionRenderDispatcher.RenderSection.RebuildTask; -import net.minecraft.client.renderer.chunk.SectionRenderDispatcher.RenderSection.RebuildTask.CompileResults; +import net.minecraft.client.renderer.chunk.SectionCompiler; +import net.minecraft.client.renderer.chunk.SectionCompiler.Results; import net.minecraft.client.renderer.chunk.RenderChunkRegion; import net.minecraft.client.renderer.chunk.VisGraph; import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; +import net.minecraft.core.SectionPos; import net.minecraft.util.RandomSource; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.RenderShape; @@ -59,50 +61,51 @@ import io.vram.frex.pastel.PastelTerrainRenderContext; import io.vram.frex.pastel.mixinterface.RenderChunkRegionExt; -@Mixin(RebuildTask.class) +@Mixin(SectionCompiler.class) public abstract class MixinChunkRebuildTask implements RenderRegionContext { - //e -> field_20839 -> this$1 - @Shadow(aliases = {"field_20839"}) protected RenderSection this$1; - // Below are for RenderRegionBakeListener support @Unique private final PastelBlockStateRenderer blockStateRenderer = new PastelBlockStateRenderer(); - // could shadow this but is set to null by the time we need it + // these are only valid for RenderRegionBakeListener (see regionStartHook) @Unique private RenderChunkRegion contextRegion; + @Unique + private BlockPos contextOrigin; @Unique private final BlockPos.MutableBlockPos searchPos = new BlockPos.MutableBlockPos(); - @Inject(method = "Lnet/minecraft/client/renderer/chunk/SectionRenderDispatcher$RenderSection$RebuildTask;compile(FFFLnet/minecraft/client/renderer/SectionBufferBuilderPack;)Lnet/minecraft/client/renderer/chunk/SectionRenderDispatcher$RenderSection$RebuildTask$CompileResults;", + @Inject(method = "compile(Lnet/minecraft/core/SectionPos;Lnet/minecraft/client/renderer/chunk/RenderChunkRegion;Lcom/mojang/blaze3d/vertex/VertexSorting;Lnet/minecraft/client/renderer/SectionBufferBuilderPack;)Lnet/minecraft/client/renderer/chunk/SectionCompiler$Results;", require = 1, locals = LocalCapture.CAPTURE_FAILHARD, at = @At(value = "INVOKE", target = "Lnet/minecraft/util/RandomSource;create()Lnet/minecraft/util/RandomSource;")) - private void regionStartHook(float arg0, float arg1, float arg2, SectionBufferBuilderPack arg3, CallbackInfoReturnable cir, CompileResults compileResults, int i, BlockPos blockPos, BlockPos blockPos2, VisGraph visGraph, RenderChunkRegion renderChunkRegion, PoseStack poseStack, @SuppressWarnings("rawtypes") Set set) { + private void regionStartHook(SectionPos arg1, RenderChunkRegion arg2, VertexSorting arg3, SectionBufferBuilderPack arg4, CallbackInfoReturnable cir, Results compileResults, BlockPos blockPos, BlockPos blockPos2, VisGraph visGraph, PoseStack poseStack, @SuppressWarnings("rawtypes") Map map) { final PastelTerrainRenderContext context = PastelTerrainRenderContext.POOL.get(); - ((RenderChunkRegionExt) renderChunkRegion).frx_setContext(context, this$1.getOrigin()); - context.prepareForRegion(renderChunkRegion, poseStack, blockPos, arg3, set); + ((RenderChunkRegionExt) arg2).frx_setContext(context, arg1.origin()); + context.prepareForRegion(arg2, poseStack, blockPos, arg4, map); - final RenderRegionBakeListener[] listeners = ((RenderChunkRegionExt) renderChunkRegion).frx_getRenderRegionListeners(); + final RenderRegionBakeListener[] listeners = ((RenderChunkRegionExt) arg2).frx_getRenderRegionListeners(); if (listeners != null) { - contextRegion = renderChunkRegion; - blockStateRenderer.prepare(poseStack, renderChunkRegion); + contextRegion = arg2; + contextOrigin = arg1.origin(); + blockStateRenderer.prepare(poseStack, arg2); final int limit = listeners.length; for (int n = 0; n < limit; ++n) { final var listener = listeners[n]; - context.overrideBlockView(listener.blockViewOverride(renderChunkRegion)); + context.overrideBlockView(listener.blockViewOverride(arg2)); listener.bake(this, blockStateRenderer); } - context.overrideBlockView(renderChunkRegion); + context.overrideBlockView(arg2); contextRegion = null; + contextOrigin = null; } } - @Redirect(method = "Lnet/minecraft/client/renderer/chunk/SectionRenderDispatcher$RenderSection$RebuildTask;compile(FFFLnet/minecraft/client/renderer/SectionBufferBuilderPack;)Lnet/minecraft/client/renderer/chunk/SectionRenderDispatcher$RenderSection$RebuildTask$CompileResults;", + @Redirect(method = "compile(Lnet/minecraft/core/SectionPos;Lnet/minecraft/client/renderer/chunk/RenderChunkRegion;Lcom/mojang/blaze3d/vertex/VertexSorting;Lnet/minecraft/client/renderer/SectionBufferBuilderPack;)Lnet/minecraft/client/renderer/chunk/SectionCompiler$Results;", require = 1, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/block/BlockRenderDispatcher;renderBatched(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/BlockAndTintGetter;Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;ZLnet/minecraft/util/RandomSource;)V")) private void blockRenderHook(BlockRenderDispatcher renderManager, BlockState blockState, BlockPos blockPos, BlockAndTintGetter blockView, PoseStack matrix, VertexConsumer bufferBuilder, boolean checkSides, RandomSource random) { @@ -117,14 +120,14 @@ private void blockRenderHook(BlockRenderDispatcher renderManager, BlockState blo } } - @Redirect(method = "Lnet/minecraft/client/renderer/chunk/SectionRenderDispatcher$RenderSection$RebuildTask;compile(FFFLnet/minecraft/client/renderer/SectionBufferBuilderPack;)Lnet/minecraft/client/renderer/chunk/SectionRenderDispatcher$RenderSection$RebuildTask$CompileResults;", + @Redirect(method = "compile(Lnet/minecraft/core/SectionPos;Lnet/minecraft/client/renderer/chunk/RenderChunkRegion;Lcom/mojang/blaze3d/vertex/VertexSorting;Lnet/minecraft/client/renderer/SectionBufferBuilderPack;)Lnet/minecraft/client/renderer/chunk/SectionCompiler$Results;", require = 1, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/block/BlockRenderDispatcher;renderLiquid(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/BlockAndTintGetter;Lcom/mojang/blaze3d/vertex/VertexConsumer;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/material/FluidState;)V")) private void fluidRenderHook(BlockRenderDispatcher renderManager, BlockPos blockPos, BlockAndTintGetter blockView, VertexConsumer vertexConsumer, BlockState currentBlockState, FluidState fluidState) { ((RenderChunkRegionExt) blockView).frx_getContext().renderFluid(currentBlockState, blockPos, FluidModel.get(fluidState.getType())); } - @Inject(at = @At("RETURN"), method = "Lnet/minecraft/client/renderer/chunk/SectionRenderDispatcher$RenderSection$RebuildTask;compile(FFFLnet/minecraft/client/renderer/SectionBufferBuilderPack;)Lnet/minecraft/client/renderer/chunk/SectionRenderDispatcher$RenderSection$RebuildTask$CompileResults;") + @Inject(at = @At("RETURN"), method = "compile(Lnet/minecraft/core/SectionPos;Lnet/minecraft/client/renderer/chunk/RenderChunkRegion;Lcom/mojang/blaze3d/vertex/VertexSorting;Lnet/minecraft/client/renderer/SectionBufferBuilderPack;)Lnet/minecraft/client/renderer/chunk/SectionCompiler$Results;") private void hookRebuildChunkReturn(CallbackInfoReturnable> ci) { PastelTerrainRenderContext.POOL.get().inputContext.release(); } @@ -136,12 +139,15 @@ public BlockAndTintGetter blockView() { @Override public BlockPos origin() { - return this$1.getOrigin(); + return contextOrigin; } @Override public MutableBlockPos originOffset(int x, int y, int z) { final var origin = origin(); + if (origin == null) { + return null; + } return searchPos.set(origin.getX() + x, origin.getY() + y, origin.getZ() + z); } } diff --git a/forge/build.gradle b/forge/build.gradle index 3d91e135..ef23c6f8 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -1,4 +1,4 @@ -// VRAM STANDARD GRADLE BUILD FOR FORGE 1.19 +// VRAM STANDARD GRADLE BUILD FOR FORGE 1.21 // DO NOT MAKE CHANGES HERE - THEY WILL BE OVERWRITTEN BY AUTOMATED UPDATE buildscript { @@ -8,18 +8,18 @@ buildscript { } plugins { - id 'dev.architectury.loom' version '1.1.335' + id 'dev.architectury.loom' version '1.6-SNAPSHOT' id 'maven-publish' id 'org.cadixdev.licenser' version '0.6.1' id 'org.ajoberstar.grgit' version '4.1.1' id 'com.matthewprenger.cursegradle' version '1.4.0' id 'checkstyle' id 'com.modrinth.minotaur' version '2.2.0' - id "com.github.johnrengelman.shadow" version "7.0.0" apply false + id "com.github.johnrengelman.shadow" version "8.1.1" apply false } ext.platform_name = 'forge' -ext.forge_version = '45.0.49' +ext.forge_version = '51.0.29' configurations { bundle { transitive = false } diff --git a/forge/gradle.properties b/forge/gradle.properties index cb1c426e..9f34f280 100644 --- a/forge/gradle.properties +++ b/forge/gradle.properties @@ -1,4 +1,4 @@ -#### STANDARD VRAM PROPERTIES FOR FORGE 1.18 +#### STANDARD VRAM PROPERTIES FOR FORGE #### MAKE CHANGES IN ..\project_common.gradle #### CHANGES MADE HERE WILL BE OVERWRITTEN! diff --git a/forge/settings.gradle b/forge/settings.gradle index 9c28aa2a..f12c74f4 100755 --- a/forge/settings.gradle +++ b/forge/settings.gradle @@ -1,4 +1,4 @@ -// VRAM STANDARD GRADLE SETTINGS FOR FORGE 1.18 +// VRAM STANDARD GRADLE SETTINGS FOR FORGE // DO NOT MAKE CHANGES HERE - THEY WILL BE OVERWRITTEN BY AUTOMATED UPDATE pluginManagement { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180f..d64cd491 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 17655d0e..19cfad96 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-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index c53aefaa..1aa94a42 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -32,10 +32,10 @@ # Busybox and similar reduced shells will NOT work, because this script # requires all of these POSIX shell features: # * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». # # Important for patching: # @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +80,11 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,22 +131,29 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -193,11 +198,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ @@ -205,6 +214,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/gradlew.bat b/gradlew.bat index 107acd32..25da30db 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,13 +41,13 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -56,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/gruntle.sh b/gruntle.sh index 535729b1..ace7f128 100755 --- a/gruntle.sh +++ b/gruntle.sh @@ -1,4 +1,4 @@ -readonly MC_VERSION="1.20.5" +readonly MC_VERSION="1.21" echo "GRUNTLE REFRESH FOR $MC_VERSION - IF THIS IS NOT A $MC_VERSION BRANCH YOU HAVE DONE A BAD" diff --git a/gruntle_common.gradle b/gruntle_common.gradle index f1e5d444..fdccf5e0 100755 --- a/gruntle_common.gradle +++ b/gruntle_common.gradle @@ -1,5 +1,5 @@ -ext.minecraft_version = '1.20.5' -ext.release_version = '1.20.5' +ext.minecraft_version = '1.21' +ext.release_version = '1.21' base { archivesName = project.mod_name + "-" + project.platform_name diff --git a/project_common.gradle b/project_common.gradle index f48de7b8..7f49622a 100644 --- a/project_common.gradle +++ b/project_common.gradle @@ -7,7 +7,7 @@ ext.mod_name = 'frex' // by gruntle build script to match MC minor/patch version // and should be present for all grondag/VRAM mods specific to MC version. // @track_minecraft_version -ext.mod_version = '20.5' +ext.mod_version = '21.0' ext.github_repository_owner = 'vram-guild' ext.github_repository = 'frex'