From 088627aedf14af88824672b69875a0a46f476ec9 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Sun, 2 Aug 2020 15:13:20 +0200 Subject: [PATCH] Remove client-only methods from ChargerBlock which could potentially create synthetic lambda methods that reference client-only classes (and are not stripped). --- .../java/appeng/block/misc/ChargerBlock.java | 21 ------------- .../client/render/tesr/ChargerTESR.java | 30 +++++++++++++++++++ .../core/api/definitions/ApiBlocks.java | 3 +- 3 files changed, 32 insertions(+), 22 deletions(-) create mode 100644 src/main/java/appeng/client/render/tesr/ChargerTESR.java diff --git a/src/main/java/appeng/block/misc/ChargerBlock.java b/src/main/java/appeng/block/misc/ChargerBlock.java index 521ffb908..d445d2bf9 100644 --- a/src/main/java/appeng/block/misc/ChargerBlock.java +++ b/src/main/java/appeng/block/misc/ChargerBlock.java @@ -19,18 +19,12 @@ package appeng.block.misc; import java.util.Random; -import java.util.function.Function; import javax.annotation.Nullable; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; - import net.minecraft.block.BlockState; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.tileentity.TileEntityRenderer; -import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResultType; @@ -42,8 +36,6 @@ import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.shapes.ISelectionContext; import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.util.math.vector.TransformationMatrix; -import net.minecraft.util.math.vector.Vector3f; import net.minecraft.world.IBlockReader; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; @@ -52,8 +44,6 @@ import net.minecraftforge.api.distmarker.OnlyIn; import appeng.api.util.AEAxisAlignedBB; import appeng.block.AEBaseTileBlock; import appeng.client.render.effects.ParticleTypes; -import appeng.client.render.renderable.ItemRenderable; -import appeng.client.render.tesr.ModularTESR; import appeng.core.AEConfig; import appeng.core.Api; import appeng.core.AppEng; @@ -175,15 +165,4 @@ public class ChargerBlock extends AEBaseTileBlock { return VoxelShapes.create(new AxisAlignedBB(0.0, 0.0, 0.0, 1.0, 1.0, 1.0)); } - @OnlyIn(Dist.CLIENT) - public static Function> createTesr() { - return dispatcher -> new ModularTESR<>(dispatcher, new ItemRenderable<>(ChargerBlock::getRenderedItem)); - } - - @OnlyIn(Dist.CLIENT) - private static Pair getRenderedItem(ChargerTileEntity tile) { - TransformationMatrix transform = new TransformationMatrix(new Vector3f(0.5f, 0.375f, 0.5f), null, null, null); - return new ImmutablePair<>(tile.getInternalInventory().getStackInSlot(0), transform); - } - } diff --git a/src/main/java/appeng/client/render/tesr/ChargerTESR.java b/src/main/java/appeng/client/render/tesr/ChargerTESR.java new file mode 100644 index 000000000..0bb65eac0 --- /dev/null +++ b/src/main/java/appeng/client/render/tesr/ChargerTESR.java @@ -0,0 +1,30 @@ +package appeng.client.render.tesr; + +import java.util.function.Function; + +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Pair; + +import net.minecraft.client.renderer.tileentity.TileEntityRenderer; +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.item.ItemStack; +import net.minecraft.util.math.vector.TransformationMatrix; +import net.minecraft.util.math.vector.Vector3f; + +import appeng.client.render.renderable.ItemRenderable; +import appeng.tile.misc.ChargerTileEntity; + +public final class ChargerTESR { + + private ChargerTESR() { + } + + public static Function> FACTORY = dispatcher -> new ModularTESR<>( + dispatcher, new ItemRenderable<>(ChargerTESR::getRenderedItem)); + + private static Pair getRenderedItem(ChargerTileEntity tile) { + TransformationMatrix transform = new TransformationMatrix(new Vector3f(0.5f, 0.375f, 0.5f), null, null, null); + return new ImmutablePair<>(tile.getInternalInventory().getStackInSlot(0), transform); + } + +} diff --git a/src/main/java/appeng/core/api/definitions/ApiBlocks.java b/src/main/java/appeng/core/api/definitions/ApiBlocks.java index 7d2c1487e..282ff730c 100644 --- a/src/main/java/appeng/core/api/definitions/ApiBlocks.java +++ b/src/main/java/appeng/core/api/definitions/ApiBlocks.java @@ -97,6 +97,7 @@ import appeng.client.render.crafting.CraftingMonitorTESR; import appeng.client.render.crafting.MonitorBakedModel; import appeng.client.render.model.AutoRotatingBakedModel; import appeng.client.render.spatial.SpatialPylonRendering; +import appeng.client.render.tesr.ChargerTESR; import appeng.client.render.tesr.ChestTileEntityRenderer; import appeng.client.render.tesr.CrankTESR; import appeng.client.render.tesr.DriveLedTileEntityRenderer; @@ -371,7 +372,7 @@ public final class ApiBlocks implements IBlocks { @Override @OnlyIn(Dist.CLIENT) public void customize(TileEntityRendering rendering) { - rendering.tileEntityRenderer(ChargerBlock.createTesr()); + rendering.tileEntityRenderer(ChargerTESR.FACTORY); } }).build()) .build();