From 2025d5af09fffe9f1826d29560122c2193967720 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 20 Oct 2023 20:12:13 +0100 Subject: [PATCH] Added cloud planks, added cloud beds --- assets/models/cloud_bed.bbmodel | 1 + assets/models/cloud_bed.java | 50 ++++ .../unicopia/block/UBlockEntities.java | 3 + .../unicopia/block/UBlocks.java | 19 +- .../unicopia/block/cloud/CloudBedBlock.java | 102 +++++++ .../unicopia/block/cloud/CloudBlock.java | 3 + .../block/cloud/NaturalCloudBlock.java | 12 +- .../unicopia/client/URenderers.java | 5 + .../entity/CloudBedBlockEntityRenderer.java | 108 +++++++ .../minelittlepony/unicopia/item/UItems.java | 2 + .../unicopia/item/cloud/CloudBedItem.java | 31 ++ .../unicopia/blockstates/cloud_bed.json | 5 + .../unicopia/blockstates/cloud_planks.json | 5 + .../blockstates/cloud_planks_slab.json | 7 + .../blockstates/cloud_planks_stairs.json | 209 ++++++++++++++ .../blockstates/compacted_cloud_planks.json | 268 ++++++++++++++++++ .../blockstates/dense_cloud_stairs.json | 209 ++++++++++++++ .../resources/assets/unicopia/lang/en_us.json | 9 +- .../unicopia/models/block/cloud_bed.json | 5 + .../unicopia/models/block/cloud_planks.json | 6 + .../models/block/cloud_planks_slab.json | 8 + .../models/block/cloud_planks_slab_top.json | 8 + .../models/block/cloud_planks_stairs.json | 8 + .../block/cloud_planks_stairs_inner.json | 8 + .../block/cloud_planks_stairs_outer.json | 8 + .../models/block/dense_cloud_stairs.json | 8 + .../block/dense_cloud_stairs_inner.json | 8 + .../block/dense_cloud_stairs_outer.json | 8 + .../block/flattened_cloud_corner_full.json | 10 +- .../block/flattened_cloud_corner_x.json | 14 +- .../block/flattened_cloud_corner_xy.json | 14 +- .../block/flattened_cloud_corner_xyz.json | 14 +- .../block/flattened_cloud_corner_xz.json | 14 +- .../block/flattened_cloud_corner_y.json | 14 +- .../block/flattened_cloud_corner_yz.json | 14 +- .../block/flattened_cloud_corner_z.json | 14 +- .../flattened_cloud_planks_corner_full.json | 6 + .../flattened_cloud_planks_corner_x.json | 6 + .../flattened_cloud_planks_corner_xy.json | 6 + .../flattened_cloud_planks_corner_xyz.json | 6 + .../flattened_cloud_planks_corner_xz.json | 6 + .../flattened_cloud_planks_corner_y.json | 6 + .../flattened_cloud_planks_corner_yz.json | 6 + .../flattened_cloud_planks_corner_z.json | 6 + .../unicopia/models/item/cloud_bed.json | 6 + .../unicopia/models/item/cloud_planks.json | 3 + .../models/item/cloud_planks_slab.json | 3 + .../models/item/cloud_planks_stairs.json | 3 + .../models/item/dense_cloud_stairs.json | 3 + .../unicopia/textures/block/cloud_planks.png | Bin 0 -> 5178 bytes .../textures/entity/cloud_bed/white.png | Bin 0 -> 8274 bytes .../minecraft/tags/blocks/mineable/axe.json | 8 + .../recipes/blocks/cloud_plank_slab.json | 30 ++ .../recipes/blocks/cloud_plank_stairs.json | 30 ++ .../recipes/blocks/cloud_planks.json | 30 ++ .../loot_tables/blocks/cloud_bed.json | 29 ++ .../loot_tables/blocks/cloud_planks.json | 20 ++ .../loot_tables/blocks/cloud_planks_slab.json | 36 +++ .../blocks/cloud_planks_stairs.json | 20 ++ .../unicopia/recipes/blocks/cloud_bed.json | 16 ++ .../recipes/blocks/cloud_plank_slab.json | 12 + .../recipes/blocks/cloud_plank_stairs.json | 14 + .../unicopia/recipes/blocks/cloud_planks.json | 13 + .../unicopia/recipes/blocks/dense_cloud.json | 5 +- .../data/unicopia/tags/blocks/cloud_beds.json | 6 + .../unicopia/tags/blocks/cloud_slabs.json | 9 + .../unicopia/tags/blocks/cloud_stairs.json | 9 + .../data/unicopia/tags/blocks/clouds.json | 11 + .../tags/blocks/floats_on_clouds.json | 11 + 69 files changed, 1540 insertions(+), 66 deletions(-) create mode 100644 assets/models/cloud_bed.bbmodel create mode 100644 assets/models/cloud_bed.java create mode 100644 src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBedBlock.java create mode 100644 src/main/java/com/minelittlepony/unicopia/client/render/entity/CloudBedBlockEntityRenderer.java create mode 100644 src/main/java/com/minelittlepony/unicopia/item/cloud/CloudBedItem.java create mode 100644 src/main/resources/assets/unicopia/blockstates/cloud_bed.json create mode 100644 src/main/resources/assets/unicopia/blockstates/cloud_planks.json create mode 100644 src/main/resources/assets/unicopia/blockstates/cloud_planks_slab.json create mode 100644 src/main/resources/assets/unicopia/blockstates/cloud_planks_stairs.json create mode 100644 src/main/resources/assets/unicopia/blockstates/compacted_cloud_planks.json create mode 100644 src/main/resources/assets/unicopia/blockstates/dense_cloud_stairs.json create mode 100644 src/main/resources/assets/unicopia/models/block/cloud_bed.json create mode 100644 src/main/resources/assets/unicopia/models/block/cloud_planks.json create mode 100644 src/main/resources/assets/unicopia/models/block/cloud_planks_slab.json create mode 100644 src/main/resources/assets/unicopia/models/block/cloud_planks_slab_top.json create mode 100644 src/main/resources/assets/unicopia/models/block/cloud_planks_stairs.json create mode 100644 src/main/resources/assets/unicopia/models/block/cloud_planks_stairs_inner.json create mode 100644 src/main/resources/assets/unicopia/models/block/cloud_planks_stairs_outer.json create mode 100644 src/main/resources/assets/unicopia/models/block/dense_cloud_stairs.json create mode 100644 src/main/resources/assets/unicopia/models/block/dense_cloud_stairs_inner.json create mode 100644 src/main/resources/assets/unicopia/models/block/dense_cloud_stairs_outer.json create mode 100644 src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_full.json create mode 100644 src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_x.json create mode 100644 src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xy.json create mode 100644 src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xyz.json create mode 100644 src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xz.json create mode 100644 src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_y.json create mode 100644 src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_yz.json create mode 100644 src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_z.json create mode 100644 src/main/resources/assets/unicopia/models/item/cloud_bed.json create mode 100644 src/main/resources/assets/unicopia/models/item/cloud_planks.json create mode 100644 src/main/resources/assets/unicopia/models/item/cloud_planks_slab.json create mode 100644 src/main/resources/assets/unicopia/models/item/cloud_planks_stairs.json create mode 100644 src/main/resources/assets/unicopia/models/item/dense_cloud_stairs.json create mode 100644 src/main/resources/assets/unicopia/textures/block/cloud_planks.png create mode 100644 src/main/resources/assets/unicopia/textures/entity/cloud_bed/white.png create mode 100644 src/main/resources/data/minecraft/tags/blocks/mineable/axe.json create mode 100644 src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_plank_slab.json create mode 100644 src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_plank_stairs.json create mode 100644 src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_planks.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/cloud_bed.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks_slab.json create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks_stairs.json create mode 100644 src/main/resources/data/unicopia/recipes/blocks/cloud_bed.json create mode 100644 src/main/resources/data/unicopia/recipes/blocks/cloud_plank_slab.json create mode 100644 src/main/resources/data/unicopia/recipes/blocks/cloud_plank_stairs.json create mode 100644 src/main/resources/data/unicopia/recipes/blocks/cloud_planks.json create mode 100644 src/main/resources/data/unicopia/tags/blocks/cloud_beds.json create mode 100644 src/main/resources/data/unicopia/tags/blocks/cloud_slabs.json create mode 100644 src/main/resources/data/unicopia/tags/blocks/cloud_stairs.json create mode 100644 src/main/resources/data/unicopia/tags/blocks/clouds.json create mode 100644 src/main/resources/data/unicopia/tags/blocks/floats_on_clouds.json diff --git a/assets/models/cloud_bed.bbmodel b/assets/models/cloud_bed.bbmodel new file mode 100644 index 00000000..b99f86b4 --- /dev/null +++ b/assets/models/cloud_bed.bbmodel @@ -0,0 +1 @@ +{"meta":{"format_version":"4.5","model_format":"modded_entity","box_uv":true},"name":"cloud_bed","model_identifier":"","modded_entity_version":"1.17","modded_entity_flip_y":true,"visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"unhandled_root_fields":{},"resolution":{"width":64,"height":64},"elements":[{"name":"main","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-8,8,-25],"to":[8,21,-19],"autouv":0,"color":0,"rotation":[90,0,0],"origin":[0,0,-16],"faces":{"north":{"uv":[6,6,22,19],"texture":0},"east":{"uv":[0,6,6,19],"texture":0},"south":{"uv":[28,6,44,19],"texture":0},"west":{"uv":[22,6,28,19],"texture":0},"up":{"uv":[22,6,6,0],"texture":0},"down":{"uv":[38,0,22,6],"texture":0}},"type":"cube","uuid":"b0577c3f-fa97-0ca0-e316-47c8f0e746d1"},{"name":"main","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-8,-7,-9],"to":[8,8,-2.999999999999999],"autouv":0,"color":0,"rotation":[90,0,0],"origin":[0,0,0],"uv_offset":[0,22],"faces":{"north":{"uv":[6.000000000000001,28,22,43],"texture":0},"east":{"uv":[0,28,6.000000000000001,43],"texture":0},"south":{"uv":[28,28,44,43],"texture":0},"west":{"uv":[22,28,28,43],"texture":0},"up":{"uv":[22,28,6,22],"texture":0},"down":{"uv":[38,22,22,28],"texture":0}},"type":"cube","uuid":"11a01fe1-6b04-1e7b-3953-c037bdb57a3e"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-8.5,0,4],"to":[-6.5,13,7],"autouv":0,"color":0,"origin":[0.5,0,6],"uv_offset":[52,24],"faces":{"north":{"uv":[55,27,57,40],"texture":0},"east":{"uv":[52,27,55,40],"texture":0},"south":{"uv":[60,27,62,40],"texture":0},"west":{"uv":[57,27,60,40],"texture":0},"up":{"uv":[57,27,55,24],"texture":0},"down":{"uv":[59,24,57,27],"texture":0}},"type":"cube","uuid":"f71e2594-a4bf-e6cc-ca53-bf89750446a3"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-6.5,0,5],"to":[6.5,15,8],"autouv":0,"color":0,"origin":[0.5,0,7],"uv_offset":[0,43],"faces":{"north":{"uv":[3,46,16,61],"texture":0},"east":{"uv":[0,46,3,61],"texture":0},"south":{"uv":[19,46,32,61],"texture":0},"west":{"uv":[16,46,19,61],"texture":0},"up":{"uv":[16,46,3,43],"texture":0},"down":{"uv":[29,43,16,46],"texture":0}},"type":"cube","uuid":"4973ce30-58db-33b1-7716-74077115d280"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[6.5,0,4],"to":[8.5,13,7],"autouv":0,"color":0,"origin":[0.5,0,6],"uv_offset":[52,24],"faces":{"north":{"uv":[55,27,57,40],"texture":0},"east":{"uv":[52,27,55,40],"texture":0},"south":{"uv":[60,27,62,40],"texture":0},"west":{"uv":[57,27,60,40],"texture":0},"up":{"uv":[57,27,55,24],"texture":0},"down":{"uv":[59,24,57,27],"texture":0}},"type":"cube","uuid":"374dfe88-0159-2b11-d25a-1771d4dc8f8f"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-8.5,0,-9],"to":[-5.5,10,-6],"autouv":0,"color":0,"origin":[0.5,-3,-7],"uv_offset":[52,40],"faces":{"north":{"uv":[55,43,58,53],"texture":0},"east":{"uv":[52,43,55,53],"texture":0},"south":{"uv":[61,43,64,53],"texture":0},"west":{"uv":[58,43,61,53],"texture":0},"up":{"uv":[58,43,55,40],"texture":0},"down":{"uv":[61,40,58,43],"texture":0}},"type":"cube","uuid":"6e5f9014-5262-453c-0c4c-2edfd66e164b"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[-6.5,1,-10],"to":[6.5,12,-7],"autouv":0,"color":0,"origin":[0.5,-3,-8],"uv_offset":[0,43],"faces":{"north":{"uv":[3,46,16,57],"texture":0},"east":{"uv":[0,46,3,57],"texture":0},"south":{"uv":[19,46,32,57],"texture":0},"west":{"uv":[16,46,19,57],"texture":0},"up":{"uv":[16,46,3,43],"texture":0},"down":{"uv":[29,43,16,46],"texture":0}},"type":"cube","uuid":"5b0568be-5bc4-ea99-1702-0acdfe27e83a"},{"name":"cube","box_uv":true,"rescale":false,"locked":false,"render_order":"default","allow_mirror_modeling":true,"from":[5.5,0,-9],"to":[8.5,10,-6],"autouv":0,"color":0,"origin":[0.5,-3,-7],"uv_offset":[52,40],"faces":{"north":{"uv":[55,43,58,53],"texture":0},"east":{"uv":[52,43,55,53],"texture":0},"south":{"uv":[61,43,64,53],"texture":0},"west":{"uv":[58,43,61,53],"texture":0},"up":{"uv":[58,43,55,40],"texture":0},"down":{"uv":[61,40,58,43],"texture":0}},"type":"cube","uuid":"f865c675-a115-d93f-2e53-43251a9cd297"}],"outliner":[{"name":"head","origin":[0,0,0],"color":0,"uuid":"8e9de5b1-50d8-db91-f313-c0bd5320d182","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["b0577c3f-fa97-0ca0-e316-47c8f0e746d1",{"name":"head_board","origin":[0.5,0,7],"color":0,"uuid":"d5bafc1d-efca-61d0-4496-084bf9372fec","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["f71e2594-a4bf-e6cc-ca53-bf89750446a3","4973ce30-58db-33b1-7716-74077115d280","374dfe88-0159-2b11-d25a-1771d4dc8f8f"]}]},{"name":"foot","origin":[0,0,0],"color":0,"uuid":"336c8b33-e37f-0ace-9d23-fa6c68496604","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["11a01fe1-6b04-1e7b-3953-c037bdb57a3e",{"name":"head_board2","origin":[0.5,-3,-7],"color":0,"uuid":"4042968b-3112-2be1-7bfd-6008e4b417bb","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["6e5f9014-5262-453c-0c4c-2edfd66e164b","5b0568be-5bc4-ea99-1702-0acdfe27e83a","f865c675-a115-d93f-2e53-43251a9cd297"]}]}],"textures":[{"path":"/home/sollace/Desktop/cloud_bed.png","name":"cloud_bed.png","folder":"","namespace":"","id":"0","particle":false,"render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"mode":"bitmap","saved":true,"uuid":"0871ab40-57a1-3dc8-3067-992490bef975","relative_path":"../../../../../../../Desktop/cloud_bed.png","source":"data:image/png;base64,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"}],"fabricOptions":{"header":"package com.example.mod;","entity":"Entity","render":"","members":""}} \ No newline at end of file diff --git a/assets/models/cloud_bed.java b/assets/models/cloud_bed.java new file mode 100644 index 00000000..88008846 --- /dev/null +++ b/assets/models/cloud_bed.java @@ -0,0 +1,50 @@ +// Made with Blockbench 4.8.3 +// Exported for Minecraft version 1.17 or later with Mojang mappings +// Paste this class into your mod and generate all required imports + + +public class cloud_bed extends EntityModel { + // This layer location should be baked with EntityRendererProvider.Context in the entity renderer and passed into this model's constructor + public static final ModelLayerLocation LAYER_LOCATION = new ModelLayerLocation(new ResourceLocation("modid", "cloud_bed"), "main"); + private final ModelPart head; + private final ModelPart foot; + + public cloud_bed(ModelPart root) { + this.head = root.getChild("head"); + this.foot = root.getChild("foot"); + } + + public static LayerDefinition createBodyLayer() { + MeshDefinition meshdefinition = new MeshDefinition(); + PartDefinition partdefinition = meshdefinition.getRoot(); + + PartDefinition head = partdefinition.addOrReplaceChild("head", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F)); + + PartDefinition main_r1 = head.addOrReplaceChild("main_r1", CubeListBuilder.create().texOffs(0, 0).addBox(-8.0F, -21.0F, -9.0F, 16.0F, 13.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, -16.0F, -1.5708F, 0.0F, 0.0F)); + + PartDefinition head_board = head.addOrReplaceChild("head_board", CubeListBuilder.create().texOffs(52, 24).addBox(7.0F, -13.0F, -3.0F, 2.0F, 13.0F, 3.0F, new CubeDeformation(0.0F)) + .texOffs(0, 43).addBox(-6.0F, -15.0F, -2.0F, 13.0F, 15.0F, 3.0F, new CubeDeformation(0.0F)) + .texOffs(52, 24).addBox(-8.0F, -13.0F, -3.0F, 2.0F, 13.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offset(-0.5F, 0.0F, 7.0F)); + + PartDefinition foot = partdefinition.addOrReplaceChild("foot", CubeListBuilder.create(), PartPose.offset(0.0F, 24.0F, 0.0F)); + + PartDefinition main_r2 = foot.addOrReplaceChild("main_r2", CubeListBuilder.create().texOffs(0, 22).addBox(-8.0F, -8.0F, -9.0F, 16.0F, 15.0F, 6.0F, new CubeDeformation(0.0F)), PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, -1.5708F, 0.0F, 0.0F)); + + PartDefinition head_board2 = foot.addOrReplaceChild("head_board2", CubeListBuilder.create().texOffs(52, 40).addBox(6.0F, -13.0F, -2.0F, 3.0F, 10.0F, 3.0F, new CubeDeformation(0.0F)) + .texOffs(0, 43).addBox(-6.0F, -15.0F, -3.0F, 13.0F, 11.0F, 3.0F, new CubeDeformation(0.0F)) + .texOffs(52, 40).addBox(-8.0F, -13.0F, -2.0F, 3.0F, 10.0F, 3.0F, new CubeDeformation(0.0F)), PartPose.offset(-0.5F, 3.0F, -7.0F)); + + return LayerDefinition.create(meshdefinition, 64, 64); + } + + @Override + public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { + + } + + @Override + public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { + head.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + foot.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + } +} \ No newline at end of file diff --git a/src/main/java/com/minelittlepony/unicopia/block/UBlockEntities.java b/src/main/java/com/minelittlepony/unicopia/block/UBlockEntities.java index 02133446..d525d275 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/UBlockEntities.java +++ b/src/main/java/com/minelittlepony/unicopia/block/UBlockEntities.java @@ -1,5 +1,7 @@ package com.minelittlepony.unicopia.block; +import com.minelittlepony.unicopia.block.cloud.CloudBedBlock; + import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.block.entity.BlockEntityType.Builder; @@ -8,6 +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.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 60da2dfa..453889d2 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java +++ b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java @@ -10,6 +10,7 @@ import com.minelittlepony.unicopia.block.cloud.CloudSlabBlock; import com.minelittlepony.unicopia.block.cloud.CloudStairsBlock; import com.minelittlepony.unicopia.block.cloud.CompactedCloudBlock; import com.minelittlepony.unicopia.block.cloud.NaturalCloudBlock; +import com.minelittlepony.unicopia.block.cloud.CloudBedBlock; import com.minelittlepony.unicopia.block.cloud.CloudBlock; import com.minelittlepony.unicopia.block.cloud.SoggyCloudBlock; import com.minelittlepony.unicopia.block.cloud.SoggyCloudSlabBlock; @@ -140,17 +141,27 @@ public interface UBlocks { Block MYSTERIOUS_EGG = register("mysterious_egg", new PileBlock(Settings.copy(Blocks.SLIME_BLOCK), PileBlock.MYSTERIOUS_EGG_SHAPES), ItemGroups.NATURAL); Block SLIME_PUSTULE = register("slime_pustule", new SlimePustuleBlock(Settings.copy(Blocks.SLIME_BLOCK)), ItemGroups.NATURAL); - Block CLOUD = register("cloud", new NaturalCloudBlock(Settings.create().mapColor(MapColor.OFF_WHITE).hardness(0.3F).resistance(0).sounds(BlockSoundGroup.WOOL), true, () -> UBlocks.SOGGY_CLOUD), ItemGroups.NATURAL); + Block CLOUD = register("cloud", new NaturalCloudBlock(Settings.create().mapColor(MapColor.OFF_WHITE).hardness(0.3F).resistance(0).sounds(BlockSoundGroup.WOOL), true, + () -> UBlocks.SOGGY_CLOUD, + () -> UBlocks.COMPACTED_CLOUD), ItemGroups.NATURAL); Block CLOUD_SLAB = register("cloud_slab", new CloudSlabBlock(Settings.copy(CLOUD), true, () -> UBlocks.SOGGY_CLOUD_SLAB), ItemGroups.NATURAL); Block CLOUD_STAIRS = register("cloud_stairs", new CloudStairsBlock(CLOUD.getDefaultState(), Settings.copy(CLOUD), () -> UBlocks.SOGGY_CLOUD_STAIRS), ItemGroups.NATURAL); Block COMPACTED_CLOUD = register("compacted_cloud", new CompactedCloudBlock(Settings.copy(CLOUD))); + Block CLOUD_PLANKS = register("cloud_planks", new NaturalCloudBlock(Settings.copy(CLOUD).requiresTool(), false, + null, + () -> UBlocks.COMPACTED_CLOUD_PLANKS), ItemGroups.BUILDING_BLOCKS); + Block CLOUD_PLANKS_SLAB = register("cloud_planks_slab", new CloudSlabBlock(Settings.copy(CLOUD_PLANKS), false, null), ItemGroups.BUILDING_BLOCKS); + Block CLOUD_PLANKS_STAIRS = register("cloud_planks_stairs", new CloudStairsBlock(CLOUD_PLANKS.getDefaultState(), Settings.copy(CLOUD_PLANKS), null), ItemGroups.BUILDING_BLOCKS); + Block COMPACTED_CLOUD_PLANKS = register("compacted_cloud_planks", new CompactedCloudBlock(Settings.copy(CLOUD_PLANKS))); Block UNSTABLE_CLOUD = register("unstable_cloud", new UnstableCloudBlock(Settings.copy(CLOUD)), ItemGroups.NATURAL); SoggyCloudBlock SOGGY_CLOUD = register("soggy_cloud", new SoggyCloudBlock(Settings.copy(CLOUD), () -> UBlocks.CLOUD)); SoggyCloudSlabBlock SOGGY_CLOUD_SLAB = register("soggy_cloud_slab", new SoggyCloudSlabBlock(Settings.copy(CLOUD), () -> UBlocks.CLOUD_SLAB)); CloudStairsBlock SOGGY_CLOUD_STAIRS = register("soggy_cloud_stairs", new CloudStairsBlock(SOGGY_CLOUD.getDefaultState(), Settings.copy(CLOUD), null)); Block DENSE_CLOUD = register("dense_cloud", new CloudBlock(Settings.create().mapColor(MapColor.GRAY).hardness(0.5F).resistance(0).sounds(BlockSoundGroup.WOOL), false), ItemGroups.NATURAL); Block DENSE_CLOUD_SLAB = register("dense_cloud_slab", new CloudSlabBlock(Settings.copy(DENSE_CLOUD), false, null), ItemGroups.NATURAL); + Block DENSE_CLOUD_STAIRS = register("dense_cloud_stairs", new CloudStairsBlock(DENSE_CLOUD.getDefaultState(), Settings.copy(DENSE_CLOUD), null), 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 CLOUD_BED = register("cloud_bed", new CloudBedBlock(CLOUD.getDefaultState(), Settings.copy(Blocks.WHITE_BED).sounds(BlockSoundGroup.WOOL))); private static T register(String name, T item) { return register(Unicopia.id(name), item); @@ -162,9 +173,7 @@ public interface UBlocks { static T register(Identifier id, T block, RegistryKey group) { ItemGroupRegistry.register(id, - block instanceof CloudBlock || block instanceof CloudStairsBlock - ? new CloudBlockItem(block, new Item.Settings()) - : new BlockItem(block, new Item.Settings() + CloudBlock.isCloudBlock(block) ? new CloudBlockItem(block, new Item.Settings()) : new BlockItem(block, new Item.Settings() ), group); return register(id, block); } @@ -176,7 +185,7 @@ public interface UBlocks { if (block instanceof SaplingBlock || block instanceof SproutBlock || block instanceof FruitBlock || block instanceof CropBlock || block instanceof DoorBlock || block instanceof TrapdoorBlock) { TRANSLUCENT_BLOCKS.add(block); } - if (block instanceof CloudBlock || block instanceof CloudStairsBlock || block instanceof SlimePustuleBlock || block instanceof PileBlock) { + if (CloudBlock.isCloudBlock(block) || block instanceof SlimePustuleBlock || block instanceof PileBlock) { SEMI_TRANSPARENT_BLOCKS.add(block); } return Registry.register(Registries.BLOCK, id, block); diff --git a/src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBedBlock.java b/src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBedBlock.java new file mode 100644 index 00000000..33794c02 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBedBlock.java @@ -0,0 +1,102 @@ +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 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; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; + +public class CloudBedBlock extends BedBlock { + private final BlockState baseState; + private final CloudBlock baseBlock; + + public CloudBedBlock(BlockState baseState, Settings settings) { + super(DyeColor.WHITE, settings); + this.baseState = baseState; + this.baseBlock = (CloudBlock)baseState.getBlock(); + } + + @Override + public final VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + if (!baseBlock.canInteract(baseState, world, pos, EquineContext.of(context))) { + return VoxelShapes.empty(); + } + return super.getOutlineShape(state, world, pos, context); + } + + @Override + @Deprecated + public final VoxelShape getCullingShape(BlockState state, BlockView world, BlockPos pos) { + return super.getOutlineShape(state, world, pos, ShapeContext.absent()); + } + + @Override + @Deprecated + public VoxelShape getCollisionShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return this.collidable ? state.getOutlineShape(world, pos, context) : VoxelShapes.empty(); + } + + @Override + @Nullable + public final BlockState getPlacementState(ItemPlacementContext context) { + if (!baseBlock.canInteract(baseState, context.getWorld(), context.getBlockPos(), EquineContext.of(context))) { + return null; + } + return super.getPlacementState(context); + } + + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + if (!baseBlock.canInteract(baseState, world, pos, EquineContext.of(player))) { + return ActionResult.PASS; + } + return super.onUse(state, world, pos, player, hand, hit); + } + + @Deprecated + @Override + public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + baseState.onEntityCollision(world, pos, entity); + } + + @Override + @Deprecated + 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/block/cloud/CloudBlock.java b/src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBlock.java index d4c0237e..e64a34b9 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/block/cloud/CloudBlock.java @@ -28,6 +28,9 @@ import net.minecraft.world.LightType; import net.minecraft.world.World; public class CloudBlock extends Block { + public static boolean isCloudBlock(Block block) { + return block instanceof CloudBlock || block instanceof CloudStairsBlock || block instanceof CloudBedBlock; + } protected final boolean meltable; diff --git a/src/main/java/com/minelittlepony/unicopia/block/cloud/NaturalCloudBlock.java b/src/main/java/com/minelittlepony/unicopia/block/cloud/NaturalCloudBlock.java index 17709056..2d7325dc 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/cloud/NaturalCloudBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/block/cloud/NaturalCloudBlock.java @@ -4,8 +4,7 @@ import java.util.function.Supplier; import org.jetbrains.annotations.Nullable; -import com.minelittlepony.unicopia.block.UBlocks; - +import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; @@ -21,8 +20,13 @@ import net.minecraft.world.World; public class NaturalCloudBlock extends PoreousCloudBlock { - public NaturalCloudBlock(Settings settings, boolean meltable, @Nullable Supplier soggyBlock) { + private final Supplier compactedBlock; + + public NaturalCloudBlock(Settings settings, boolean meltable, + @Nullable Supplier soggyBlock, + Supplier compactedBlock) { super(settings.nonOpaque(), meltable, soggyBlock); + this.compactedBlock = compactedBlock; } @Override @@ -31,7 +35,7 @@ public class NaturalCloudBlock extends PoreousCloudBlock { if (stack.isIn(ItemTags.SHOVELS)) { BooleanProperty property = CompactedCloudBlock.FACING_PROPERTIES.get(hit.getSide()); - world.setBlockState(pos, UBlocks.COMPACTED_CLOUD.getDefaultState().with(property, false)); + world.setBlockState(pos, compactedBlock.get().getDefaultState().with(property, false)); stack.damage(1, player, p -> p.sendToolBreakStatus(hand)); world.playSound(null, pos, SoundEvents.ITEM_SHOVEL_FLATTEN, SoundCategory.BLOCKS); return ActionResult.SUCCESS; diff --git a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java index f46daa5e..c934192b 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java +++ b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java @@ -21,6 +21,7 @@ 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; @@ -87,6 +88,7 @@ public interface URenderers { EntityRendererRegistry.register(UEntities.FRIENDLY_CREEPER, FriendlyCreeperEntityRenderer::new); BlockEntityRendererFactories.register(UBlockEntities.WEATHER_VANE, WeatherVaneBlockEntityRenderer::new); + BlockEntityRendererFactories.register(UBlockEntities.CLOUD_BED, CloudBedBlockEntityRenderer::new); ColorProviderRegistry.ITEM.register((stack, i) -> i > 0 ? -1 : ((DyeableItem)stack.getItem()).getColor(stack), UItems.FRIENDSHIP_BRACELET); BuiltinItemRendererRegistry.INSTANCE.register(UItems.FILLED_JAR, (stack, mode, matrices, vertices, light, overlay) -> { @@ -133,6 +135,9 @@ public interface URenderers { matrices.push(); }); + BuiltinItemRendererRegistry.INSTANCE.register(UItems.CLOUD_BED, (stack, mode, matrices, vertices, light, overlay) -> { + MinecraftClient.getInstance().getBlockEntityRenderDispatcher().renderEntity(((CloudBedItem)stack.getItem()).getRenderEntity(), matrices, vertices, light, overlay); + }); PolearmRenderer.register(UItems.WOODEN_POLEARM); PolearmRenderer.register(UItems.STONE_POLEARM); PolearmRenderer.register(UItems.IRON_POLEARM); 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 new file mode 100644 index 00000000..1db8e63d --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/client/render/entity/CloudBedBlockEntityRenderer.java @@ -0,0 +1,108 @@ +package com.minelittlepony.unicopia.client.render.entity; + +import org.jetbrains.annotations.Nullable; + +import com.minelittlepony.unicopia.Unicopia; +import com.minelittlepony.unicopia.block.cloud.CloudBedBlock; +import com.minelittlepony.unicopia.client.render.RenderLayers; + +import net.minecraft.block.BedBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.ChestBlock; +import net.minecraft.block.DoubleBlockProperties; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.block.enums.BedPart; +import net.minecraft.client.model.ModelData; +import net.minecraft.client.model.ModelPart; +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.VertexConsumerProvider; +import net.minecraft.client.render.block.entity.BlockEntityRenderer; +import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; +import net.minecraft.client.render.block.entity.LightmapCoordinatesRetriever; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.Direction; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.RotationAxis; +import net.minecraft.world.World; + +public class CloudBedBlockEntityRenderer implements BlockEntityRenderer { + private static final Identifier TEXTURE = Unicopia.id("textures/entity/cloud_bed/white.png"); + + private final ModelPart bedHead; + private final ModelPart bedFoot; + + public CloudBedBlockEntityRenderer(BlockEntityRendererFactory.Context ctx) { + this.bedHead = getHeadTexturedModelData().createModel(); + this.bedFoot = getFootTexturedModelData().createModel(); + } + + public static TexturedModelData getHeadTexturedModelData() { + ModelData data = new ModelData(); + ModelPartData root = data.getRoot(); + root.addChild("main", ModelPartBuilder.create().uv(0, 0).cuboid(0, 3, 0, 16, 13, 6), ModelTransform.NONE); + root.addChild("head_board", ModelPartBuilder.create() + .uv(52, 24).cuboid(7, -4, -3, 2, 13, 3) + .uv(0, 43).cuboid(-6, -7, -2, 13, 15, 3) + .uv(52, 24).cuboid(-8, -4, -3, 2, 13, 3), ModelTransform.of(7.5F, 1, 0, MathHelper.HALF_PI, 0, 0)); + return TexturedModelData.of(data, 64, 64); + } + + public static TexturedModelData getFootTexturedModelData() { + ModelData data = new ModelData(); + ModelPartData root = data.getRoot(); + root.addChild("main", ModelPartBuilder.create().uv(0, 22).cuboid(0, 0, 0, 16, 15, 6), ModelTransform.NONE); + root.addChild("foot_board", ModelPartBuilder.create() + .uv(52, 40).cuboid(6, -1, -2, 3, 10, 3) + .uv(0, 43).cuboid(-6, -3, -3, 13, 11, 3) + .uv(52, 40).cuboid(-8, -1, -2, 3, 10, 3), ModelTransform.of(7.5F, 15, 0, MathHelper.HALF_PI, 0, 0)); + return TexturedModelData.of(data, 64, 64); + } + + @Override + public void render(CloudBedBlock.Tile entity, float f, MatrixStack matrices, VertexConsumerProvider vertices, int light, int overlay) { + @Nullable + World world = entity.getWorld(); + if (world == null) { + renderModel(matrices, vertices, bedHead, Direction.SOUTH, TEXTURE, light, overlay, false); + renderModel(matrices, vertices, bedFoot, Direction.SOUTH, TEXTURE, light, overlay, true); + return; + } + + BlockState state = entity.getCachedState(); + + renderModel(matrices, vertices, + state.get(BedBlock.PART) == BedPart.HEAD ? bedHead : bedFoot, + state.get(BedBlock.FACING), + TEXTURE, + getModelLight(entity, light), + overlay, + false + ); + } + + private int getModelLight(CloudBedBlock.Tile entity, int worldLight) { + return DoubleBlockProperties.toPropertySource( + BlockEntityType.BED, + BedBlock::getBedPart, + BedBlock::getOppositePartDirection, + ChestBlock.FACING, entity.getCachedState(), entity.getWorld(), + entity.getPos(), + (w, pos) -> false + ).apply(new LightmapCoordinatesRetriever<>()).get(worldLight); + } + + private void renderModel(MatrixStack matrices, VertexConsumerProvider vertices, ModelPart part, Direction direction, Identifier texture, int light, int overlay, boolean translate) { + matrices.push(); + matrices.translate(0, 0.5625f, translate ? -1 : 0); + matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(90)); + matrices.translate(0.5f, 0.5f, 0.5f); + matrices.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(180 + direction.asRotation())); + matrices.translate(-0.5f, -0.5f, -0.5f); + part.render(matrices, vertices.getBuffer(RenderLayers.getEntityTranslucent(texture)), light, overlay); + matrices.pop(); + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/item/UItems.java b/src/main/java/com/minelittlepony/unicopia/item/UItems.java index fd6c80ff..ceece440 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/UItems.java +++ b/src/main/java/com/minelittlepony/unicopia/item/UItems.java @@ -6,6 +6,7 @@ import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.block.UWoodTypes; import com.minelittlepony.unicopia.entity.mob.AirBalloonEntity; import com.minelittlepony.unicopia.entity.mob.UEntities; +import com.minelittlepony.unicopia.item.cloud.CloudBedItem; import com.minelittlepony.unicopia.item.enchantment.UEnchantments; import com.minelittlepony.unicopia.item.group.ItemGroupRegistry; import com.minelittlepony.unicopia.item.group.UItemGroups; @@ -162,6 +163,7 @@ public interface UItems { Item CARAPACE = register("carapace", new Item(new Item.Settings()), ItemGroups.INGREDIENTS); + 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 new file mode 100644 index 00000000..70ddf324 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/item/cloud/CloudBedItem.java @@ -0,0 +1,31 @@ +package com.minelittlepony.unicopia.item.cloud; + +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.BlockState; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.util.math.BlockPos; + +public class CloudBedItem extends CloudBlockItem { + + private final Supplier renderEntity; + + public CloudBedItem(Block block, Settings settings) { + super(block, settings); + this.renderEntity = Suppliers.memoize(() -> ((BlockEntityProvider)block).createBlockEntity(BlockPos.ORIGIN, block.getDefaultState())); + } + + @Override + protected boolean place(ItemPlacementContext context, BlockState state) { + return context.getWorld().setBlockState(context.getBlockPos(), state, Block.NOTIFY_LISTENERS | Block.REDRAW_ON_MAIN_THREAD | Block.FORCE_STATE); + } + + public BlockEntity getRenderEntity() { + return renderEntity.get(); + } +} 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/cloud_planks.json b/src/main/resources/assets/unicopia/blockstates/cloud_planks.json new file mode 100644 index 00000000..0d66024f --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/cloud_planks.json @@ -0,0 +1,5 @@ +{ + "variants": { + "": { "model": "unicopia:block/cloud_planks" } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/cloud_planks_slab.json b/src/main/resources/assets/unicopia/blockstates/cloud_planks_slab.json new file mode 100644 index 00000000..c4f11fb2 --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/cloud_planks_slab.json @@ -0,0 +1,7 @@ +{ + "variants": { + "type=double": { "model": "unicopia:block/cloud_planks" }, + "type=bottom": { "model": "unicopia:block/cloud_planks_slab" }, + "type=top": { "model": "unicopia:block/cloud_planks_slab_top" } + } +} diff --git a/src/main/resources/assets/unicopia/blockstates/cloud_planks_stairs.json b/src/main/resources/assets/unicopia/blockstates/cloud_planks_stairs.json new file mode 100644 index 00000000..c28c2304 --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/cloud_planks_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "unicopia:block/cloud_planks_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "unicopia:block/cloud_planks_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "unicopia:block/cloud_planks_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "unicopia:block/cloud_planks_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "unicopia:block/cloud_planks_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "unicopia:block/cloud_planks_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "unicopia:block/cloud_planks_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "unicopia:block/cloud_planks_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "unicopia:block/cloud_planks_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "unicopia:block/cloud_planks_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "unicopia:block/cloud_planks_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "unicopia:block/cloud_planks_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "unicopia:block/cloud_planks_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "unicopia:block/cloud_planks_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/blockstates/compacted_cloud_planks.json b/src/main/resources/assets/unicopia/blockstates/compacted_cloud_planks.json new file mode 100644 index 00000000..676c1c31 --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/compacted_cloud_planks.json @@ -0,0 +1,268 @@ +{ + "multipart": [ + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_full", "uvlock": true }, + "when": { "down": true, "north": true, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_x", "uvlock": true }, + "when": { "down": true, "north": true, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_y", "uvlock": true }, + "when": { "down": false, "north": true, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_z", "uvlock": true }, + "when": { "down": true, "north": false, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xz", "uvlock": true }, + "when": { "down": true, "north": false, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xy", "uvlock": true }, + "when": { "down": false, "north": true, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_yz", "uvlock": true }, + "when": { "down": false, "north": false, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xyz", "uvlock": true }, + "when": { "down": false, "north": false, "east": false } + }, + + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_full", "uvlock": true, "y": 90 }, + "when": { "down": true, "south": true, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_z", "uvlock": true, "y": 90 }, + "when": { "down": true, "south": true, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_y", "uvlock": true, "y": 90 }, + "when": { "down": false, "south": true, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_x", "uvlock": true, "y": 90 }, + "when": { "down": true, "south": false, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xz", "uvlock": true, "y": 90 }, + "when": { "down": true, "south": false, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_yz", "uvlock": true, "y": 90 }, + "when": { "down": false, "south": true, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xy", "uvlock": true, "y": 90 }, + "when": { "down": false, "south": false, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xyz", "uvlock": true, "y": 90 }, + "when": { "down": false, "south": false, "east": false } + }, + + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_full", "uvlock": true, "y": 180 }, + "when": { "down": true, "south": true, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_x", "uvlock": true, "y": 180 }, + "when": { "down": true, "south": true, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_y", "uvlock": true, "y": 180 }, + "when": { "down": false, "south": true, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_z", "uvlock": true, "y": 180 }, + "when": { "down": true, "south": false, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xz", "uvlock": true, "y": 180 }, + "when": { "down": true, "south": false, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xy", "uvlock": true, "y": 180 }, + "when": { "down": false, "south": true, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_yz", "uvlock": true, "y": 180 }, + "when": { "down": false, "south": false, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xyz", "uvlock": true, "y": 180 }, + "when": { "down": false, "south": false, "west": false } + }, + + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_full", "uvlock": true, "y": 270 }, + "when": { "down": true, "north": true, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_z", "uvlock": true, "y": 270 }, + "when": { "down": true, "north": true, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_y", "uvlock": true, "y": 270 }, + "when": { "down": false, "north": true, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_x", "uvlock": true, "y": 270 }, + "when": { "down": true, "north": false, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xz", "uvlock": true, "y": 270 }, + "when": { "down": true, "north": false, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_yz", "uvlock": true, "y": 270 }, + "when": { "down": false, "north": true, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xy", "uvlock": true, "y": 270 }, + "when": { "down": false, "north": false, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xyz", "uvlock": true, "y": 270 }, + "when": { "down": false, "north": false, "west": false } + }, + + + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_full", "uvlock": true, "x": 180 }, + "when": { "up": true, "south": true, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_x", "uvlock": true, "x": 180 }, + "when": { "up": true, "south": true, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_y", "uvlock": true, "x": 180 }, + "when": { "up": false, "south": true, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_z", "uvlock": true, "x": 180 }, + "when": { "up": true, "south": false, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xz", "uvlock": true, "x": 180 }, + "when": { "up": true, "south": false, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xy", "uvlock": true, "x": 180 }, + "when": { "up": false, "south": true, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_yz", "uvlock": true, "x": 180 }, + "when": { "up": false, "south": false, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xyz", "uvlock": true, "x": 180 }, + "when": { "up": false, "south": false, "east": false } + }, + + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_full", "uvlock": true, "x": 180, "y": 90 }, + "when": { "up": true, "south": true, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_z", "uvlock": true, "x": 180, "y": 90 }, + "when": { "up": true, "south": true, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_y", "uvlock": true, "x": 180, "y": 90 }, + "when": { "up": false, "south": true, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_x", "uvlock": true, "x": 180, "y": 90 }, + "when": { "up": true, "south": false, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xz", "uvlock": true, "x": 180, "y": 90 }, + "when": { "up": true, "south": false, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_yz", "uvlock": true, "x": 180, "y": 90 }, + "when": { "up": false, "south": true, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xy", "uvlock": true, "x": 180, "y": 90 }, + "when": { "up": false, "south": false, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xyz", "uvlock": true, "x": 180, "y": 90 }, + "when": { "up": false, "south": false, "west": false } + }, + + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_full", "uvlock": true, "x": 180, "y": 180 }, + "when": { "up": true, "north": true, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_x", "uvlock": true, "x": 180, "y": 180 }, + "when": { "up": true, "north": true, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_y", "uvlock": true, "x": 180, "y": 180 }, + "when": { "up": false, "north": true, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_z", "uvlock": true, "x": 180, "y": 180 }, + "when": { "up": true, "north": false, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xz", "uvlock": true, "x": 180, "y": 180 }, + "when": { "up": true, "north": false, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xy", "uvlock": true, "x": 180, "y": 180 }, + "when": { "up": false, "north": true, "west": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_yz", "uvlock": true, "x": 180, "y": 180 }, + "when": { "up": false, "north": false, "west": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xyz", "uvlock": true, "x": 180, "y": 180 }, + "when": { "up": false, "north": false, "west": false } + }, + + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_full", "uvlock": true, "x": 180, "y": 270 }, + "when": { "up": true, "north": true, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_z", "uvlock": true, "x": 180, "y": 270 }, + "when": { "up": true, "north": true, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_y", "uvlock": true, "x": 180, "y": 270 }, + "when": { "up": false, "north": true, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_x", "uvlock": true, "x": 180, "y": 270 }, + "when": { "up": true, "north": false, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xz", "uvlock": true, "x": 180, "y": 270 }, + "when": { "up": true, "north": false, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_yz", "uvlock": true, "x": 180, "y": 270 }, + "when": { "up": false, "north": true, "east": false } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xy", "uvlock": true, "x": 180, "y": 270 }, + "when": { "up": false, "north": false, "east": true } + }, + { + "apply": { "model": "unicopia:block/flattened_cloud_planks_corner_xyz", "uvlock": true, "x": 180, "y": 270 }, + "when": { "up": false, "north": false, "east": false } + } + ] +} diff --git a/src/main/resources/assets/unicopia/blockstates/dense_cloud_stairs.json b/src/main/resources/assets/unicopia/blockstates/dense_cloud_stairs.json new file mode 100644 index 00000000..c4e5777e --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/dense_cloud_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "unicopia:block/dense_cloud_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "unicopia:block/dense_cloud_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "unicopia:block/dense_cloud_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "unicopia:block/dense_cloud_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "unicopia:block/dense_cloud_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "unicopia:block/dense_cloud_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "unicopia:block/dense_cloud_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "unicopia:block/dense_cloud_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "unicopia:block/dense_cloud_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "unicopia:block/dense_cloud_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "unicopia:block/dense_cloud_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "unicopia:block/dense_cloud_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "unicopia:block/dense_cloud_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "unicopia:block/dense_cloud_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index 70e8ed6e..77b233de 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -220,13 +220,20 @@ "block.unicopia.cloud": "Cloud", "block.unicopia.cloud_slab": "Cloud Slab", "block.unicopia.cloud_stairs": "Cloud Stairs", + "block.unicopia.compacted_cloud": "Cloud", "block.unicopia.soggy_cloud": "Soggy Cloud", "block.unicopia.soggy_cloud_slab": "Soggy Cloud Slab", "block.unicopia.soggy_cloud_stairs": "Soggy Cloud Stairs", + "block.unicopia.cloud_planks": "Cloud Planks", + "block.unicopia.cloud_planks_slab": "Cloud Plank Slab", + "block.unicopia.cloud_planks_stairs": "Cloud Plank Stairs", + "block.unicopia.compacted_cloud_planks": "Cloud Planks", "block.unicopia.unstable_cloud": "Unstable Cloud", - "block.unicopia.cloud_pillar": "Cloud Pillar", "block.unicopia.dense_cloud": "Dense Cloud", "block.unicopia.dense_cloud_slab": "Dense Cloud Slab", + "block.unicopia.dense_cloud_stairs": "Dense Cloud Stairs", + "block.unicopia.cloud_pillar": "Cloud Pillar", + "block.unicopia.cloud_bed": "Cloud Bed", "block.unicopia.oats": "Oats", "block.unicopia.oats_stem": "Oats", diff --git a/src/main/resources/assets/unicopia/models/block/cloud_bed.json b/src/main/resources/assets/unicopia/models/block/cloud_bed.json new file mode 100644 index 00000000..e30e3f72 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/cloud_bed.json @@ -0,0 +1,5 @@ +{ + "textures": { + "particle": "unicopia:block/cloud" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/cloud_planks.json b/src/main/resources/assets/unicopia/models/block/cloud_planks.json new file mode 100644 index 00000000..e01a2b2c --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/cloud_planks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/cloud_planks_slab.json b/src/main/resources/assets/unicopia/models/block/cloud_planks_slab.json new file mode 100644 index 00000000..7787f104 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/cloud_planks_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "unicopia:block/cloud_planks", + "side": "unicopia:block/cloud_planks", + "top": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/cloud_planks_slab_top.json b/src/main/resources/assets/unicopia/models/block/cloud_planks_slab_top.json new file mode 100644 index 00000000..12de0ae3 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/cloud_planks_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "unicopia:block/cloud_planks", + "side": "unicopia:block/cloud_planks", + "top": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/cloud_planks_stairs.json b/src/main/resources/assets/unicopia/models/block/cloud_planks_stairs.json new file mode 100644 index 00000000..62e27d8c --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/cloud_planks_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "unicopia:block/cloud_stairs", + "textures": { + "bottom": "unicopia:block/cloud_planks", + "side": "unicopia:block/cloud_planks", + "top": "unicopia:block/cloud_planks" + } +} diff --git a/src/main/resources/assets/unicopia/models/block/cloud_planks_stairs_inner.json b/src/main/resources/assets/unicopia/models/block/cloud_planks_stairs_inner.json new file mode 100644 index 00000000..a896bde3 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/cloud_planks_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "unicopia:block/cloud_stairs_inner", + "textures": { + "bottom": "unicopia:block/cloud_planks", + "side": "unicopia:block/cloud_planks", + "top": "unicopia:block/cloud_planks" + } +} diff --git a/src/main/resources/assets/unicopia/models/block/cloud_planks_stairs_outer.json b/src/main/resources/assets/unicopia/models/block/cloud_planks_stairs_outer.json new file mode 100644 index 00000000..b5c9e19a --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/cloud_planks_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "unicopia:block/cloud_stairs_outer", + "textures": { + "bottom": "unicopia:block/cloud_planks", + "side": "unicopia:block/cloud_planks", + "top": "unicopia:block/cloud_planks" + } +} diff --git a/src/main/resources/assets/unicopia/models/block/dense_cloud_stairs.json b/src/main/resources/assets/unicopia/models/block/dense_cloud_stairs.json new file mode 100644 index 00000000..aa9b731c --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/dense_cloud_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "unicopia:block/cloud_stairs", + "textures": { + "bottom": "unicopia:block/dense_cloud", + "side": "unicopia:block/dense_cloud", + "top": "unicopia:block/dense_cloud" + } +} diff --git a/src/main/resources/assets/unicopia/models/block/dense_cloud_stairs_inner.json b/src/main/resources/assets/unicopia/models/block/dense_cloud_stairs_inner.json new file mode 100644 index 00000000..90f75693 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/dense_cloud_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "unicopia:block/cloud_stairs_inner", + "textures": { + "bottom": "unicopia:block/dense_cloud", + "side": "unicopia:block/dense_cloud", + "top": "unicopia:block/dense_cloud" + } +} diff --git a/src/main/resources/assets/unicopia/models/block/dense_cloud_stairs_outer.json b/src/main/resources/assets/unicopia/models/block/dense_cloud_stairs_outer.json new file mode 100644 index 00000000..8505daec --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/dense_cloud_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "unicopia:block/cloud_stairs_outer", + "textures": { + "bottom": "unicopia:block/dense_cloud", + "side": "unicopia:block/dense_cloud", + "top": "unicopia:block/dense_cloud" + } +} diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_full.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_full.json index c70b1892..37d5bc25 100644 --- a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_full.json +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_full.json @@ -1,7 +1,7 @@ { "textures": { - "0": "unicopia:block/cloud", - "particle": "unicopia:block/cloud" + "all": "unicopia:block/cloud", + "particle": "#all" }, "elements": [ { @@ -9,9 +9,9 @@ "to": [16, 8, 8], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, "faces": { - "north": {"uv": [0, 0, 8, 8], "texture": "#0"}, - "east": {"uv": [0, 0, 8, 8], "texture": "#0"}, - "down": {"uv": [0, 0, 8, 8], "texture": "#0"} + "north": {"uv": [0, 0, 8, 8], "texture": "#all"}, + "east": {"uv": [0, 0, 8, 8], "texture": "#all"}, + "down": {"uv": [0, 0, 8, 8], "texture": "#all"} } } ] diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_x.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_x.json index 6362c81f..23277ae2 100644 --- a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_x.json +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_x.json @@ -1,17 +1,17 @@ { - "textures": { - "0": "unicopia:block/cloud", - "particle": "unicopia:block/cloud" - }, + "textures": { + "all": "unicopia:block/cloud", + "particle": "#all" + }, "elements": [ { "from": [8, 0, 0], "to": [14, 8, 8], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, "faces": { - "north": {"uv": [0, 0, 6, 8], "texture": "#0"}, - "east": {"uv": [0, 0, 8, 8], "texture": "#0"}, - "down": {"uv": [0, 0, 6, 8], "texture": "#0"} + "north": {"uv": [0, 0, 6, 8], "texture": "#all"}, + "east": {"uv": [0, 0, 8, 8], "texture": "#all"}, + "down": {"uv": [0, 0, 6, 8], "texture": "#all"} } } ] diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xy.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xy.json index 6e32180a..6e072670 100644 --- a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xy.json +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xy.json @@ -1,17 +1,17 @@ { - "textures": { - "0": "unicopia:block/cloud", - "particle": "unicopia:block/cloud" - }, + "textures": { + "all": "unicopia:block/cloud", + "particle": "#all" + }, "elements": [ { "from": [8, 2, 0], "to": [14, 8, 8], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, "faces": { - "north": {"uv": [0, 0, 6, 6], "texture": "#0"}, - "east": {"uv": [0, 0, 8, 6], "texture": "#0"}, - "down": {"uv": [0, 0, 6, 8], "texture": "#0"} + "north": {"uv": [0, 0, 6, 6], "texture": "#all"}, + "east": {"uv": [0, 0, 8, 6], "texture": "#all"}, + "down": {"uv": [0, 0, 6, 8], "texture": "#all"} } } ] diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xyz.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xyz.json index 2f9aeaa7..56bd77f6 100644 --- a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xyz.json +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xyz.json @@ -1,17 +1,17 @@ { - "textures": { - "0": "unicopia:block/cloud", - "particle": "unicopia:block/cloud" - }, + "textures": { + "all": "unicopia:block/cloud", + "particle": "#all" + }, "elements": [ { "from": [8, 2, 2], "to": [14, 8, 8], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, "faces": { - "north": {"uv": [0, 0, 6, 6], "texture": "#0"}, - "east": {"uv": [0, 0, 6, 6], "texture": "#0"}, - "down": {"uv": [0, 0, 6, 6], "texture": "#0"} + "north": {"uv": [0, 0, 6, 6], "texture": "#all"}, + "east": {"uv": [0, 0, 6, 6], "texture": "#all"}, + "down": {"uv": [0, 0, 6, 6], "texture": "#all"} } } ] diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xz.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xz.json index 1f976afa..de17ffca 100644 --- a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xz.json +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_xz.json @@ -1,17 +1,17 @@ { - "textures": { - "0": "unicopia:block/cloud", - "particle": "unicopia:block/cloud" - }, + "textures": { + "all": "unicopia:block/cloud", + "particle": "#all" + }, "elements": [ { "from": [8, 0, 2], "to": [14, 8, 8], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, "faces": { - "north": {"uv": [0, 0, 6, 8], "texture": "#0"}, - "east": {"uv": [0, 0, 6, 8], "texture": "#0"}, - "down": {"uv": [0, 0, 6, 6], "texture": "#0"} + "north": {"uv": [0, 0, 6, 8], "texture": "#all"}, + "east": {"uv": [0, 0, 6, 8], "texture": "#all"}, + "down": {"uv": [0, 0, 6, 6], "texture": "#all"} } } ] diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_y.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_y.json index 89930922..12905fcc 100644 --- a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_y.json +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_y.json @@ -1,17 +1,17 @@ { - "textures": { - "0": "unicopia:block/cloud", - "particle": "unicopia:block/cloud" - }, + "textures": { + "all": "unicopia:block/cloud", + "particle": "#all" + }, "elements": [ { "from": [8, 2, 0], "to": [16, 8, 8], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, "faces": { - "north": {"uv": [0, 0, 8, 6], "texture": "#0"}, - "east": {"uv": [0, 0, 8, 6], "texture": "#0"}, - "down": {"uv": [0, 0, 8, 8], "texture": "#0"} + "north": {"uv": [0, 0, 8, 6], "texture": "#all"}, + "east": {"uv": [0, 0, 8, 6], "texture": "#all"}, + "down": {"uv": [0, 0, 8, 8], "texture": "#all"} } } ] diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_yz.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_yz.json index d1dfb6f2..c9b9377a 100644 --- a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_yz.json +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_yz.json @@ -1,17 +1,17 @@ { - "textures": { - "0": "unicopia:block/cloud", - "particle": "unicopia:block/cloud" - }, + "textures": { + "all": "unicopia:block/cloud", + "particle": "#all" + }, "elements": [ { "from": [8, 2, 2], "to": [16, 8, 8], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, "faces": { - "north": {"uv": [0, 0, 8, 6], "texture": "#0"}, - "east": {"uv": [0, 0, 6, 6], "texture": "#0"}, - "down": {"uv": [0, 0, 8, 6], "texture": "#0"} + "north": {"uv": [0, 0, 8, 6], "texture": "#all"}, + "east": {"uv": [0, 0, 6, 6], "texture": "#all"}, + "down": {"uv": [0, 0, 8, 6], "texture": "#all"} } } ] diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_z.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_z.json index bf760eec..b263136e 100644 --- a/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_z.json +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_corner_z.json @@ -1,17 +1,17 @@ { - "textures": { - "0": "unicopia:block/cloud", - "particle": "unicopia:block/cloud" - }, + "textures": { + "all": "unicopia:block/cloud", + "particle": "#all" + }, "elements": [ { "from": [8, 0, 2], "to": [16, 8, 8], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 8]}, "faces": { - "north": {"uv": [0, 0, 8, 8], "texture": "#0"}, - "east": {"uv": [0, 0, 6, 8], "texture": "#0"}, - "down": {"uv": [0, 0, 8, 6], "texture": "#0"} + "north": {"uv": [0, 0, 8, 8], "texture": "#all"}, + "east": {"uv": [0, 0, 6, 8], "texture": "#all"}, + "down": {"uv": [0, 0, 8, 6], "texture": "#all"} } } ] diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_full.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_full.json new file mode 100644 index 00000000..33ef25a6 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_full.json @@ -0,0 +1,6 @@ +{ + "parent": "unicopia:block/flattened_cloud_corner_full", + "textures": { + "all": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_x.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_x.json new file mode 100644 index 00000000..b96812a4 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_x.json @@ -0,0 +1,6 @@ +{ + "parent": "unicopia:block/flattened_cloud_corner_x", + "textures": { + "all": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xy.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xy.json new file mode 100644 index 00000000..04e62f64 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xy.json @@ -0,0 +1,6 @@ +{ + "parent": "unicopia:block/flattened_cloud_corner_xy", + "textures": { + "all": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xyz.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xyz.json new file mode 100644 index 00000000..cead6142 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xyz.json @@ -0,0 +1,6 @@ +{ + "parent": "unicopia:block/flattened_cloud_corner_xyz", + "textures": { + "all": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xz.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xz.json new file mode 100644 index 00000000..ebe260f3 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_xz.json @@ -0,0 +1,6 @@ +{ + "parent": "unicopia:block/flattened_cloud_corner_xz", + "textures": { + "all": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_y.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_y.json new file mode 100644 index 00000000..997f315c --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_y.json @@ -0,0 +1,6 @@ +{ + "parent": "unicopia:block/flattened_cloud_corner_y", + "textures": { + "all": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_yz.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_yz.json new file mode 100644 index 00000000..3089fb62 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_yz.json @@ -0,0 +1,6 @@ +{ + "parent": "unicopia:block/flattened_cloud_corner_yz", + "textures": { + "all": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_z.json b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_z.json new file mode 100644 index 00000000..b60a3557 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/flattened_cloud_planks_corner_z.json @@ -0,0 +1,6 @@ +{ + "parent": "unicopia:block/flattened_cloud_corner_z", + "textures": { + "all": "unicopia:block/cloud_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/item/cloud_bed.json b/src/main/resources/assets/unicopia/models/item/cloud_bed.json new file mode 100644 index 00000000..5d06b91c --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/cloud_bed.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/template_bed", + "textures": { + "particle": "minecraft:item/white_wool" + } +} diff --git a/src/main/resources/assets/unicopia/models/item/cloud_planks.json b/src/main/resources/assets/unicopia/models/item/cloud_planks.json new file mode 100644 index 00000000..6420436f --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/cloud_planks.json @@ -0,0 +1,3 @@ +{ + "parent": "unicopia:block/cloud_planks" +} diff --git a/src/main/resources/assets/unicopia/models/item/cloud_planks_slab.json b/src/main/resources/assets/unicopia/models/item/cloud_planks_slab.json new file mode 100644 index 00000000..4494177a --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/cloud_planks_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "unicopia:block/cloud_planks_slab" +} diff --git a/src/main/resources/assets/unicopia/models/item/cloud_planks_stairs.json b/src/main/resources/assets/unicopia/models/item/cloud_planks_stairs.json new file mode 100644 index 00000000..b559040a --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/cloud_planks_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "unicopia:block/cloud_planks_stairs" +} diff --git a/src/main/resources/assets/unicopia/models/item/dense_cloud_stairs.json b/src/main/resources/assets/unicopia/models/item/dense_cloud_stairs.json new file mode 100644 index 00000000..8ee0cee8 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/item/dense_cloud_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "unicopia:block/dense_cloud_stairs" +} diff --git a/src/main/resources/assets/unicopia/textures/block/cloud_planks.png b/src/main/resources/assets/unicopia/textures/block/cloud_planks.png new file mode 100644 index 0000000000000000000000000000000000000000..b984504f5981d2e0e11591f7eb1829cf4e18a3be GIT binary patch literal 5178 zcmeHKdsGuw8XrJWaeXX4YL&_uwMuo8dE_;-1f&op+8_lKEK)l&ncxU{m`os`_0d&X zE!7s;Zow$JV%_57fc0I}x)lSmD&pg8Yq9u%7SX!ZBDT1)cM?E2+jI7Kj_zM1=jPt| z?(hEY_x0X2Sg9m{0 z=>z$Q7*Kq=wS9g3AU|MR14`+1CwE}PF_@1pGzio#P;k&5 z4(bw6_#E$C$3a{C^!I#KzK{peSV zP}+!fvEwcU?4dr{uqx<5!Ulc!lVbyveDB88 z>h^Dowl6@E0)`I#)39~)H>bv&A~qd7=`8vr@l4*#r7@v&ZQr%Q1=1ytPanR8yYVby zQ^BOhwX5S^s!rLRum8YVsQz>j)nF$#%sHK$dtgxt|J}x8Xk1O=#|1IOy5S?s`uyJ4 zaOus65y~6;Zx<(3)-0=ahu{8HYpc3dGHsmOcTo*|WLatWqq;qFT!la9NpxFVD;9^H zUQr{hS)@MKT6S}P%!+!#x+C-PfmhKsUH10v73){5G}YfYy1i=2mkoo_`-bRGZ_SJ- zoL|928IB_Wf!MRm0_{Z1_VFTxmm`X^vo_u;@D?*Ha?*^&A!sBL&<}U|XR_+`UG!#q zhYCOsnUl84FexfCnPlBZ*ad9{An9=EH%HhLvaFmej7xQrvJ|BSZ;Od6U&M3W(hUDe%UpV)gJ%?D2%t-4QUni?;{5 zGj!KsK?okoI7y|a2OvFWs61OqgZH+Zwd`4pPKo49y^7S+U*q)Lq|RRl(0 za#D#s1|izQtn={j_~y7gc? z8EAoyq6H3+b{)eBoyYJL6r<2C(I~yez#Fsv7h2praHx05qj@`+Kg(nC?x=WfvG>XQ zn9h5)5)6Ab1x2&o5bSgYXYlw5xV&BLLfV|lfzzWST|4dkZ=?djs0dm`8WEfza73;$ zatNa&QAELEDngC3EXS}t+3gmikV)IPh*Y2>&C$0hz48c$Y zM-wnLrNAka542W6C#z&kfgmw?Y9M3Ry# z|9>GW86()xvU(YA3IaEptm{haNDHteFY?o|qh90`Fx)%IGwItaSFc>pq`)(Qd$X%ou4hu< znZUi-_1xqNc=}SznZbYAOz_Iv_Wt{M;C0!bnKdH{Y8Ss-kL}zDECa03^Xw2baF|$p zphDLuVC*O8^xA&k2MiB{2hJ|J=!PKQKwVTsg1Q>1O}33u4fnr(4;nQ%q^j7ZZd)*? zWZ&uu2bt=;%5mnbQL=i$;kW#8R?%{0&iJ%b|n`b$GDL;J3+BWLkd0lXEee;P; z4NIYGCGtt{miBSW&t7YpdzlIf$jT@+oOb=#BF$F4rOMvuAEw+pe(Arj96O$4qke6> z`h~J;r#5*0m;;}Oxuy;z%03vUEp2SFN#Cl=Uw!dR;XcL1ALB!U0=Hid859Uf@~RrRjyaE8(4J zzchMo?GI;ny7_rIV}FPon=)_T-GjmBtA6?DqTl%w!Sk1wr){1+r1)js*gAa8*GGeL zvCH37<~wp$Y1nh6Tejp!29i_!lE+WVUe$W~?t!+)SDBC{&8^M7%adzg-EY2b zyL0>V2a9)YIk&4|aawIto+dP>ZEi~PKeOXzj4T_n>zy?H=3H1ZwR-TemLnTVwXeQ( zcgxg}Bkk$O=O5n2OuyhC9J~spT8>B7{?69W#Q(H(@Wguq4z1y57uL1?nL2!^BxCTD dSus!gW$qpw^2)96!$HD8I&DnU-q+uG??0}JCo%v4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/entity/cloud_bed/white.png b/src/main/resources/assets/unicopia/textures/entity/cloud_bed/white.png new file mode 100644 index 0000000000000000000000000000000000000000..af1fd6afa203bd3b398ea28dc7db776b729b7d42 GIT binary patch literal 8274 zcmeHLc{r5a-?wEM6^fFQ!IOkBD`v*d5QSt3A;uUChRKY5i7X*YWos-MN!BbWrDV&J zB}qtGB2h|(Xsq?#qn@6g_x)Yhdp+0nzW+UQUuVwuKId~j=X*Zqd%pMF6K862cpFFz z#Ky+9&Cmd62Gm-t!pjYOmyk}60aY*2+R(+&P>zikxB-ytTx{$t3{cpAvpLu~**Jl= z7@+I`Y!-%9#MrlN)(L>U_otl-*s?z{9DogH=V03g)Y(8m0JbntmjH!y?#Ep9fX({w zZe9j}#bW-mK5S@g3PvcxVTwo;Fdl|LV&O0>0tSYou}TOmN(n%-Gyd|3#Z<1wy#laA zl5}-V4Rv+F6d!LFk|&XkEg(DeqPoFDt$nQy<^^VQQrs6`U&zD0(9_%JArfyY*$=vb zy__7Tof7j$YwK|e1if5k?Mpd5IM8G%$fc=eXP+%>f34;Ff#_ZE{ri}cqYv6gRl_|_ zh&+C8$d>7qMYk|}G-VatE8jd0kClx%(2AJG!MDAd_f2NA{rp;?>-$JBq$iW zGamo4Wp4{ItEMR+_p(*zr6VCGYWTh_aT0XJ;PtkKx7vE;B;KH+3qg;vQ*>5 zfK2ptckC1ulWf^$n{eCRp7bi^0nDt|DxGdZ6+Wck#3#k|s3`xeoM#JZz_98<-o~|L z&G)N%J{@mLv?SX(+bVU?Q8qc<$GGZ!yO88Voyr#0Hbdlh@#(LKzn$y+Aj<48(@ z|N3ni*qUKbetv6Gcm#R;^}YO#;Kr%#umxv>>u-)|XWCWq*5y7`nTp7>1=me44UV{eqZ!-oQxWT&I0}Sd0Lj9dW^HVQC3uq+@y^~( zM8yCyg|%O7YMKEQJi&uV13M92NnYwwpYJzFfl1ElQdUaFFk^}?(T!vf+M4XqZCn! zFo<3N$qyl=0RpS}IJ;oYaQZ(ffID?5HyVwCg+l%P{T2O@irzl1P&fvIfx-|_1Ofse zAk;uF8a@ExMU`ez{NTV5sRSPqg+}uB0<$>rPTsyWbtx&JAN;3(WQwuzFM2QPPZaHb((s{|!kax%?&8-+W{BY%b?_M}XnK zc>jj}bM2d80A*~9#d#BaS?(F))TLPSW1YPTBxmfViBf{Qpq1b%5SR*F34$Uj!yryD zI1+*;5|KnFCl?|Th5wDp(2GjLdl85%Du7&(1n^*BFcci4jDX->P$+-`<^pk2M!_Kn zqLPX;%*7dvL8<&kam8 zd;|XKupp6%<}^G@O}H{f1&u%(58<9&$Qu7Hk!RzP@eKA^y|n;UiL?`VHFB5M}_!60xL1OfZ+fS z7|O~Sf38>!`ad*L+XVcUWPou$+JNK*VGHsNBaIN z*S~W8BL)5u_}}RISFV4gz&`^28(sfra)JJOog#Vxzk>XMmnF}tXx6(sx6{$XIJWPs zi}9c^1!&=;7}!wR*!Xv{3Oie7wkXiZLo+ni<9Q1b7D7R)j%g~hu?fr>;HEixsV!N=mwcbll~S3x={6#~vID&_3Ic zpQfc|aXu)!PW4U zW`qOwN?6!bdi~o^B3tb2_KscQ3z_}^wYx`gis3&hzTbY9QQri5qZbi7H~aFk05q*g zP6}a9FI#)_Vkurg0?Hb{V4H6=V-bOY#JS#+*!#7)`^W*(n*Mi za~!$fc8j|;9zQEBEupO~c(sQ4iite4z6>uBEY8sm(L0f9A=@K{3W9M<2)kx_g}bZeo3$sZ&lODqh%fmRYlwhw@Po%4qglsr$Yp!w3w3MJKPe|(IQxz z7O76ji-5RBM z$vhO5Y%yr*T@IH+jU6Nx^F(B*wAFbl5(>Zep5_s(e8poeOxQ}-n&5iXFWmE*txATT zq15l2=otG_>Qj*r-j@=rF`i|$E-BFw;Pv)pUB~{Q>M}~*sfe8uQ>7r(T6d}aSyxwT zjso(8LVvW~8GU3%l31$^Z8R@L)&~|$+&KpNVA&!T zsl;uxz?78JP7_QU(vR=(HRTl(+9FR08=Oxp?JV5?XyvWSheJ18u)C7Pd7>UKS>C+L zpd?iZ86~)lnx<~i=SmbxkZg+;qTadMs4X#9OvE^rQlq7*F{3g&l*m}Qbx)5LdM(GR zQ){BfbJRRLbd}D;N0$EjIV&TU0vH@s0 zBSU3q-`emO_L2@Ri%W%P2!*dV&WmTWOVG<_CYvL_Y^m@}JVeG$bJ<>gB0l*jFEG4j z`>pv18T~R}9HD4$GIhJ9=&V6T)8cEj>*o@7rk z=2mIi&85}v!Nj+t9lW96Z{+yj;oB#3W@WT1qyEc#ncOoW^g;(~OsX-0d6VM=w^G-G zb;n(P6`73_IFj7?+%WvoD1jq)`8_p*4cp^r+~sh{`2DVV!m5+349+B z(g~_aQ2Rpc@%&_6%#kednPYA;QRuU#9}Kxq>EiQM=@JGy_4uTXoVg5oYv*^*W@?7j z^|HBK4UJ=NY6EWJT?ky%yxXIZbq=-xH!Xj^D}regZU$pBLQZcg97gI7$*<2G?Af1a zUvC3(OeFCSTJ++!NE@kWKK>xx{f66hYmU()J?pp`jg8J~wc&`zt6C68y-Q5KD?KA2 zau-VAgS`3-5WB}#Nfc@l9$1*+_E!2)Y3W{CSzZeLP#x9dI`7?E8fq8P9jy30lhoV0 z7X7$NL^0~-mFB_OaBFtgsOC;#AtZfb#OYjyvi{-`-5G_FDo8?k#g?*gvf+j9J-DsX z5#86%^^_TpXq^IUZQb9p-;lj4Cjo(cqrZcme{luz(6GdFjc|s6xG#CIh}YLtu%OqV z-Fh{x-KHrXhR|u}OIGmP;d*ecSI2Mw2inbmoZ3FgrE4E?t>H!bhw3&*9IvmjO}fQH zNsa3zPw#nlijNpgA35w5H6oTEJB~)$UZ6*XFJ06W6e<6}-~Be}M&~n}u3&)|2VE&@ ze2=owe6t+aH|@56XwE+!gI_mP8JqXj3dHLMLX&am+27<_T`DT+)Z~Jxbt}WYuDTAS6mc??RR8;8lsx6`&@t1(70CsdtNCma`&h?4T@KLN!-Q+uTB>NS$Q37?=)=jTQ?g{TVnNi#g1EM3icV^n|*YVlS{kD z+J~=(=T*g^P5gy?NsE($Qt`@CDSVg6lkl70r+ zvns@MLhy*f$21#PUI70T^j!7U2Iejq*%~JvePNn6BsO59Ro2npHTd4e(uWWJm>qG# zgwC#vAnp&bi%-f3?`Z5ZGQ828d`Av@VtHb9i5l8Kt8={8Y(zi(ZF#FVS-_lMRp0M@ zqx2WdE89JD@&~c&uLkf({9cAIvTVYZoHN!vc0)tgEizoow=O3?IWw1(`EZ6F65kXy z6?ZLtE#%XqGBBt;*d~(zZnV$JKx>UB1 z^^x@nSkBS@=dbmB+l44W*Du$HohC#*WXRU;R5(jLyHh(`Ph=#zK#`XgRLvIhA-YQ; zbx*FUW;^qQybDtIU^Va*QZ*jm*(F}TngZcA9)ET$dn%5{q_Sp!$1;7_v$nyS)s`Bt zA+H-hqvoXf_(;d3+Dg57$i{Yg2CCT^cVOdGORVXd!6yYVsg2G%k-29-ba(sI?_8eY zt)E{f?gF*9ryspC?79578W~cUJ8%7@+DXB|db`@jGx8O+7ZY@OP8LpMqs1ou{vn&E z?pj>C__LI6kQJ<6dgSbq+q>~?zl{$MF?7eHgz|Nn;zI=sOZ9 zl5*cyuTC)c)8D>Gj7hO?Z&*TV_?u}X#)i+YKeTK&qo4L2nu}&a7gV60luo4!Q;bZx zy020BpET!FR}S4g$Ez;aPW4#mn|3==KC6t!4u=E=8+mOjw`{zIraTCZYcg^PpkBC~ z`=Yt3?^eVyY4wb{bidCS_CgS8fm@B+3d%id^@A zXAhS&iCWOb_t8)S*BFMo*5n}}T;X32tw!*L9yX3T5d%5;Qbrx>Z8h5;uQc}nTZxJ* z5vp(C2J*ir$6j5-{xI9;dkytcOH5R342vu0MGv6WxxAr77XLpz*o1&vKY5rp*~twxFf z`|js4&z1xFmmcQ?1+6q1A=PJaAu@Ll8*hi12=?yC*M7y$D>^&b3%n5%D|TtTzBfEO z?*(x6?|JFp7lz$6oY|xiRkyQ6T>1Fv`wN4NJj^)f*q*F9D08ZQ#Ppj4+Rogj`%JMt R@OJ>4p`Hn@T*vY3e*t%jfuH~Y literal 0 HcmV?d00001 diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json new file mode 100644 index 00000000..92d7bbc8 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "unicopia:cloud_planks", + "unicopia:cloud_planks_slab", + "unicopia:cloud_planks_stairs" + ] +} diff --git a/src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_plank_slab.json b/src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_plank_slab.json new file mode 100644 index 00000000..5714d8f1 --- /dev/null +++ b/src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_plank_slab.json @@ -0,0 +1,30 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "unicopia:blocks/cloud_plank_slab" + ] + }, + "criteria": { + "has_ingredients": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { "item": "unicopia:cloud_planks" } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "unicopia:blocks/cloud_plank_slab" + } + } + }, + "requirements": [ + [ + "has_ingredients", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_plank_stairs.json b/src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_plank_stairs.json new file mode 100644 index 00000000..752478bc --- /dev/null +++ b/src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_plank_stairs.json @@ -0,0 +1,30 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "unicopia:blocks/cloud_plank_stairs" + ] + }, + "criteria": { + "has_ingredients": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { "item": "unicopia:cloud_planks" } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "unicopia:blocks/cloud_plank_stairs" + } + } + }, + "requirements": [ + [ + "has_ingredients", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_planks.json b/src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_planks.json new file mode 100644 index 00000000..23419407 --- /dev/null +++ b/src/main/resources/data/unicopia/advancements/recipes/blocks/cloud_planks.json @@ -0,0 +1,30 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "unicopia:blocks/cloud_planks" + ] + }, + "criteria": { + "has_ingredients": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { "item": "unicopia:cloud" } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "unicopia:blocks/cloud_planks" + } + } + }, + "requirements": [ + [ + "has_ingredients", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/cloud_bed.json b/src/main/resources/data/unicopia/loot_tables/blocks/cloud_bed.json new file mode 100644 index 00000000..29561aae --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/cloud_bed.json @@ -0,0 +1,29 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "conditions": [ + { + "block": "unicopia:cloud_bed", + "condition": "minecraft:block_state_property", + "properties": { + "part": "head" + } + } + ], + "name": "unicopia:cloud_bed" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks.json b/src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks.json new file mode 100644 index 00000000..e0208139 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "unicopia:cloud_planks" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks_slab.json b/src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks_slab.json new file mode 100644 index 00000000..ae08d3ec --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks_slab.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "unicopia:cloud_planks_slab", + "functions": [ + { + "add": false, + "count": 2, + "function": "minecraft:set_count", + "conditions": [ + { + "block": "unicopia:cloud_planks_slab", + "condition": "minecraft:block_state_property", + "properties": { + "type": "double" + } + } + ] + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks_stairs.json b/src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks_stairs.json new file mode 100644 index 00000000..29999dd7 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/cloud_planks_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "unicopia:cloud_planks_stairs" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/unicopia/recipes/blocks/cloud_bed.json b/src/main/resources/data/unicopia/recipes/blocks/cloud_bed.json new file mode 100644 index 00000000..b1de9a60 --- /dev/null +++ b/src/main/resources/data/unicopia/recipes/blocks/cloud_bed.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "$$$", + "###" + ], + "key": { + "$": [ + { "item": "unicopia:dense_cloud" } + ], + "#": [ + { "item": "unicopia:cloud_planks" } + ] + }, + "result": { "item": "unicopia:cloud_bed", "count": 1 } +} diff --git a/src/main/resources/data/unicopia/recipes/blocks/cloud_plank_slab.json b/src/main/resources/data/unicopia/recipes/blocks/cloud_plank_slab.json new file mode 100644 index 00000000..f6f99b84 --- /dev/null +++ b/src/main/resources/data/unicopia/recipes/blocks/cloud_plank_slab.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": [ + { "item": "unicopia:cloud_planks" } + ] + }, + "result": { "item": "unicopia:cloud_planks_slab", "count": 6 } +} diff --git a/src/main/resources/data/unicopia/recipes/blocks/cloud_plank_stairs.json b/src/main/resources/data/unicopia/recipes/blocks/cloud_plank_stairs.json new file mode 100644 index 00000000..0ff48eb1 --- /dev/null +++ b/src/main/resources/data/unicopia/recipes/blocks/cloud_plank_stairs.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "# ", + "## ", + "###" + ], + "key": { + "#": [ + { "item": "unicopia:cloud_planks" } + ] + }, + "result": { "item": "unicopia:cloud_planks_stairs", "count": 4 } +} diff --git a/src/main/resources/data/unicopia/recipes/blocks/cloud_planks.json b/src/main/resources/data/unicopia/recipes/blocks/cloud_planks.json new file mode 100644 index 00000000..1e02127f --- /dev/null +++ b/src/main/resources/data/unicopia/recipes/blocks/cloud_planks.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "##", + "##" + ], + "key": { + "#": [ + { "item": "unicopia:cloud" } + ] + }, + "result": { "item": "unicopia:cloud_planks", "count": 4 } +} diff --git a/src/main/resources/data/unicopia/recipes/blocks/dense_cloud.json b/src/main/resources/data/unicopia/recipes/blocks/dense_cloud.json index b139f26b..d1e57d5a 100644 --- a/src/main/resources/data/unicopia/recipes/blocks/dense_cloud.json +++ b/src/main/resources/data/unicopia/recipes/blocks/dense_cloud.json @@ -1,8 +1,9 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - "##", - "##" + "###", + "###", + "###" ], "key": { "#": [ diff --git a/src/main/resources/data/unicopia/tags/blocks/cloud_beds.json b/src/main/resources/data/unicopia/tags/blocks/cloud_beds.json new file mode 100644 index 00000000..4338e8fd --- /dev/null +++ b/src/main/resources/data/unicopia/tags/blocks/cloud_beds.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "unicopia:cloud_bed" + ] +} diff --git a/src/main/resources/data/unicopia/tags/blocks/cloud_slabs.json b/src/main/resources/data/unicopia/tags/blocks/cloud_slabs.json new file mode 100644 index 00000000..9f8be83c --- /dev/null +++ b/src/main/resources/data/unicopia/tags/blocks/cloud_slabs.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "unicopia:cloud_slab", + "unicopia:soggy_cloud_slab", + "unicopia:dense_cloud_slab", + "unicopia:cloud_planks_slab" + ] +} diff --git a/src/main/resources/data/unicopia/tags/blocks/cloud_stairs.json b/src/main/resources/data/unicopia/tags/blocks/cloud_stairs.json new file mode 100644 index 00000000..bd0de50d --- /dev/null +++ b/src/main/resources/data/unicopia/tags/blocks/cloud_stairs.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "unicopia:cloud_stairs", + "unicopia:soggy_cloud_stairs", + "unicopia:dense_cloud_stairs", + "unicopia:cloud_planks_stairs" + ] +} diff --git a/src/main/resources/data/unicopia/tags/blocks/clouds.json b/src/main/resources/data/unicopia/tags/blocks/clouds.json new file mode 100644 index 00000000..44c0c4ab --- /dev/null +++ b/src/main/resources/data/unicopia/tags/blocks/clouds.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "unicopia:cloud", + "unicopia:cloud_planks", + "unicopia:dense_cloud", + "unicopia:compacted_cloud", + "unicopia:unstable_cloud", + "unicopia:soggy_cloud" + ] +} diff --git a/src/main/resources/data/unicopia/tags/blocks/floats_on_clouds.json b/src/main/resources/data/unicopia/tags/blocks/floats_on_clouds.json new file mode 100644 index 00000000..76585449 --- /dev/null +++ b/src/main/resources/data/unicopia/tags/blocks/floats_on_clouds.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "#unicopia:clouds", + "#unicopia:cloud_slabs", + "#unicopia:cloud_stairs", + "#unicopia:cloud_beds", + "unicopia:cloud_planks_slab", + "unicopia:cloud_pillar" + ] +}