From 2538de7a4faad86562fada35804ae570acfeb0c0 Mon Sep 17 00:00:00 2001 From: Flanks255 <32142731+Flanks255@users.noreply.github.com> Date: Fri, 24 Jun 2022 14:23:43 -0500 Subject: [PATCH] More lens fixes. --- .../api/ActuallyAdditionsAPI.java | 16 ++--- .../mod/ActuallyAdditions.java | 2 +- .../mod/blocks/BlockAtomicReconstructor.java | 22 +++---- .../blocks/render/ReconstructorRenderer.java | 62 ++++++------------- .../mod/blocks/render/RenderDisplayStand.java | 6 +- .../mod/items/lens/Lenses.java | 14 ++--- .../tile/TileEntityAtomicReconstructor.java | 4 +- .../actuallyadditions/mod/util/AssetUtil.java | 2 +- 8 files changed, 53 insertions(+), 75 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java b/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java index 08e0dd386..6723a1775 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java +++ b/src/main/java/de/ellpeck/actuallyadditions/api/ActuallyAdditionsAPI.java @@ -20,6 +20,7 @@ import de.ellpeck.actuallyadditions.api.lens.Lens; import de.ellpeck.actuallyadditions.api.lens.LensConversion; import de.ellpeck.actuallyadditions.api.recipe.*; import de.ellpeck.actuallyadditions.mod.crafting.*; +import de.ellpeck.actuallyadditions.mod.items.lens.*; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.item.Item; @@ -99,14 +100,13 @@ public final class ActuallyAdditionsAPI { //These are getting initialized in Actually Additions' PreInit phase //DO NOT CHANGE/OVERRIDE THESE!! - public static LensConversion lensDefaultConversion; - public static Lens lensDetonation; - public static Lens lensDeath; - public static Lens lensEvenMoarDeath; - public static Lens lensColor; - public static Lens lensDisruption; - public static Lens lensDisenchanting; - public static Lens lensMining; + public static final LensConversion lensDefaultConversion = new LensConversion(); + public static final Lens lensDetonation = new LensDetonation(); + public static final Lens lensDeath = new LensDeath(); + public static final Lens lensEvenMoarDeath = new LensKiller(); + public static final Lens lensColor = new LensColor(); + public static final Lens lensDisenchanting = new LensDisenchanting(); + public static final Lens lensMining = new LensMining(); /** * Adds an ore with a specific weight to the list of ores that the lens of the miner will generate inside of stone. diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java b/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java index 81e379061..946bae682 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/ActuallyAdditions.java @@ -123,7 +123,7 @@ public class ActuallyAdditions { ActuallyAdditionsAPI.methodHandler = new MethodHandler(); ActuallyAdditionsAPI.connectionHandler = new LaserRelayConnectionHandler(); - Lenses.init(); + //Lenses.init(); // CompatUtil.registerCraftingTweaks(); event.enqueueWork(() -> CraftingHelper.register(TargetNBTIngredient.Serializer.NAME, TargetNBTIngredient.SERIALIZER)); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockAtomicReconstructor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockAtomicReconstructor.java index ad60f8b96..31fb55033 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockAtomicReconstructor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockAtomicReconstructor.java @@ -63,29 +63,29 @@ public class BlockAtomicReconstructor extends FullyDirectionalBlock.Container im if (!world.isClientSide) { TileEntityAtomicReconstructor reconstructor = (TileEntityAtomicReconstructor) world.getBlockEntity(pos); if (reconstructor != null) { - if (StackUtil.isValid(heldItem)) { + if (!heldItem.isEmpty()) { Item item = heldItem.getItem(); - if (item instanceof ILensItem && !StackUtil.isValid(reconstructor.inv.getStackInSlot(0))) { + if (item instanceof ILensItem && reconstructor.inv.getStackInSlot(0).isEmpty()) { ItemStack toPut = heldItem.copy(); toPut.setCount(1); reconstructor.inv.setStackInSlot(0, toPut); - player.inventory.removeItem(player.inventory.selected, 1); - } - //Shush, don't tell anyone! - else if (CommonConfig.Other.ELEVEN.get() == 11 && item == Items.MUSIC_DISC_11) { - reconstructor.counter++; - reconstructor.setChanged(); + if (!player.isCreative()) { + heldItem.shrink(1); + } + return ActionResultType.CONSUME; } } else { ItemStack slot = reconstructor.inv.getStackInSlot(0); - if (StackUtil.isValid(slot)) { + if (!slot.isEmpty() && hand == Hand.MAIN_HAND) { player.setItemInHand(hand, slot.copy()); - reconstructor.inv.setStackInSlot(0, StackUtil.getEmpty()); + reconstructor.inv.setStackInSlot(0, ItemStack.EMPTY); + return ActionResultType.CONSUME; } } } + return ActionResultType.FAIL; } - return ActionResultType.PASS; + return ActionResultType.CONSUME; } @Nullable diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/ReconstructorRenderer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/ReconstructorRenderer.java index c2c3dc4c1..e38e8f3cc 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/ReconstructorRenderer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/ReconstructorRenderer.java @@ -18,6 +18,7 @@ import de.ellpeck.actuallyadditions.mod.util.AssetUtil; import de.ellpeck.actuallyadditions.mod.util.StackUtil; import net.minecraft.block.BlockState; import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.item.ItemStack; @@ -25,6 +26,9 @@ import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.util.Direction; import net.minecraft.util.NonNullList; import net.minecraft.util.math.vector.Quaternion; +import net.minecraft.util.math.vector.Vector3f; + +import javax.annotation.Nonnull; public class ReconstructorRenderer extends TileEntityRenderer { @@ -33,62 +37,36 @@ public class ReconstructorRenderer extends TileEntityRenderer 0) { - Direction direction = tile.getOrientation(); - float rot = 360.0f - direction.getOpposite().toYRot(); //Sigh... - float pitch = 0; - if (direction == Direction.UP) { - pitch = 90; - } else if (direction == Direction.DOWN) { - pitch = -90; - } - AssetUtil.renderLaser(matrices, buffer, 0, 0, 0, rot, pitch, 5, 0, 0x1b6dff, 0.8f * tile.getProgress(), 0.2f); tile.decTTL(); } - if (!StackUtil.isValid(stack) || !(stack.getItem() instanceof ILensItem)) { + if (stack.isEmpty() || !(stack.getItem() instanceof ILensItem)) { return; } matrices.pushPose(); matrices.translate(0.5F, 0.5F, 0.5F); - matrices.mulPose(new Quaternion(180F, 0.0F, 0.0F, 1.0F)); - BlockState state = tile.getLevel().getBlockState(tile.getBlockPos()); - int meta = 0; //state.getBlock().getMetaFromState(state); // TODO: [port][fix] this needs to be checking direction not meta - if (meta == 0) { - matrices.translate(0F, -0.5F, 0F); - matrices.mulPose(new Quaternion(90F, 1F, 0F, 0F)); - } - if (meta == 1) { - matrices.translate(0F, -1.5F - 0.5F / 16F, 0F); - matrices.mulPose(new Quaternion(90F, 1F, 0F, 0F)); - } - if (meta == 2) { - matrices.translate(0F, -1F, 0F); - matrices.translate(0F, 0F, -0.5F); - } - if (meta == 3) { - matrices.translate(0F, -1F, 0F); - matrices.translate(0F, 0F, 0.5F + 0.5F / 16F); - } - if (meta == 4) { - matrices.translate(0F, -1F, 0F); - matrices.translate(0.5F + 0.5F / 16F, 0F, 0F); - matrices.mulPose(new Quaternion(90F, 0F, 1F, 0F)); - } - if (meta == 5) { - matrices.translate(0F, -1F, 0F); - matrices.translate(-0.5F, 0F, 0F); - matrices.mulPose(new Quaternion(90F, 0F, 1F, 0F)); - } + matrices.mulPose(Vector3f.YP.rotationDegrees(rot)); + matrices.mulPose(Vector3f.XP.rotationDegrees(pitch)); + + matrices.translate(0.0F, 0.0F, -0.5F); matrices.scale(0.5F, 0.5F, 0.5F); - AssetUtil.renderItemInWorld(stack, combinedLight, combinedOverlay, matrices, buffer); + int lightColor = WorldRenderer.getLightColor(tile.getLevel(), tile.getPosition().relative(direction)); + AssetUtil.renderItemInWorld(stack, lightColor, combinedOverlay, matrices, buffer); matrices.popPose(); } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderDisplayStand.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderDisplayStand.java index a96c1fcf5..293d11825 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderDisplayStand.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/render/RenderDisplayStand.java @@ -24,15 +24,17 @@ import net.minecraft.util.Util; import net.minecraft.util.math.vector.Quaternion; import net.minecraft.util.math.vector.Vector3f; +import javax.annotation.Nonnull; + public class RenderDisplayStand extends TileEntityRenderer { public RenderDisplayStand(TileEntityRendererDispatcher rendererDispatcherIn) { super(rendererDispatcherIn); } @Override - public void render(TileEntityDisplayStand tile, float partialTicks, MatrixStack matrices, IRenderTypeBuffer buffer, int combinedLightIn, int combinedOverlayIn) { + public void render(TileEntityDisplayStand tile, float partialTicks, @Nonnull MatrixStack matrices, @Nonnull IRenderTypeBuffer buffer, int combinedLightIn, int combinedOverlayIn) { ItemStack stack = tile.inv.getStackInSlot(0); - if (!StackUtil.isValid(stack)) { + if (stack.isEmpty()) { return; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/Lenses.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/Lenses.java index 87dd1cae6..6f8079ce8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/Lenses.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/lens/Lenses.java @@ -16,12 +16,12 @@ import de.ellpeck.actuallyadditions.api.lens.LensConversion; public final class Lenses { public static void init() { - ActuallyAdditionsAPI.lensDefaultConversion = new LensConversion(); - ActuallyAdditionsAPI.lensDetonation = new LensDetonation(); - ActuallyAdditionsAPI.lensDeath = new LensDeath(); - ActuallyAdditionsAPI.lensEvenMoarDeath = new LensKiller(); - ActuallyAdditionsAPI.lensColor = new LensColor(); - ActuallyAdditionsAPI.lensDisenchanting = new LensDisenchanting(); - ActuallyAdditionsAPI.lensMining = new LensMining(); +// ActuallyAdditionsAPI.lensDefaultConversion = new LensConversion(); +// ActuallyAdditionsAPI.lensDetonation = new LensDetonation(); +// ActuallyAdditionsAPI.lensDeath = new LensDeath(); +// ActuallyAdditionsAPI.lensEvenMoarDeath = new LensKiller(); +// ActuallyAdditionsAPI.lensColor = new LensColor(); +// ActuallyAdditionsAPI.lensDisenchanting = new LensDisenchanting(); +// ActuallyAdditionsAPI.lensMining = new LensMining(); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java index 166d1b7ba..0476770be 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityAtomicReconstructor.java @@ -132,9 +132,7 @@ public class TileEntityAtomicReconstructor extends TileEntityInventoryBase imple if (item instanceof ILensItem) { return ((ILensItem) item).getLens(); } - return this.counter >= 500 - ? ActuallyAdditionsAPI.lensDisruption - : ActuallyAdditionsAPI.lensDefaultConversion; + return ActuallyAdditionsAPI.lensDefaultConversion; } @Override diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java index 20775644b..bb5dcbd68 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/AssetUtil.java @@ -76,7 +76,7 @@ public final class AssetUtil { @OnlyIn(Dist.CLIENT) public static void renderItemInWorld(ItemStack stack, int combinedLight, int combinedOverlay, MatrixStack matrices, IRenderTypeBuffer buffer) { - if (StackUtil.isValid(stack)) { + if (!stack.isEmpty()) { Minecraft.getInstance().getItemRenderer().renderStatic( stack, ItemCameraTransforms.TransformType.FIXED, combinedLight, combinedOverlay, matrices, buffer );