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.blocks.entities.EChestBlockEntity;
import ru.betterend.registry.EndItems; import ru.betterend.registry.EndItems;
public class EChestBlockEntityRenderer extends BlockEntityRenderer<EChestBlockEntity> { public class EndChestBlockEntityRenderer extends BlockEntityRenderer<EChestBlockEntity> {
private static final HashMap<Integer, RenderLayer[]> LAYERS = Maps.newHashMap(); private static final HashMap<Block, RenderLayer[]> LAYERS = Maps.newHashMap();
private static RenderLayer[] defaultLayer; private static RenderLayer[] defaultLayer;
private static final int ID_NORMAL = 0; private static final int ID_NORMAL = 0;
@ -53,7 +53,7 @@ public class EChestBlockEntityRenderer extends BlockEntityRenderer<EChestBlockEn
private final ModelPart partLeftC; private final ModelPart partLeftC;
private final ModelPart partLeftB; private final ModelPart partLeftB;
public EChestBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) { public EndChestBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) {
super(blockEntityRenderDispatcher); super(blockEntityRenderDispatcher);
this.partC = new ModelPart(64, 64, 0, 19); 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) { 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)); return provider.getBuffer(getChestTexture(chestType, layers));
} }
@ -167,7 +167,7 @@ public class EChestBlockEntityRenderer extends BlockEntityRenderer<EChestBlockEn
Block block = ((BlockItem) item).getBlock(); Block block = ((BlockItem) item).getBlock();
if (block instanceof BlockChest) { if (block instanceof BlockChest) {
String name = Registry.BLOCK.getId(block).getPath(); 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 + ".png")),
RenderLayer.getEntitySolid(BetterEnd.makeID("textures/entity/chest/" + name + "_left.png")), RenderLayer.getEntitySolid(BetterEnd.makeID("textures/entity/chest/" + name + "_left.png")),
RenderLayer.getEntitySolid(BetterEnd.makeID("textures/entity/chest/" + name + "_right.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.blocks.entities.ESignBlockEntity;
import ru.betterend.registry.EndItems; import ru.betterend.registry.EndItems;
public class ESignBlockEntityRenderer extends BlockEntityRenderer<ESignBlockEntity> { public class EndSignBlockEntityRenderer extends BlockEntityRenderer<ESignBlockEntity> {
private static final HashMap<Integer, RenderLayer> LAYERS = Maps.newHashMap(); private static final HashMap<Block, RenderLayer> LAYERS = Maps.newHashMap();
private static RenderLayer defaultLayer; private static RenderLayer defaultLayer;
private final SignModel model = new SignBlockEntityRenderer.SignModel(); private final SignModel model = new SignBlockEntityRenderer.SignModel();
public ESignBlockEntityRenderer(BlockEntityRenderDispatcher dispatcher) { public EndSignBlockEntityRenderer(BlockEntityRenderDispatcher dispatcher) {
super(dispatcher); super(dispatcher);
} }
@ -100,19 +100,19 @@ public class ESignBlockEntityRenderer extends BlockEntityRenderer<ESignBlockEnti
} }
public static VertexConsumer getConsumer(VertexConsumerProvider provider, Block block) { 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 { static {
defaultLayer = RenderLayer.getEntitySolid(new Identifier("textures/entity/sign/oak.png")); defaultLayer = RenderLayer.getEntitySolid(new Identifier("textures/entity/sign/oak.png"));
EndItems.getModBlocks().forEach((item) -> { EndItems.getModBlocks().forEach((item) -> {
if (item instanceof BlockItem) { if (item instanceof BlockItem) {
Block block = ((BlockItem) item).getBlock(); Block block = ((BlockItem) item).getBlock();
if (block instanceof BlockSign) { if (block instanceof BlockSign) {
String name = Registry.BLOCK.getId(block).getPath(); String name = Registry.BLOCK.getId(block).getPath();
RenderLayer layer = RenderLayer.getEntitySolid(BetterEnd.makeID("textures/entity/sign/" + name + ".png")); 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 net.minecraft.util.math.Matrix4f;
import ru.betterend.blocks.basis.BlockSign; import ru.betterend.blocks.basis.BlockSign;
import ru.betterend.blocks.entities.ESignBlockEntity; import ru.betterend.blocks.entities.ESignBlockEntity;
import ru.betterend.blocks.entities.render.ESignBlockEntityRenderer; import ru.betterend.blocks.entities.render.EndSignBlockEntityRenderer;
@Environment(EnvType.CLIENT) @Environment(EnvType.CLIENT)
public class BlockSignEditScreen extends Screen { public class BlockSignEditScreen extends Screen {
@ -136,7 +136,7 @@ public class BlockSignEditScreen extends Screen {
matrices.push(); matrices.push();
matrices.scale(0.6666667F, -0.6666667F, -0.6666667F); matrices.scale(0.6666667F, -0.6666667F, -0.6666667F);
VertexConsumerProvider.Immediate immediate = this.client.getBufferBuilders().getEntityVertexConsumers(); 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); this.model.field.render(matrices, vertexConsumer, 15728880, OverlayTexture.DEFAULT_UV);
if (bl) { if (bl) {

View file

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