Added cloud planks, added cloud beds

This commit is contained in:
Sollace 2023-10-20 20:12:13 +01:00
parent d307290ec0
commit 2025d5af09
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
69 changed files with 1540 additions and 66 deletions

File diff suppressed because one or more lines are too long

View file

@ -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<T extends Entity> extends EntityModel<T> {
// 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);
}
}

View file

@ -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<WeatherVaneBlock.WeatherVane> WEATHER_VANE = create("weather_vane", BlockEntityType.Builder.create(WeatherVaneBlock.WeatherVane::new, UBlocks.WEATHER_VANE));
BlockEntityType<CloudBedBlock.Tile> CLOUD_BED = create("cloud_bed", BlockEntityType.Builder.create(CloudBedBlock.Tile::new, UBlocks.CLOUD_BED));
static <T extends BlockEntity> BlockEntityType<T> create(String id, Builder<T> builder) {
return Registry.register(Registries.BLOCK_ENTITY_TYPE, id, builder.build(null));

View file

@ -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 extends Block> T register(String name, T item) {
return register(Unicopia.id(name), item);
@ -162,9 +173,7 @@ public interface UBlocks {
static <T extends Block> T register(Identifier id, T block, RegistryKey<ItemGroup> 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);

View file

@ -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;
}
}
}

View file

@ -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;

View file

@ -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<Soakable> soggyBlock) {
private final Supplier<Block> compactedBlock;
public NaturalCloudBlock(Settings settings, boolean meltable,
@Nullable Supplier<Soakable> soggyBlock,
Supplier<Block> 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;

View file

@ -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);

View file

@ -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<CloudBedBlock.Tile> {
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();
}
}

View file

@ -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);

View file

@ -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<BlockEntity> 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();
}
}

View file

@ -0,0 +1,5 @@
{
"variants": {
"": { "model": "unicopia:block/cloud_bed" }
}
}

View file

@ -0,0 +1,5 @@
{
"variants": {
"": { "model": "unicopia:block/cloud_planks" }
}
}

View file

@ -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" }
}
}

View file

@ -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
}
}
}

View file

@ -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 }
}
]
}

View file

@ -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
}
}
}

View file

@ -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",

View file

@ -0,0 +1,5 @@
{
"textures": {
"particle": "unicopia:block/cloud"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "unicopia:block/cloud_planks"
}
}

View file

@ -0,0 +1,8 @@
{
"parent": "minecraft:block/slab",
"textures": {
"bottom": "unicopia:block/cloud_planks",
"side": "unicopia:block/cloud_planks",
"top": "unicopia:block/cloud_planks"
}
}

View file

@ -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"
}
}

View file

@ -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"
}
}

View file

@ -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"
}
}

View file

@ -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"
}
}

View file

@ -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"
}
}

View file

@ -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"
}
}

View file

@ -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"
}
}

View file

@ -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"}
}
}
]

View file

@ -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"}
}
}
]

View file

@ -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"}
}
}
]

View file

@ -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"}
}
}
]

View file

@ -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"}
}
}
]

View file

@ -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"}
}
}
]

View file

@ -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"}
}
}
]

View file

@ -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"}
}
}
]

View file

@ -0,0 +1,6 @@
{
"parent": "unicopia:block/flattened_cloud_corner_full",
"textures": {
"all": "unicopia:block/cloud_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "unicopia:block/flattened_cloud_corner_x",
"textures": {
"all": "unicopia:block/cloud_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "unicopia:block/flattened_cloud_corner_xy",
"textures": {
"all": "unicopia:block/cloud_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "unicopia:block/flattened_cloud_corner_xyz",
"textures": {
"all": "unicopia:block/cloud_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "unicopia:block/flattened_cloud_corner_xz",
"textures": {
"all": "unicopia:block/cloud_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "unicopia:block/flattened_cloud_corner_y",
"textures": {
"all": "unicopia:block/cloud_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "unicopia:block/flattened_cloud_corner_yz",
"textures": {
"all": "unicopia:block/cloud_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "unicopia:block/flattened_cloud_corner_z",
"textures": {
"all": "unicopia:block/cloud_planks"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/template_bed",
"textures": {
"particle": "minecraft:item/white_wool"
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "unicopia:block/cloud_planks"
}

View file

@ -0,0 +1,3 @@
{
"parent": "unicopia:block/cloud_planks_slab"
}

View file

@ -0,0 +1,3 @@
{
"parent": "unicopia:block/cloud_planks_stairs"
}

View file

@ -0,0 +1,3 @@
{
"parent": "unicopia:block/dense_cloud_stairs"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View file

@ -0,0 +1,8 @@
{
"replace": false,
"values": [
"unicopia:cloud_planks",
"unicopia:cloud_planks_slab",
"unicopia:cloud_planks_stairs"
]
}

View file

@ -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"
]
]
}

View file

@ -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"
]
]
}

View file

@ -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"
]
]
}

View file

@ -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
}
]
}

View file

@ -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"
}
]
}
]
}

View file

@ -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"
}
]
}
]
}

View file

@ -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"
}
]
}
]
}

View file

@ -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 }
}

View file

@ -0,0 +1,12 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"###"
],
"key": {
"#": [
{ "item": "unicopia:cloud_planks" }
]
},
"result": { "item": "unicopia:cloud_planks_slab", "count": 6 }
}

View file

@ -0,0 +1,14 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"# ",
"## ",
"###"
],
"key": {
"#": [
{ "item": "unicopia:cloud_planks" }
]
},
"result": { "item": "unicopia:cloud_planks_stairs", "count": 4 }
}

View file

@ -0,0 +1,13 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"##",
"##"
],
"key": {
"#": [
{ "item": "unicopia:cloud" }
]
},
"result": { "item": "unicopia:cloud_planks", "count": 4 }
}

View file

@ -1,8 +1,9 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"##",
"##"
"###",
"###",
"###"
],
"key": {
"#": [

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"unicopia:cloud_bed"
]
}

View file

@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"unicopia:cloud_slab",
"unicopia:soggy_cloud_slab",
"unicopia:dense_cloud_slab",
"unicopia:cloud_planks_slab"
]
}

View file

@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"unicopia:cloud_stairs",
"unicopia:soggy_cloud_stairs",
"unicopia:dense_cloud_stairs",
"unicopia:cloud_planks_stairs"
]
}

View file

@ -0,0 +1,11 @@
{
"replace": false,
"values": [
"unicopia:cloud",
"unicopia:cloud_planks",
"unicopia:dense_cloud",
"unicopia:compacted_cloud",
"unicopia:unstable_cloud",
"unicopia:soggy_cloud"
]
}

View file

@ -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"
]
}