diff --git a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java index b0e3a716..b8f72b61 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java +++ b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java @@ -25,6 +25,7 @@ import com.minelittlepony.unicopia.client.render.spell.SpellRendererFactory; import com.minelittlepony.unicopia.entity.mob.UEntities; import com.minelittlepony.unicopia.item.ChameleonItem; import com.minelittlepony.unicopia.item.EnchantableItem; +import com.minelittlepony.unicopia.item.FancyBedItem; import com.minelittlepony.unicopia.item.UItems; import com.minelittlepony.unicopia.particle.UParticles; import com.terraformersmc.terraform.boat.api.client.TerraformBoatClientHelper; @@ -127,7 +128,9 @@ public interface URenderers { @SuppressWarnings("unchecked") private static void renderBedItem(ItemStack stack, ModelTransformationMode mode, MatrixStack matrices, VertexConsumerProvider vertices, int light, int overlay) { - MinecraftClient.getInstance().getBlockEntityRenderDispatcher().renderEntity(((Supplier)stack.getItem()).get(), matrices, vertices, light, overlay); + BlockEntity entity = ((Supplier)stack.getItem()).get(); + ((FancyBedBlock.Tile)entity).setPattern(FancyBedItem.getPattern(stack)); + MinecraftClient.getInstance().getBlockEntityRenderDispatcher().renderEntity(entity, matrices, vertices, light, overlay); } private static void renderJarItem(ItemStack stack, ModelTransformationMode mode, MatrixStack matrices, VertexConsumerProvider vertices, int light, int overlay) { diff --git a/src/main/java/com/minelittlepony/unicopia/item/FancyBedItem.java b/src/main/java/com/minelittlepony/unicopia/item/FancyBedItem.java index 4dd2b6a8..cc63ea79 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/FancyBedItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/FancyBedItem.java @@ -2,12 +2,18 @@ package com.minelittlepony.unicopia.item; import java.util.function.Supplier; +import org.jetbrains.annotations.Nullable; + import com.google.common.base.Suppliers; +import com.minelittlepony.unicopia.block.FancyBedBlock; import net.minecraft.block.Block; import net.minecraft.block.BlockEntityProvider; import net.minecraft.block.entity.BlockEntity; import net.minecraft.item.BedItem; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.nbt.NbtElement; import net.minecraft.util.math.BlockPos; public class FancyBedItem extends BedItem implements Supplier { @@ -23,4 +29,13 @@ public class FancyBedItem extends BedItem implements Supplier { public BlockEntity get() { return renderEntity.get(); } + + public static FancyBedBlock.SheetPattern getPattern(ItemStack stack) { + @Nullable + NbtCompound blockEntityNbt = getBlockEntityNbt(stack); + if (blockEntityNbt == null || !blockEntityNbt.contains("pattern", NbtElement.STRING_TYPE)) { + return FancyBedBlock.SheetPattern.NONE; + } + return FancyBedBlock.SheetPattern.byId(blockEntityNbt.getString("pattern")); + } }