diff --git a/src/main/java/ru/bclib/client/SignModelFactory.java b/src/main/java/ru/bclib/client/SignModelFactory.java deleted file mode 100644 index 71550d88..00000000 --- a/src/main/java/ru/bclib/client/SignModelFactory.java +++ /dev/null @@ -1,53 +0,0 @@ -package ru.bclib.client; - -import com.google.common.collect.ImmutableMap; -import net.minecraft.client.model.geom.EntityModelSet; -import net.minecraft.client.model.geom.ModelLayers; -import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.client.renderer.blockentity.SignRenderer; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.SignBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.WoodType; -import org.jetbrains.annotations.ApiStatus; - -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -@ApiStatus.Internal -public class SignModelFactory { - public static final Set TYPES = new HashSet<>(); - - public final Map signModels; - public final SignRenderer.SignModel defaultModel; - - public SignModelFactory(EntityModelSet ctx) { - //build a list of all new sign models. - this.signModels = (Map) TYPES.stream().collect(ImmutableMap.toImmutableMap((signType) -> { - return signType; - }, (signType) -> { - return new SignRenderer.SignModel(ctx.bakeLayer(ModelLayers.createSignModelName(signType))); - })); - - //set up a default model - defaultModel = new SignRenderer.SignModel(ctx.bakeLayer(ModelLayers.createSignModelName(WoodType.OAK))); - } - - public static WoodType getSignType(Block block) { - WoodType signType2; - if (block instanceof SignBlock) { - signType2 = ((SignBlock) block).type(); - } else { - signType2 = WoodType.OAK; - } - - return signType2; - } - - public SignRenderer.SignModel getSignModel(BlockState state) { - WoodType woodType = getSignType(state.getBlock()); - SignRenderer.SignModel model = this.signModels.get(woodType); - return model; - } -} diff --git a/src/main/java/ru/bclib/client/gui/BlockSignEditScreen.java b/src/main/java/ru/bclib/client/gui/BlockSignEditScreen.java index f870a83d..30beb3a2 100644 --- a/src/main/java/ru/bclib/client/gui/BlockSignEditScreen.java +++ b/src/main/java/ru/bclib/client/gui/BlockSignEditScreen.java @@ -18,6 +18,7 @@ import net.minecraft.client.gui.GuiComponent; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.font.TextFieldHelper; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.model.geom.ModelLayers; import net.minecraft.client.multiplayer.ClientPacketListener; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.blockentity.SignRenderer; @@ -27,9 +28,9 @@ import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.network.protocol.game.ServerboundSignUpdatePacket; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.WoodType; import ru.bclib.blockentities.BaseSignBlockEntity; import ru.bclib.blocks.BaseSignBlock; -import ru.bclib.client.SignModelFactory; import ru.bclib.client.render.BaseSignBlockEntityRenderer; import java.util.Arrays; @@ -43,12 +44,14 @@ public class BlockSignEditScreen extends Screen { private final String[] text = (String[]) Util.make(new String[4], (strings) -> { Arrays.fill(strings, ""); }); - final private SignModelFactory signModelFactory; + private final SignRenderer.SignModel model; public BlockSignEditScreen(BaseSignBlockEntity sign) { super(new TranslatableComponent("sign.edit")); this.sign = sign; - signModelFactory = new SignModelFactory(this.minecraft.getEntityModels()); + + //set up a default model + model = new SignRenderer.SignModel(this.minecraft.getEntityModels().bakeLayer(ModelLayers.createSignModelName(WoodType.OAK))); } protected void init() { @@ -125,7 +128,6 @@ public class BlockSignEditScreen extends Screen { matrices.scale(93.75F, -93.75F, 93.75F); matrices.translate(0.0D, -1.3125D, 0.0D); BlockState blockState = this.sign.getBlockState(); - final SignRenderer.SignModel model = signModelFactory.getSignModel(blockState); boolean bl = blockState.getValue(BaseSignBlock.FLOOR); if (!bl) { diff --git a/src/main/java/ru/bclib/client/render/BaseSignBlockEntityRenderer.java b/src/main/java/ru/bclib/client/render/BaseSignBlockEntityRenderer.java index 5437accc..6d26f1d6 100644 --- a/src/main/java/ru/bclib/client/render/BaseSignBlockEntityRenderer.java +++ b/src/main/java/ru/bclib/client/render/BaseSignBlockEntityRenderer.java @@ -5,7 +5,6 @@ import com.mojang.blaze3d.platform.NativeImage; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Vector3f; -import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityModelLayerRegistry; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; import net.minecraft.client.model.geom.ModelLayers; @@ -15,7 +14,7 @@ import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.Sheets; import net.minecraft.client.renderer.blockentity.BlockEntityRenderer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.client.renderer.blockentity.SignRenderer.SignModel; +import net.minecraft.client.renderer.blockentity.SignRenderer; import net.minecraft.client.resources.model.Material; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceLocation; @@ -24,13 +23,13 @@ import net.minecraft.util.Mth; import net.minecraft.world.entity.Entity; import net.minecraft.world.item.DyeColor; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.SignBlock; import net.minecraft.world.level.block.StandingSignBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.WoodType; import net.minecraft.world.phys.Vec3; import ru.bclib.blockentities.BaseSignBlockEntity; import ru.bclib.blocks.BaseSignBlock; -import ru.bclib.client.SignModelFactory; import java.util.HashMap; import java.util.List; @@ -39,21 +38,22 @@ public class BaseSignBlockEntityRenderer implements BlockEntityRenderer LAYERS = Maps.newHashMap(); private static final RenderType defaultLayer; private final Font font; - private final SignModelFactory signModelFactory; + private final SignRenderer.SignModel model; private static final int OUTLINE_RENDER_DISTANCE = Mth.square(16); public BaseSignBlockEntityRenderer(BlockEntityRendererProvider.Context ctx) { super(); - this.signModelFactory = new SignModelFactory(ctx.getModelSet()); this.font = ctx.getFont(); + + //set up a default model + model = new SignRenderer.SignModel(ctx.bakeLayer(ModelLayers.createSignModelName(WoodType.OAK))); } public void render(BaseSignBlockEntity signBlockEntity, float tickDelta, PoseStack matrixStack, MultiBufferSource provider, int light, int overlay) { BlockState state = signBlockEntity.getBlockState(); - SignModel model = signModelFactory.getSignModel(state); matrixStack.pushPose(); @@ -139,24 +139,25 @@ public class BaseSignBlockEntityRenderer implements BlockEntityRenderer