diff --git a/src/main/java/com/minelittlepony/unicopia/block/FancyBedBlock.java b/src/main/java/com/minelittlepony/unicopia/block/FancyBedBlock.java new file mode 100644 index 00000000..1ff86b42 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/block/FancyBedBlock.java @@ -0,0 +1,121 @@ +package com.minelittlepony.unicopia.block; + +import java.util.Locale; + +import com.minelittlepony.unicopia.item.BedsheetsItem; + +import net.minecraft.block.BedBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BedBlockEntity; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.block.enums.BedPart; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.util.DyeColor; +import net.minecraft.util.StringIdentifiable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.World; + +public class FancyBedBlock extends BedBlock { + + private final String base; + + public FancyBedBlock(String base, Settings settings) { + super(DyeColor.WHITE, settings); + this.base = base; + } + + @Override + public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { + return new Tile(pos, state); + } + + public static void setBedPattern(World world, BlockPos pos, SheetPattern pattern) { + world.getBlockEntity(pos, UBlockEntities.FANCY_BED).ifPresent(tile -> { + ItemStack stack = BedsheetsItem.forPattern(tile.getPattern()).getDefaultStack(); + if (!stack.isEmpty()) { + Block.dropStack(world, pos, stack); + } + tile.setPattern(pattern); + BlockState state = tile.getCachedState(); + BlockPos other = pos.offset(getDirectionTowardsOtherPart(state.get(PART), state.get(FACING))); + world.getBlockEntity(other, UBlockEntities.FANCY_BED).ifPresent(tile2 -> { + tile2.setPattern(pattern); + }); + }); + } + + private static Direction getDirectionTowardsOtherPart(BedPart part, Direction direction) { + return part == BedPart.FOOT ? direction : direction.getOpposite(); + } + + public static class Tile extends BedBlockEntity { + private SheetPattern pattern = SheetPattern.NONE; + + public Tile(BlockPos pos, BlockState state) { + super(pos, state); + } + + @Override + public BlockEntityType getType() { + return UBlockEntities.FANCY_BED; + } + + @Override + public void readNbt(NbtCompound nbt) { + pattern = SheetPattern.byId(nbt.getString("pattern")); + } + + @Override + protected void writeNbt(NbtCompound nbt) { + nbt.putString("pattern", pattern.asString()); + } + + @Override + public NbtCompound toInitialChunkDataNbt() { + return createNbt(); + } + + public String getBase() { + return ((FancyBedBlock)getCachedState().getBlock()).base; + } + + public void setPattern(SheetPattern pattern) { + this.pattern = pattern; + markDirty(); + } + + public SheetPattern getPattern() { + return pattern; + } + } + + public enum SheetPattern implements StringIdentifiable { + NONE, + APPLE, + BARS, + BLUE, + CHECKER, + ORANGE, + PINK, + RAINBOW; + + @SuppressWarnings("deprecation") + public static final Codec CODEC = StringIdentifiable.createCodec(SheetPattern::values); + + private final String name = name().toLowerCase(Locale.ROOT); + + @Override + public String asString() { + return name; + } + + @SuppressWarnings("deprecation") + public static SheetPattern byId(String id) { + return CODEC.byId(id, NONE); + } + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/block/UBlockEntities.java b/src/main/java/com/minelittlepony/unicopia/block/UBlockEntities.java index 0cee11db..cd929491 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/UBlockEntities.java +++ b/src/main/java/com/minelittlepony/unicopia/block/UBlockEntities.java @@ -10,7 +10,7 @@ import net.minecraft.registry.Registries; public interface UBlockEntities { BlockEntityType WEATHER_VANE = create("weather_vane", BlockEntityType.Builder.create(WeatherVaneBlock.WeatherVane::new, UBlocks.WEATHER_VANE)); - BlockEntityType CLOUD_BED = create("cloud_bed", BlockEntityType.Builder.create(CloudBedBlock.Tile::new, UBlocks.WHITE_CLOUD_BED, UBlocks.ORANGE_CLOUD_BED)); + BlockEntityType FANCY_BED = create("fancy_bed", BlockEntityType.Builder.create(CloudBedBlock.Tile::new, UBlocks.CLOTH_BED, UBlocks.CLOUD_BED)); static BlockEntityType create(String id, Builder builder) { return Registry.register(Registries.BLOCK_ENTITY_TYPE, id, builder.build(null)); diff --git a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java index 11a76134..7034bfe6 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java +++ b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java @@ -30,7 +30,6 @@ import net.minecraft.block.enums.Instrument; import net.minecraft.block.piston.PistonBehavior; import net.minecraft.item.*; import net.minecraft.sound.BlockSoundGroup; -import net.minecraft.util.DyeColor; import net.minecraft.util.Identifier; import net.minecraft.util.math.Direction; import net.minecraft.util.shape.VoxelShapes; @@ -175,8 +174,8 @@ public interface UBlocks { Block CARVED_CLOUD = register("carved_cloud", new OrientedCloudBlock(Settings.copy(CLOUD).hardness(0.4F).requiresTool(), false), ItemGroups.BUILDING_BLOCKS); Block UNSTABLE_CLOUD = register("unstable_cloud", new UnstableCloudBlock(Settings.copy(CLOUD)), ItemGroups.NATURAL); Block CLOUD_PILLAR = register("cloud_pillar", new CloudPillarBlock(Settings.create().mapColor(MapColor.GRAY).hardness(0.5F).resistance(0).sounds(BlockSoundGroup.WOOL)), ItemGroups.NATURAL); - Block WHITE_CLOUD_BED = register("white_cloud_bed", new CloudBedBlock(DyeColor.WHITE, CLOUD.getDefaultState(), Settings.copy(Blocks.WHITE_BED).sounds(BlockSoundGroup.WOOL))); - Block ORANGE_CLOUD_BED = register("orange_cloud_bed", new CloudBedBlock(DyeColor.ORANGE, CLOUD.getDefaultState(), Settings.copy(Blocks.ORANGE_BED).sounds(BlockSoundGroup.WOOL))); + Block CLOTH_BED = register("cloth_bed", new FancyBedBlock("cloth", Settings.copy(Blocks.WHITE_BED).sounds(BlockSoundGroup.WOOL))); + Block CLOUD_BED = register("cloud_bed", new CloudBedBlock("cloud", CLOUD.getDefaultState(), Settings.copy(Blocks.WHITE_BED).sounds(BlockSoundGroup.WOOL))); private static T register(String name, T item) { return register(Unicopia.id(name), item); diff --git a/src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBedBlock.java b/src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBedBlock.java index 4745e66b..401e0e46 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBedBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBedBlock.java @@ -3,20 +3,14 @@ package com.minelittlepony.unicopia.block.cloud; import org.jetbrains.annotations.Nullable; import com.minelittlepony.unicopia.EquineContext; -import com.minelittlepony.unicopia.block.UBlockEntities; - -import net.minecraft.block.BedBlock; +import com.minelittlepony.unicopia.block.FancyBedBlock; import net.minecraft.block.BlockState; import net.minecraft.block.ShapeContext; -import net.minecraft.block.entity.BedBlockEntity; -import net.minecraft.block.entity.BlockEntity; -import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.Entity; import net.minecraft.entity.ai.pathing.NavigationType; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemPlacementContext; import net.minecraft.util.ActionResult; -import net.minecraft.util.DyeColor; import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; @@ -25,12 +19,12 @@ import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; import net.minecraft.world.World; -public class CloudBedBlock extends BedBlock { +public class CloudBedBlock extends FancyBedBlock { private final BlockState baseState; private final CloudBlock baseBlock; - public CloudBedBlock(DyeColor color, BlockState baseState, Settings settings) { - super(color, settings); + public CloudBedBlock(String base, BlockState baseState, Settings settings) { + super(base, settings); this.baseState = baseState; this.baseBlock = (CloudBlock)baseState.getBlock(); } @@ -83,20 +77,4 @@ public class CloudBedBlock extends BedBlock { public boolean canPathfindThrough(BlockState state, BlockView world, BlockPos pos, NavigationType type) { return true; } - - @Override - public BlockEntity createBlockEntity(BlockPos pos, BlockState state) { - return new Tile(pos, state); - } - - public static class Tile extends BedBlockEntity { - public Tile(BlockPos pos, BlockState state) { - super(pos, state); - } - - @Override - public BlockEntityType getType() { - return UBlockEntities.CLOUD_BED; - } - } } diff --git a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java index 4bf43bca..f0c03424 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java +++ b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java @@ -1,5 +1,7 @@ package com.minelittlepony.unicopia.client; +import java.util.function.Supplier; + import org.jetbrains.annotations.Nullable; import com.minelittlepony.unicopia.Unicopia; @@ -24,7 +26,6 @@ import com.minelittlepony.unicopia.entity.mob.UEntities; import com.minelittlepony.unicopia.item.ChameleonItem; import com.minelittlepony.unicopia.item.EnchantableItem; import com.minelittlepony.unicopia.item.UItems; -import com.minelittlepony.unicopia.item.cloud.CloudBedItem; import com.minelittlepony.unicopia.particle.UParticles; import com.terraformersmc.terraform.boat.api.client.TerraformBoatClientHelper; @@ -35,6 +36,7 @@ import net.fabricmc.fabric.api.client.rendering.v1.*; import net.fabricmc.fabric.api.client.rendering.v1.BuiltinItemRendererRegistry.DynamicItemRenderer; import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BlockEntity; import net.minecraft.client.MinecraftClient; import net.minecraft.client.color.world.BiomeColors; import net.minecraft.client.color.world.FoliageColors; @@ -92,10 +94,10 @@ public interface URenderers { EntityRendererRegistry.register(UEntities.FRIENDLY_CREEPER, FriendlyCreeperEntityRenderer::new); BlockEntityRendererFactories.register(UBlockEntities.WEATHER_VANE, WeatherVaneBlockEntityRenderer::new); - BlockEntityRendererFactories.register(UBlockEntities.CLOUD_BED, CloudBedBlockEntityRenderer::new); + BlockEntityRendererFactories.register(UBlockEntities.FANCY_BED, CloudBedBlockEntityRenderer::new); register(URenderers::renderJarItem, UItems.FILLED_JAR); - register(URenderers::renderBedItem, UItems.WHITE_CLOUD_BED, UItems.ORANGE_CLOUD_BED); + register(URenderers::renderBedItem, UItems.CLOTH_BED, UItems.CLOUD_BED); PolearmRenderer.register(UItems.WOODEN_POLEARM, UItems.STONE_POLEARM, UItems.IRON_POLEARM, UItems.GOLDEN_POLEARM, UItems.DIAMOND_POLEARM, UItems.NETHERITE_POLEARM); ModelPredicateProviderRegistry.register(UItems.GEMSTONE, new Identifier("affinity"), (stack, world, entity, seed) -> EnchantableItem.isEnchanted(stack) ? EnchantableItem.getSpellKey(stack).getAffinity().getAlignment() : 0); ModelPredicateProviderRegistry.register(UItems.ROCK_CANDY, new Identifier("count"), (stack, world, entity, seed) -> stack.getCount() / (float)stack.getMaxCount()); @@ -122,8 +124,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(((CloudBedItem)stack.getItem()).getRenderEntity(), matrices, vertices, light, overlay); + MinecraftClient.getInstance().getBlockEntityRenderDispatcher().renderEntity(((Supplier)stack.getItem()).get(), 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/client/render/entity/CloudBedBlockEntityRenderer.java b/src/main/java/com/minelittlepony/unicopia/client/render/entity/CloudBedBlockEntityRenderer.java index 8a7e5ad8..6fdcae7a 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/render/entity/CloudBedBlockEntityRenderer.java +++ b/src/main/java/com/minelittlepony/unicopia/client/render/entity/CloudBedBlockEntityRenderer.java @@ -18,6 +18,7 @@ import net.minecraft.client.model.ModelPartBuilder; import net.minecraft.client.model.ModelPartData; import net.minecraft.client.model.ModelTransform; import net.minecraft.client.model.TexturedModelData; +import net.minecraft.client.render.RenderLayer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; @@ -64,10 +65,18 @@ public class CloudBedBlockEntityRenderer implements BlockEntityRenderer ITEMS = new HashMap<>(); + + private final CloudBedBlock.SheetPattern pattern; + + public static Item forPattern(CloudBedBlock.SheetPattern pattern) { + return ITEMS.getOrDefault(pattern, Items.AIR); + } + + public BedsheetsItem(CloudBedBlock.SheetPattern pattern, Settings settings) { + super(settings); + this.pattern = pattern; + ITEMS.put(pattern, this); + } + + @Override + public ActionResult useOnBlock(ItemUsageContext context) { + World world = context.getWorld(); + BlockPos pos = context.getBlockPos(); + BlockState state = world.getBlockState(pos); + + if (state.getBlock() instanceof FancyBedBlock) { + FancyBedBlock.setBedPattern(world, context.getBlockPos(), pattern); + context.getStack().decrement(1); + PlayerEntity player = context.getPlayer(); + world.playSound(player, pos, SoundEvents.ITEM_ARMOR_EQUIP_GENERIC, SoundCategory.BLOCKS, 1, 1); + + return ActionResult.success(world.isClient); + } + + return ActionResult.PASS; + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/item/FancyBedItem.java b/src/main/java/com/minelittlepony/unicopia/item/FancyBedItem.java new file mode 100644 index 00000000..4dd2b6a8 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/item/FancyBedItem.java @@ -0,0 +1,26 @@ +package com.minelittlepony.unicopia.item; + +import java.util.function.Supplier; + +import com.google.common.base.Suppliers; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockEntityProvider; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.item.BedItem; +import net.minecraft.util.math.BlockPos; + +public class FancyBedItem extends BedItem implements Supplier { + + private final Supplier renderEntity; + + public FancyBedItem(Block block, Settings settings) { + super(block, settings); + this.renderEntity = Suppliers.memoize(() -> ((BlockEntityProvider)block).createBlockEntity(BlockPos.ORIGIN, block.getDefaultState())); + } + + @Override + public BlockEntity get() { + return renderEntity.get(); + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/item/UItems.java b/src/main/java/com/minelittlepony/unicopia/item/UItems.java index 43d54c1d..35caa19d 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/UItems.java +++ b/src/main/java/com/minelittlepony/unicopia/item/UItems.java @@ -4,6 +4,7 @@ import com.google.common.collect.ImmutableMultimap; import com.minelittlepony.unicopia.*; import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.block.UWoodTypes; +import com.minelittlepony.unicopia.block.cloud.CloudBedBlock; import com.minelittlepony.unicopia.entity.mob.AirBalloonEntity; import com.minelittlepony.unicopia.entity.mob.UEntities; import com.minelittlepony.unicopia.item.cloud.CloudBedItem; @@ -160,6 +161,14 @@ public interface UItems { Item GIANT_BALLOON = register("giant_balloon", new HotAirBalloonItem(new Item.Settings().maxCount(1)), ItemGroups.TOOLS); + Item APPLE_BED_SHEETS = register("apple_bed_sheets", new BedsheetsItem(CloudBedBlock.SheetPattern.APPLE, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); + Item BARRED_BED_SHEETS = register("barred_bed_sheets", new BedsheetsItem(CloudBedBlock.SheetPattern.BARS, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); + Item BLUE_BED_SHEETS = register("blue_bed_sheets", new BedsheetsItem(CloudBedBlock.SheetPattern.BLUE, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); + Item CHECKERED_BED_SHEETS = register("checkered_bed_sheets", new BedsheetsItem(CloudBedBlock.SheetPattern.CHECKER, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); + Item ORANGE_BED_SHEETS = register("orange_bed_sheets", new BedsheetsItem(CloudBedBlock.SheetPattern.ORANGE, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); + Item PINK_BED_SHEETS = register("pink_bed_sheets", new BedsheetsItem(CloudBedBlock.SheetPattern.PINK, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); + Item RAINBOW_BED_SHEETS = register("rainbow_bed_sheets", new BedsheetsItem(CloudBedBlock.SheetPattern.RAINBOW, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); + AmuletItem PEGASUS_AMULET = register("pegasus_amulet", new PegasusAmuletItem(new FabricItemSettings() .maxCount(1) .maxDamage(890) @@ -177,10 +186,9 @@ public interface UItems { GlassesItem SUNGLASSES = register("sunglasses", new GlassesItem(new FabricItemSettings().maxCount(1)), ItemGroups.COMBAT); GlassesItem BROKEN_SUNGLASSES = register("broken_sunglasses", new GlassesItem(new FabricItemSettings().maxCount(1)), ItemGroups.COMBAT); - Item CARAPACE = register("carapace", new Item(new Item.Settings()), ItemGroups.INGREDIENTS); - Item WHITE_CLOUD_BED = register("white_cloud_bed", new CloudBedItem(UBlocks.WHITE_CLOUD_BED, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); - Item ORANGE_CLOUD_BED = register("orange_cloud_bed", new CloudBedItem(UBlocks.ORANGE_CLOUD_BED, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); + Item CLOTH_BED = register("cloth_bed", new FancyBedItem(UBlocks.CLOTH_BED, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); + Item CLOUD_BED = register("cloud_bed", new CloudBedItem(UBlocks.CLOUD_BED, new Item.Settings().maxCount(1)), ItemGroups.FUNCTIONAL); Item ALICORN_BADGE = register(Race.ALICORN); Item PEGASUS_BADGE = register(Race.PEGASUS); diff --git a/src/main/java/com/minelittlepony/unicopia/item/cloud/CloudBedItem.java b/src/main/java/com/minelittlepony/unicopia/item/cloud/CloudBedItem.java index 70ddf324..50602d41 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/cloud/CloudBedItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/cloud/CloudBedItem.java @@ -11,7 +11,7 @@ import net.minecraft.block.entity.BlockEntity; import net.minecraft.item.ItemPlacementContext; import net.minecraft.util.math.BlockPos; -public class CloudBedItem extends CloudBlockItem { +public class CloudBedItem extends CloudBlockItem implements Supplier { private final Supplier renderEntity; @@ -25,7 +25,8 @@ public class CloudBedItem extends CloudBlockItem { return context.getWorld().setBlockState(context.getBlockPos(), state, Block.NOTIFY_LISTENERS | Block.REDRAW_ON_MAIN_THREAD | Block.FORCE_STATE); } - public BlockEntity getRenderEntity() { + @Override + public BlockEntity get() { return renderEntity.get(); } } diff --git a/src/main/resources/assets/unicopia/blockstates/cloth_bed.json b/src/main/resources/assets/unicopia/blockstates/cloth_bed.json new file mode 100644 index 00000000..a86c636b --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/cloth_bed.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "unicopia:block/cloth_bed" } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/cloud_bed.json b/src/main/resources/assets/unicopia/blockstates/cloud_bed.json new file mode 100644 index 00000000..691e8653 --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/cloud_bed.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "unicopia:block/cloud_bed" } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/orange_cloud_bed.json b/src/main/resources/assets/unicopia/blockstates/orange_cloud_bed.json deleted file mode 100644 index b4fd7a67..00000000 --- a/src/main/resources/assets/unicopia/blockstates/orange_cloud_bed.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "": { "model": "unicopia:block/orange_cloud_bed" } - } -} diff --git a/src/main/resources/assets/unicopia/blockstates/white_cloud_bed.json b/src/main/resources/assets/unicopia/blockstates/white_cloud_bed.json deleted file mode 100644 index 8f42f596..00000000 --- a/src/main/resources/assets/unicopia/blockstates/white_cloud_bed.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "variants": { - "": { "model": "unicopia:block/white_cloud_bed" } - } -} diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index 412ec9dd..3ad438b6 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -175,6 +175,14 @@ "item.unicopia.music_disc_crusade.desc": "Danial Ingram - crusade", "item.unicopia.music_disc_funk": "Music Disc", "item.unicopia.music_disc_funk.desc": "funk, just funk", + + "item.unicopia.apple_bed_sheets": "Apple Patterned Bed Sheets", + "item.unicopia.barred_bed_sheets": "Bar Patterned Bed Sheets", + "item.unicopia.blue_bed_sheets": "Blue Bed Sheets", + "item.unicopia.checkered_bed_sheets": "Checker Patterned Bed Sheets", + "item.unicopia.orange_bed_sheets": "Orange Bed Sheets", + "item.unicopia.pink_bed_sheets": "Pink Bed Sheets", + "item.unicopia.rainbow_bed_sheets": "Rainbow Patterned Bed Sheets", "block.unicopia.rocks": "Rocks", "block.unicopia.bananas": "Bananas", @@ -253,6 +261,7 @@ "block.unicopia.dense_cloud_slab": "Dense Cloud Slab", "block.unicopia.dense_cloud_stairs": "Dense Cloud Stairs", "block.unicopia.cloud_pillar": "Cloud Pillar", + "block.unicopia.cloth_bed": "Fancy Cloth Bed", "block.unicopia.cloud_bed": "Cloud Bed", "block.unicopia.oats": "Oats", diff --git a/src/main/resources/assets/unicopia/models/block/cloth_bed.json b/src/main/resources/assets/unicopia/models/block/cloth_bed.json new file mode 100644 index 00000000..d389fff5 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/cloth_bed.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "minecraft:block/white_wool" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/orange_cloud_bed.json b/src/main/resources/assets/unicopia/models/block/cloud_bed.json similarity index 100% rename from src/main/resources/assets/unicopia/models/block/orange_cloud_bed.json rename to src/main/resources/assets/unicopia/models/block/cloud_bed.json diff --git a/src/main/resources/assets/unicopia/models/block/white_cloud_bed.json b/src/main/resources/assets/unicopia/models/block/white_cloud_bed.json deleted file mode 100644 index e30e3f72..00000000 --- a/src/main/resources/assets/unicopia/models/block/white_cloud_bed.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "unicopia:block/cloud" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/item/apple_bed_sheets.json b/src/main/resources/assets/unicopia/models/item/apple_bed_sheets.json new file mode 100644 index 00000000..bc1ac46a --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/apple_bed_sheets.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/apple_bed_sheets" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/barred_bed_sheets.json b/src/main/resources/assets/unicopia/models/item/barred_bed_sheets.json new file mode 100644 index 00000000..259f1242 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/barred_bed_sheets.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/barred_bed_sheets" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/blue_bed_sheets.json b/src/main/resources/assets/unicopia/models/item/blue_bed_sheets.json new file mode 100644 index 00000000..bebc30f4 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/blue_bed_sheets.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/blue_bed_sheets" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/checkered_bed_sheets.json b/src/main/resources/assets/unicopia/models/item/checkered_bed_sheets.json new file mode 100644 index 00000000..caa3851c --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/checkered_bed_sheets.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/checkered_bed_sheets" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/white_cloud_bed.json b/src/main/resources/assets/unicopia/models/item/cloth_bed.json similarity index 100% rename from src/main/resources/assets/unicopia/models/item/white_cloud_bed.json rename to src/main/resources/assets/unicopia/models/item/cloth_bed.json diff --git a/src/main/resources/assets/unicopia/models/item/orange_cloud_bed.json b/src/main/resources/assets/unicopia/models/item/cloud_bed.json similarity index 59% rename from src/main/resources/assets/unicopia/models/item/orange_cloud_bed.json rename to src/main/resources/assets/unicopia/models/item/cloud_bed.json index 45ffff33..5d06b91c 100644 --- a/src/main/resources/assets/unicopia/models/item/orange_cloud_bed.json +++ b/src/main/resources/assets/unicopia/models/item/cloud_bed.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/template_bed", "textures": { - "particle": "minecraft:item/orange_wool" + "particle": "minecraft:item/white_wool" } } diff --git a/src/main/resources/assets/unicopia/models/item/orange_bed_sheets.json b/src/main/resources/assets/unicopia/models/item/orange_bed_sheets.json new file mode 100644 index 00000000..3744c6d5 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/orange_bed_sheets.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/orange_bed_sheets" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/pink_bed_sheets.json b/src/main/resources/assets/unicopia/models/item/pink_bed_sheets.json new file mode 100644 index 00000000..e5a20bc3 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/pink_bed_sheets.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/pink_bed_sheets" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/rainbow_bed_sheets.json b/src/main/resources/assets/unicopia/models/item/rainbow_bed_sheets.json new file mode 100644 index 00000000..2cea2b40 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/rainbow_bed_sheets.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/rainbow_bed_sheets" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/red_bed_sheets.json b/src/main/resources/assets/unicopia/models/item/red_bed_sheets.json new file mode 100644 index 00000000..bc1ac46a --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/red_bed_sheets.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "unicopia:item/apple_bed_sheets" + } +} diff --git a/src/main/resources/assets/unicopia/textures/entity/bed/cloth.png b/src/main/resources/assets/unicopia/textures/entity/bed/cloth.png new file mode 100644 index 00000000..7f562d9e Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/entity/bed/cloth.png differ diff --git a/src/main/resources/assets/unicopia/textures/entity/cloud_bed/white.png b/src/main/resources/assets/unicopia/textures/entity/bed/cloud.png similarity index 100% rename from src/main/resources/assets/unicopia/textures/entity/cloud_bed/white.png rename to src/main/resources/assets/unicopia/textures/entity/bed/cloud.png diff --git a/src/main/resources/assets/unicopia/textures/entity/bed/sheets/apple.png b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/apple.png new file mode 100644 index 00000000..b04c408b Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/apple.png differ diff --git a/src/main/resources/assets/unicopia/textures/entity/bed/sheets/bars.png b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/bars.png new file mode 100644 index 00000000..b8a635d6 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/bars.png differ diff --git a/src/main/resources/assets/unicopia/textures/entity/bed/sheets/blue.png b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/blue.png new file mode 100644 index 00000000..340a7f54 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/blue.png differ diff --git a/src/main/resources/assets/unicopia/textures/entity/bed/sheets/checker.png b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/checker.png new file mode 100644 index 00000000..db0a9f60 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/checker.png differ diff --git a/src/main/resources/assets/unicopia/textures/entity/bed/sheets/orange.png b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/orange.png new file mode 100644 index 00000000..9bb93f14 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/orange.png differ diff --git a/src/main/resources/assets/unicopia/textures/entity/bed/sheets/pink.png b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/pink.png new file mode 100644 index 00000000..f8951ac5 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/pink.png differ diff --git a/src/main/resources/assets/unicopia/textures/entity/bed/sheets/rainbow.png b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/rainbow.png new file mode 100644 index 00000000..33b0efba Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/entity/bed/sheets/rainbow.png differ diff --git a/src/main/resources/assets/unicopia/textures/item/apple_bed_sheets.png b/src/main/resources/assets/unicopia/textures/item/apple_bed_sheets.png new file mode 100644 index 00000000..8e30e71a Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/item/apple_bed_sheets.png differ diff --git a/src/main/resources/assets/unicopia/textures/item/barred_bed_sheets.png b/src/main/resources/assets/unicopia/textures/item/barred_bed_sheets.png new file mode 100644 index 00000000..518f6c9e Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/item/barred_bed_sheets.png differ diff --git a/src/main/resources/assets/unicopia/textures/item/blue_bed_sheets.png b/src/main/resources/assets/unicopia/textures/item/blue_bed_sheets.png new file mode 100644 index 00000000..85ce04d7 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/item/blue_bed_sheets.png differ diff --git a/src/main/resources/assets/unicopia/textures/item/checkered_bed_sheets.png b/src/main/resources/assets/unicopia/textures/item/checkered_bed_sheets.png new file mode 100644 index 00000000..fd3575d9 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/item/checkered_bed_sheets.png differ diff --git a/src/main/resources/assets/unicopia/textures/item/orange_bed_sheets.png b/src/main/resources/assets/unicopia/textures/item/orange_bed_sheets.png new file mode 100644 index 00000000..2ff37969 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/item/orange_bed_sheets.png differ diff --git a/src/main/resources/assets/unicopia/textures/item/pink_bed_sheets.png b/src/main/resources/assets/unicopia/textures/item/pink_bed_sheets.png new file mode 100644 index 00000000..9fb49484 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/item/pink_bed_sheets.png differ diff --git a/src/main/resources/assets/unicopia/textures/item/rainbow_bed_sheets.png b/src/main/resources/assets/unicopia/textures/item/rainbow_bed_sheets.png new file mode 100644 index 00000000..442523e7 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/item/rainbow_bed_sheets.png differ diff --git a/src/main/resources/assets/unicopia/textures/item/red_bed_sheets.png b/src/main/resources/assets/unicopia/textures/item/red_bed_sheets.png new file mode 100644 index 00000000..000f493a Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/item/red_bed_sheets.png differ