From d3ac66b4eaf87584c225a7f5ff1d1cb8df2d687b Mon Sep 17 00:00:00 2001 From: Tom Boshoven Date: Fri, 24 Nov 2023 22:09:21 -0500 Subject: [PATCH 1/3] Add a name tag modifier for mirrors --- .../minecraft/magicmirror/MagicMirrorMod.java | 6 +- ...NameTagMagicMirrorBlockEntityModifier.java | 105 ++++++++++++++++++ .../modifiers/NameTagMagicMirrorModifier.java | 50 +++++++++ .../magicmirror/reflection/Reflection.java | 13 +++ .../modifiers/NameTagReflectionModifier.java | 18 +++ .../modifiers/ReflectionModifier.java | 17 ++- .../BlockEntityMagicMirrorRendererBase.java | 82 ++++++++++++-- 7 files changed, 274 insertions(+), 17 deletions(-) create mode 100644 MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/entities/modifiers/NameTagMagicMirrorBlockEntityModifier.java create mode 100644 MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/NameTagMagicMirrorModifier.java create mode 100644 MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/modifiers/NameTagReflectionModifier.java diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/MagicMirrorMod.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/MagicMirrorMod.java index 342daeed..eafdd1af 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/MagicMirrorMod.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/MagicMirrorMod.java @@ -2,10 +2,7 @@ import com.tomboshoven.minecraft.magicmirror.blocks.Blocks; import com.tomboshoven.minecraft.magicmirror.blocks.entities.BlockEntities; -import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.ArmorMagicMirrorModifier; -import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.BannerMagicMirrorModifier; -import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.CreatureMagicMirrorModifier; -import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.MagicMirrorModifier; +import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.*; import com.tomboshoven.minecraft.magicmirror.commands.Commands; import com.tomboshoven.minecraft.magicmirror.data.DataGenerators; import com.tomboshoven.minecraft.magicmirror.items.Items; @@ -53,5 +50,6 @@ public MagicMirrorMod() { MagicMirrorModifier.register(new ArmorMagicMirrorModifier()); MagicMirrorModifier.register(new BannerMagicMirrorModifier()); MagicMirrorModifier.register(new CreatureMagicMirrorModifier()); + MagicMirrorModifier.register(new NameTagMagicMirrorModifier()); } } diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/entities/modifiers/NameTagMagicMirrorBlockEntityModifier.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/entities/modifiers/NameTagMagicMirrorBlockEntityModifier.java new file mode 100644 index 00000000..1afcb671 --- /dev/null +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/entities/modifiers/NameTagMagicMirrorBlockEntityModifier.java @@ -0,0 +1,105 @@ +package com.tomboshoven.minecraft.magicmirror.blocks.entities.modifiers; + +import com.tomboshoven.minecraft.magicmirror.blocks.entities.MagicMirrorCoreBlockEntity; +import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.MagicMirrorModifier; +import com.tomboshoven.minecraft.magicmirror.reflection.Reflection; +import com.tomboshoven.minecraft.magicmirror.reflection.modifiers.NameTagReflectionModifier; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; + +import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; + +import static com.tomboshoven.minecraft.magicmirror.MagicMirrorMod.LOGGER; + +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class NameTagMagicMirrorBlockEntityModifier extends MagicMirrorBlockEntityModifier { + @Nullable + Component nameTag; + + /** + * The object that modifies the tag shown in the reflection. + */ + @Nullable + private NameTagReflectionModifier reflectionModifier; + + /** + * @param modifier The modifier that applied this object to the block entity. + */ + public NameTagMagicMirrorBlockEntityModifier(MagicMirrorModifier modifier) { + super(modifier); + } + + public NameTagMagicMirrorBlockEntityModifier(MagicMirrorModifier modifier, Component nameTag) { + this(modifier); + this.nameTag = nameTag; + } + + @Override + public CompoundTag write(CompoundTag nbt) { + CompoundTag tag = super.write(nbt); + if (nameTag != null) { + tag.putString("NameTag", Component.Serializer.toJson(nameTag)); + } + return tag; + } + + @Override + public void read(CompoundTag nbt) { + super.read(nbt); + + if (nbt.contains("NameTag", 8)) { + String name = nbt.getString("NameTag"); + try { + nameTag = Component.Serializer.fromJson(name); + } catch (Exception exception) { + LOGGER.warn("Failed to parse item tag {}", name, exception); + } + } + } + + @Override + public void remove(Level world, BlockPos pos) { + ItemStack itemStack = new ItemStack(Items.NAME_TAG); + itemStack.setHoverName(nameTag); + Containers.dropItemStack(world, pos.getX(), pos.getY(), pos.getZ(), itemStack); + } + + @Override + public void activate(MagicMirrorCoreBlockEntity blockEntity) { + Reflection reflection = blockEntity.getReflection(); + if (reflection != null) { + reflectionModifier = createReflectionModifier(); + reflection.addModifier(reflectionModifier); + } + } + + private NameTagReflectionModifier createReflectionModifier() { + return new NameTagReflectionModifier(nameTag); + } + + @Override + public void deactivate(MagicMirrorCoreBlockEntity blockEntity) { + if (reflectionModifier != null) { + Reflection reflection = blockEntity.getReflection(); + if (reflection != null) { + reflection.removeModifier(reflectionModifier); + } + } + } + + @Override + public boolean tryPlayerActivate(MagicMirrorCoreBlockEntity blockEntity, Player playerIn, InteractionHand hand) { + // No behavior. + return false; + } +} diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/NameTagMagicMirrorModifier.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/NameTagMagicMirrorModifier.java new file mode 100644 index 00000000..466cd67e --- /dev/null +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/NameTagMagicMirrorModifier.java @@ -0,0 +1,50 @@ +package com.tomboshoven.minecraft.magicmirror.blocks.modifiers; + +import com.tomboshoven.minecraft.magicmirror.blocks.entities.MagicMirrorCoreBlockEntity; +import com.tomboshoven.minecraft.magicmirror.blocks.entities.modifiers.MagicMirrorBlockEntityModifier; +import com.tomboshoven.minecraft.magicmirror.blocks.entities.modifiers.NameTagMagicMirrorBlockEntityModifier; +import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; + +import javax.annotation.ParametersAreNonnullByDefault; + +/** + * A magic mirror modifier that adds a name tag. + */ +@ParametersAreNonnullByDefault +@MethodsReturnNonnullByDefault +public class NameTagMagicMirrorModifier extends MagicMirrorModifier { + @Override + public String getName() { + return "name_tag"; + } + + @Override + public boolean canModify(ItemStack heldItem, MagicMirrorCoreBlockEntity blockEntity) { + // Must be activated using a name tag. + if (heldItem.getItem() != Items.NAME_TAG) { + return false; + } + // Name tag must have a custom name. + if (!heldItem.hasCustomHoverName()) { + return false; + } + + // Must not have an armor modifier yet. + return !hasModifierOfType(blockEntity); + } + + @Override + MagicMirrorBlockEntityModifier createBlockEntityModifier(CompoundTag nbt) { + MagicMirrorBlockEntityModifier teModifier = new NameTagMagicMirrorBlockEntityModifier(this); + teModifier.read(nbt); + return teModifier; + } + + @Override + MagicMirrorBlockEntityModifier createBlockEntityModifier(ItemStack usedItem) { + return new NameTagMagicMirrorBlockEntityModifier(this, usedItem.getHoverName()); + } +} diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/Reflection.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/Reflection.java index 767ae43c..941a2011 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/Reflection.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/Reflection.java @@ -4,6 +4,7 @@ import com.tomboshoven.minecraft.magicmirror.MagicMirrorMod; import com.tomboshoven.minecraft.magicmirror.reflection.modifiers.ReflectionModifier; import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.network.chat.Component; import net.minecraft.world.entity.Entity; import javax.annotation.Nullable; @@ -105,6 +106,18 @@ public Entity getReflectedEntity() { return reflectedEntity; } + /** + * @return The name tag for the reflection, or null if none. + */ + @Nullable + public Component getNameTag() { + Component nameTag = null; + for (ReflectionModifier modifier : modifiers) { + nameTag = modifier.applyNameTag(nameTag); + } + return nameTag; + } + /** * Reflect an entity. * diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/modifiers/NameTagReflectionModifier.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/modifiers/NameTagReflectionModifier.java new file mode 100644 index 00000000..b5043f69 --- /dev/null +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/modifiers/NameTagReflectionModifier.java @@ -0,0 +1,18 @@ +package com.tomboshoven.minecraft.magicmirror.reflection.modifiers; + +import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.Nullable; + +public class NameTagReflectionModifier extends ReflectionModifier { + Component nameTag; + + public NameTagReflectionModifier(Component nameTag) { + this.nameTag = nameTag; + } + + @Nullable + @Override + public Component applyNameTag(@Nullable Component nameTag) { + return this.nameTag; + } +} diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/modifiers/ReflectionModifier.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/modifiers/ReflectionModifier.java index 3f64e640..18d91b92 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/modifiers/ReflectionModifier.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/modifiers/ReflectionModifier.java @@ -2,7 +2,9 @@ import com.tomboshoven.minecraft.magicmirror.reflection.renderers.ReflectionRendererBase; import net.minecraft.MethodsReturnNonnullByDefault; +import net.minecraft.network.chat.Component; +import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; /** @@ -18,5 +20,18 @@ public abstract class ReflectionModifier { * @param reflectionRenderer The renderer to be changed. * @return The updated renderer. */ - public abstract ReflectionRendererBase apply(ReflectionRendererBase reflectionRenderer); + public ReflectionRendererBase apply(ReflectionRendererBase reflectionRenderer) { + return reflectionRenderer; + } + + /** + * Apply the modification to the name tag. + * + * @param nameTag The name tag to be changed. + * @return The updated name tag. + */ + @Nullable + public Component applyNameTag(@Nullable Component nameTag) { + return nameTag; + } } diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/renderers/BlockEntityMagicMirrorRendererBase.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/renderers/BlockEntityMagicMirrorRendererBase.java index 33213bcc..1942a3c8 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/renderers/BlockEntityMagicMirrorRendererBase.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/renderers/BlockEntityMagicMirrorRendererBase.java @@ -6,9 +6,12 @@ import com.tomboshoven.minecraft.magicmirror.reflection.Reflection; import com.tomboshoven.minecraft.magicmirror.reflection.ReflectionClient; import com.tomboshoven.minecraft.magicmirror.reflection.ReflectionClientUpdater; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Font; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; import net.minecraft.world.entity.Entity; import net.minecraft.world.phys.Vec3; import org.joml.Matrix4f; @@ -36,40 +39,58 @@ public void render(Reflection reflection, BlockPos pos, Direction facing, PoseSt if (reflected != null) { Vec3 reflectedPos = reflected.position().add(.5, .5, .5); Vec3 distanceVector = reflectedPos.subtract(pos.getX(), pos.getY(), pos.getZ()); + float alpha = getAlpha(distanceVector); ReflectionClientUpdater.markViewed((ReflectionClient) reflection); - renderReflection((ReflectionClient) reflection, poseStack, multiBufferSource, facing, distanceVector, combinedLight); + renderReflection((ReflectionClient) reflection, poseStack, multiBufferSource, facing, alpha, combinedLight); + if (isTop()) { + Component nameTag = reflection.getNameTag(); + if (nameTag != null) { + renderNameTag(nameTag, alpha, reflected.isDiscrete(), poseStack, multiBufferSource, facing, combinedLight); + } + } } } } abstract protected boolean isTop(); + /** + * The further away the subject is, the more faint the reflection. + * + * @param distance The distance vector between the mirror and the viewer + * @return the alpha value to use when rendering + */ + private static float getAlpha(Vec3 distance) { + // The further away the subject is, the more faint the reflection + double horizontalDistanceSq = distance.x * distance.x + distance.z * distance.z; + double verticalDistanceSq = distance.y * distance.y; + return Math.max(0, Math.min(1, 1.2f - (float) (horizontalDistanceSq / MAX_HORIZONTAL_DISTANCE_SQ) - (float) (verticalDistanceSq / MAX_VERTICAL_DISTANCE_SQ))); + } + /** * Render the reflection of an entity. * * @param reflection The reflection to render. - * @param matrixStack The matrix stack to use for rendering. + * @param poseStack The matrix stack to use for rendering. * @param renderTypeBuffer The buffer to render to. * @param facing The direction in which the mirror part is facing. - * @param distance The distance between the mirror and the reflected subject; used for fading. + * @param reflectionAlpha The alpha (transparency) value to use when rendering. + * @param combinedLight The light information to pass along the rendering chain. */ - private void renderReflection(ReflectionClient reflection, PoseStack matrixStack, MultiBufferSource renderTypeBuffer, Direction facing, Vec3 distance, int combinedLight) { + private void renderReflection(ReflectionClient reflection, PoseStack poseStack, MultiBufferSource renderTypeBuffer, Direction facing, float reflectionAlpha, int combinedLight) { if (!reflection.isAvailable()) { return; } - // The further away the subject is, the more faint the reflection - double horizontalDistanceSq = distance.x * distance.x + distance.z * distance.z; - double verticalDistanceSq = distance.y * distance.y; - float reflectionAlpha = Math.max(0, Math.min(1f, 1.2f - (float) (horizontalDistanceSq / MAX_HORIZONTAL_DISTANCE_SQ) - (float) (verticalDistanceSq / MAX_VERTICAL_DISTANCE_SQ))); + poseStack.pushPose(); - matrixStack.translate(.5, .5, .5); + poseStack.translate(.5, .5, .5); // Draw on top of the model instead of in the center of the block - matrixStack.mulPose(Axis.YN.rotationDegrees(facing.toYRot())); - matrixStack.translate(0, 0, -.4); + poseStack.mulPose(Axis.YN.rotationDegrees(facing.toYRot())); + poseStack.translate(0, 0, -.4); VertexConsumer buffer = renderTypeBuffer.getBuffer(reflection.getRenderType()); @@ -77,12 +98,49 @@ private void renderReflection(ReflectionClient reflection, PoseStack matrixStack float texTop = top ? 0f : .5f; float texBottom = top ? .5f : 1f; - Matrix4f matrix = matrixStack.last().pose(); + Matrix4f matrix = poseStack.last().pose(); // Draw a simple quad buffer.vertex(matrix, -.5f, -.5f, 0).color(1f, 1f, 1f, reflectionAlpha).uv(0, texBottom).uv2(combinedLight).endVertex(); buffer.vertex(matrix, .5f, -.5f, 0).color(1f, 1f, 1f, reflectionAlpha).uv(1, texBottom).uv2(combinedLight).endVertex(); buffer.vertex(matrix, .5f, .5f, 0).color(1f, 1f, 1f, reflectionAlpha).uv(1, texTop).uv2(combinedLight).endVertex(); buffer.vertex(matrix, -.5f, .5f, 0).color(1f, 1f, 1f, reflectionAlpha).uv(0, texTop).uv2(combinedLight).endVertex(); + poseStack.popPose(); + } + + /** + * Render the reflection of an entity. + * + * @param nameTag The name tag to render. + * @param alpha The alpha (transparency) value to use when rendering. + * @param discrete Whether to render the discrete version (entity is crouched). + * @param poseStack The matrix stack to use for rendering. + * @param multiBufferSource The buffer to render to. + * @param facing The direction in which the mirror part is facing. + * @param combinedLight The light information to pass along the rendering chain + */ + private void renderNameTag(Component nameTag, float alpha, boolean discrete, PoseStack poseStack, MultiBufferSource multiBufferSource, Direction facing, int combinedLight) { + Minecraft minecraft = Minecraft.getInstance(); + float backgroundOpacity = minecraft.options.getBackgroundOpacity(0.25F); + Font font = minecraft.font; + + float xOffset = (float)(-font.width(nameTag) / 2); + + poseStack.pushPose(); + poseStack.translate(.5, .5, .5); + poseStack.mulPose(Axis.YN.rotationDegrees(facing.getOpposite().toYRot())); + poseStack.translate(0, .375, .375); + poseStack.scale(-0.0125f, -0.0125f, -0.0125f); + Matrix4f matrix = poseStack.last().pose(); + + int backgroundColor = (int)(backgroundOpacity * alpha * 255f) << 24; + int darkForegroundColor = ((int)(alpha * 31f) << 24) | 0xffffff; + int lightForegroundColor = ((int)(alpha * 255f) << 24) | 0xffffff; + font.drawInBatch(nameTag, xOffset, 0, darkForegroundColor, false, matrix, multiBufferSource, discrete ? Font.DisplayMode.NORMAL : Font.DisplayMode.SEE_THROUGH, backgroundColor, combinedLight); + if (!discrete) { + font.drawInBatch(nameTag, xOffset, 0, lightForegroundColor, false, matrix, multiBufferSource, Font.DisplayMode.NORMAL, 0, combinedLight); + } + + poseStack.popPose(); } } From a1877b6dc7448c842ecf36fdf262e74a1e1be7b8 Mon Sep 17 00:00:00 2001 From: Tom Boshoven Date: Sat, 25 Nov 2023 11:56:34 -0500 Subject: [PATCH 2/3] Fix up imports --- .../modelloaders/textured/TexturedUnbakedGeometry.java | 6 +++++- .../tomboshoven/minecraft/magicmirror/MagicMirrorMod.java | 6 +++++- .../blocks/modifiers/ArmorMagicMirrorModifier.java | 2 -- .../blocks/modifiers/BannerMagicMirrorModifier.java | 2 -- .../blocks/modifiers/CreatureMagicMirrorModifier.java | 2 -- .../magicmirror/blocks/modifiers/MagicMirrorModifier.java | 1 - .../minecraft/magicmirror/reflection/ReflectionClient.java | 1 - 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/modelloaders/textured/TexturedUnbakedGeometry.java b/MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/modelloaders/textured/TexturedUnbakedGeometry.java index d2db217d..2bb887e3 100644 --- a/MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/modelloaders/textured/TexturedUnbakedGeometry.java +++ b/MagicDoorknob/src/main/java/com/tomboshoven/minecraft/magicdoorknob/modelloaders/textured/TexturedUnbakedGeometry.java @@ -3,7 +3,11 @@ import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.client.renderer.block.model.ItemOverrides; import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.client.resources.model.*; +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.ModelState; +import net.minecraft.client.resources.model.UnbakedModel; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/MagicMirrorMod.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/MagicMirrorMod.java index eafdd1af..ec4c298e 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/MagicMirrorMod.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/MagicMirrorMod.java @@ -2,7 +2,11 @@ import com.tomboshoven.minecraft.magicmirror.blocks.Blocks; import com.tomboshoven.minecraft.magicmirror.blocks.entities.BlockEntities; -import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.*; +import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.ArmorMagicMirrorModifier; +import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.BannerMagicMirrorModifier; +import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.CreatureMagicMirrorModifier; +import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.MagicMirrorModifier; +import com.tomboshoven.minecraft.magicmirror.blocks.modifiers.NameTagMagicMirrorModifier; import com.tomboshoven.minecraft.magicmirror.commands.Commands; import com.tomboshoven.minecraft.magicmirror.data.DataGenerators; import com.tomboshoven.minecraft.magicmirror.items.Items; diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/ArmorMagicMirrorModifier.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/ArmorMagicMirrorModifier.java index e58cbfa3..d1753a71 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/ArmorMagicMirrorModifier.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/ArmorMagicMirrorModifier.java @@ -4,11 +4,9 @@ import com.tomboshoven.minecraft.magicmirror.blocks.entities.modifiers.ArmorMagicMirrorBlockEntityModifier; import com.tomboshoven.minecraft.magicmirror.blocks.entities.modifiers.MagicMirrorBlockEntityModifier; import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import net.minecraft.world.level.Level; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/BannerMagicMirrorModifier.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/BannerMagicMirrorModifier.java index 54e8a555..349391bd 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/BannerMagicMirrorModifier.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/BannerMagicMirrorModifier.java @@ -4,13 +4,11 @@ import com.tomboshoven.minecraft.magicmirror.blocks.entities.modifiers.BannerMagicMirrorBlockEntityModifier; import com.tomboshoven.minecraft.magicmirror.blocks.entities.modifiers.MagicMirrorBlockEntityModifier; import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.BannerItem; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/CreatureMagicMirrorModifier.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/CreatureMagicMirrorModifier.java index 40de33cf..9295c2ef 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/CreatureMagicMirrorModifier.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/CreatureMagicMirrorModifier.java @@ -4,12 +4,10 @@ import com.tomboshoven.minecraft.magicmirror.blocks.entities.modifiers.CreatureMagicMirrorBlockEntityModifier; import com.tomboshoven.minecraft.magicmirror.blocks.entities.modifiers.MagicMirrorBlockEntityModifier; import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.EntityType; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; -import net.minecraft.world.level.Level; import javax.annotation.ParametersAreNonnullByDefault; diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/MagicMirrorModifier.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/MagicMirrorModifier.java index b20e92f1..41527916 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/MagicMirrorModifier.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/blocks/modifiers/MagicMirrorModifier.java @@ -9,7 +9,6 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import javax.annotation.Nullable; diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/ReflectionClient.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/ReflectionClient.java index 7fbd8570..2116c049 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/ReflectionClient.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/reflection/ReflectionClient.java @@ -15,7 +15,6 @@ import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; - import java.util.Locale; /** From 66a6f3baf32c5ecb81e83e474dd6ec6dd71572f6 Mon Sep 17 00:00:00 2001 From: Tom Boshoven Date: Sat, 25 Nov 2023 11:58:21 -0500 Subject: [PATCH 3/3] Remove duplicate comment --- .../renderers/BlockEntityMagicMirrorRendererBase.java | 1 - 1 file changed, 1 deletion(-) diff --git a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/renderers/BlockEntityMagicMirrorRendererBase.java b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/renderers/BlockEntityMagicMirrorRendererBase.java index 1942a3c8..eda28021 100644 --- a/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/renderers/BlockEntityMagicMirrorRendererBase.java +++ b/MagicMirror/src/main/java/com/tomboshoven/minecraft/magicmirror/renderers/BlockEntityMagicMirrorRendererBase.java @@ -63,7 +63,6 @@ public void render(Reflection reflection, BlockPos pos, Direction facing, PoseSt * @return the alpha value to use when rendering */ private static float getAlpha(Vec3 distance) { - // The further away the subject is, the more faint the reflection double horizontalDistanceSq = distance.x * distance.x + distance.z * distance.z; double verticalDistanceSq = distance.y * distance.y; return Math.max(0, Math.min(1, 1.2f - (float) (horizontalDistanceSq / MAX_HORIZONTAL_DISTANCE_SQ) - (float) (verticalDistanceSq / MAX_VERTICAL_DISTANCE_SQ)));