diff --git a/src/main/java/com/minelittlepony/unicopia/block/ChiselledChitinBlock.java b/src/main/java/com/minelittlepony/unicopia/block/ChiselledChitinBlock.java index 92dbbdc6..b7440854 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/ChiselledChitinBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/block/ChiselledChitinBlock.java @@ -39,7 +39,16 @@ public class ChiselledChitinBlock extends Block { @Override @Nullable public BlockState getPlacementState(ItemPlacementContext context) { - return getDefaultState().with(Properties.FACING, context.getPlayerFacing()); + PlayerEntity player = context.getPlayer(); + + + Direction direction = player == null ? context.getSide() : context.getPlayerLookDirection().getOpposite(); + + if (player != null && player.isSneaking()) { + direction = direction.getOpposite(); + } + + return getDefaultState().with(Properties.FACING, direction); } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/block/ChitinBlock.java b/src/main/java/com/minelittlepony/unicopia/block/ChitinBlock.java index f188bc81..9998cd81 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/ChitinBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/block/ChitinBlock.java @@ -1,16 +1,15 @@ package com.minelittlepony.unicopia.block; +import javax.annotation.Nullable; + import com.minelittlepony.unicopia.Race; import com.minelittlepony.unicopia.entity.player.Pony; import net.minecraft.block.Block; import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.entity.EntityContext; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemPlacementContext; import net.minecraft.state.StateManager; -import net.minecraft.state.property.EnumProperty; -import net.minecraft.util.StringIdentifiable; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.BlockView; @@ -18,11 +17,9 @@ import net.minecraft.world.IWorld; public class ChitinBlock extends Block { - public static final EnumProperty COVERING = EnumProperty.of("covering", Covering.class); - public ChitinBlock(Settings settings) { super(settings); - setDefaultState(stateManager.getDefaultState().with(COVERING, Covering.UNCOVERED)); + setDefaultState(stateManager.getDefaultState().with(Covering.PROPERTY, Covering.UNCOVERED)); } @Deprecated @@ -44,16 +41,19 @@ public class ChitinBlock extends Block { return hardness; } + @Override + @Nullable + public BlockState getPlacementState(ItemPlacementContext context) { + Direction side = context.getSide(); + + return getDefaultState().with(Covering.PROPERTY, Covering.getCovering(context.getWorld(), context.getBlockPos().offset(side))); + } + @Override @Deprecated public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState other, IWorld world, BlockPos pos, BlockPos otherPos) { if (direction == Direction.UP) { - Block block = other.getBlock(); - - boolean snowy = block == Blocks.SNOW_BLOCK || block == Blocks.SNOW; - boolean solid = (other.isOpaque() && other.isSimpleFullBlock(world, pos)) || Block.isFaceFullSquare(other.getCollisionShape(world, otherPos, EntityContext.absent()), Direction.DOWN); - - return state.with(COVERING, snowy ? Covering.SNOW_COVERED : solid ? Covering.COVERED : Covering.UNCOVERED); + return state.with(Covering.PROPERTY, Covering.getCovering(world, otherPos)); } return state; @@ -61,23 +61,6 @@ public class ChitinBlock extends Block { @Override protected void appendProperties(StateManager.Builder builder) { - builder.add(COVERING); - } - - public enum Covering implements StringIdentifiable { - COVERED, - UNCOVERED, - SNOW_COVERED; - - @Override - public String toString() { - return asString(); - } - - @Override - public String asString() { - return name().toLowerCase(); - } - + builder.add(Covering.PROPERTY); } } diff --git a/src/main/java/com/minelittlepony/unicopia/block/Covering.java b/src/main/java/com/minelittlepony/unicopia/block/Covering.java new file mode 100644 index 00000000..150bb670 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/block/Covering.java @@ -0,0 +1,44 @@ +package com.minelittlepony.unicopia.block; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.entity.EntityContext; +import net.minecraft.state.property.EnumProperty; +import net.minecraft.util.StringIdentifiable; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.IWorld; + +public enum Covering implements StringIdentifiable { + COVERED, + UNCOVERED, + SNOW_COVERED; + + public static final EnumProperty PROPERTY = EnumProperty.of("covering", Covering.class); + + @Override + public String toString() { + return asString(); + } + + @Override + public String asString() { + return name().toLowerCase(); + } + + public static Covering getCovering(IWorld world, BlockPos pos) { + BlockState state = world.getBlockState(pos); + Block block = state.getBlock(); + + if (block == Blocks.SNOW_BLOCK || block == Blocks.SNOW) { + return Covering.SNOW_COVERED; + } + + if ((state.isOpaque() && state.isSimpleFullBlock(world, pos)) || Block.isFaceFullSquare(state.getCollisionShape(world, pos, EntityContext.absent()), Direction.DOWN)) { + return Covering.COVERED; + } + + return Covering.UNCOVERED; + } +} \ No newline at end of file diff --git a/src/main/java/com/minelittlepony/unicopia/block/DiamondDoorBlock.java b/src/main/java/com/minelittlepony/unicopia/block/DiamondDoorBlock.java index 092022db..9a5385d4 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/DiamondDoorBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/block/DiamondDoorBlock.java @@ -4,22 +4,14 @@ import javax.annotation.Nullable; import com.minelittlepony.unicopia.EquinePredicates; -import net.fabricmc.fabric.api.block.FabricBlockSettings; import net.minecraft.block.BlockState; -import net.minecraft.block.Material; -import net.minecraft.block.MaterialColor; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; public class DiamondDoorBlock extends AbstractDoorBlock { - public DiamondDoorBlock() { - super(FabricBlockSettings.of(Material.METAL) - .sounds(BlockSoundGroup.METAL) - .materialColor(MaterialColor.DIAMOND) - .hardness(5) - .build()); + public DiamondDoorBlock(Settings settings) { + super(settings); } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java index 5c6c021f..590e0a52 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java +++ b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java @@ -7,7 +7,9 @@ import com.minelittlepony.unicopia.gas.CloudDoorBlock; import com.minelittlepony.unicopia.gas.CloudFarmlandBlock; import com.minelittlepony.unicopia.gas.CloudFenceBlock; import com.minelittlepony.unicopia.gas.CloudSlabBlock; +import com.minelittlepony.unicopia.gas.CloudSoilBlock; import com.minelittlepony.unicopia.gas.CloudStairsBlock; +import com.minelittlepony.unicopia.gas.CoverableCloudBlock; import com.minelittlepony.unicopia.gas.GasState; import com.minelittlepony.unicopia.item.UItems; import com.minelittlepony.unicopia.structure.CustomSaplingGenerator; @@ -27,26 +29,39 @@ import net.minecraft.util.registry.Registry; public interface UBlocks { CloudFarmlandBlock CLOUD_FARMLAND = register("cloud_farmland", new CloudFarmlandBlock(GasState.NORMAL.configure().build())); - CloudBlock CLOUD_BLOCK = register("cloud_block", new CloudBlock(GasState.NORMAL)); - CloudBlock ENCHANTED_CLOUD_BLOCK = register("enchanted_cloud_block", new CloudBlock(GasState.ENCHANTED)); + CloudBlock CLOUD_BLOCK = register("cloud_block", new CloudSoilBlock(GasState.NORMAL)); + CloudBlock ENCHANTED_CLOUD_BLOCK = register("enchanted_cloud_block", new CoverableCloudBlock(GasState.ENCHANTED)); CloudBlock DENSE_CLOUD_BLOCK = register("dense_cloud_block", new CloudBlock(GasState.DENSE)); CloudStairsBlock CLOUD_STAIRS = register("cloud_stairs", new CloudStairsBlock<>(CLOUD_BLOCK.getDefaultState(), GasState.NORMAL.configure().build())); CloudSlabBlock CLOUD_SLAB = register("cloud_slab", new CloudSlabBlock<>(CLOUD_BLOCK.getDefaultState(), GasState.NORMAL.configure().build())); CloudSlabBlock ENCHANTED_CLOUD_SLAB = register("enchanted_cloud_slab", new CloudSlabBlock<>(ENCHANTED_CLOUD_BLOCK.getDefaultState(), GasState.ENCHANTED.configure().build())); - CloudSlabBlock DENSE_CLOUD_SLAB = register("dense_cloud_slab", new CloudSlabBlock<>(ENCHANTED_CLOUD_BLOCK.getDefaultState(), GasState.DENSE.configure().build())); + CloudSlabBlock DENSE_CLOUD_SLAB = register("dense_cloud_slab", new CloudSlabBlock<>(DENSE_CLOUD_BLOCK.getDefaultState(), GasState.DENSE.configure().build())); - CloudDoorBlock MISTED_GLASS_DOOR = register("misted_glass_door", new CloudDoorBlock()); + CloudDoorBlock MISTED_GLASS_DOOR = register("misted_glass_door", new CloudDoorBlock(FabricBlockSettings.of(Material.GLASS) + .sounds(BlockSoundGroup.GLASS) + .hardness(3) + .resistance(200) + .nonOpaque() + .breakByTool(FabricToolTags.PICKAXES, 0) + .build())); DutchDoorBlock LIBRARY_DOOR = register("library_door", new DutchDoorBlock(FabricBlockSettings.of(Material.WOOD). sounds(BlockSoundGroup.WOOD) .hardness(3) + .nonOpaque() .build())); DutchDoorBlock BAKERY_DOOR = register("bakery_door", new DutchDoorBlock(FabricBlockSettings.of(Material.WOOD) .sounds(BlockSoundGroup.WOOD) .hardness(3) + .nonOpaque() + .build())); + DiamondDoorBlock DIAMOND_DOOR = register("diamond_door", new DiamondDoorBlock(FabricBlockSettings.of(Material.METAL) + .sounds(BlockSoundGroup.METAL) + .materialColor(MaterialColor.DIAMOND) + .strength(6, 20) + .nonOpaque() .build())); - DiamondDoorBlock DIAMOND_DOOR = register("diamond_door", new DiamondDoorBlock()); GemTorchBlock ENCHANTED_TORCH = register("enchanted_torch", new GemTorchBlock(FabricBlockSettings.of(Material.PART) .noCollision() @@ -93,14 +108,15 @@ public interface UBlocks { .ticksRandomly() .lightLevel(1) .sounds(BlockSoundGroup.SAND) - .breakByTool(FabricToolTags.PICKAXES, 1) + .breakByTool(FabricToolTags.SHOVELS, 1) .build())); ChitinBlock CHITIN_SHELL_BLOCK = register("chitin_shell_block", new ChitinBlock(FabricBlockSettings.of(UMaterials.CHITIN) - .hardness(50) - .strength(2000, 2000) + .strength(50, 2000) + .breakByTool(FabricToolTags.PICKAXES, 2) .build())); Block CHISELED_CHITIN_SHELL_BLOCK = register("chiseled_chitin_shell_block", new ChiselledChitinBlock(FabricBlockSettings.of(UMaterials.CHITIN) .strength(50, 2000) + .breakByTool(FabricToolTags.PICKAXES, 2) .build())); SlimeDropBlock SLIME_DROP = register("slime_drop", new SlimeDropBlock(FabricBlockSettings.of(UMaterials.HIVE, MaterialColor.GRASS) @@ -121,6 +137,7 @@ public interface UBlocks { .strength(10, 10) .hardness(0.7F) .sounds(BlockSoundGroup.SAND) + .breakByTool(FabricToolTags.SHOVELS) .build())); Block APPLE_LEAVES = register("apple_leaves", new FruitLeavesBlock(FabricBlockSettings.of(Material.LEAVES) .strength(0.2F, 0.2F) diff --git a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java index 2b247a26..a582fb19 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/URenderers.java +++ b/src/main/java/com/minelittlepony/unicopia/client/URenderers.java @@ -42,7 +42,8 @@ public interface URenderers { ParticleFactoryRegistry.getInstance().register(UParticles.SPHERE, SphereParticle.Factory::new); ParticleFactoryRegistry.getInstance().register(UParticles.DISK, DiskParticle.Factory::new); - BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), UBlocks.ENCHANTED_TORCH, UBlocks.ENCHANTED_WALL_TORCH); + BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), UBlocks.ENCHANTED_TORCH, UBlocks.ENCHANTED_WALL_TORCH, + UBlocks.BAKERY_DOOR, UBlocks.LIBRARY_DOOR, UBlocks.MISTED_GLASS_DOOR, UBlocks.DIAMOND_DOOR); BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getTranslucent(), UBlocks.CLOUD_ANVIL, UBlocks.CLOUD_FARMLAND, UBlocks.CLOUD_BLOCK, UBlocks.CLOUD_SLAB, UBlocks.CLOUD_STAIRS, UBlocks.CLOUD_FENCE, diff --git a/src/main/java/com/minelittlepony/unicopia/client/render/SpellbookEntityRender.java b/src/main/java/com/minelittlepony/unicopia/client/render/SpellbookEntityRender.java index b347cfff..88f27361 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/render/SpellbookEntityRender.java +++ b/src/main/java/com/minelittlepony/unicopia/client/render/SpellbookEntityRender.java @@ -30,23 +30,21 @@ public class SpellbookEntityRender extends LivingEntityRenderer { - private final ModelPart leftCover = (new ModelPart(64, 32, 0, 0)).addCuboid(-6, -5, -0.005F, 6, 10, 0.005F); - private final ModelPart rightCover = (new ModelPart(64, 32, 16, 0)).addCuboid(0, -5, -0.005F, 6, 10, 0.005F); - private final ModelPart leftBlock = (new ModelPart(64, 32, 0, 10)).addCuboid(0, -4, -0.99F, 5, 8, 1); - private final ModelPart rightBlock = (new ModelPart(64, 32, 12, 10)).addCuboid(0, -4, -0.01F, 5, 8, 1); - private final ModelPart leftPage = (new ModelPart(64, 32, 24, 10)).addCuboid(0, -4, 0, 5, 8, 0.005F); - private final ModelPart rightPage = (new ModelPart(64, 32, 24, 10)).addCuboid(0, -4, 0, 5, 8, 0.005F); - private final ModelPart spine = (new ModelPart(64, 32, 12, 0)).addCuboid(-1, -5, 0, 2, 10, 0.005F); + private ModelPart leftCover = new ModelPart(64, 32, 0, 0).addCuboid(-6, -5, -0.005F, 6, 10, 0.005F); + private ModelPart rightCover = new ModelPart(64, 32, 16, 0).addCuboid(0, -5, -0.005F, 6, 10, 0.005F); + private ModelPart leftBlock = new ModelPart(64, 32, 0, 10).addCuboid(0, -4, -0.99F, 5, 8, 1); + private ModelPart rightBlock = new ModelPart(64, 32, 12, 10).addCuboid(0, -4, -0.01F, 5, 8, 1); + private ModelPart leftPage = new ModelPart(64, 32, 24, 10).addCuboid(0, -4, 0, 5, 8, 0.005F); + private ModelPart rightPage = new ModelPart(64, 32, 24, 10).addCuboid(0, -4, 0, 5, 8, 0.005F); + private ModelPart spine = new ModelPart(64, 32, 12, 0).addCuboid(-1, -5, 0, 2, 10, 0.005F); - private final List parts = ImmutableList.of(leftCover, rightCover, spine, leftBlock, rightBlock, leftPage, rightPage); + private List parts = ImmutableList.of(leftCover, rightCover, spine, leftBlock, rightBlock, leftPage, rightPage); public SpellbookModel() { leftCover.setPivot(0, 0, -1); @@ -30,13 +30,26 @@ public class SpellbookModel extends EntityModel { @Override public void render(MatrixStack matrices, VertexConsumer vertexConsumer, int light, int overlay, float red, float green, float blue, float alpha) { - parts.forEach(modelPart -> { - modelPart.render(matrices, vertexConsumer, light, overlay, red, green, blue, alpha); - }); + parts.forEach(modelPart -> modelPart.render(matrices, vertexConsumer, light, overlay, red, green, blue, alpha)); + + leftCover = (new ModelPart(64, 32, 0, 0)).addCuboid(-6, -5, -0.005F, 6, 10, 0.005F); + rightCover = (new ModelPart(64, 32, 16, 0)).addCuboid(0, -5, -0.005F, 6, 10, 0.005F); + leftBlock = (new ModelPart(64, 32, 0, 10)).addCuboid(0.01F, -4, -0.99F, 5, 8, 1); + rightBlock = (new ModelPart(64, 32, 12, 10)).addCuboid(0.01F, -4, -0.01F, 5, 8, 1); + leftPage = (new ModelPart(64, 32, 24, 10)).addCuboid(0, -4, 0, 5, 8, 0.005F); + rightPage = (new ModelPart(64, 32, 24, 10)).addCuboid(0, -4, 0, 5, 8, 0.005F); + spine = (new ModelPart(64, 32, 12, 0)).addCuboid(-1, -5, 0, 2, 10, 0.005F); + + leftCover.setPivot(0, 0, -1); + rightCover.setPivot(0, 0, 1); + spine.yaw = 1.5707964F; + + parts = ImmutableList.of(leftCover, rightCover, spine, leftBlock, rightBlock, leftPage, rightPage); } public void setPageAngles(float breath, float leftPageRot, float rightPageRot, float openAngle) { float j = (MathHelper.sin(breath * 0.02F) * 0.1F + 1.25F) * openAngle; + leftCover.yaw = 3.1415927F + j; rightCover.yaw = -j; leftBlock.yaw = j; diff --git a/src/main/java/com/minelittlepony/unicopia/entity/SpellbookEntity.java b/src/main/java/com/minelittlepony/unicopia/entity/SpellbookEntity.java index 8954211b..492d3822 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/SpellbookEntity.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/SpellbookEntity.java @@ -17,6 +17,7 @@ import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; import net.minecraft.particle.ParticleTypes; +import net.minecraft.predicate.entity.EntityPredicates; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; @@ -95,7 +96,6 @@ public class SpellbookEntity extends MobEntity implements NameableContainerFacto jumping = open && isTouchingWater(); super.tick(); if (open && world.isClient) { - for (int offX = -2; offX <= 1; ++offX) { for (int offZ = -2; offZ <= 1; ++offZ) { if (offX > -1 && offX < 1 && offZ == -1) { @@ -116,6 +116,17 @@ public class SpellbookEntity extends MobEntity implements NameableContainerFacto } } + if (open) { + world.getEntities(this, getBoundingBox().expand(2), EntityPredicates.EXCEPT_SPECTATOR.and(e -> e instanceof PlayerEntity)).stream().findFirst().ifPresent(player -> { + + Vec3d diff = player.getPosVector().subtract(getPosVector()); + double yaw = Math.atan2(diff.z, diff.x) * 180D / Math.PI - 90; + + setHeadYaw((float)yaw); + setYaw((float)yaw); + }); + } + if (world.random.nextInt(30) == 0) { float celest = world.getSkyAngleRadians(1) * 4; @@ -164,11 +175,8 @@ public class SpellbookEntity extends MobEntity implements NameableContainerFacto } if (EquinePredicates.PLAYER_UNICORN.test(player)) { - player.playSound(SoundEvents.BLOCK_FURNACE_FIRE_CRACKLE, 2, 1); - player.openContainer(this); - return ActionResult.SUCCESS; } diff --git a/src/main/java/com/minelittlepony/unicopia/gas/CloudBlock.java b/src/main/java/com/minelittlepony/unicopia/gas/CloudBlock.java index f5a28d13..56e76771 100644 --- a/src/main/java/com/minelittlepony/unicopia/gas/CloudBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/gas/CloudBlock.java @@ -2,11 +2,7 @@ package com.minelittlepony.unicopia.gas; import java.util.Random; -import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.blockstate.StateMaps; -import com.minelittlepony.unicopia.entity.player.Pony; -import com.minelittlepony.unicopia.util.HoeUtil; - import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.block.Block; @@ -14,7 +10,6 @@ import net.minecraft.block.BlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityContext; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemUsageContext; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.Direction; import net.minecraft.util.shape.VoxelShape; @@ -24,7 +19,7 @@ import net.minecraft.world.BlockView; import net.minecraft.world.EmptyBlockView; import net.minecraft.world.World; -public class CloudBlock extends Block implements Gas, HoeUtil.Tillable { +public class CloudBlock extends Block implements Gas { private final GasState variant; @@ -34,7 +29,6 @@ public class CloudBlock extends Block implements Gas, HoeUtil.Tillable { .build() ); this.variant = variant; - HoeUtil.registerTillingAction(this, UBlocks.CLOUD_FARMLAND.getDefaultState()); } @Override @@ -81,7 +75,7 @@ public class CloudBlock extends Block implements Gas, HoeUtil.Tillable { @Override @Environment(EnvType.CLIENT) public boolean isSideInvisible(BlockState state, BlockState beside, Direction face) { - if (beside.getBlock() instanceof Gas) { + if (beside.getBlock() instanceof Gas && ((Gas)beside.getBlock()).getGasState(beside) == getGasState(state)) { VoxelShape myShape = state.getCollisionShape(EmptyBlockView.INSTANCE, BlockPos.ORIGIN); VoxelShape otherShape = beside.getCollisionShape(EmptyBlockView.INSTANCE, BlockPos.ORIGIN); @@ -125,9 +119,4 @@ public class CloudBlock extends Block implements Gas, HoeUtil.Tillable { public GasState getGasState(BlockState blockState) { return variant; } - - @Override - public boolean canTill(ItemUsageContext context) { - return context.getPlayer() == null || Pony.of(context.getPlayer()).getSpecies().canInteractWithClouds(); - } } diff --git a/src/main/java/com/minelittlepony/unicopia/gas/CloudDoorBlock.java b/src/main/java/com/minelittlepony/unicopia/gas/CloudDoorBlock.java index d43a43c2..407333bd 100644 --- a/src/main/java/com/minelittlepony/unicopia/gas/CloudDoorBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/gas/CloudDoorBlock.java @@ -1,13 +1,9 @@ package com.minelittlepony.unicopia.gas; import com.minelittlepony.unicopia.block.AbstractDoorBlock; -import net.fabricmc.fabric.api.block.FabricBlockSettings; -import net.fabricmc.fabric.api.tools.FabricToolTags; import net.minecraft.block.BlockState; -import net.minecraft.block.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; @@ -16,13 +12,8 @@ import net.minecraft.world.BlockView; import net.minecraft.world.World; public class CloudDoorBlock extends AbstractDoorBlock implements Gas { - public CloudDoorBlock() { - super(FabricBlockSettings.of(Material.GLASS) - .sounds(BlockSoundGroup.GLASS) - .hardness(3) - .resistance(200) - .breakByTool(FabricToolTags.PICKAXES, 0) - .build()); + public CloudDoorBlock(Settings settings) { + super(settings); } @Override diff --git a/src/main/java/com/minelittlepony/unicopia/gas/CloudSoilBlock.java b/src/main/java/com/minelittlepony/unicopia/gas/CloudSoilBlock.java new file mode 100644 index 00000000..6cb7b040 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/gas/CloudSoilBlock.java @@ -0,0 +1,20 @@ +package com.minelittlepony.unicopia.gas; + +import com.minelittlepony.unicopia.block.UBlocks; +import com.minelittlepony.unicopia.entity.player.Pony; +import com.minelittlepony.unicopia.util.HoeUtil; + +import net.minecraft.item.ItemUsageContext; + +public class CloudSoilBlock extends CloudBlock implements HoeUtil.Tillable { + + public CloudSoilBlock(GasState variant) { + super(variant); + HoeUtil.registerTillingAction(this, UBlocks.CLOUD_FARMLAND.getDefaultState()); + } + + @Override + public boolean canTill(ItemUsageContext context) { + return context.getPlayer() == null || Pony.of(context.getPlayer()).getSpecies().canInteractWithClouds(); + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/gas/CoverableCloudBlock.java b/src/main/java/com/minelittlepony/unicopia/gas/CoverableCloudBlock.java new file mode 100644 index 00000000..104f725f --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/gas/CoverableCloudBlock.java @@ -0,0 +1,44 @@ +package com.minelittlepony.unicopia.gas; + +import javax.annotation.Nullable; + +import com.minelittlepony.unicopia.block.Covering; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.state.StateManager; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.IWorld; + +public class CoverableCloudBlock extends CloudBlock { + + public CoverableCloudBlock(GasState variant) { + super(variant); + setDefaultState(stateManager.getDefaultState().with(Covering.PROPERTY, Covering.UNCOVERED)); + } + + @Override + @Nullable + public BlockState getPlacementState(ItemPlacementContext context) { + Direction side = context.getSide(); + + return getDefaultState().with(Covering.PROPERTY, Covering.getCovering(context.getWorld(), context.getBlockPos().offset(side))); + } + + @Override + @Deprecated + public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState other, IWorld world, BlockPos pos, BlockPos otherPos) { + if (direction == Direction.UP) { + return state.with(Covering.PROPERTY, Covering.getCovering(world, otherPos)); + } + + return state; + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(Covering.PROPERTY); + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/gas/GasState.java b/src/main/java/com/minelittlepony/unicopia/gas/GasState.java index 1c9e1632..b95c46ff 100644 --- a/src/main/java/com/minelittlepony/unicopia/gas/GasState.java +++ b/src/main/java/com/minelittlepony/unicopia/gas/GasState.java @@ -49,6 +49,10 @@ public enum GasState { } private boolean heldCanTouch(CloudInteractionContext context) { + if (this == ENCHANTED) { + return true; + } + ItemStack main = context.getHeldStack(); if (main.getItem() instanceof BlockItem) { @@ -58,7 +62,7 @@ public enum GasState { return true; } - return this == GasState.NORMAL && ( + return this == NORMAL && ( block instanceof TorchBlock || block instanceof BedBlock || block instanceof ChestBlock); diff --git a/src/main/java/com/minelittlepony/unicopia/item/SpellbookItem.java b/src/main/java/com/minelittlepony/unicopia/item/SpellbookItem.java index d93029f8..9e5675b1 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/SpellbookItem.java +++ b/src/main/java/com/minelittlepony/unicopia/item/SpellbookItem.java @@ -25,7 +25,7 @@ public class SpellbookItem extends BookItem { Direction facing = source.getBlockState().get(DispenserBlock.FACING); BlockPos pos = source.getBlockPos().offset(facing); - int yaw = facing.getOpposite().getHorizontal() * 90; + float yaw = facing.getOpposite().asRotation(); placeBook(source.getWorld(), pos.getX(), pos.getY(), pos.getZ(), yaw); stack.decrement(1); @@ -42,11 +42,7 @@ public class SpellbookItem extends BookItem { if (!context.getWorld().isClient && EquinePredicates.PLAYER_UNICORN.test(player)) { BlockPos pos = context.getBlockPos().offset(context.getSide()); - double diffX = player.getX() - (pos.getX() + 0.5); - double diffZ = player.getZ() - (pos.getZ() + 0.5); - float yaw = (float)Math.toDegrees(Math.atan2(diffZ, diffX) + Math.PI); - - placeBook(context.getWorld(), pos.getX(), pos.getY(), pos.getZ(), yaw); + placeBook(context.getWorld(), pos.getX(), pos.getY(), pos.getZ(), context.getPlayerYaw() + 180); if (!player.abilities.creativeMode) { player.getStackInHand(context.getHand()).decrement(1); @@ -60,9 +56,9 @@ public class SpellbookItem extends BookItem { private static void placeBook(World world, int x, int y, int z, float yaw) { SpellbookEntity book = UEntities.SPELLBOOK.create(world); - book.updatePositionAndAngles(x + 0.5, y, z + 0.5, yaw, 0); - book.prevYaw = yaw; - + book.refreshPositionAndAngles(x + 0.5, y, z + 0.5, 0, 0); + book.setHeadYaw(yaw); + book.setYaw(yaw); world.spawnEntity(book); } } diff --git a/src/main/resources/assets/unicopia/blockstates/enchanted_cloud_block.json b/src/main/resources/assets/unicopia/blockstates/enchanted_cloud_block.json index 913d057d..9aed5728 100644 --- a/src/main/resources/assets/unicopia/blockstates/enchanted_cloud_block.json +++ b/src/main/resources/assets/unicopia/blockstates/enchanted_cloud_block.json @@ -1,5 +1,7 @@ { "variants": { - "": { "model": "unicopia:block/enchanted_cloud_block" } + "covering=uncovered": { "model": "unicopia:block/enchanted_cloud_block" }, + "covering=covered": { "model": "unicopia:block/enchanted_cloud_block_covered" }, + "covering=snow_covered": { "model": "unicopia:block/enchanted_cloud_block" } } } diff --git a/src/main/resources/assets/unicopia/models/block/chitin_shell_block.json b/src/main/resources/assets/unicopia/models/block/chitin_shell_block.json index 67c57089..63d5ccde 100644 --- a/src/main/resources/assets/unicopia/models/block/chitin_shell_block.json +++ b/src/main/resources/assets/unicopia/models/block/chitin_shell_block.json @@ -2,9 +2,9 @@ "parent": "block/cube_all", "textures": { "bottom": "unicopia:blocks/chitin_block_covered", - "particle": "unicopia:blocks/chitin_block_uncovered", "top": "unicopia:blocks/chitin_block_top", - "side": "unicopia:blocks/chitin_block_uncovered" + "side": "unicopia:blocks/chitin_block_uncovered", + "particle": "#side" }, "elements": [ { "from": [ 0, 0, 0 ], diff --git a/src/main/resources/assets/unicopia/models/block/cloud_anvil.json b/src/main/resources/assets/unicopia/models/block/cloud_anvil.json index 7d4fa1b7..82d878fe 100644 --- a/src/main/resources/assets/unicopia/models/block/cloud_anvil.json +++ b/src/main/resources/assets/unicopia/models/block/cloud_anvil.json @@ -1,8 +1,8 @@ { "parent": "block/anvil", "textures": { - "particle": "unicopia:blocks/cloud_normal", - "body": "unicopia:blocks/cloud_normal", - "top": "unicopia:blocks/cloud_normal" + "particle": "unicopia:blocks/cloud_block", + "body": "unicopia:blocks/cloud_block", + "top": "unicopia:blocks/cloud_block" } } diff --git a/src/main/resources/assets/unicopia/models/block/cloud_block.json b/src/main/resources/assets/unicopia/models/block/cloud_block.json index 0cbb5c35..13cddf88 100644 --- a/src/main/resources/assets/unicopia/models/block/cloud_block.json +++ b/src/main/resources/assets/unicopia/models/block/cloud_block.json @@ -1,6 +1,6 @@ { "parent": "block/cube_all", "textures": { - "all": "unicopia:blocks/cloud_normal" + "all": "unicopia:blocks/cloud_block" } } \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/cloud_fence_inventory.json b/src/main/resources/assets/unicopia/models/block/cloud_fence_inventory.json index 387d9baf..3a8dbc3b 100644 --- a/src/main/resources/assets/unicopia/models/block/cloud_fence_inventory.json +++ b/src/main/resources/assets/unicopia/models/block/cloud_fence_inventory.json @@ -13,8 +13,8 @@ }, "ambientocclusion": false, "textures": { - "texture": "unicopia:blocks/cloud_normal", - "particle": "unicopia:blocks/cloud_normal" + "texture": "unicopia:blocks/dense_cloud_block", + "particle": "#texture" }, "elements": [ { "from": [ 6, 0, 0 ], diff --git a/src/main/resources/assets/unicopia/models/block/cloud_fence_post.json b/src/main/resources/assets/unicopia/models/block/cloud_fence_post.json index c6c07415..136ccb27 100644 --- a/src/main/resources/assets/unicopia/models/block/cloud_fence_post.json +++ b/src/main/resources/assets/unicopia/models/block/cloud_fence_post.json @@ -1,6 +1,6 @@ { "parent": "block/fence_post", "textures": { - "texture": "unicopia:blocks/cloud_normal" + "texture": "unicopia:blocks/dense_cloud_block" } } diff --git a/src/main/resources/assets/unicopia/models/block/cloud_fence_side.json b/src/main/resources/assets/unicopia/models/block/cloud_fence_side.json index cdce88f6..c8f185a0 100644 --- a/src/main/resources/assets/unicopia/models/block/cloud_fence_side.json +++ b/src/main/resources/assets/unicopia/models/block/cloud_fence_side.json @@ -1,7 +1,7 @@ { "textures": { - "texture": "unicopia:blocks/cloud_normal", - "particle": "unicopia:blocks/cloud_normal" + "texture": "unicopia:blocks/dense_cloud_block", + "particle": "#texture" }, "elements": [ { "from": [ 7, 10, 0 ], diff --git a/src/main/resources/assets/unicopia/models/block/cloud_inner_stairs.json b/src/main/resources/assets/unicopia/models/block/cloud_inner_stairs.json index c53acf6c..5866dbc8 100644 --- a/src/main/resources/assets/unicopia/models/block/cloud_inner_stairs.json +++ b/src/main/resources/assets/unicopia/models/block/cloud_inner_stairs.json @@ -1,9 +1,9 @@ { "textures": { - "bottom": "unicopia:blocks/cloud_normal", - "top": "unicopia:blocks/cloud_normal", - "side": "unicopia:blocks/cloud_normal", - "particle": "unicopia:blocks/cloud_normal" + "bottom": "unicopia:blocks/cloud_block", + "top": "#bottom", + "side": "#bottom", + "particle": "#bottom" }, "elements": [ { "from": [ 0, 0, 0 ], diff --git a/src/main/resources/assets/unicopia/models/block/cloud_outer_stairs.json b/src/main/resources/assets/unicopia/models/block/cloud_outer_stairs.json index f54a1ecd..f7faa858 100644 --- a/src/main/resources/assets/unicopia/models/block/cloud_outer_stairs.json +++ b/src/main/resources/assets/unicopia/models/block/cloud_outer_stairs.json @@ -1,9 +1,9 @@ { "textures": { - "bottom": "unicopia:blocks/cloud_normal", - "top": "unicopia:blocks/cloud_normal", - "side": "unicopia:blocks/cloud_normal", - "particle": "unicopia:blocks/cloud_normal" + "bottom": "unicopia:blocks/cloud_block", + "top": "#bottom", + "side": "#bottom", + "particle": "#bottom" }, "elements": [ { "from": [ 0, 0, 0 ], diff --git a/src/main/resources/assets/unicopia/models/block/cloud_slab.json b/src/main/resources/assets/unicopia/models/block/cloud_slab.json index 4531f612..f5970338 100644 --- a/src/main/resources/assets/unicopia/models/block/cloud_slab.json +++ b/src/main/resources/assets/unicopia/models/block/cloud_slab.json @@ -1,8 +1,8 @@ { "parent": "block/slab", "textures": { - "bottom": "unicopia:blocks/cloud_normal", - "top": "unicopia:blocks/cloud_normal", - "side": "unicopia:blocks/cloud_normal" + "bottom": "unicopia:blocks/cloud_block", + "top": "#bottom", + "side": "#bottom" } } diff --git a/src/main/resources/assets/unicopia/models/block/cloud_slab_top.json b/src/main/resources/assets/unicopia/models/block/cloud_slab_top.json index 2b678629..24367361 100644 --- a/src/main/resources/assets/unicopia/models/block/cloud_slab_top.json +++ b/src/main/resources/assets/unicopia/models/block/cloud_slab_top.json @@ -1,8 +1,8 @@ { "parent": "block/slab_top", "textures": { - "bottom": "unicopia:blocks/cloud_normal", - "top": "unicopia:blocks/cloud_normal", - "side": "unicopia:blocks/cloud_normal" + "bottom": "unicopia:blocks/cloud_block", + "top": "#bottom", + "side": "#bottom" } } diff --git a/src/main/resources/assets/unicopia/models/block/cloud_stairs.json b/src/main/resources/assets/unicopia/models/block/cloud_stairs.json index 2b5edd5a..64568393 100644 --- a/src/main/resources/assets/unicopia/models/block/cloud_stairs.json +++ b/src/main/resources/assets/unicopia/models/block/cloud_stairs.json @@ -17,10 +17,10 @@ } }, "textures": { - "bottom": "unicopia:blocks/cloud_normal", - "top": "unicopia:blocks/cloud_normal", - "side": "unicopia:blocks/cloud_normal", - "particle": "unicopia:blocks/cloud_normal" + "bottom": "unicopia:blocks/cloud_block", + "top": "#bottom", + "side": "#bottom", + "particle": "#bottom" }, "elements": [ { "from": [ 0, 0, 0 ], diff --git a/src/main/resources/assets/unicopia/models/block/dense_cloud_block.json b/src/main/resources/assets/unicopia/models/block/dense_cloud_block.json index bfe89e31..2defdad6 100644 --- a/src/main/resources/assets/unicopia/models/block/dense_cloud_block.json +++ b/src/main/resources/assets/unicopia/models/block/dense_cloud_block.json @@ -1,7 +1,7 @@ { "parent": "block/cube_column", "textures": { - "end": "unicopia:blocks/cloud_packed_top", - "side": "unicopia:blocks/cloud_packed" + "end": "unicopia:blocks/dense_cloud_block_top", + "side": "unicopia:blocks/dense_cloud_block" } } diff --git a/src/main/resources/assets/unicopia/models/block/dense_cloud_slab.json b/src/main/resources/assets/unicopia/models/block/dense_cloud_slab.json index 7d864a33..5c631906 100644 --- a/src/main/resources/assets/unicopia/models/block/dense_cloud_slab.json +++ b/src/main/resources/assets/unicopia/models/block/dense_cloud_slab.json @@ -1,8 +1,8 @@ { "parent": "block/slab", "textures": { - "bottom": "unicopia:blocks/cloud_packed_top", - "top": "unicopia:blocks/cloud_packed", - "side": "unicopia:blocks/cloud_packed" + "bottom": "unicopia:blocks/dense_cloud_block", + "top": "unicopia:blocks/dense_cloud_block_top", + "side": "unicopia:blocks/dense_cloud_block" } } diff --git a/src/main/resources/assets/unicopia/models/block/dense_cloud_slab_top.json b/src/main/resources/assets/unicopia/models/block/dense_cloud_slab_top.json index 3d4723ab..2d117e73 100644 --- a/src/main/resources/assets/unicopia/models/block/dense_cloud_slab_top.json +++ b/src/main/resources/assets/unicopia/models/block/dense_cloud_slab_top.json @@ -1,8 +1,8 @@ { "parent": "block/slab_top", "textures": { - "bottom": "unicopia:blocks/cloud_packed", - "top": "unicopia:blocks/cloud_packed_top", - "side": "unicopia:blocks/cloud_packed" + "bottom": "unicopia:blocks/dense_cloud_block_top", + "top": "unicopia:blocks/dense_cloud_block", + "side": "unicopia:blocks/dense_cloud_block" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/bakery_bottom.json b/src/main/resources/assets/unicopia/models/block/door/bakery_bottom.json index 20af668b..aba04d30 100644 --- a/src/main/resources/assets/unicopia/models/block/door/bakery_bottom.json +++ b/src/main/resources/assets/unicopia/models/block/door/bakery_bottom.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/bottom", "textures": { - "bottom": "unicopia:blocks/door_bakery_lower", - "top": "unicopia:blocks/door_bakery_upper" + "bottom": "unicopia:blocks/bakery_door_lower", + "top": "unicopia:blocks/bakery_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/bakery_bottom_rh.json b/src/main/resources/assets/unicopia/models/block/door/bakery_bottom_rh.json index f82e8191..027e41f0 100644 --- a/src/main/resources/assets/unicopia/models/block/door/bakery_bottom_rh.json +++ b/src/main/resources/assets/unicopia/models/block/door/bakery_bottom_rh.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/bottom_rh", "textures": { - "bottom": "unicopia:blocks/door_bakery_lower", - "top": "unicopia:blocks/door_bakery_upper" + "bottom": "unicopia:blocks/bakery_door_lower", + "top": "unicopia:blocks/bakery_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/bakery_top.json b/src/main/resources/assets/unicopia/models/block/door/bakery_top.json index ea3a51b0..81d3a6fa 100644 --- a/src/main/resources/assets/unicopia/models/block/door/bakery_top.json +++ b/src/main/resources/assets/unicopia/models/block/door/bakery_top.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/top", "textures": { - "bottom": "unicopia:blocks/door_bakery_lower", - "top": "unicopia:blocks/door_bakery_upper" + "bottom": "unicopia:blocks/bakery_door_lower", + "top": "unicopia:blocks/bakery_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/bakery_top_rh.json b/src/main/resources/assets/unicopia/models/block/door/bakery_top_rh.json index 38cc28ce..fb542607 100644 --- a/src/main/resources/assets/unicopia/models/block/door/bakery_top_rh.json +++ b/src/main/resources/assets/unicopia/models/block/door/bakery_top_rh.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/top_rh", "textures": { - "bottom": "unicopia:blocks/door_bakery_lower", - "top": "unicopia:blocks/door_bakery_upper" + "bottom": "unicopia:blocks/bakery_door_lower", + "top": "unicopia:blocks/bakery_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/diamond_bottom.json b/src/main/resources/assets/unicopia/models/block/door/diamond_bottom.json index 02d76d21..ffc0fe60 100644 --- a/src/main/resources/assets/unicopia/models/block/door/diamond_bottom.json +++ b/src/main/resources/assets/unicopia/models/block/door/diamond_bottom.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/bottom", "textures": { - "bottom": "unicopia:blocks/door_diamond_lower", - "top": "unicopia:blocks/door_diamond_upper" + "bottom": "unicopia:blocks/diamond_door_lower", + "top": "unicopia:blocks/diamond_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/diamond_bottom_rh.json b/src/main/resources/assets/unicopia/models/block/door/diamond_bottom_rh.json index 8556b6d7..37769ba6 100644 --- a/src/main/resources/assets/unicopia/models/block/door/diamond_bottom_rh.json +++ b/src/main/resources/assets/unicopia/models/block/door/diamond_bottom_rh.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/bottom_rh", "textures": { - "bottom": "unicopia:blocks/door_diamond_lower", - "top": "unicopia:blocks/door_diamond_upper" + "bottom": "unicopia:blocks/diamond_door_lower", + "top": "unicopia:blocks/diamond_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/diamond_top.json b/src/main/resources/assets/unicopia/models/block/door/diamond_top.json index 19212184..567731e7 100644 --- a/src/main/resources/assets/unicopia/models/block/door/diamond_top.json +++ b/src/main/resources/assets/unicopia/models/block/door/diamond_top.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/top", "textures": { - "bottom": "unicopia:blocks/door_diamond_lower", - "top": "unicopia:blocks/door_diamond_upper" + "bottom": "unicopia:blocks/diamond_door_lower", + "top": "unicopia:blocks/diamond_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/diamond_top_rh.json b/src/main/resources/assets/unicopia/models/block/door/diamond_top_rh.json index ad3be532..c1589b77 100644 --- a/src/main/resources/assets/unicopia/models/block/door/diamond_top_rh.json +++ b/src/main/resources/assets/unicopia/models/block/door/diamond_top_rh.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/top_rh", "textures": { - "bottom": "unicopia:blocks/door_diamond_lower", - "top": "unicopia:blocks/door_diamond_upper" + "bottom": "unicopia:blocks/diamond_door_lower", + "top": "unicopia:blocks/diamond_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/library_bottom.json b/src/main/resources/assets/unicopia/models/block/door/library_bottom.json index 9696a7f6..41d0c1ae 100644 --- a/src/main/resources/assets/unicopia/models/block/door/library_bottom.json +++ b/src/main/resources/assets/unicopia/models/block/door/library_bottom.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/bottom", "textures": { - "bottom": "unicopia:blocks/door_library_lower", - "top": "unicopia:blocks/door_library_upper" + "bottom": "unicopia:blocks/library_door_lower", + "top": "unicopia:blocks/library_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/library_bottom_rh.json b/src/main/resources/assets/unicopia/models/block/door/library_bottom_rh.json index b06d234d..e682b626 100644 --- a/src/main/resources/assets/unicopia/models/block/door/library_bottom_rh.json +++ b/src/main/resources/assets/unicopia/models/block/door/library_bottom_rh.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/bottom_rh", "textures": { - "bottom": "unicopia:blocks/door_library_lower", - "top": "unicopia:blocks/door_library_upper" + "bottom": "unicopia:blocks/library_door_lower", + "top": "unicopia:blocks/library_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/library_top.json b/src/main/resources/assets/unicopia/models/block/door/library_top.json index e230b4df..a3d4c7d4 100644 --- a/src/main/resources/assets/unicopia/models/block/door/library_top.json +++ b/src/main/resources/assets/unicopia/models/block/door/library_top.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/top", "textures": { - "bottom": "unicopia:blocks/door_library_lower", - "top": "unicopia:blocks/door_library_upper" + "bottom": "unicopia:blocks/library_door_lower", + "top": "unicopia:blocks/library_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/library_top_rh.json b/src/main/resources/assets/unicopia/models/block/door/library_top_rh.json index 13422e83..706f18b8 100644 --- a/src/main/resources/assets/unicopia/models/block/door/library_top_rh.json +++ b/src/main/resources/assets/unicopia/models/block/door/library_top_rh.json @@ -1,7 +1,7 @@ { "parent": "unicopia:block/door/top_rh", "textures": { - "bottom": "unicopia:blocks/door_library_lower", - "top": "unicopia:blocks/door_library_upper" + "bottom": "unicopia:blocks/library_door_lower", + "top": "unicopia:blocks/library_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/mist_bottom.json b/src/main/resources/assets/unicopia/models/block/door/mist_bottom.json index 9d342f67..0ce7dd18 100644 --- a/src/main/resources/assets/unicopia/models/block/door/mist_bottom.json +++ b/src/main/resources/assets/unicopia/models/block/door/mist_bottom.json @@ -1,7 +1,7 @@ { "parent": "minecraft:block/door_bottom", "textures": { - "bottom": "unicopia:blocks/door_mist_lower", - "top": "unicopia:blocks/door_mist_upper" + "bottom": "unicopia:blocks/misted_glass_door_lower", + "top": "unicopia:blocks/misted_glass_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/mist_bottom_rh.json b/src/main/resources/assets/unicopia/models/block/door/mist_bottom_rh.json index babde1e1..3c7939df 100644 --- a/src/main/resources/assets/unicopia/models/block/door/mist_bottom_rh.json +++ b/src/main/resources/assets/unicopia/models/block/door/mist_bottom_rh.json @@ -1,7 +1,7 @@ { "parent": "block/door_bottom_rh", "textures": { - "bottom": "unicopia:blocks/door_mist_lower", - "top": "unicopia:blocks/door_mist_upper" + "bottom": "unicopia:blocks/misted_glass_door_lower", + "top": "unicopia:blocks/misted_glass_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/mist_top.json b/src/main/resources/assets/unicopia/models/block/door/mist_top.json index cc1bbbb4..a2e12c77 100644 --- a/src/main/resources/assets/unicopia/models/block/door/mist_top.json +++ b/src/main/resources/assets/unicopia/models/block/door/mist_top.json @@ -1,7 +1,7 @@ { "parent": "block/door_top", "textures": { - "bottom": "unicopia:blocks/door_mist_lower", - "top": "unicopia:blocks/door_mist_upper" + "bottom": "unicopia:blocks/misted_glass_door_lower", + "top": "unicopia:blocks/misted_glass_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/door/mist_top_rh.json b/src/main/resources/assets/unicopia/models/block/door/mist_top_rh.json index f75c8761..60b06cb6 100644 --- a/src/main/resources/assets/unicopia/models/block/door/mist_top_rh.json +++ b/src/main/resources/assets/unicopia/models/block/door/mist_top_rh.json @@ -1,7 +1,7 @@ { "parent": "block/door_top_rh", "textures": { - "bottom": "unicopia:blocks/door_mist_lower", - "top": "unicopia:blocks/door_mist_upper" + "bottom": "unicopia:blocks/misted_glass_door_lower", + "top": "unicopia:blocks/misted_glass_door_upper" } } diff --git a/src/main/resources/assets/unicopia/models/block/enchanted_cloud_block.json b/src/main/resources/assets/unicopia/models/block/enchanted_cloud_block.json index c09786c4..e05f2707 100644 --- a/src/main/resources/assets/unicopia/models/block/enchanted_cloud_block.json +++ b/src/main/resources/assets/unicopia/models/block/enchanted_cloud_block.json @@ -1,7 +1,8 @@ { - "parent": "block/cube_column", + "parent": "unicopia:block/chitin_shell_block", "textures": { - "end": "unicopia:blocks/cloud_enchanted_top", - "side": "unicopia:blocks/cloud_enchanted" + "top": "unicopia:blocks/enchanted_cloud_block_top", + "side": "unicopia:blocks/enchanted_cloud_block", + "bottom": "unicopia:blocks/enchanted_cloud_block_bottom" } } \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/enchanted_cloud_block_covered.json b/src/main/resources/assets/unicopia/models/block/enchanted_cloud_block_covered.json new file mode 100644 index 00000000..787f7449 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/enchanted_cloud_block_covered.json @@ -0,0 +1,8 @@ +{ + "parent": "unicopia:block/chitin_shell_block", + "textures": { + "top": "unicopia:blocks/enchanted_cloud_block_top", + "side": "unicopia:blocks/enchanted_cloud_block_bottom", + "bottom": "unicopia:blocks/enchanted_cloud_block_bottom" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/enchanted_cloud_slab.json b/src/main/resources/assets/unicopia/models/block/enchanted_cloud_slab.json index 03375470..73fe68d2 100644 --- a/src/main/resources/assets/unicopia/models/block/enchanted_cloud_slab.json +++ b/src/main/resources/assets/unicopia/models/block/enchanted_cloud_slab.json @@ -1,8 +1,8 @@ { "parent": "block/slab", "textures": { - "bottom": "unicopia:blocks/cloud_enchanted_top", - "top": "unicopia:blocks/cloud_enchanted", - "side": "unicopia:blocks/cloud_enchanted" + "bottom": "unicopia:blocks/enchanted_cloud_block_bottom", + "top": "unicopia:blocks/enchanted_cloud_block_top", + "side": "unicopia:blocks/enchanted_cloud_slab_side" } } diff --git a/src/main/resources/assets/unicopia/models/block/enchanted_cloud_slab_top.json b/src/main/resources/assets/unicopia/models/block/enchanted_cloud_slab_top.json index c288bda8..50c05000 100644 --- a/src/main/resources/assets/unicopia/models/block/enchanted_cloud_slab_top.json +++ b/src/main/resources/assets/unicopia/models/block/enchanted_cloud_slab_top.json @@ -1,8 +1,8 @@ { "parent": "block/slab_top", "textures": { - "bottom": "unicopia:blocks/cloud_enchanted", - "top": "unicopia:blocks/cloud_enchanted_top", - "side": "unicopia:blocks/cloud_enchanted" + "bottom": "unicopia:blocks/enchanted_cloud_block_bottom", + "top": "unicopia:blocks/enchanted_cloud_block_top", + "side": "unicopia:blocks/enchanted_cloud_slab_side" } } diff --git a/src/main/resources/assets/unicopia/models/block/farmland/dry.json b/src/main/resources/assets/unicopia/models/block/farmland/dry.json index bc3335a5..e56f2010 100644 --- a/src/main/resources/assets/unicopia/models/block/farmland/dry.json +++ b/src/main/resources/assets/unicopia/models/block/farmland/dry.json @@ -1,8 +1,8 @@ { "parent": "block/farmland", "textures": { - "particle": "unicopia:blocks/cloud_normal", - "dirt": "unicopia:blocks/cloud_normal", + "particle": "unicopia:blocks/cloud_block", + "dirt": "unicopia:blocks/cloud_block", "top": "unicopia:blocks/cloud_farmland_dry" } } diff --git a/src/main/resources/assets/unicopia/models/block/farmland/wet.json b/src/main/resources/assets/unicopia/models/block/farmland/wet.json index 025ed2f1..ecca44e6 100644 --- a/src/main/resources/assets/unicopia/models/block/farmland/wet.json +++ b/src/main/resources/assets/unicopia/models/block/farmland/wet.json @@ -1,8 +1,8 @@ { "parent": "block/farmland", "textures": { - "particle": "unicopia:blocks/cloud_normal", - "dirt": "unicopia:blocks/cloud_normal", + "particle": "unicopia:blocks/cloud_block", + "dirt": "unicopia:blocks/cloud_block", "top": "unicopia:blocks/cloud_farmland_wet" } } diff --git a/src/main/resources/assets/unicopia/textures/blocks/door_bakery_lower.png b/src/main/resources/assets/unicopia/textures/blocks/bakery_door_lower.png similarity index 100% rename from src/main/resources/assets/unicopia/textures/blocks/door_bakery_lower.png rename to src/main/resources/assets/unicopia/textures/blocks/bakery_door_lower.png diff --git a/src/main/resources/assets/unicopia/textures/blocks/door_bakery_upper.png b/src/main/resources/assets/unicopia/textures/blocks/bakery_door_upper.png similarity index 100% rename from src/main/resources/assets/unicopia/textures/blocks/door_bakery_upper.png rename to src/main/resources/assets/unicopia/textures/blocks/bakery_door_upper.png diff --git a/src/main/resources/assets/unicopia/textures/blocks/cloud_packed.png b/src/main/resources/assets/unicopia/textures/blocks/chiseled_cloud.png similarity index 80% rename from src/main/resources/assets/unicopia/textures/blocks/cloud_packed.png rename to src/main/resources/assets/unicopia/textures/blocks/chiseled_cloud.png index 27898f73..dc368b4e 100644 Binary files a/src/main/resources/assets/unicopia/textures/blocks/cloud_packed.png and b/src/main/resources/assets/unicopia/textures/blocks/chiseled_cloud.png differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/cloud_block.png b/src/main/resources/assets/unicopia/textures/blocks/cloud_block.png new file mode 100644 index 00000000..9e9ee62a Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/blocks/cloud_block.png differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/cloud_enchanted.png b/src/main/resources/assets/unicopia/textures/blocks/dense_cloud_block.png similarity index 88% rename from src/main/resources/assets/unicopia/textures/blocks/cloud_enchanted.png rename to src/main/resources/assets/unicopia/textures/blocks/dense_cloud_block.png index 47823e79..07937b38 100644 Binary files a/src/main/resources/assets/unicopia/textures/blocks/cloud_enchanted.png and b/src/main/resources/assets/unicopia/textures/blocks/dense_cloud_block.png differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/cloud_packed_top.png b/src/main/resources/assets/unicopia/textures/blocks/dense_cloud_block_top.png similarity index 100% rename from src/main/resources/assets/unicopia/textures/blocks/cloud_packed_top.png rename to src/main/resources/assets/unicopia/textures/blocks/dense_cloud_block_top.png diff --git a/src/main/resources/assets/unicopia/textures/blocks/diamond_door_lower.png b/src/main/resources/assets/unicopia/textures/blocks/diamond_door_lower.png new file mode 100644 index 00000000..d249aba7 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/blocks/diamond_door_lower.png differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/diamond_door_upper.png b/src/main/resources/assets/unicopia/textures/blocks/diamond_door_upper.png new file mode 100644 index 00000000..d8aed207 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/blocks/diamond_door_upper.png differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/diamond_door_upper.png.mcmeta b/src/main/resources/assets/unicopia/textures/blocks/diamond_door_upper.png.mcmeta new file mode 100644 index 00000000..66de2f42 --- /dev/null +++ b/src/main/resources/assets/unicopia/textures/blocks/diamond_door_upper.png.mcmeta @@ -0,0 +1,11 @@ +{ + "animation": { + "frametime": 200, + "frames": [ + 0, 1, 2, 3, + 1, 2, 3, 0, + 2, 3, 0, 1, + 3, 0, 1, 2 + ] + } +} diff --git a/src/main/resources/assets/unicopia/textures/blocks/door_diamond_lower.png b/src/main/resources/assets/unicopia/textures/blocks/door_diamond_lower.png deleted file mode 100644 index ad2b6b20..00000000 Binary files a/src/main/resources/assets/unicopia/textures/blocks/door_diamond_lower.png and /dev/null differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/door_diamond_upper.png b/src/main/resources/assets/unicopia/textures/blocks/door_diamond_upper.png deleted file mode 100644 index 71408ee2..00000000 Binary files a/src/main/resources/assets/unicopia/textures/blocks/door_diamond_upper.png and /dev/null differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_block.png b/src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_block.png new file mode 100644 index 00000000..2d611f13 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_block.png differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_block_bottom.png b/src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_block_bottom.png new file mode 100644 index 00000000..ba7abd96 Binary files /dev/null and b/src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_block_bottom.png differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/door_mist_lower.png b/src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_block_top.png similarity index 80% rename from src/main/resources/assets/unicopia/textures/blocks/door_mist_lower.png rename to src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_block_top.png index 07d42453..6ef6cd10 100644 Binary files a/src/main/resources/assets/unicopia/textures/blocks/door_mist_lower.png and b/src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_block_top.png differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/cloud_enchanted_top.png b/src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_slab_side.png similarity index 88% rename from src/main/resources/assets/unicopia/textures/blocks/cloud_enchanted_top.png rename to src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_slab_side.png index a370939b..483ea976 100644 Binary files a/src/main/resources/assets/unicopia/textures/blocks/cloud_enchanted_top.png and b/src/main/resources/assets/unicopia/textures/blocks/enchanted_cloud_slab_side.png differ diff --git a/src/main/resources/assets/unicopia/textures/blocks/door_library_lower.png b/src/main/resources/assets/unicopia/textures/blocks/library_door_lower.png similarity index 100% rename from src/main/resources/assets/unicopia/textures/blocks/door_library_lower.png rename to src/main/resources/assets/unicopia/textures/blocks/library_door_lower.png diff --git a/src/main/resources/assets/unicopia/textures/blocks/door_library_upper.png b/src/main/resources/assets/unicopia/textures/blocks/library_door_upper.png similarity index 100% rename from src/main/resources/assets/unicopia/textures/blocks/door_library_upper.png rename to src/main/resources/assets/unicopia/textures/blocks/library_door_upper.png diff --git a/src/main/resources/assets/unicopia/textures/blocks/cloud_normal.png b/src/main/resources/assets/unicopia/textures/blocks/misted_glass_door_lower.png similarity index 100% rename from src/main/resources/assets/unicopia/textures/blocks/cloud_normal.png rename to src/main/resources/assets/unicopia/textures/blocks/misted_glass_door_lower.png diff --git a/src/main/resources/assets/unicopia/textures/blocks/door_mist_upper.png b/src/main/resources/assets/unicopia/textures/blocks/misted_glass_door_upper.png similarity index 100% rename from src/main/resources/assets/unicopia/textures/blocks/door_mist_upper.png rename to src/main/resources/assets/unicopia/textures/blocks/misted_glass_door_upper.png diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/bakery_door.json b/src/main/resources/data/unicopia/loot_tables/blocks/bakery_door.json index 68897c6c..fd1daddc 100644 --- a/src/main/resources/data/unicopia/loot_tables/blocks/bakery_door.json +++ b/src/main/resources/data/unicopia/loot_tables/blocks/bakery_door.json @@ -9,7 +9,7 @@ "conditions": [ { "condition": "minecraft:block_state_property", - "block": "minecraft:oak_door", + "block": "unicopia:bakery_door", "properties": { "half": "lower" } diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/diamond_door.json b/src/main/resources/data/unicopia/loot_tables/blocks/diamond_door.json index a0aaeeb3..14984e97 100644 --- a/src/main/resources/data/unicopia/loot_tables/blocks/diamond_door.json +++ b/src/main/resources/data/unicopia/loot_tables/blocks/diamond_door.json @@ -9,7 +9,7 @@ "conditions": [ { "condition": "minecraft:block_state_property", - "block": "minecraft:oak_door", + "block": "unicopia:diamond_door", "properties": { "half": "lower" } diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/library_door.json b/src/main/resources/data/unicopia/loot_tables/blocks/library_door.json index aff1bb82..2f06cd53 100644 --- a/src/main/resources/data/unicopia/loot_tables/blocks/library_door.json +++ b/src/main/resources/data/unicopia/loot_tables/blocks/library_door.json @@ -9,7 +9,7 @@ "conditions": [ { "condition": "minecraft:block_state_property", - "block": "minecraft:oak_door", + "block": "unicopia:library_door", "properties": { "half": "lower" } diff --git a/src/main/resources/data/unicopia/recipes/cloud_anvil.json b/src/main/resources/data/unicopia/recipes/cloud_anvil.json index 4890a090..a4bb8865 100644 --- a/src/main/resources/data/unicopia/recipes/cloud_anvil.json +++ b/src/main/resources/data/unicopia/recipes/cloud_anvil.json @@ -10,5 +10,5 @@ { "item": "unicopia:cloud_block" } ] }, - "result": { "item": "unicopia:cloud_anvil", "count": 1 } + "result": { "item": "unicopia:cloud_anvil" } } diff --git a/src/main/resources/data/unicopia/recipes/cloud_block.json b/src/main/resources/data/unicopia/recipes/cloud_block.json index e0f28c83..e2dafa8b 100644 --- a/src/main/resources/data/unicopia/recipes/cloud_block.json +++ b/src/main/resources/data/unicopia/recipes/cloud_block.json @@ -9,5 +9,5 @@ { "item": "unicopia:cloud_matter" } ] }, - "result": { "item": "unicopia:cloud_block", "count": 1 } + "result": { "item": "unicopia:cloud_block" } } diff --git a/src/main/resources/data/unicopia/recipes/dense_cloud_block.json b/src/main/resources/data/unicopia/recipes/dense_cloud_block.json index e7e9a4f4..090b9875 100644 --- a/src/main/resources/data/unicopia/recipes/dense_cloud_block.json +++ b/src/main/resources/data/unicopia/recipes/dense_cloud_block.json @@ -9,5 +9,5 @@ { "item": "unicopia:cloud_block" } ] }, - "result": { "item": "unicopia:dense_cloud_block", "count": 1 } + "result": { "item": "unicopia:dense_cloud_block" } } diff --git a/src/main/resources/data/unicopia/recipes/enchanted_cloud_block.json b/src/main/resources/data/unicopia/recipes/enchanted_cloud_block.json index 58af19b3..2c65761f 100644 --- a/src/main/resources/data/unicopia/recipes/enchanted_cloud_block.json +++ b/src/main/resources/data/unicopia/recipes/enchanted_cloud_block.json @@ -1,5 +1,5 @@ { - "type": "minecraft:crafting_shaped", + "type": "unicopia:crafting_shaped", "pattern": [ "$$$", "#*#", @@ -15,7 +15,7 @@ "*": [ { "item": "minecraft:enchanted_book", - "ench": "minecraft:feather_falling" + "enchantment": "minecraft:feather_falling" } ] },