Small rendering optimization

This commit is contained in:
paulevsGitch 2020-11-02 20:49:32 +03:00
parent 1360b4171c
commit 6f1077eea7
4 changed files with 17 additions and 17 deletions

View file

@ -35,8 +35,8 @@ import ru.betterend.blocks.basis.BlockChest;
import ru.betterend.blocks.entities.EChestBlockEntity;
import ru.betterend.registry.EndItems;
public class EChestBlockEntityRenderer extends BlockEntityRenderer<EChestBlockEntity> {
private static final HashMap<Integer, RenderLayer[]> LAYERS = Maps.newHashMap();
public class EndChestBlockEntityRenderer extends BlockEntityRenderer<EChestBlockEntity> {
private static final HashMap<Block, RenderLayer[]> LAYERS = Maps.newHashMap();
private static RenderLayer[] defaultLayer;
private static final int ID_NORMAL = 0;
@ -53,7 +53,7 @@ public class EChestBlockEntityRenderer extends BlockEntityRenderer<EChestBlockEn
private final ModelPart partLeftC;
private final ModelPart partLeftB;
public EChestBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) {
public EndChestBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) {
super(blockEntityRenderDispatcher);
this.partC = new ModelPart(64, 64, 0, 19);
@ -151,7 +151,7 @@ public class EChestBlockEntityRenderer extends BlockEntityRenderer<EChestBlockEn
}
public static VertexConsumer getConsumer(VertexConsumerProvider provider, Block block, ChestType chestType) {
RenderLayer[] layers = LAYERS.getOrDefault(Block.getRawIdFromState(block.getDefaultState()), defaultLayer);
RenderLayer[] layers = LAYERS.getOrDefault(block, defaultLayer);
return provider.getBuffer(getChestTexture(chestType, layers));
}
@ -167,7 +167,7 @@ public class EChestBlockEntityRenderer extends BlockEntityRenderer<EChestBlockEn
Block block = ((BlockItem) item).getBlock();
if (block instanceof BlockChest) {
String name = Registry.BLOCK.getId(block).getPath();
LAYERS.put(Block.getRawIdFromState(block.getDefaultState()), new RenderLayer[] {
LAYERS.put(block, new RenderLayer[] {
RenderLayer.getEntitySolid(BetterEnd.makeID("textures/entity/chest/" + name + ".png")),
RenderLayer.getEntitySolid(BetterEnd.makeID("textures/entity/chest/" + name + "_left.png")),
RenderLayer.getEntitySolid(BetterEnd.makeID("textures/entity/chest/" + name + "_right.png"))

View file

@ -32,12 +32,12 @@ import ru.betterend.blocks.basis.BlockSign;
import ru.betterend.blocks.entities.ESignBlockEntity;
import ru.betterend.registry.EndItems;
public class ESignBlockEntityRenderer extends BlockEntityRenderer<ESignBlockEntity> {
private static final HashMap<Integer, RenderLayer> LAYERS = Maps.newHashMap();
public class EndSignBlockEntityRenderer extends BlockEntityRenderer<ESignBlockEntity> {
private static final HashMap<Block, RenderLayer> LAYERS = Maps.newHashMap();
private static RenderLayer defaultLayer;
private final SignModel model = new SignBlockEntityRenderer.SignModel();
public ESignBlockEntityRenderer(BlockEntityRenderDispatcher dispatcher) {
public EndSignBlockEntityRenderer(BlockEntityRenderDispatcher dispatcher) {
super(dispatcher);
}
@ -100,19 +100,19 @@ public class ESignBlockEntityRenderer extends BlockEntityRenderer<ESignBlockEnti
}
public static VertexConsumer getConsumer(VertexConsumerProvider provider, Block block) {
return provider.getBuffer(LAYERS.getOrDefault(Block.getRawIdFromState(block.getDefaultState()), defaultLayer));
return provider.getBuffer(LAYERS.getOrDefault(block, defaultLayer));
}
static {
defaultLayer = RenderLayer.getEntitySolid(new Identifier("textures/entity/sign/oak.png"));
EndItems.getModBlocks().forEach((item) -> {
if (item instanceof BlockItem) {
Block block = ((BlockItem) item).getBlock();
if (block instanceof BlockSign) {
String name = Registry.BLOCK.getId(block).getPath();
RenderLayer layer = RenderLayer.getEntitySolid(BetterEnd.makeID("textures/entity/sign/" + name + ".png"));
LAYERS.put(Block.getRawIdFromState(block.getDefaultState()), layer);
LAYERS.put(block, layer);
}
}
});

View file

@ -31,7 +31,7 @@ import net.minecraft.util.Util;
import net.minecraft.util.math.Matrix4f;
import ru.betterend.blocks.basis.BlockSign;
import ru.betterend.blocks.entities.ESignBlockEntity;
import ru.betterend.blocks.entities.render.ESignBlockEntityRenderer;
import ru.betterend.blocks.entities.render.EndSignBlockEntityRenderer;
@Environment(EnvType.CLIENT)
public class BlockSignEditScreen extends Screen {
@ -136,7 +136,7 @@ public class BlockSignEditScreen extends Screen {
matrices.push();
matrices.scale(0.6666667F, -0.6666667F, -0.6666667F);
VertexConsumerProvider.Immediate immediate = this.client.getBufferBuilders().getEntityVertexConsumers();
VertexConsumer vertexConsumer = ESignBlockEntityRenderer.getConsumer(immediate, blockState.getBlock());
VertexConsumer vertexConsumer = EndSignBlockEntityRenderer.getConsumer(immediate, blockState.getBlock());
this.model.field.render(matrices, vertexConsumer, 15728880, OverlayTexture.DEFAULT_UV);
if (bl) {

View file

@ -3,15 +3,15 @@ package ru.betterend.registry;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry;
import ru.betterend.blocks.entities.render.EChestBlockEntityRenderer;
import ru.betterend.blocks.entities.render.ESignBlockEntityRenderer;
import ru.betterend.blocks.entities.render.EndChestBlockEntityRenderer;
import ru.betterend.blocks.entities.render.EndSignBlockEntityRenderer;
import ru.betterend.blocks.entities.render.PedestalItemRenderer;
@Environment(EnvType.CLIENT)
public class EndBlockEntityRenders {
public static void register() {
BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.CHEST, EChestBlockEntityRenderer::new);
BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.SIGN, ESignBlockEntityRenderer::new);
BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.CHEST, EndChestBlockEntityRenderer::new);
BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.SIGN, EndSignBlockEntityRenderer::new);
BlockEntityRendererRegistry.INSTANCE.register(EndBlockEntities.PEDESTAL, PedestalItemRenderer::new);
}
}