diff --git a/src/main/java/com/starfish_studios/foundation/FoundationVanillaIntegration.java b/src/main/java/com/starfish_studios/foundation/FoundationVanillaIntegration.java index d48cbe56..6310e650 100644 --- a/src/main/java/com/starfish_studios/foundation/FoundationVanillaIntegration.java +++ b/src/main/java/com/starfish_studios/foundation/FoundationVanillaIntegration.java @@ -27,7 +27,7 @@ private static void registerScreens() { private static void registerBlockRenderLayers() { BlockRenderLayerMap.INSTANCE.putBlocks(RenderType.cutout(), FoundationBlocks.IRON_FENCE, - FoundationBlocks.BIG_OAK_DOOR, + FoundationBlocks.TALL_OAK_DOOR, FoundationBlocks.ROPE, FoundationBlocks.BRAZIER, FoundationBlocks.URN diff --git a/src/main/java/com/starfish_studios/foundation/block/BrazierBlock.java b/src/main/java/com/starfish_studios/foundation/block/BrazierBlock.java index b0ed37b0..5b270a7a 100644 --- a/src/main/java/com/starfish_studios/foundation/block/BrazierBlock.java +++ b/src/main/java/com/starfish_studios/foundation/block/BrazierBlock.java @@ -1,13 +1,11 @@ package com.starfish_studios.foundation.block; -import com.starfish_studios.foundation.block.entity.BrazierBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.core.particles.SimpleParticleType; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; -import net.minecraft.stats.Stats; import net.minecraft.tags.ItemTags; import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; @@ -19,7 +17,6 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.item.crafting.CampfireCookingRecipe; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; @@ -40,8 +37,6 @@ import net.minecraft.world.phys.shapes.VoxelShape; import org.jetbrains.annotations.Nullable; -import java.util.Optional; - public class BrazierBlock extends Block implements SimpleWaterloggedBlock { public static final BooleanProperty LIT = BlockStateProperties.LIT; public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; @@ -141,12 +136,6 @@ public static void dowse(@Nullable Entity entity, LevelAccessor levelAccessor, B } } - - BlockEntity blockEntity = levelAccessor.getBlockEntity(blockPos); - if (blockEntity instanceof BrazierBlockEntity) { - ((BrazierBlockEntity)blockEntity).dowse(); - } - levelAccessor.gameEvent(entity, GameEvent.BLOCK_CHANGE, blockPos); } diff --git a/src/main/java/com/starfish_studios/foundation/block/ColumnBlock.java b/src/main/java/com/starfish_studios/foundation/block/ColumnBlock.java index 8b043a5c..fcd0089e 100644 --- a/src/main/java/com/starfish_studios/foundation/block/ColumnBlock.java +++ b/src/main/java/com/starfish_studios/foundation/block/ColumnBlock.java @@ -1,72 +1,135 @@ package com.starfish_studios.foundation.block; -import com.starfish_studios.foundation.block.properties.ColumnType; +import com.starfish_studios.foundation.Foundation; import com.starfish_studios.foundation.block.properties.FoundationBlockStateProperties; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.tags.ItemTags; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.DirectionalBlock; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.level.block.state.properties.EnumProperty; -import org.jetbrains.annotations.Nullable; +import net.minecraft.world.level.block.state.properties.*; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; -public class ColumnBlock extends Block { - public static final EnumProperty AXIS = BlockStateProperties.AXIS; - public static final EnumProperty TYPE = FoundationBlockStateProperties.COLUMN_TYPE; +public class ColumnBlock extends Block implements SimpleWaterloggedBlock { + public static final BooleanProperty LAYER_ONE = FoundationBlockStateProperties.LAYER_ONE; + public static final BooleanProperty LAYER_TWO = FoundationBlockStateProperties.LAYER_TWO; + public static final BooleanProperty LAYER_THREE = FoundationBlockStateProperties.LAYER_THREE; + public static final BooleanProperty LAYER_FOUR = FoundationBlockStateProperties.LAYER_FOUR; + public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + public static final DirectionProperty FACING = DirectionalBlock.FACING; public ColumnBlock(Properties properties) { super(properties); this.registerDefaultState(this.stateDefinition.any() - .setValue(TYPE, ColumnType.NONE)); + .setValue(WATERLOGGED, false) + .setValue(FACING, Direction.UP) + .setValue(LAYER_ONE, true) + .setValue(LAYER_TWO, false) + .setValue(LAYER_THREE, false) + .setValue(LAYER_FOUR, true)); } - @Nullable @Override public BlockState getStateForPlacement(BlockPlaceContext context) { - Level level = context.getLevel(); - BlockPos pos = context.getClickedPos(); - Direction.Axis axis = context.getClickedFace().getAxis(); + Direction[] var2 = context.getNearestLookingDirections(); - BlockState state = this.defaultBlockState().setValue(AXIS, axis); - state = state.setValue(TYPE, getType(state, getRelativeTop(level, pos, axis), getRelativeBottom(level, pos, axis))); - return state; + for (Direction direction : var2) { + BlockState blockState; + if (direction.getAxis() == Direction.Axis.Y) { + blockState = this.defaultBlockState().setValue(FACING, context.getNearestLookingVerticalDirection().getOpposite()); + } else { + blockState = this.defaultBlockState().setValue(FACING, direction.getOpposite()); + } + return blockState; + } + return null; } - @Override - public void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { - if (level.isClientSide) return; - - Direction.Axis axis = state.getValue(AXIS); - ColumnType type = getType(state, getRelativeTop(level, pos, axis), getRelativeBottom(level, pos, axis)); - if (state.getValue(TYPE) == type) return; - - state = state.setValue(TYPE, type); - level.setBlock(pos, state, 3); - } - - public BlockState getRelativeTop(Level level, BlockPos pos, Direction.Axis axis) { - return level.getBlockState(pos.relative(Direction.fromAxisAndDirection(axis, Direction.AxisDirection.POSITIVE))); - } + public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { + if (player.getItemInHand(interactionHand).is(ItemTags.PICKAXES)) { + if (blockState.getValue(FACING) == Direction.UP) { + if (blockHitResult.getLocation().y - blockPos.getY() < 0.25) { + blockState = blockState.cycle(LAYER_ONE); + } else if (blockHitResult.getLocation().y - blockPos.getY() < 0.5) { + blockState = blockState.cycle(LAYER_TWO); + } else if (blockHitResult.getLocation().y - blockPos.getY() < 0.75) { + blockState = blockState.cycle(LAYER_THREE); + } else { + blockState = blockState.cycle(LAYER_FOUR); + } + } else if (blockState.getValue(FACING) == Direction.DOWN) { + if (blockHitResult.getLocation().y - blockPos.getY() < 0.25) { + blockState = blockState.cycle(LAYER_ONE); + } else if (blockHitResult.getLocation().y - blockPos.getY() < 0.5) { + blockState = blockState.cycle(LAYER_TWO); + } else if (blockHitResult.getLocation().y - blockPos.getY() < 0.75) { + blockState = blockState.cycle(LAYER_THREE); + } else { + blockState = blockState.cycle(LAYER_FOUR); + } + } else if (blockState.getValue(FACING) == Direction.NORTH) { + if (blockHitResult.getLocation().z - blockPos.getZ() < 0.25) { + blockState = blockState.cycle(LAYER_FOUR); + } else if (blockHitResult.getLocation().z - blockPos.getZ() < 0.5) { + blockState = blockState.cycle(LAYER_THREE); + } else if (blockHitResult.getLocation().z - blockPos.getZ() < 0.75) { + blockState = blockState.cycle(LAYER_TWO); + } else { + blockState = blockState.cycle(LAYER_ONE); + } + } else if (blockState.getValue(FACING) == Direction.EAST) { + if (blockHitResult.getLocation().x - blockPos.getX() < 0.25) { + blockState = blockState.cycle(LAYER_ONE); + } else if (blockHitResult.getLocation().x - blockPos.getX() < 0.5) { + blockState = blockState.cycle(LAYER_TWO); + } else if (blockHitResult.getLocation().x - blockPos.getX() < 0.75) { + blockState = blockState.cycle(LAYER_THREE); + } else { + blockState = blockState.cycle(LAYER_FOUR); + } + } else if (blockState.getValue(FACING) == Direction.SOUTH) { + if (blockHitResult.getLocation().z - blockPos.getZ() < 0.25) { + blockState = blockState.cycle(LAYER_FOUR); + } else if (blockHitResult.getLocation().z - blockPos.getZ() < 0.5) { + blockState = blockState.cycle(LAYER_THREE); + } else if (blockHitResult.getLocation().z - blockPos.getZ() < 0.75) { + blockState = blockState.cycle(LAYER_TWO); + } else { + blockState = blockState.cycle(LAYER_ONE); + } + } else if (blockState.getValue(FACING) == Direction.WEST) { + if (blockHitResult.getLocation().x - blockPos.getX() < 0.25) { + blockState = blockState.cycle(LAYER_ONE); + } else if (blockHitResult.getLocation().x - blockPos.getX() < 0.5) { + blockState = blockState.cycle(LAYER_TWO); + } else if (blockHitResult.getLocation().x - blockPos.getX() < 0.75) { + blockState = blockState.cycle(LAYER_THREE); + } else { + blockState = blockState.cycle(LAYER_FOUR); + } + } + } else return InteractionResult.PASS; - public BlockState getRelativeBottom(Level level, BlockPos pos, Direction.Axis axis) { - return level.getBlockState(pos.relative(Direction.fromAxisAndDirection(axis, Direction.AxisDirection.NEGATIVE))); - } - - public ColumnType getType(BlockState state, BlockState above, BlockState below) { - boolean shape_above_same = above.is(state.getBlock()) && state.getValue(AXIS) == above.getValue(AXIS); - boolean shape_below_same = below.is(state.getBlock()) && state.getValue(AXIS) == below.getValue(AXIS); - - if (shape_above_same && !shape_below_same) return ColumnType.BOTTOM; - else if (!shape_above_same && shape_below_same) return ColumnType.TOP; - else if (shape_above_same) return ColumnType.MIDDLE; - return ColumnType.NONE; + level.setBlock(blockPos, blockState, 3); + level.playSound(player, blockPos, blockState.getSoundType().getPlaceSound(), player.getSoundSource(), 1.0F, 1.0F); + return InteractionResult.SUCCESS; } @Override protected void createBlockStateDefinition(StateDefinition.Builder builder) { - builder.add(TYPE, AXIS); + builder.add(LAYER_ONE, LAYER_TWO, LAYER_THREE, LAYER_FOUR, WATERLOGGED, FACING); } + + } diff --git a/src/main/java/com/starfish_studios/foundation/block/FacingConnectingBlock.java b/src/main/java/com/starfish_studios/foundation/block/FacingConnectingBlock.java new file mode 100644 index 00000000..c2c85d74 --- /dev/null +++ b/src/main/java/com/starfish_studios/foundation/block/FacingConnectingBlock.java @@ -0,0 +1,72 @@ +package com.starfish_studios.foundation.block; + +import com.starfish_studios.foundation.block.properties.ColumnType; +import com.starfish_studios.foundation.block.properties.FoundationBlockStateProperties; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import org.jetbrains.annotations.Nullable; + +public class FacingConnectingBlock extends Block { + public static final EnumProperty AXIS = BlockStateProperties.AXIS; + public static final EnumProperty TYPE = FoundationBlockStateProperties.COLUMN_TYPE; + + public FacingConnectingBlock(Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any() + .setValue(TYPE, ColumnType.NONE)); + } + + @Nullable + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Level level = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction.Axis axis = context.getClickedFace().getAxis(); + + BlockState state = this.defaultBlockState().setValue(AXIS, axis); + state = state.setValue(TYPE, getType(state, getRelativeTop(level, pos, axis), getRelativeBottom(level, pos, axis))); + return state; + } + + @Override + public void neighborChanged(BlockState state, Level level, BlockPos pos, Block block, BlockPos fromPos, boolean isMoving) { + if (level.isClientSide) return; + + Direction.Axis axis = state.getValue(AXIS); + ColumnType type = getType(state, getRelativeTop(level, pos, axis), getRelativeBottom(level, pos, axis)); + if (state.getValue(TYPE) == type) return; + + state = state.setValue(TYPE, type); + level.setBlock(pos, state, 3); + } + + public BlockState getRelativeTop(Level level, BlockPos pos, Direction.Axis axis) { + return level.getBlockState(pos.relative(Direction.fromAxisAndDirection(axis, Direction.AxisDirection.POSITIVE))); + } + + public BlockState getRelativeBottom(Level level, BlockPos pos, Direction.Axis axis) { + return level.getBlockState(pos.relative(Direction.fromAxisAndDirection(axis, Direction.AxisDirection.NEGATIVE))); + } + + public ColumnType getType(BlockState state, BlockState above, BlockState below) { + boolean shape_above_same = above.is(state.getBlock()) && state.getValue(AXIS) == above.getValue(AXIS); + boolean shape_below_same = below.is(state.getBlock()) && state.getValue(AXIS) == below.getValue(AXIS); + + if (shape_above_same && !shape_below_same) return ColumnType.BOTTOM; + else if (!shape_above_same && shape_below_same) return ColumnType.TOP; + else if (shape_above_same) return ColumnType.MIDDLE; + return ColumnType.NONE; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(TYPE, AXIS); + } +} diff --git a/src/main/java/com/starfish_studios/foundation/block/FrameBlock.java b/src/main/java/com/starfish_studios/foundation/block/FrameBlock.java index 106a08b9..5b04b36c 100644 --- a/src/main/java/com/starfish_studios/foundation/block/FrameBlock.java +++ b/src/main/java/com/starfish_studios/foundation/block/FrameBlock.java @@ -2,8 +2,10 @@ import com.starfish_studios.foundation.block.properties.FoundationBlockStateProperties; import com.starfish_studios.foundation.registry.FoundationItems; +import com.starfish_studios.foundation.registry.FoundationTags; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.LevelAccessor; @@ -187,6 +189,6 @@ public boolean validConnection(BlockState state) { || state.isFaceSturdy(null, null, Direction.DOWN)) { return true; } - return state.is(this); + return state.is(FoundationTags.FoundationBlockTags.FRAMES); } } diff --git a/src/main/java/com/starfish_studios/foundation/block/LayerBlock.java b/src/main/java/com/starfish_studios/foundation/block/LayerBlock.java new file mode 100644 index 00000000..a33ce5d9 --- /dev/null +++ b/src/main/java/com/starfish_studios/foundation/block/LayerBlock.java @@ -0,0 +1,134 @@ +package com.starfish_studios.foundation.block; + +import com.starfish_studios.foundation.block.properties.FoundationBlockStateProperties; +import com.starfish_studios.foundation.block.properties.LayerNumber; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.DirectionalBlock; +import net.minecraft.world.level.block.SimpleWaterloggedBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.*; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; + +public class LayerBlock extends Block implements SimpleWaterloggedBlock { + // region PROPERTIES + public static final IntegerProperty LAYERS = IntegerProperty.create("layers", 1, 4); + public static final DirectionProperty FACING = DirectionalBlock.FACING; + public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; + public static final VoxelShape LAYER_1_UP = Block.box(0, 0, 0, 16, 4, 16); + public static final VoxelShape LAYER_2_UP = Block.box(0, 0, 0, 16, 8, 16); + public static final VoxelShape LAYER_3_UP = Block.box(0, 0, 0, 16, 12, 16); + public static final VoxelShape LAYER_4_UP = Block.box(0, 0, 0, 16, 16, 16); + public static final VoxelShape LAYER_1_DOWN = Block.box(0, 12, 0, 16, 16, 16); + public static final VoxelShape LAYER_2_DOWN = Block.box(0, 8, 0, 16, 16, 16); + public static final VoxelShape LAYER_3_DOWN = Block.box(0, 4, 0, 16, 16, 16); + public static final VoxelShape LAYER_4_DOWN = Block.box(0, 0, 0, 16, 16, 16); + public static final VoxelShape LAYER_1_NORTH = Block.box(0, 0, 12, 16, 16, 16); + public static final VoxelShape LAYER_2_NORTH = Block.box(0, 0, 8, 16, 16, 16); + public static final VoxelShape LAYER_3_NORTH = Block.box(0, 0, 4, 16, 16, 16); + public static final VoxelShape LAYER_4_NORTH = Block.box(0, 0, 0, 16, 16, 16); + public static final VoxelShape LAYER_1_SOUTH = Block.box(0, 0, 0, 16, 16, 4); + public static final VoxelShape LAYER_2_SOUTH = Block.box(0, 0, 0, 16, 16, 8); + public static final VoxelShape LAYER_3_SOUTH = Block.box(0, 0, 0, 16, 16, 12); + public static final VoxelShape LAYER_4_SOUTH = Block.box(0, 0, 0, 16, 16, 16); + public static final VoxelShape LAYER_1_EAST = Block.box(0, 0, 0, 4, 16, 16); + public static final VoxelShape LAYER_2_EAST = Block.box(0, 0, 0, 8, 16, 16); + public static final VoxelShape LAYER_3_EAST = Block.box(0, 0, 0, 12, 16, 16); + public static final VoxelShape LAYER_4_EAST = Block.box(0, 0, 0, 16, 16, 16); + public static final VoxelShape LAYER_1_WEST = Block.box(12, 0, 0, 16, 16, 16); + public static final VoxelShape LAYER_2_WEST = Block.box(8, 0, 0, 16, 16, 16); + public static final VoxelShape LAYER_3_WEST = Block.box(4, 0, 0, 16, 16, 16); + public static final VoxelShape LAYER_4_WEST = Block.box(0, 0, 0, 16, 16, 16); + // endregion + + + public LayerBlock(Properties properties) { + super(properties); + this.registerDefaultState( + this.stateDefinition.any() + .setValue(WATERLOGGED, false) + .setValue(FACING, Direction.UP) + .setValue(LAYERS, 1) + ); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + return switch (state.getValue(LAYERS)) { + case 1 -> switch (state.getValue(FACING)) { + case NORTH -> LAYER_1_NORTH; + case SOUTH -> LAYER_1_SOUTH; + case EAST -> LAYER_1_EAST; + case WEST -> LAYER_1_WEST; + case UP -> LAYER_1_UP; + case DOWN -> LAYER_1_DOWN; + }; + case 2 -> switch (state.getValue(FACING)) { + case NORTH -> LAYER_2_NORTH; + case SOUTH -> LAYER_2_SOUTH; + case EAST -> LAYER_2_EAST; + case WEST -> LAYER_2_WEST; + case UP -> LAYER_2_UP; + case DOWN -> LAYER_2_DOWN; + }; + case 3 -> switch (state.getValue(FACING)) { + case NORTH -> LAYER_3_NORTH; + case SOUTH -> LAYER_3_SOUTH; + case EAST -> LAYER_3_EAST; + case WEST -> LAYER_3_WEST; + case UP -> LAYER_3_UP; + case DOWN -> LAYER_3_DOWN; + }; + case 4 -> switch (state.getValue(FACING)) { + case NORTH -> LAYER_4_NORTH; + case SOUTH -> LAYER_4_SOUTH; + case EAST -> LAYER_4_EAST; + case WEST -> LAYER_4_WEST; + case UP -> LAYER_4_UP; + case DOWN -> LAYER_4_DOWN; + }; + default -> throw new IllegalStateException("Unexpected value: " + state.getValue(LAYERS)); + }; + } + + @Override + public boolean canBeReplaced(BlockState blockState, BlockPlaceContext blockPlaceContext) { + return !blockPlaceContext.isSecondaryUseActive() && blockPlaceContext.getItemInHand().is(this.asItem()) && blockState.getValue(LAYERS) < 4 || + super.canBeReplaced(blockState, blockPlaceContext); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + BlockState blockState = context.getLevel().getBlockState(context.getClickedPos()); + Direction[] var2 = context.getNearestLookingDirections(); + + if (blockState.getBlock() == this) { + return blockState.setValue(LAYERS, Math.min(4, blockState.getValue(LAYERS) + 1)); + } + + for (Direction direction : var2) { + if (direction.getAxis() == Direction.Axis.Y) { + blockState = this.defaultBlockState().setValue(FACING, context.getNearestLookingVerticalDirection().getOpposite()); + } else { + blockState = this.defaultBlockState().setValue(FACING, direction.getOpposite()); + } + return blockState; + } + return null; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(WATERLOGGED, FACING, LAYERS); + } + + + +} diff --git a/src/main/java/com/starfish_studios/foundation/block/PalletBlock.java b/src/main/java/com/starfish_studios/foundation/block/PalletBlock.java index 06918954..15284fdd 100644 --- a/src/main/java/com/starfish_studios/foundation/block/PalletBlock.java +++ b/src/main/java/com/starfish_studios/foundation/block/PalletBlock.java @@ -27,6 +27,7 @@ import net.minecraft.world.level.gameevent.GameEvent; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; @@ -68,20 +69,7 @@ public PalletBlock(Properties properties) { .setValue(LAYER_TWO, true)); } - public VoxelShape getInteractionShape(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, CollisionContext collisionContext) { - if (blockState.getValue(HALF) == Half.BOTTOM) { - assert Minecraft.getInstance().hitResult != null; - if (Minecraft.getInstance().hitResult.getLocation().y - (double)blockPos.getY() < 0.25) { - return BOTTOM_AABB_LAYER_ONE; - } else { - return BOTTOM_AABB_LAYER_TWO; - } - } - - return super.getShape(blockState, blockGetter, blockPos, collisionContext); - } - - + @Override public VoxelShape getShape(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, CollisionContext collisionContext) { if (blockState.getValue(OPEN)) { return switch (blockState.getValue(FACING)) { @@ -96,15 +84,26 @@ public VoxelShape getShape(BlockState blockState, BlockGetter blockGetter, Block } else return BOTTOM_AABB; } + @Override public boolean propagatesSkylightDown(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos) { return true; } + @Override + public boolean isPathfindable(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, PathComputationType pathComputationType) { + if (blockState.getValue(OPEN)) { + return false; + } else { + return super.isPathfindable(blockState, blockGetter, blockPos, pathComputationType); + } + } + protected void playSound(@Nullable Player player, Level level, BlockPos blockPos, boolean bl) { level.playSound(player, blockPos, bl ? SoundEvents.WOODEN_TRAPDOOR_OPEN : SoundEvents.WOODEN_TRAPDOOR_CLOSE, SoundSource.BLOCKS, 1.0F, 1.0F); level.gameEvent(player, bl ? GameEvent.BLOCK_OPEN : GameEvent.BLOCK_CLOSE, blockPos); } + @Override public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { if (player.getItemInHand(interactionHand).is(ItemTags.AXES)) { if (blockHitResult.getLocation().z - (double)blockPos.getZ() > 0.5 && blockState.getValue(FACING) == Direction.NORTH) { @@ -113,73 +112,44 @@ public InteractionResult use(BlockState blockState, Level level, BlockPos blockP } else { blockState = blockState.cycle(LAYER_TWO); } - if (!blockState.getValue(LAYER_ONE) && !blockState.getValue(LAYER_TWO)) { - blockState = blockState.setValue(LAYER_ONE, true).setValue(LAYER_TWO, true); - } - level.setBlock(blockPos, blockState, 2); - level.playSound(player, blockPos, Blocks.SCAFFOLDING.getSoundType(level.getBlockState(blockPos)).getPlaceSound(), player.getSoundSource(), 1.0F, 1.0F); - return InteractionResult.SUCCESS; } else if (blockHitResult.getLocation().z - (double)blockPos.getZ() < 0.5 && blockState.getValue(FACING) == Direction.SOUTH) { if (blockHitResult.getLocation().z - (double)blockPos.getZ() > 0.25) { blockState = blockState.cycle(LAYER_ONE); } else { blockState = blockState.cycle(LAYER_TWO); } - if (!blockState.getValue(LAYER_ONE) && !blockState.getValue(LAYER_TWO)) { - blockState = blockState.setValue(LAYER_ONE, true).setValue(LAYER_TWO, true); - } - level.setBlock(blockPos, blockState, 2); - level.playSound(player, blockPos, Blocks.SCAFFOLDING.getSoundType(level.getBlockState(blockPos)).getPlaceSound(), player.getSoundSource(), 1.0F, 1.0F); - return InteractionResult.SUCCESS; } else if (blockHitResult.getLocation().x - (double)blockPos.getX() > 0.5 && blockState.getValue(FACING) == Direction.WEST) { if (blockHitResult.getLocation().x - (double) blockPos.getX() < 0.75) { blockState = blockState.cycle(LAYER_ONE); } else { blockState = blockState.cycle(LAYER_TWO); } - if (!blockState.getValue(LAYER_ONE) && !blockState.getValue(LAYER_TWO)) { - blockState = blockState.setValue(LAYER_ONE, true).setValue(LAYER_TWO, true); - } - level.setBlock(blockPos, blockState, 2); - level.playSound(player, blockPos, Blocks.SCAFFOLDING.getSoundType(level.getBlockState(blockPos)).getPlaceSound(), player.getSoundSource(), 1.0F, 1.0F); - return InteractionResult.SUCCESS; } else if (blockHitResult.getLocation().x - (double)blockPos.getX() < 0.5 && blockState.getValue(FACING) == Direction.EAST) { if (blockHitResult.getLocation().x - (double)blockPos.getX() > 0.25) { blockState = blockState.cycle(LAYER_ONE); } else { blockState = blockState.cycle(LAYER_TWO); } - if (!blockState.getValue(LAYER_ONE) && !blockState.getValue(LAYER_TWO)) { - blockState = blockState.setValue(LAYER_ONE, true).setValue(LAYER_TWO, true); - } - level.setBlock(blockPos, blockState, 2); - level.playSound(player, blockPos, Blocks.SCAFFOLDING.getSoundType(level.getBlockState(blockPos)).getPlaceSound(), player.getSoundSource(), 1.0F, 1.0F); - return InteractionResult.SUCCESS; } else if (blockHitResult.getLocation().y - (double)blockPos.getY() < 0.5 && blockState.getValue(HALF) == Half.BOTTOM) { if (blockHitResult.getLocation().y - (double)blockPos.getY() < 0.25) { blockState = blockState.cycle(LAYER_ONE); } else { blockState = blockState.cycle(LAYER_TWO); } - if (!blockState.getValue(LAYER_ONE) && !blockState.getValue(LAYER_TWO)) { - blockState = blockState.setValue(LAYER_ONE, true).setValue(LAYER_TWO, true); - } - level.setBlock(blockPos, blockState, 2); - level.playSound(player, blockPos, Blocks.SCAFFOLDING.getSoundType(level.getBlockState(blockPos)).getPlaceSound(), player.getSoundSource(), 1.0F, 1.0F); - return InteractionResult.SUCCESS; } if (blockHitResult.getLocation().y - (double)blockPos.getY() > 0.5 && blockState.getValue(HALF) == Half.TOP) { if (blockHitResult.getLocation().y - (double)blockPos.getY() < 0.75) { blockState = blockState.cycle(LAYER_ONE); } else { blockState = blockState.cycle(LAYER_TWO); } - if (!blockState.getValue(LAYER_ONE) && !blockState.getValue(LAYER_TWO)) { - blockState = blockState.setValue(LAYER_ONE, true).setValue(LAYER_TWO, true); - } - level.setBlock(blockPos, blockState, 2); - level.playSound(player, blockPos, Blocks.SCAFFOLDING.getSoundType(level.getBlockState(blockPos)).getPlaceSound(), player.getSoundSource(), 1.0F, 1.0F); - return InteractionResult.SUCCESS; } + if (!blockState.getValue(LAYER_ONE) && !blockState.getValue(LAYER_TWO)) { + blockState = blockState.setValue(LAYER_ONE, true).setValue(LAYER_TWO, true); + } + + level.setBlock(blockPos, blockState, 2); + level.playSound(player, blockPos, Blocks.SCAFFOLDING.getSoundType(level.getBlockState(blockPos)).getPlaceSound(), player.getSoundSource(), 1.0F, 1.0F); + return InteractionResult.SUCCESS; } else if (player.isCrouching()) { blockState = blockState.cycle(OPEN); @@ -221,10 +191,12 @@ public BlockState mirror(BlockState state, Mirror mirror) { return state.rotate(mirror.getRotation(state.getValue(FACING))); } + @Override public FluidState getFluidState(BlockState blockState) { return blockState.getValue(WATERLOGGED) ? Fluids.WATER.getSource(false) : super.getFluidState(blockState); } + @Override public BlockState updateShape(BlockState blockState, Direction direction, BlockState blockState2, LevelAccessor levelAccessor, BlockPos blockPos, BlockPos blockPos2) { if (blockState.getValue(WATERLOGGED)) { levelAccessor.scheduleTick(blockPos, Fluids.WATER, Fluids.WATER.getTickDelay(levelAccessor)); diff --git a/src/main/java/com/starfish_studios/foundation/block/BigDoorBlock.java b/src/main/java/com/starfish_studios/foundation/block/TallDoorBlock.java similarity index 88% rename from src/main/java/com/starfish_studios/foundation/block/BigDoorBlock.java rename to src/main/java/com/starfish_studios/foundation/block/TallDoorBlock.java index 774dba6a..9fbd15d8 100644 --- a/src/main/java/com/starfish_studios/foundation/block/BigDoorBlock.java +++ b/src/main/java/com/starfish_studios/foundation/block/TallDoorBlock.java @@ -1,6 +1,6 @@ package com.starfish_studios.foundation.block; -import com.starfish_studios.foundation.block.properties.BigDoorHalf; +import com.starfish_studios.foundation.block.properties.TallDoorHalf; import com.starfish_studios.foundation.block.properties.FoundationBlockStateProperties; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -31,22 +31,22 @@ import net.minecraft.world.phys.shapes.VoxelShape; import org.jetbrains.annotations.Nullable; -public class BigDoorBlock extends Block { +public class TallDoorBlock extends Block { public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING; public static final BooleanProperty OPEN = BlockStateProperties.OPEN; public static final EnumProperty HINGE = BlockStateProperties.DOOR_HINGE; public static final BooleanProperty POWERED = BlockStateProperties.POWERED; - public static final EnumProperty HALVES = FoundationBlockStateProperties.HALVES; + public static final EnumProperty HALVES = FoundationBlockStateProperties.HALVES; protected static final VoxelShape SOUTH_AABB = Block.box(0.0, 0.0, 0.0, 16.0, 16.0, 3.0); protected static final VoxelShape NORTH_AABB = Block.box(0.0, 0.0, 13.0, 16.0, 16.0, 16.0); protected static final VoxelShape WEST_AABB = Block.box(13.0, 0.0, 0.0, 16.0, 16.0, 16.0); protected static final VoxelShape EAST_AABB = Block.box(0.0, 0.0, 0.0, 3.0, 16.0, 16.0); private final BlockSetType type; - public BigDoorBlock(Properties properties, BlockSetType blockSetType) { + public TallDoorBlock(Properties properties, BlockSetType blockSetType) { super(properties); this.type = blockSetType; - this.registerDefaultState((this.stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(OPEN, false).setValue(HINGE, DoorHingeSide.LEFT)).setValue(POWERED, false).setValue(HALVES, BigDoorHalf.LOWER)); + this.registerDefaultState((this.stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(OPEN, false).setValue(HINGE, DoorHingeSide.LEFT)).setValue(POWERED, false).setValue(HALVES, TallDoorHalf.LOWER)); } public BlockSetType type() { @@ -72,14 +72,14 @@ public VoxelShape getShape(BlockState blockState, BlockGetter blockGetter, Block public BlockState updateShape(BlockState blockState, Direction direction, BlockState blockState2, LevelAccessor levelAccessor, BlockPos blockPos, BlockPos blockPos2) { - BigDoorHalf half = blockState.getValue(HALVES); - if (direction.getAxis() == Direction.Axis.Y && (half == BigDoorHalf.LOWER == (direction == Direction.UP) || half == BigDoorHalf.MIDDLE == (direction == Direction.UP))) { + TallDoorHalf half = blockState.getValue(HALVES); + if (direction.getAxis() == Direction.Axis.Y && (half == TallDoorHalf.LOWER == (direction == Direction.UP) || half == TallDoorHalf.MIDDLE == (direction == Direction.UP))) { if (blockState2.is(this) && blockState2.getValue(HALVES) != half) { return (((blockState.setValue(FACING, blockState2.getValue(FACING))).setValue(OPEN, blockState2.getValue(OPEN))).setValue(HINGE, blockState2.getValue(HINGE))).setValue(POWERED, blockState2.getValue(POWERED)); } return Blocks.AIR.defaultBlockState(); } - if (half == BigDoorHalf.LOWER && direction == Direction.DOWN && !blockState.canSurvive(levelAccessor, blockPos)) { + if (half == TallDoorHalf.LOWER && direction == Direction.DOWN && !blockState.canSurvive(levelAccessor, blockPos)) { return Blocks.AIR.defaultBlockState(); } return super.updateShape(blockState, direction, blockState2, levelAccessor, blockPos, blockPos2); @@ -109,7 +109,7 @@ public BlockState getStateForPlacement(BlockPlaceContext blockPlaceContext) { .setValue(HINGE, this.getHinge(blockPlaceContext)) .setValue(POWERED, bl) .setValue(OPEN, bl) - .setValue(HALVES, BigDoorHalf.LOWER); + .setValue(HALVES, TallDoorHalf.LOWER); } else { return null; @@ -132,8 +132,8 @@ private DoorHingeSide getHinge(BlockPlaceContext blockPlaceContext) { BlockPos blockPos6 = blockPos2.relative(direction3); BlockState blockState4 = blockGetter.getBlockState(blockPos6); int i = (blockState.isCollisionShapeFullBlock(blockGetter, blockPos3) ? -1 : 0) + (blockState2.isCollisionShapeFullBlock(blockGetter, blockPos4) ? -1 : 0) + (blockState3.isCollisionShapeFullBlock(blockGetter, blockPos5) ? 1 : 0) + (blockState4.isCollisionShapeFullBlock(blockGetter, blockPos6) ? 1 : 0); - boolean bl = blockState.is(this) && blockState.getValue(HALVES) == BigDoorHalf.LOWER; - boolean bl2 = blockState3.is(this) && blockState3.getValue(HALVES) == BigDoorHalf.LOWER; + boolean bl = blockState.is(this) && blockState.getValue(HALVES) == TallDoorHalf.LOWER; + boolean bl2 = blockState3.is(this) && blockState3.getValue(HALVES) == TallDoorHalf.LOWER; if ((!bl || bl2) && i <= 0) { if ((!bl2 || bl) && i >= 0) { int j = direction.getStepX(); @@ -171,7 +171,7 @@ public boolean isOpen(BlockState blockState) { } public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos blockPos2, boolean bl) { - boolean bl2 = level.hasNeighborSignal(blockPos) || level.hasNeighborSignal(blockPos.relative(blockState.getValue(HALVES) == BigDoorHalf.LOWER && blockState.getValue(HALVES) != BigDoorHalf.UPPER ? Direction.UP : Direction.DOWN)); + boolean bl2 = level.hasNeighborSignal(blockPos) || level.hasNeighborSignal(blockPos.relative(blockState.getValue(HALVES) == TallDoorHalf.LOWER && blockState.getValue(HALVES) != TallDoorHalf.UPPER ? Direction.UP : Direction.DOWN)); if (!this.defaultBlockState().is(block) && bl2 != blockState.getValue(POWERED)) { if (bl2 != blockState.getValue(OPEN)) { this.playSound(null, level, blockPos, bl2); @@ -213,19 +213,19 @@ public static boolean isWoodenDoor(BlockState blockState) { public void setPlacedBy(Level level, BlockPos blockPos, BlockState blockState, LivingEntity livingEntity, ItemStack itemStack) { BlockPos blockPos2 = blockPos.above(); BlockPos blockPos3 = blockPos2.above(); - level.setBlock(blockPos2, copyWaterloggedFrom(level, blockPos2, this.defaultBlockState().setValue(HALVES, BigDoorHalf.MIDDLE).setValue(FACING, blockState.getValue(FACING)).setValue(HINGE, blockState.getValue(HINGE))), 3); - level.setBlock(blockPos3, copyWaterloggedFrom(level, blockPos3, this.defaultBlockState().setValue(HALVES, BigDoorHalf.UPPER).setValue(FACING, blockState.getValue(FACING)).setValue(HINGE, blockState.getValue(HINGE))), 3); + level.setBlock(blockPos2, copyWaterloggedFrom(level, blockPos2, this.defaultBlockState().setValue(HALVES, TallDoorHalf.MIDDLE).setValue(FACING, blockState.getValue(FACING)).setValue(HINGE, blockState.getValue(HINGE))), 3); + level.setBlock(blockPos3, copyWaterloggedFrom(level, blockPos3, this.defaultBlockState().setValue(HALVES, TallDoorHalf.UPPER).setValue(FACING, blockState.getValue(FACING)).setValue(HINGE, blockState.getValue(HINGE))), 3); } public boolean canSurvive(BlockState blockState, LevelReader levelReader, BlockPos blockPos) { - if (blockState.getValue(HALVES) != BigDoorHalf.UPPER && blockState.getValue(HALVES) != BigDoorHalf.MIDDLE) { + if (blockState.getValue(HALVES) != TallDoorHalf.UPPER && blockState.getValue(HALVES) != TallDoorHalf.MIDDLE) { return super.canSurvive(blockState, levelReader, blockPos); - } else if (blockState.getValue(HALVES) == BigDoorHalf.MIDDLE) { + } else if (blockState.getValue(HALVES) == TallDoorHalf.MIDDLE) { BlockState blockState2 = levelReader.getBlockState(blockPos.below()); - return blockState2.is(this) && blockState2.getValue(HALVES) == BigDoorHalf.LOWER; + return blockState2.is(this) && blockState2.getValue(HALVES) == TallDoorHalf.LOWER; } else { BlockState blockState2 = levelReader.getBlockState(blockPos.below()); - return blockState2.is(this) && blockState2.getValue(HALVES) == BigDoorHalf.MIDDLE; + return blockState2.is(this) && blockState2.getValue(HALVES) == TallDoorHalf.MIDDLE; } } @@ -250,17 +250,17 @@ public void playerDestroy(Level level, Player player, BlockPos blockPos, BlockSt } protected static void preventCreativeDropFromBottomPart(Level level, BlockPos blockPos, BlockState blockState, Player player) { - BigDoorHalf halvesState = blockState.getValue(HALVES); - if (halvesState == BigDoorHalf.UPPER) { + TallDoorHalf halvesState = blockState.getValue(HALVES); + if (halvesState == TallDoorHalf.UPPER) { BlockPos blockPosBelow = blockPos.below(); BlockState stateBelow = level.getBlockState(blockPosBelow); - if (stateBelow.is(blockState.getBlock()) && stateBelow.getValue(HALVES) == BigDoorHalf.MIDDLE) { + if (stateBelow.is(blockState.getBlock()) && stateBelow.getValue(HALVES) == TallDoorHalf.MIDDLE) { BlockState blockState3 = stateBelow.getFluidState().is(Fluids.WATER) ? Blocks.WATER.defaultBlockState() : Blocks.AIR.defaultBlockState(); level.setBlock(blockPosBelow, blockState3, 35); level.levelEvent(player, 2001, blockPosBelow, Block.getId(stateBelow)); BlockPos blockPosBelow2 = blockPosBelow.below(); BlockState stateBelow2 = level.getBlockState(blockPosBelow2); - if (stateBelow2.is(blockState.getBlock()) && stateBelow2.getValue(HALVES) == BigDoorHalf.LOWER) { + if (stateBelow2.is(blockState.getBlock()) && stateBelow2.getValue(HALVES) == TallDoorHalf.LOWER) { BlockState blockState4 = stateBelow2.getFluidState().is(Fluids.WATER) ? Blocks.WATER.defaultBlockState() : Blocks.AIR.defaultBlockState(); level.setBlock(blockPosBelow2, blockState4, 35); level.levelEvent(player, 2001, blockPosBelow2, Block.getId(stateBelow2)); @@ -275,6 +275,6 @@ protected void createBlockStateDefinition(StateDefinition.Builder COLUMN_TYPE = EnumProperty.create("type", ColumnType.class); - public static final EnumProperty HALVES = EnumProperty.create("type", BigDoorHalf.class); + public static final EnumProperty HALVES = EnumProperty.create("type", TallDoorHalf.class); + public static final EnumProperty LAYERS = EnumProperty.create("layer", LayerNumber.class); public static final BooleanProperty LEFT = BooleanProperty.create("left"); public static final BooleanProperty RIGHT = BooleanProperty.create("right"); public static final BooleanProperty TOP = BooleanProperty.create("top"); public static final BooleanProperty BOTTOM = BooleanProperty.create("bottom"); public static final BooleanProperty LAYER_ONE = BooleanProperty.create("layer_one"); public static final BooleanProperty LAYER_TWO = BooleanProperty.create("layer_two"); + public static final BooleanProperty LAYER_THREE = BooleanProperty.create("layer_three"); + public static final BooleanProperty LAYER_FOUR = BooleanProperty.create("layer_four"); + public static final BooleanProperty NORTH_TOP_LEFT = BooleanProperty.create("north_top_left"); + public static final BooleanProperty NORTH_TOP_RIGHT = BooleanProperty.create("north_top_right"); + public static final BooleanProperty NORTH_BOTTOM_LEFT = BooleanProperty.create("north_bottom_left"); + public static final BooleanProperty NORTH_BOTTOM_RIGHT = BooleanProperty.create("north_bottom_right"); + public static final BooleanProperty SOUTH_TOP_LEFT = BooleanProperty.create("south_top_left"); + public static final BooleanProperty SOUTH_TOP_RIGHT = BooleanProperty.create("south_top_right"); + public static final BooleanProperty SOUTH_BOTTOM_LEFT = BooleanProperty.create("south_bottom_left"); + public static final BooleanProperty SOUTH_BOTTOM_RIGHT = BooleanProperty.create("south_bottom_right"); } \ No newline at end of file diff --git a/src/main/java/com/starfish_studios/foundation/block/properties/LayerNumber.java b/src/main/java/com/starfish_studios/foundation/block/properties/LayerNumber.java new file mode 100644 index 00000000..ba728820 --- /dev/null +++ b/src/main/java/com/starfish_studios/foundation/block/properties/LayerNumber.java @@ -0,0 +1,28 @@ +package com.starfish_studios.foundation.block.properties; + +import net.minecraft.util.StringRepresentable; + +public enum LayerNumber implements StringRepresentable { + ONE("one"), + TWO("two"), + THREE("three"), + FOUR("four"), + FIVE("five"), + SIX("six"), + SEVEN("seven"), + EIGHT("eight"); + + private final String name; + + private LayerNumber(String type) { + this.name = type; + } + + public String toString() { + return this.name; + } + + public String getSerializedName() { + return this.name; + } +} \ No newline at end of file diff --git a/src/main/java/com/starfish_studios/foundation/block/properties/BigDoorHalf.java b/src/main/java/com/starfish_studios/foundation/block/properties/TallDoorHalf.java similarity index 79% rename from src/main/java/com/starfish_studios/foundation/block/properties/BigDoorHalf.java rename to src/main/java/com/starfish_studios/foundation/block/properties/TallDoorHalf.java index 37a26ffd..35b22ae2 100644 --- a/src/main/java/com/starfish_studios/foundation/block/properties/BigDoorHalf.java +++ b/src/main/java/com/starfish_studios/foundation/block/properties/TallDoorHalf.java @@ -2,14 +2,14 @@ import net.minecraft.util.StringRepresentable; -public enum BigDoorHalf implements StringRepresentable { +public enum TallDoorHalf implements StringRepresentable { UPPER("upper"), MIDDLE("middle"), LOWER("lower"); private final String name; - private BigDoorHalf(String type) { + private TallDoorHalf(String type) { this.name = type; } diff --git a/src/main/java/com/starfish_studios/foundation/item/DescriptionBlockItem.java b/src/main/java/com/starfish_studios/foundation/item/DescriptionBlockItem.java index bb5bb2f8..a7c586cc 100644 --- a/src/main/java/com/starfish_studios/foundation/item/DescriptionBlockItem.java +++ b/src/main/java/com/starfish_studios/foundation/item/DescriptionBlockItem.java @@ -23,14 +23,9 @@ public DescriptionBlockItem(Block block, Properties properties) { @Override public void appendHoverText(ItemStack stack, Level level, List tooltip, TooltipFlag flagIn) { - /*if (stack.is(FoundationTags.FoundationItemTags.FRAMES)) { - if (Screen.hasShiftDown()) { - tooltip.add(Component.translatable("description.foundation.frame1").withStyle(ChatFormatting.GRAY)); - tooltip.add(Component.translatable("description.foundation.frame2").withStyle(ChatFormatting.GRAY)); - } else - tooltip.add(Component.literal("[").withStyle(ChatFormatting.DARK_GRAY).append(Component.translatable("key.keyboard.left.shift").withStyle(ChatFormatting.GRAY, ChatFormatting.ITALIC)).append(Component.literal("]").withStyle(ChatFormatting.DARK_GRAY))); - } - else*/ if (stack.is(FoundationTags.FoundationItemTags.PALLETS)) { + + + if (stack.is(FoundationTags.FoundationItemTags.PALLETS)) { if (Screen.hasShiftDown()) { tooltip.add(Component.translatable("description.foundation.pencil").withStyle(ChatFormatting.BLUE).append(Component.translatable("description.foundation.pallet1").withStyle(ChatFormatting.GRAY))); tooltip.add(Component.translatable("description.foundation.pallet2").withStyle(ChatFormatting.GRAY)); @@ -40,5 +35,32 @@ public void appendHoverText(ItemStack stack, Level level, List toolti } else tooltip.add(Component.literal("[").withStyle(ChatFormatting.DARK_GRAY).append(Component.translatable("key.keyboard.left.shift").withStyle(ChatFormatting.GRAY, ChatFormatting.ITALIC)).append(Component.literal("]").withStyle(ChatFormatting.DARK_GRAY))); } + + else if (stack.is(FoundationTags.FoundationItemTags.COLUMNS)) { + if (Screen.hasShiftDown()) { + tooltip.add(Component.translatable("description.foundation.pencil").withStyle(ChatFormatting.BLUE).append(Component.translatable("description.foundation.column1").withStyle(ChatFormatting.GRAY))); + tooltip.add(Component.translatable("description.foundation.column2").withStyle(ChatFormatting.GRAY)); + } else + tooltip.add(Component.literal("[").withStyle(ChatFormatting.DARK_GRAY).append(Component.translatable("key.keyboard.left.shift").withStyle(ChatFormatting.GRAY, ChatFormatting.ITALIC)).append(Component.literal("]").withStyle(ChatFormatting.DARK_GRAY))); + } + + else if (stack.is(FoundationTags.FoundationItemTags.LAYERS)) { + if (Screen.hasShiftDown()) { + tooltip.add(Component.translatable("description.foundation.pencil").withStyle(ChatFormatting.BLUE).append(Component.translatable("description.foundation.layer1").withStyle(ChatFormatting.GRAY))); + } else + tooltip.add(Component.literal("[").withStyle(ChatFormatting.DARK_GRAY).append(Component.translatable("key.keyboard.left.shift").withStyle(ChatFormatting.GRAY, ChatFormatting.ITALIC)).append(Component.literal("]").withStyle(ChatFormatting.DARK_GRAY))); + } + + else if (stack.is(FoundationTags.FoundationItemTags.FRAMES)) { + if (Screen.hasShiftDown()) { + tooltip.add(Component.translatable("description.foundation.pencil").withStyle(ChatFormatting.BLUE).append(Component.translatable("description.foundation.frame1").withStyle(ChatFormatting.GRAY))); + tooltip.add(Component.translatable("description.foundation.frame2").withStyle(ChatFormatting.GRAY)); + } else + tooltip.add(Component.literal("[").withStyle(ChatFormatting.DARK_GRAY).append(Component.translatable("key.keyboard.left.shift").withStyle(ChatFormatting.GRAY, ChatFormatting.ITALIC)).append(Component.literal("]").withStyle(ChatFormatting.DARK_GRAY))); + } + + else { + super.appendHoverText(stack, level, tooltip, flagIn); + } } } diff --git a/src/main/java/com/starfish_studios/foundation/item/BigDoorItem.java b/src/main/java/com/starfish_studios/foundation/item/TallDoorItem.java similarity index 91% rename from src/main/java/com/starfish_studios/foundation/item/BigDoorItem.java rename to src/main/java/com/starfish_studios/foundation/item/TallDoorItem.java index e4fe4a88..43c64438 100644 --- a/src/main/java/com/starfish_studios/foundation/item/BigDoorItem.java +++ b/src/main/java/com/starfish_studios/foundation/item/TallDoorItem.java @@ -9,8 +9,8 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; -public class BigDoorItem extends BlockItem { - public BigDoorItem(Block block, Item.Properties properties) { +public class TallDoorItem extends BlockItem { + public TallDoorItem(Block block, Item.Properties properties) { super(block, properties); } diff --git a/src/main/java/com/starfish_studios/foundation/registry/FoundationBlockEntityType.java b/src/main/java/com/starfish_studios/foundation/registry/FoundationBlockEntityType.java index 5bec60f7..b828e73c 100644 --- a/src/main/java/com/starfish_studios/foundation/registry/FoundationBlockEntityType.java +++ b/src/main/java/com/starfish_studios/foundation/registry/FoundationBlockEntityType.java @@ -1,17 +1,10 @@ package com.starfish_studios.foundation.registry; import com.starfish_studios.foundation.Foundation; -import com.starfish_studios.foundation.block.entity.BrazierBlockEntity; import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.level.block.entity.BlockEntityType; public class FoundationBlockEntityType { - public static final BlockEntityType BRAZIER = Registry.register - (BuiltInRegistries.BLOCK_ENTITY_TYPE, Foundation.MOD_ID + ":hamsters", - FabricBlockEntityTypeBuilder.create(BrazierBlockEntity::new, FoundationBlocks.BRAZIER) - .build(null) - ); - } diff --git a/src/main/java/com/starfish_studios/foundation/registry/FoundationBlocks.java b/src/main/java/com/starfish_studios/foundation/registry/FoundationBlocks.java index 5c9d10e6..1d75cd81 100644 --- a/src/main/java/com/starfish_studios/foundation/registry/FoundationBlocks.java +++ b/src/main/java/com/starfish_studios/foundation/registry/FoundationBlocks.java @@ -14,14 +14,20 @@ import static net.minecraft.world.level.block.Blocks.litBlockEmission; public class FoundationBlocks { + + public static final Block STONE_LAYER = register("stone_layer", new LayerBlock(FabricBlockSettings.copy((Blocks.STONE)))); + public static final Block POLISHED_STONE = register("polished_stone", new Block(FabricBlockSettings.copy((Blocks.SMOOTH_STONE)))); public static final Block POLISHED_STONE_STAIRS = register("polished_stone_stairs", new StairBlock((Blocks.SMOOTH_STONE.defaultBlockState()), BlockBehaviour.Properties.copy(Blocks.SMOOTH_STONE))); public static final Block POLISHED_STONE_SLAB = register("polished_stone_slab", new SlabBlock(BlockBehaviour.Properties.copy(Blocks.SMOOTH_STONE))); + public static final Block POLISHED_STONE_COLUMN = register("polished_stone_column", new ColumnBlock(FabricBlockSettings.copy((Blocks.STONE_BRICKS)).noOcclusion())); public static final Block STONE_TILES = register("stone_tiles", new Block(FabricBlockSettings.copy((Blocks.STONE_BRICKS)))); public static final Block STONE_TILE_STAIRS = register("stone_tile_stairs", new StairBlock((Blocks.STONE_BRICKS.defaultBlockState()), BlockBehaviour.Properties.copy(Blocks.STONE_BRICKS))); public static final Block STONE_TILE_SLAB = register("stone_tile_slab", new SlabBlock(BlockBehaviour.Properties.copy(Blocks.STONE_BRICKS))); - public static final Block STONE_FENCE = register("stone_fence", new StoneFenceBlock(FabricBlockSettings.copy((Blocks.STONE_BRICKS)))); + public static final Block STONE_FENCE = register("stone_fence", new StoneFenceBlock(FabricBlockSettings.copy((Blocks.STONE_BRICKS)).noOcclusion())); + + // region PALLETS public static final Block OAK_PALLET = register("oak_pallet", new PalletBlock(FabricBlockSettings.copy((Blocks.OAK_PLANKS)).noOcclusion())); @@ -53,10 +59,10 @@ public class FoundationBlocks { public static final Block BRAZIER = register("brazier", new BrazierBlock(FabricBlockSettings.copy((Blocks.IRON_BLOCK)).lightLevel(litBlockEmission(15)).noOcclusion().pushReaction(PushReaction.DESTROY).strength(1.0F, 1.5F))); - public static final Block ROOFING = register("roofing", new StairBlock((Blocks.STONE_BRICKS.defaultBlockState()), BlockBehaviour.Properties.copy(Blocks.STONE_BRICKS))); + public static final Block ROOFING = register("roofing", new StairBlock((Blocks.STONE_BRICKS.defaultBlockState()), BlockBehaviour.Properties.copy(Blocks.STONE_BRICKS).noOcclusion())); - public static final Block URN = register("urn", new Block(FabricBlockSettings.copy((Blocks.STONE)).noOcclusion().pushReaction(PushReaction.DESTROY))); + public static final Block URN = register("urn", new Block(FabricBlockSettings.copy((Blocks.STONE)).noOcclusion().pushReaction(PushReaction.DESTROY).noOcclusion())); public static final Block ROPE = register("rope", new ChainBlock(FabricBlockSettings.copy((Blocks.OAK_PLANKS)).forceSolidOn().strength(0.1F).sound(SoundType.WOOL).noOcclusion())); @@ -75,25 +81,25 @@ public class FoundationBlocks { // endregion // region TRIMS - public static final Block OAK_TRIM = register("oak_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.OAK_PLANKS)))); - public static final Block SPRUCE_TRIM = register("spruce_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.SPRUCE_PLANKS)))); - public static final Block BIRCH_TRIM = register("birch_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.BIRCH_PLANKS)))); - public static final Block JUNGLE_TRIM = register("jungle_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.JUNGLE_PLANKS)))); - public static final Block ACACIA_TRIM = register("acacia_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.ACACIA_PLANKS)))); - public static final Block DARK_OAK_TRIM = register("dark_oak_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.DARK_OAK_PLANKS)))); - public static final Block MANGROVE_TRIM = register("mangrove_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.MANGROVE_PLANKS)))); - public static final Block CHERRY_TRIM = register("cherry_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.CHERRY_PLANKS)))); - public static final Block BAMBOO_TRIM = register("bamboo_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.BAMBOO_PLANKS)))); - public static final Block CRIMSON_TRIM = register("crimson_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.CRIMSON_PLANKS)))); - public static final Block WARPED_TRIM = register("warped_trim", new ColumnBlock(FabricBlockSettings.copy((Blocks.WARPED_PLANKS)))); + public static final Block OAK_TRIM = register("oak_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.OAK_PLANKS)))); + public static final Block SPRUCE_TRIM = register("spruce_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.SPRUCE_PLANKS)))); + public static final Block BIRCH_TRIM = register("birch_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.BIRCH_PLANKS)))); + public static final Block JUNGLE_TRIM = register("jungle_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.JUNGLE_PLANKS)))); + public static final Block ACACIA_TRIM = register("acacia_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.ACACIA_PLANKS)))); + public static final Block DARK_OAK_TRIM = register("dark_oak_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.DARK_OAK_PLANKS)))); + public static final Block MANGROVE_TRIM = register("mangrove_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.MANGROVE_PLANKS)))); + public static final Block CHERRY_TRIM = register("cherry_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.CHERRY_PLANKS)))); + public static final Block BAMBOO_TRIM = register("bamboo_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.BAMBOO_PLANKS)))); + public static final Block CRIMSON_TRIM = register("crimson_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.CRIMSON_PLANKS)))); + public static final Block WARPED_TRIM = register("warped_trim", new FacingConnectingBlock(FabricBlockSettings.copy((Blocks.WARPED_PLANKS)))); // endregion - public static final Block IRON_FENCE = register("iron_fence", new WallBlock(FabricBlockSettings.copy((Blocks.IRON_BARS)))); + public static final Block IRON_FENCE = register("iron_fence", new WallBlock(FabricBlockSettings.copy((Blocks.IRON_BARS)).noOcclusion())); - public static final Block STONE_MOULDING = register("stone_moulding", new StairBlock((Blocks.STONE_BRICKS.defaultBlockState()), BlockBehaviour.Properties.copy(Blocks.STONE_BRICKS))); + public static final Block STONE_MOULDING = register("stone_moulding", new StairBlock((Blocks.STONE_BRICKS.defaultBlockState()), BlockBehaviour.Properties.copy(Blocks.STONE_BRICKS).noOcclusion())); - public static final Block BIG_OAK_DOOR = register("big_oak_door", new BigDoorBlock(FabricBlockSettings.copy((Blocks.OAK_PLANKS)).noOcclusion(), BlockSetType.OAK)); + public static final Block TALL_OAK_DOOR = register("tall_oak_door", new TallDoorBlock(FabricBlockSettings.copy((Blocks.OAK_PLANKS)).noOcclusion(), BlockSetType.OAK)); private static Block register(String id, Block block) { diff --git a/src/main/java/com/starfish_studios/foundation/registry/FoundationCreativeModeTab.java b/src/main/java/com/starfish_studios/foundation/registry/FoundationCreativeModeTab.java index 6eae3497..8bfb8d20 100644 --- a/src/main/java/com/starfish_studios/foundation/registry/FoundationCreativeModeTab.java +++ b/src/main/java/com/starfish_studios/foundation/registry/FoundationCreativeModeTab.java @@ -12,84 +12,88 @@ public class FoundationCreativeModeTab { + @SuppressWarnings("unused") public static final CreativeModeTab ITEM_GROUP = register("item_group", FabricItemGroup.builder().icon(FOUNDATION::getDefaultInstance).title(Component.translatable("itemGroup.foundation.tab")).displayItems((featureFlagSet, output) -> { + // output.accept(STONE_LAYER); + output.accept(POLISHED_STONE); output.accept(POLISHED_STONE_STAIRS); output.accept(POLISHED_STONE_SLAB); + output.accept(POLISHED_STONE_COLUMN); output.accept(STONE_TILES); output.accept(STONE_TILE_STAIRS); output.accept(STONE_TILE_SLAB); - - output.accept(STONE_FENCE); output.accept(STONE_MOULDING); + output.accept(URN); output.accept(BRAZIER); - output.accept(URN); + output.accept(IRON_FENCE); - output.accept(OAK_PALLET); - output.accept(SPRUCE_PALLET); - output.accept(BIRCH_PALLET); - output.accept(JUNGLE_PALLET); - output.accept(ACACIA_PALLET); - output.accept(DARK_OAK_PALLET); - output.accept(MANGROVE_PALLET); - output.accept(CHERRY_PALLET); - output.accept(BAMBOO_PALLET); - output.accept(CRIMSON_PALLET); - output.accept(WARPED_PALLET); + output.accept(TALL_OAK_DOOR); + output.accept(OAK_TRIM); + output.accept(OAK_PALLET); output.accept(OAK_FRAME); - output.accept(SPRUCE_FRAME); - output.accept(BIRCH_FRAME); - output.accept(JUNGLE_FRAME); - output.accept(ACACIA_FRAME); - output.accept(DARK_OAK_FRAME); - output.accept(MANGROVE_FRAME); - output.accept(CHERRY_FRAME); - output.accept(BAMBOO_FRAME); - output.accept(CRIMSON_FRAME); - output.accept(WARPED_FRAME); - - - output.accept(ROOFING); - - output.accept(ROPE); - output.accept(OAK_LANTERN); + + output.accept(SPRUCE_TRIM); + output.accept(SPRUCE_PALLET); + output.accept(SPRUCE_FRAME); output.accept(SPRUCE_LANTERN); + + output.accept(BIRCH_TRIM); + output.accept(BIRCH_PALLET); + output.accept(BIRCH_FRAME); output.accept(BIRCH_LANTERN); + + output.accept(JUNGLE_TRIM); + output.accept(JUNGLE_PALLET); + output.accept(JUNGLE_FRAME); output.accept(JUNGLE_LANTERN); + + output.accept(ACACIA_TRIM); + output.accept(ACACIA_PALLET); + output.accept(ACACIA_FRAME); output.accept(ACACIA_LANTERN); + + output.accept(DARK_OAK_TRIM); + output.accept(DARK_OAK_PALLET); + output.accept(DARK_OAK_FRAME); output.accept(DARK_OAK_LANTERN); + + output.accept(MANGROVE_TRIM); + output.accept(MANGROVE_PALLET); + output.accept(MANGROVE_FRAME); output.accept(MANGROVE_LANTERN); - output.accept(CHERRY_LANTERN); + + output.accept(BAMBOO_TRIM); + output.accept(BAMBOO_PALLET); + output.accept(BAMBOO_FRAME); output.accept(BAMBOO_LANTERN); - output.accept(CRIMSON_LANTERN); - output.accept(WARPED_LANTERN); - output.accept(OAK_TRIM); - output.accept(SPRUCE_TRIM); - output.accept(BIRCH_TRIM); - output.accept(JUNGLE_TRIM); - output.accept(ACACIA_TRIM); - output.accept(DARK_OAK_TRIM); - output.accept(MANGROVE_TRIM); output.accept(CHERRY_TRIM); - output.accept(BAMBOO_TRIM); + output.accept(CHERRY_PALLET); + output.accept(CHERRY_FRAME); + output.accept(CHERRY_LANTERN); + output.accept(CRIMSON_TRIM); - output.accept(WARPED_TRIM); + output.accept(CRIMSON_PALLET); + output.accept(CRIMSON_FRAME); + output.accept(CRIMSON_LANTERN); - output.accept(WRENCH); - output.accept(IRON_FENCE); + output.accept(WARPED_TRIM); + output.accept(WARPED_PALLET); + output.accept(WARPED_FRAME); + output.accept(WARPED_LANTERN); - output.accept(BIG_OAK_DOOR); + // output.accept(WRENCH); }).build() ); diff --git a/src/main/java/com/starfish_studios/foundation/registry/FoundationItems.java b/src/main/java/com/starfish_studios/foundation/registry/FoundationItems.java index 0f88f583..1fd3fb07 100644 --- a/src/main/java/com/starfish_studios/foundation/registry/FoundationItems.java +++ b/src/main/java/com/starfish_studios/foundation/registry/FoundationItems.java @@ -1,7 +1,7 @@ package com.starfish_studios.foundation.registry; import com.starfish_studios.foundation.Foundation; -import com.starfish_studios.foundation.item.BigDoorItem; +import com.starfish_studios.foundation.item.TallDoorItem; import com.starfish_studios.foundation.item.DescriptionBlockItem; import com.starfish_studios.foundation.item.WrenchItem; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; @@ -14,9 +14,15 @@ public class FoundationItems { + public static final Item FOUNDATION = register("foundation", new Item(new FabricItemSettings().maxCount(1).rarity(Rarity.UNCOMMON).fireproof())); + + public static final Item STONE_LAYER = register("stone_layer", new DescriptionBlockItem(FoundationBlocks.STONE_LAYER, new FabricItemSettings())); + public static final Item POLISHED_STONE = register("polished_stone", new BlockItem(FoundationBlocks.POLISHED_STONE, new FabricItemSettings())); public static final Item POLISHED_STONE_STAIRS = register("polished_stone_stairs", new BlockItem(FoundationBlocks.POLISHED_STONE_STAIRS, new FabricItemSettings())); public static final Item POLISHED_STONE_SLAB = register("polished_stone_slab", new BlockItem(FoundationBlocks.POLISHED_STONE_SLAB, new FabricItemSettings())); + public static final Item POLISHED_STONE_COLUMN = register("polished_stone_column", new DescriptionBlockItem(FoundationBlocks.POLISHED_STONE_COLUMN, new FabricItemSettings())); + public static final Item STONE_TILES = register("stone_tiles", new BlockItem(FoundationBlocks.STONE_TILES, new FabricItemSettings())); public static final Item STONE_TILE_STAIRS = register("stone_tile_stairs", new BlockItem(FoundationBlocks.STONE_TILE_STAIRS, new FabricItemSettings())); public static final Item STONE_TILE_SLAB = register("stone_tile_slab", new BlockItem(FoundationBlocks.STONE_TILE_SLAB, new FabricItemSettings())); @@ -87,8 +93,6 @@ public class FoundationItems { public static final Item WARPED_TRIM = register("warped_trim", new BlockItem(FoundationBlocks.WARPED_TRIM, new FabricItemSettings())); // endregion - public static final Item FOUNDATION = register("foundation", new Item(new FabricItemSettings().maxCount(1).rarity(Rarity.EPIC).fireproof())); - // public static final Item COBBLESTONE_LAYER = register("cobblestone_layer", new BlockItem(FoundationBlocks.COBBLESTONE_LAYER, new FabricItemSettings())); public static final Item IRON_FENCE = register("iron_fence", new BlockItem(FoundationBlocks.IRON_FENCE, new FabricItemSettings())); @@ -97,7 +101,7 @@ public class FoundationItems { public static final Item WRENCH = register("wrench", new WrenchItem(new FabricItemSettings().maxCount(1))); - public static final Item BIG_OAK_DOOR = register("big_oak_door", new BigDoorItem(FoundationBlocks.BIG_OAK_DOOR, new FabricItemSettings())); + public static final Item TALL_OAK_DOOR = register("tall_oak_door", new TallDoorItem(FoundationBlocks.TALL_OAK_DOOR, new FabricItemSettings())); private static Item register(String id, Item item) { diff --git a/src/main/java/com/starfish_studios/foundation/registry/FoundationTags.java b/src/main/java/com/starfish_studios/foundation/registry/FoundationTags.java index f28e7d5e..58f06167 100644 --- a/src/main/java/com/starfish_studios/foundation/registry/FoundationTags.java +++ b/src/main/java/com/starfish_studios/foundation/registry/FoundationTags.java @@ -11,20 +11,24 @@ public interface FoundationTags { // region BLOCK TAGS - public interface FoundationBlockTags { + interface FoundationBlockTags { TagKey METAL_FENCES = TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, "metal_fences")); TagKey STONE_BALUSTRADES = TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, "stone_balustrades")); TagKey STONE_FENCES = TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, "stone_fences")); TagKey FRAMES = TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, "frames")); TagKey PALLETS = TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, "pallets")); + TagKey COLUMNS = TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, "columns")); + TagKey LAYERS = TagKey.create(Registries.BLOCK, new ResourceLocation(MOD_ID, "layers")); } // endregion // region ITEM TAGS - public interface FoundationItemTags { + interface FoundationItemTags { TagKey FRAMES = TagKey.create(Registries.ITEM, new ResourceLocation(MOD_ID, "frames")); TagKey PALLETS = TagKey.create(Registries.ITEM, new ResourceLocation(MOD_ID, "pallets")); + TagKey COLUMNS = TagKey.create(Registries.ITEM, new ResourceLocation(MOD_ID, "columns")); + TagKey LAYERS = TagKey.create(Registries.ITEM, new ResourceLocation(MOD_ID, "layers")); } } diff --git a/src/main/resources/assets/foundation/blockstates/cobblestone_layer.json b/src/main/resources/assets/foundation/blockstates/cobblestone_layer.json deleted file mode 100644 index 2a8bcf50..00000000 --- a/src/main/resources/assets/foundation/blockstates/cobblestone_layer.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "variants": { - "layers=1": { - "model": "foundation:block/cobblestone_height2" - }, - "layers=2": { - "model": "foundation:block/cobblestone_height4" - }, - "layers=3": { - "model": "foundation:block/cobblestone_height6" - }, - "layers=4": { - "model": "foundation:block/cobblestone_height8" - }, - "layers=5": { - "model": "foundation:block/cobblestone_height10" - }, - "layers=6": { - "model": "foundation:block/cobblestone_height12" - }, - "layers=7": { - "model": "foundation:block/cobblestone_height14" - }, - "layers=8": { - "model": "minecraft:block/cobblestone" - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/blockstates/polished_stone_column.json b/src/main/resources/assets/foundation/blockstates/polished_stone_column.json new file mode 100644 index 00000000..1d0d77d4 --- /dev/null +++ b/src/main/resources/assets/foundation/blockstates/polished_stone_column.json @@ -0,0 +1,327 @@ +{ + "multipart": [ + { + "when": { + "facing": "up" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_pillar" + } + }, + { + "when": { + "facing": "north" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_pillar", + "uvlock": false, + "x": 90 + } + }, + { + "when": { + "facing": "east" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_pillar", + "uvlock": false, + "x": 90, + "y": 90 + } + }, + { + "when": { + "facing": "south" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_pillar", + "uvlock": false, + "x": 90 + } + }, + { + "when": { + "facing": "west" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_pillar", + "uvlock": false, + "y": 90, + "x": 90 + } + }, + { + "when": { + "facing": "down" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_pillar", + "uvlock": false + } + }, + { + "when": { + "facing": "north", + "layer_one": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer1", + "uvlock": false, + "x": 90 + } + }, + { + "when": { + "facing": "east", + "layer_one": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer1", + "uvlock": false, + "x": 90, + "y": 90 + } + }, + { + "when": { + "facing": "south", + "layer_one": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer1", + "uvlock": false, + "x": 90 + } + }, + { + "when": { + "facing": "west", + "layer_one": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer1", + "uvlock": false, + "y": 90, + "x": 90 + } + }, + { + "when": { + "facing": "up", + "layer_one": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer1", + "uvlock": false + } + }, + { + "when": { + "facing": "down", + "layer_one": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer1", + "uvlock": false + } + }, + { + "when": { + "facing": "north", + "layer_two": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer2", + "uvlock": false, + "x": 90 + } + }, + { + "when": { + "facing": "east", + "layer_two": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer2", + "uvlock": false, + "x": 90, + "y": 90 + } + }, + { + "when": { + "facing": "south", + "layer_two": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer2", + "uvlock": false, + "x": 90 + } + }, + { + "when": { + "facing": "west", + "layer_two": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer2", + "uvlock": false, + "y": 90, + "x": 90 + } + }, + { + "when": { + "facing": "up", + "layer_two": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer2", + "uvlock": false + } + }, + { + "when": { + "facing": "down", + "layer_two": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer2", + "uvlock": false + } + }, + { + "when": { + "facing": "north", + "layer_three": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer3", + "uvlock": false, + "x": 90 + } + }, + { + "when": { + "facing": "east", + "layer_three": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer3", + "uvlock": false, + "x": 90, + "y": 90 + } + }, + { + "when": { + "facing": "south", + "layer_three": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer3", + "uvlock": false, + "x": 90 + } + }, + { + "when": { + "facing": "west", + "layer_three": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer3", + "uvlock": false, + "y": 90, + "x": 90 + } + }, + { + "when": { + "facing": "up", + "layer_three": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer3", + "uvlock": false + } + }, + { + "when": { + "facing": "down", + "layer_three": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer3", + "uvlock": false + } + }, + { + "when": { + "facing": "north", + "layer_four": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer4", + "uvlock": false, + "x": 90 + } + }, + { + "when": { + "facing": "east", + "layer_four": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer4", + "uvlock": false, + "x": 90, + "y": 90 + } + }, + { + "when": { + "facing": "south", + "layer_four": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer4", + "uvlock": false, + "x": 90 + } + }, + { + "when": { + "facing": "west", + "layer_four": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer4", + "uvlock": false, + "y": 90, + "x": 90 + } + }, + { + "when": { + "facing": "up", + "layer_four": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer4", + "uvlock": false + } + }, + { + "when": { + "facing": "down", + "layer_four": "true" + }, + "apply": { + "model": "foundation:block/column/polished_stone_column_layer4", + "uvlock": false + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/blockstates/stone_layer.json b/src/main/resources/assets/foundation/blockstates/stone_layer.json new file mode 100644 index 00000000..f6ca1223 --- /dev/null +++ b/src/main/resources/assets/foundation/blockstates/stone_layer.json @@ -0,0 +1,102 @@ +{ + "variants": { + "facing=up,layers=1": { + "model": "foundation:block/layer/stone_layer1" + }, + "facing=up,layers=2": { + "model": "foundation:block/layer/stone_layer2" + }, + "facing=up,layers=3": { + "model": "foundation:block/layer/stone_layer3" + }, + "facing=up,layers=4": { + "model": "minecraft:block/stone" + }, + + "facing=north,layers=1": { + "model": "foundation:block/layer/stone_layer1", + "x": 90 + }, + "facing=north,layers=2": { + "model": "foundation:block/layer/stone_layer2", + "x": 90 + }, + "facing=north,layers=3": { + "model": "foundation:block/layer/stone_layer3", + "x": 90 + }, + "facing=north,layers=4": { + "model": "minecraft:block/stone" + }, + + "facing=south,layers=1": { + "model": "foundation:block/layer/stone_layer1", + "x": 90, + "y": 180 + }, + "facing=south,layers=2": { + "model": "foundation:block/layer/stone_layer2", + "x": 90, + "y": 180 + }, + "facing=south,layers=3": { + "model": "foundation:block/layer/stone_layer3", + "x": 90, + "y": 180 + }, + "facing=south,layers=4": { + "model": "minecraft:block/stone" + }, + + "facing=west,layers=1": { + "model": "foundation:block/layer/stone_layer1", + "x": 90, + "y": 270 + }, + "facing=west,layers=2": { + "model": "foundation:block/layer/stone_layer2", + "x": 90, + "y": 270 + }, + "facing=west,layers=3": { + "model": "foundation:block/layer/stone_layer3", + "x": 90, + "y": 270 + }, + "facing=west,layers=4": { + "model": "minecraft:block/stone" + }, + + "facing=east,layers=1": { + "model": "foundation:block/layer/stone_layer1", + "y": 90 + }, + "facing=east,layers=2": { + "model": "foundation:block/layer/stone_layer2", + "y": 90 + }, + "facing=east,layers=3": { + "model": "foundation:block/layer/stone_layer3", + "y": 90 + }, + "facing=east,layers=4": { + "model": "minecraft:block/stone" + }, + + "facing=down,layers=1": { + "model": "foundation:block/layer/stone_layer1", + "x": 180 + }, + "facing=down,layers=2": { + "model": "foundation:block/layer/stone_layer2", + "x": 180 + }, + "facing=down,layers=3": { + "model": "foundation:block/layer/stone_layer3", + "x": 180 + }, + "facing=down,layers=4": { + "model": "minecraft:block/stone" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/blockstates/big_oak_door.json b/src/main/resources/assets/foundation/blockstates/tall_oak_door.json similarity index 56% rename from src/main/resources/assets/foundation/blockstates/big_oak_door.json rename to src/main/resources/assets/foundation/blockstates/tall_oak_door.json index 119a691a..6baf864f 100644 --- a/src/main/resources/assets/foundation/blockstates/big_oak_door.json +++ b/src/main/resources/assets/foundation/blockstates/tall_oak_door.json @@ -1,183 +1,183 @@ { "variants": { "facing=east,type=lower,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/bottom_left" + "model": "foundation:block/tall_door/oak/bottom_left" }, "facing=east,type=lower,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/bottom_left_open", + "model": "foundation:block/tall_door/oak/bottom_left_open", "y": 90 }, "facing=east,type=lower,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/bottom_right" + "model": "foundation:block/tall_door/oak/bottom_right" }, "facing=east,type=lower,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/bottom_right_open", + "model": "foundation:block/tall_door/oak/bottom_right_open", "y": 270 }, "facing=east,type=upper,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/top_left" + "model": "foundation:block/tall_door/oak/top_left" }, "facing=east,type=upper,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/top_left_open", + "model": "foundation:block/tall_door/oak/top_left_open", "y": 90 }, "facing=east,type=upper,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/top_right" + "model": "foundation:block/tall_door/oak/top_right" }, "facing=east,type=upper,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/top_right_open", + "model": "foundation:block/tall_door/oak/top_right_open", "y": 270 }, "facing=east,type=middle,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/middle_left" + "model": "foundation:block/tall_door/oak/middle_left" }, "facing=east,type=middle,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/middle_left_open", + "model": "foundation:block/tall_door/oak/middle_left_open", "y": 90 }, "facing=east,type=middle,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/middle_right" + "model": "foundation:block/tall_door/oak/middle_right" }, "facing=east,type=middle,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/middle_right_open", + "model": "foundation:block/tall_door/oak/middle_right_open", "y": 270 }, "facing=north,type=lower,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/bottom_left", + "model": "foundation:block/tall_door/oak/bottom_left", "y": 270 }, "facing=north,type=lower,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/bottom_left_open" + "model": "foundation:block/tall_door/oak/bottom_left_open" }, "facing=north,type=lower,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/bottom_right", + "model": "foundation:block/tall_door/oak/bottom_right", "y": 270 }, "facing=north,type=lower,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/bottom_right_open", + "model": "foundation:block/tall_door/oak/bottom_right_open", "y": 180 }, "facing=north,type=upper,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/top_left", + "model": "foundation:block/tall_door/oak/top_left", "y": 270 }, "facing=north,type=upper,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/top_left_open" + "model": "foundation:block/tall_door/oak/top_left_open" }, "facing=north,type=upper,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/top_right", + "model": "foundation:block/tall_door/oak/top_right", "y": 270 }, "facing=north,type=upper,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/top_right_open", + "model": "foundation:block/tall_door/oak/top_right_open", "y": 180 }, "facing=north,type=middle,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/middle_left", + "model": "foundation:block/tall_door/oak/middle_left", "y": 270 }, "facing=north,type=middle,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/middle_left_open" + "model": "foundation:block/tall_door/oak/middle_left_open" }, "facing=north,type=middle,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/middle_right", + "model": "foundation:block/tall_door/oak/middle_right", "y": 270 }, "facing=north,type=middle,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/middle_right_open", + "model": "foundation:block/tall_door/oak/middle_right_open", "y": 180 }, "facing=south,type=lower,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/bottom_left", + "model": "foundation:block/tall_door/oak/bottom_left", "y": 90 }, "facing=south,type=lower,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/bottom_left_open", + "model": "foundation:block/tall_door/oak/bottom_left_open", "y": 180 }, "facing=south,type=lower,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/bottom_right", + "model": "foundation:block/tall_door/oak/bottom_right", "y": 90 }, "facing=south,type=lower,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/bottom_right_open" + "model": "foundation:block/tall_door/oak/bottom_right_open" }, "facing=south,type=upper,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/top_left", + "model": "foundation:block/tall_door/oak/top_left", "y": 90 }, "facing=south,type=upper,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/top_left_open", + "model": "foundation:block/tall_door/oak/top_left_open", "y": 180 }, "facing=south,type=upper,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/top_right", + "model": "foundation:block/tall_door/oak/top_right", "y": 90 }, "facing=south,type=upper,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/top_right_open" + "model": "foundation:block/tall_door/oak/top_right_open" }, "facing=south,type=middle,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/middle_left", + "model": "foundation:block/tall_door/oak/middle_left", "y": 90 }, "facing=south,type=middle,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/middle_left_open", + "model": "foundation:block/tall_door/oak/middle_left_open", "y": 180 }, "facing=south,type=middle,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/middle_right", + "model": "foundation:block/tall_door/oak/middle_right", "y": 90 }, "facing=south,type=middle,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/middle_right_open" + "model": "foundation:block/tall_door/oak/middle_right_open" }, "facing=west,type=lower,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/bottom_left", + "model": "foundation:block/tall_door/oak/bottom_left", "y": 180 }, "facing=west,type=lower,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/bottom_left_open", + "model": "foundation:block/tall_door/oak/bottom_left_open", "y": 270 }, "facing=west,type=lower,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/bottom_right", + "model": "foundation:block/tall_door/oak/bottom_right", "y": 180 }, "facing=west,type=lower,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/bottom_right_open", + "model": "foundation:block/tall_door/oak/bottom_right_open", "y": 90 }, "facing=west,type=upper,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/top_left", + "model": "foundation:block/tall_door/oak/top_left", "y": 180 }, "facing=west,type=upper,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/top_left_open", + "model": "foundation:block/tall_door/oak/top_left_open", "y": 270 }, "facing=west,type=upper,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/top_right", + "model": "foundation:block/tall_door/oak/top_right", "y": 180 }, "facing=west,type=upper,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/top_right_open", + "model": "foundation:block/tall_door/oak/top_right_open", "y": 90 }, "facing=west,type=middle,hinge=left,open=false": { - "model": "foundation:block/big_door/oak/middle_left", + "model": "foundation:block/tall_door/oak/middle_left", "y": 180 }, "facing=west,type=middle,hinge=left,open=true": { - "model": "foundation:block/big_door/oak/middle_left_open", + "model": "foundation:block/tall_door/oak/middle_left_open", "y": 270 }, "facing=west,type=middle,hinge=right,open=false": { - "model": "foundation:block/big_door/oak/middle_right", + "model": "foundation:block/tall_door/oak/middle_right", "y": 180 }, "facing=west,type=middle,hinge=right,open=true": { - "model": "foundation:block/big_door/oak/middle_right_open", + "model": "foundation:block/tall_door/oak/middle_right_open", "y": 90 } } diff --git a/src/main/resources/assets/foundation/lang/en_us.json b/src/main/resources/assets/foundation/lang/en_us.json index 0accc98d..4c70cb47 100644 --- a/src/main/resources/assets/foundation/lang/en_us.json +++ b/src/main/resources/assets/foundation/lang/en_us.json @@ -1,11 +1,13 @@ { "itemGroup.foundation.tab": "Foundation", + "item.foundation.foundation": "Foundation", - "description.foundation.shift": "Shift", "description.foundation.pencil": "✐ ", - "description.foundation.frame1": "Hold the block", - "description.foundation.frame2": "to see the hitbox!", + "description.foundation.layer1": "Right-Click with a Pencil", + + "description.foundation.frame1": "Automatically connects", + "description.foundation.frame2": "to other Frames.", "description.foundation.pallet1": "Right-Click with an Axe", "description.foundation.pallet2": "to add/remove layers.", @@ -13,7 +15,26 @@ "description.foundation.pallet4": "with an empty hand", "description.foundation.pallet5": "to open/close the block.", + "description.foundation.column1": "Right-Click with a Pickaxe", + "description.foundation.column2": "to add/remove outside layers.", + "block.foundation.rope": "Rope", + "block.foundation.stone_moulding": "Stone Moulding", + "block.foundation.urn": "Urn", + "block.foundation.brazier": "Brazier", + "block.foundation.iron_fence": "Iron Fence", + "block.foundation.tall_oak_door": "Tall Oak Door", + + "block.foundation.polished_stone": "Polished Stone", + "block.foundation.polished_stone_stairs": "Polished Stone Stairs", + "block.foundation.polished_stone_slab": "Polished Stone Slab", + "block.foundation.polished_stone_column": "Polished Stone Column", + + "block.foundation.stone_tiles": "Stone Tiles", + "block.foundation.stone_tile_stairs": "Stone Tile Stairs", + "block.foundation.stone_tile_slab": "Stone Tile Slab", + "block.foundation.stone_fence": "Stone Fence", + "block.foundation.oak_pallet": "Oak Pallet", "block.foundation.spruce_pallet": "Spruce Pallet", diff --git a/src/main/resources/assets/foundation/models/block/column/polished_stone_column.json b/src/main/resources/assets/foundation/models/block/column/polished_stone_column.json new file mode 100644 index 00000000..7217acf9 --- /dev/null +++ b/src/main/resources/assets/foundation/models/block/column/polished_stone_column.json @@ -0,0 +1,77 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "particle": "foundation:block/polished_stone", + "texture": "foundation:block/polished_stone" + }, + "elements": [ + { + "from": [3, 0, 3], + "to": [13, 16, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 3]}, + "faces": { + "north": {"uv": [0, 0, 10, 16], "texture": "#texture"}, + "east": {"uv": [0, 0, 10, 16], "texture": "#texture"}, + "south": {"uv": [0, 0, 10, 16], "texture": "#texture"}, + "west": {"uv": [0, 0, 10, 16], "texture": "#texture"} + } + }, + { + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-21, -4, 0]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#texture"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#texture"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#texture"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#texture"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#texture"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#texture"} + } + }, + { + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-21, 8, 0]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#texture"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#texture"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#texture"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#texture"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#texture"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#texture"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 45, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, 45, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, 225, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer1.json b/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer1.json new file mode 100644 index 00000000..d0bc63ca --- /dev/null +++ b/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer1.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "particle": "foundation:block/polished_stone", + "texture": "foundation:block/polished_stone" + }, + "elements": [ + { + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-21, -4, 0]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#texture"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#texture"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#texture"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#texture"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#texture"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#texture"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer2.json b/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer2.json new file mode 100644 index 00000000..091c5072 --- /dev/null +++ b/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer2.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "particle": "foundation:block/polished_stone", + "texture": "foundation:block/polished_stone" + }, + "elements": [ + { + "from": [0, 4, 0], + "to": [16, 8, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-21, 0, 0]}, + "faces": { + "north": {"uv": [0, 8, 16, 12], "texture": "#texture"}, + "east": {"uv": [0, 8, 16, 12], "texture": "#texture"}, + "south": {"uv": [0, 8, 16, 12], "texture": "#texture"}, + "west": {"uv": [0, 8, 16, 12], "texture": "#texture"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#texture"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#texture"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer3.json b/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer3.json new file mode 100644 index 00000000..a06ab2a4 --- /dev/null +++ b/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer3.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "foundation:block/polished_stone", + "particle": "foundation:block/polished_stone" + }, + "elements": [ + { + "from": [0, 8, 0], + "to": [16, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-21, 4, 0]}, + "faces": { + "north": {"uv": [0, 4, 16, 8], "texture": "#0"}, + "east": {"uv": [0, 4, 16, 8], "texture": "#0"}, + "south": {"uv": [0, 4, 16, 8], "texture": "#0"}, + "west": {"uv": [0, 4, 16, 8], "texture": "#0"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer4.json b/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer4.json new file mode 100644 index 00000000..cb801052 --- /dev/null +++ b/src/main/resources/assets/foundation/models/block/column/polished_stone_column_layer4.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "foundation:block/polished_stone", + "particle": "foundation:block/polished_stone" + }, + "elements": [ + { + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-21, 8, 0]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#0"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#0"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#0"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#0"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/block/column/polished_stone_column_pillar.json b/src/main/resources/assets/foundation/models/block/column/polished_stone_column_pillar.json new file mode 100644 index 00000000..445e7ec2 --- /dev/null +++ b/src/main/resources/assets/foundation/models/block/column/polished_stone_column_pillar.json @@ -0,0 +1,20 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "particle": "foundation:block/polished_stone_column_side", + "texture": "foundation:block/polished_stone_column_side" + }, + "elements": [ + { + "from": [3, 0, 3], + "to": [13, 16, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [3, 0, 3]}, + "faces": { + "north": {"uv": [0, 0, 10, 16], "texture": "#texture"}, + "east": {"uv": [0, 0, 10, 16], "texture": "#texture"}, + "south": {"uv": [0, 0, 10, 16], "texture": "#texture"}, + "west": {"uv": [0, 0, 10, 16], "texture": "#texture"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/block/layer/stone_layer1.json b/src/main/resources/assets/foundation/models/block/layer/stone_layer1.json new file mode 100644 index 00000000..f00a84e5 --- /dev/null +++ b/src/main/resources/assets/foundation/models/block/layer/stone_layer1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/snow_height4", + "textures": { + "particle": "minecraft:block/stone", + "texture": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/block/layer/stone_layer2.json b/src/main/resources/assets/foundation/models/block/layer/stone_layer2.json new file mode 100644 index 00000000..2e01c695 --- /dev/null +++ b/src/main/resources/assets/foundation/models/block/layer/stone_layer2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/snow_height8", + "textures": { + "particle": "minecraft:block/stone", + "texture": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/block/layer/stone_layer3.json b/src/main/resources/assets/foundation/models/block/layer/stone_layer3.json new file mode 100644 index 00000000..cf15b2a2 --- /dev/null +++ b/src/main/resources/assets/foundation/models/block/layer/stone_layer3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/snow_height12", + "textures": { + "particle": "minecraft:block/stone", + "texture": "minecraft:block/stone" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/bottom_left.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/bottom_left.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/bottom_left.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/bottom_left.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/bottom_left_open.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/bottom_left_open.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/bottom_left_open.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/bottom_left_open.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/bottom_right.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/bottom_right.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/bottom_right.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/bottom_right.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/bottom_right_open.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/bottom_right_open.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/bottom_right_open.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/bottom_right_open.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/middle_left.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/middle_left.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/middle_left.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/middle_left.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/middle_left_open.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/middle_left_open.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/middle_left_open.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/middle_left_open.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/middle_right.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/middle_right.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/middle_right.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/middle_right.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/middle_right_open.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/middle_right_open.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/middle_right_open.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/middle_right_open.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/top_left.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/top_left.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/top_left.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/top_left.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/top_left_open.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/top_left_open.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/top_left_open.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/top_left_open.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/top_right.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/top_right.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/top_right.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/top_right.json diff --git a/src/main/resources/assets/foundation/models/block/big_door/oak/top_right_open.json b/src/main/resources/assets/foundation/models/block/tall_door/oak/top_right_open.json similarity index 100% rename from src/main/resources/assets/foundation/models/block/big_door/oak/top_right_open.json rename to src/main/resources/assets/foundation/models/block/tall_door/oak/top_right_open.json diff --git a/src/main/resources/assets/foundation/models/item/cobblestone_layer.json b/src/main/resources/assets/foundation/models/item/cobblestone_layer.json deleted file mode 100644 index b346fa69..00000000 --- a/src/main/resources/assets/foundation/models/item/cobblestone_layer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "foundation:block/cobblestone_height2" -} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/item/foundation.json b/src/main/resources/assets/foundation/models/item/foundation.json new file mode 100644 index 00000000..cac6fa6e --- /dev/null +++ b/src/main/resources/assets/foundation/models/item/foundation.json @@ -0,0 +1,6 @@ +{ + "parent": "item/handheld", + "textures": { + "layer0": "foundation:item/hammer" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/item/polished_stone_column.json b/src/main/resources/assets/foundation/models/item/polished_stone_column.json new file mode 100644 index 00000000..1e8e07a2 --- /dev/null +++ b/src/main/resources/assets/foundation/models/item/polished_stone_column.json @@ -0,0 +1,3 @@ +{ + "parent": "foundation:block/column/polished_stone_column" +} diff --git a/src/main/resources/assets/foundation/models/item/stone_layer.json b/src/main/resources/assets/foundation/models/item/stone_layer.json new file mode 100644 index 00000000..3c716076 --- /dev/null +++ b/src/main/resources/assets/foundation/models/item/stone_layer.json @@ -0,0 +1,3 @@ +{ + "parent": "foundation:block/layer/stone_layer2" +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/models/item/tall_oak_door.json b/src/main/resources/assets/foundation/models/item/tall_oak_door.json new file mode 100644 index 00000000..edc26071 --- /dev/null +++ b/src/main/resources/assets/foundation/models/item/tall_oak_door.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "minecraft:item/oak_door" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/foundation/textures/block/polished_stone_column_side.png b/src/main/resources/assets/foundation/textures/block/polished_stone_column_side.png new file mode 100644 index 00000000..4aacd642 Binary files /dev/null and b/src/main/resources/assets/foundation/textures/block/polished_stone_column_side.png differ diff --git a/src/main/resources/assets/foundation/textures/block/stone_pillar.png b/src/main/resources/assets/foundation/textures/block/stone_pillar.png new file mode 100644 index 00000000..16488da1 Binary files /dev/null and b/src/main/resources/assets/foundation/textures/block/stone_pillar.png differ diff --git a/src/main/resources/assets/foundation/textures/item/hammer.png b/src/main/resources/assets/foundation/textures/item/hammer.png new file mode 100644 index 00000000..59edc3b5 Binary files /dev/null and b/src/main/resources/assets/foundation/textures/item/hammer.png differ diff --git a/src/main/resources/data/foundation/loot_tables/blocks/acacia_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/acacia_frame.json new file mode 100644 index 00000000..cad7b90e --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/acacia_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:acacia_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/acacia_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/acacia_lantern.json new file mode 100644 index 00000000..7aab9fa3 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/acacia_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:acacia_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/acacia_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/acacia_pallet.json new file mode 100644 index 00000000..8ff17310 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/acacia_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:acacia_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/acacia_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/acacia_trim.json new file mode 100644 index 00000000..7cbb4c6c --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/acacia_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:acacia_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/bamboo_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/bamboo_frame.json new file mode 100644 index 00000000..72ab40de --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/bamboo_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:bamboo_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/bamboo_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/bamboo_lantern.json new file mode 100644 index 00000000..d4881587 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/bamboo_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:bamboo_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/bamboo_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/bamboo_pallet.json new file mode 100644 index 00000000..91f89c23 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/bamboo_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:bamboo_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/bamboo_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/bamboo_trim.json new file mode 100644 index 00000000..c69a1838 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/bamboo_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:bamboo_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/birch_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/birch_frame.json new file mode 100644 index 00000000..35e24a30 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/birch_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:birch_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/birch_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/birch_lantern.json new file mode 100644 index 00000000..f7b90cba --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/birch_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:birch_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/birch_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/birch_pallet.json new file mode 100644 index 00000000..c5e769f3 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/birch_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:birch_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/birch_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/birch_trim.json new file mode 100644 index 00000000..b8b9b822 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/birch_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:birch_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/brazier.json b/src/main/resources/data/foundation/loot_tables/blocks/brazier.json new file mode 100644 index 00000000..cdb373a7 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/brazier.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:brazier" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/cherry_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/cherry_frame.json new file mode 100644 index 00000000..15dd14b6 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/cherry_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:cherry_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/cherry_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/cherry_lantern.json new file mode 100644 index 00000000..a194b976 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/cherry_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:cherry_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/cherry_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/cherry_pallet.json new file mode 100644 index 00000000..4ee9d463 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/cherry_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:cherry_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/cherry_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/cherry_trim.json new file mode 100644 index 00000000..304eef38 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/cherry_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:cherry_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/crimson_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/crimson_frame.json new file mode 100644 index 00000000..e4a99979 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/crimson_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:crimson_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/crimson_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/crimson_lantern.json new file mode 100644 index 00000000..72e306fb --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/crimson_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:crimson_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/crimson_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/crimson_pallet.json new file mode 100644 index 00000000..df55b70b --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/crimson_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:crimson_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/crimson_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/crimson_trim.json new file mode 100644 index 00000000..341535e6 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/crimson_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:crimson_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_frame.json new file mode 100644 index 00000000..2972de9e --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:dark_oak_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_lantern.json new file mode 100644 index 00000000..089976f6 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:dark_oak_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_pallet.json new file mode 100644 index 00000000..22e26e7b --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:dark_oak_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_trim.json new file mode 100644 index 00000000..06300198 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/dark_oak_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:dark_oak_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/iron_fence.json b/src/main/resources/data/foundation/loot_tables/blocks/iron_fence.json new file mode 100644 index 00000000..ccef68be --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/iron_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:iron_fence" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/jungle_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/jungle_frame.json new file mode 100644 index 00000000..fdc10eee --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/jungle_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:jungle_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/jungle_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/jungle_lantern.json new file mode 100644 index 00000000..37007e3f --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/jungle_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:jungle_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/jungle_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/jungle_pallet.json new file mode 100644 index 00000000..bf92fbc5 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/jungle_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:jungle_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/jungle_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/jungle_trim.json new file mode 100644 index 00000000..41a8b628 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/jungle_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:jungle_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/mangrove_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/mangrove_frame.json new file mode 100644 index 00000000..d6eec93d --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/mangrove_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:mangrove_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/mangrove_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/mangrove_lantern.json new file mode 100644 index 00000000..46974c3a --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/mangrove_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:mangrove_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/mangrove_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/mangrove_pallet.json new file mode 100644 index 00000000..60be99cb --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/mangrove_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:mangrove_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/mangrove_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/mangrove_trim.json new file mode 100644 index 00000000..30769d1e --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/mangrove_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:mangrove_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/oak_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/oak_frame.json new file mode 100644 index 00000000..9a4f2c78 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/oak_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:oak_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/oak_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/oak_lantern.json new file mode 100644 index 00000000..c3632a27 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/oak_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:oak_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/oak_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/oak_pallet.json new file mode 100644 index 00000000..1ca234b3 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/oak_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:oak_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/oak_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/oak_trim.json new file mode 100644 index 00000000..843193b1 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/oak_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:oak_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/polished_stone.json b/src/main/resources/data/foundation/loot_tables/blocks/polished_stone.json new file mode 100644 index 00000000..ea83d855 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/polished_stone.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:polished_stone" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/polished_stone_column.json b/src/main/resources/data/foundation/loot_tables/blocks/polished_stone_column.json new file mode 100644 index 00000000..92fa2f87 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/polished_stone_column.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:polished_stone_column" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/polished_stone_slab.json b/src/main/resources/data/foundation/loot_tables/blocks/polished_stone_slab.json new file mode 100644 index 00000000..8dc9bc5e --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/polished_stone_slab.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:polished_stone_slab" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/polished_stone_stairs.json b/src/main/resources/data/foundation/loot_tables/blocks/polished_stone_stairs.json new file mode 100644 index 00000000..237999ac --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/polished_stone_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:polished_stone_stairs" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/roofing.json b/src/main/resources/data/foundation/loot_tables/blocks/roofing.json new file mode 100644 index 00000000..25e24326 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/roofing.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:roofing" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/rope.json b/src/main/resources/data/foundation/loot_tables/blocks/rope.json new file mode 100644 index 00000000..71f206c6 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/rope.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:rope" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/spruce_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/spruce_frame.json new file mode 100644 index 00000000..bb602d55 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/spruce_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:spruce_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/spruce_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/spruce_lantern.json new file mode 100644 index 00000000..430f67b9 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/spruce_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:spruce_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/spruce_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/spruce_pallet.json new file mode 100644 index 00000000..2677a66a --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/spruce_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:spruce_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/spruce_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/spruce_trim.json new file mode 100644 index 00000000..f567d635 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/spruce_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:spruce_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/stone_fence.json b/src/main/resources/data/foundation/loot_tables/blocks/stone_fence.json new file mode 100644 index 00000000..1af97b20 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/stone_fence.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:stone_fence" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/stone_moulding.json b/src/main/resources/data/foundation/loot_tables/blocks/stone_moulding.json new file mode 100644 index 00000000..7d5c0f2f --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/stone_moulding.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:stone_moulding" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/stone_tile_slab.json b/src/main/resources/data/foundation/loot_tables/blocks/stone_tile_slab.json new file mode 100644 index 00000000..d804db36 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/stone_tile_slab.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:stone_tile_slab" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/stone_tile_stairs.json b/src/main/resources/data/foundation/loot_tables/blocks/stone_tile_stairs.json new file mode 100644 index 00000000..7487ce67 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/stone_tile_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:stone_tile_stairs" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/stone_tiles.json b/src/main/resources/data/foundation/loot_tables/blocks/stone_tiles.json new file mode 100644 index 00000000..b82f0747 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/stone_tiles.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:stone_tiles" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/urn.json b/src/main/resources/data/foundation/loot_tables/blocks/urn.json new file mode 100644 index 00000000..be122893 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/urn.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:urn" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/warped_frame.json b/src/main/resources/data/foundation/loot_tables/blocks/warped_frame.json new file mode 100644 index 00000000..2e866751 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/warped_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:warped_frame" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/warped_lantern.json b/src/main/resources/data/foundation/loot_tables/blocks/warped_lantern.json new file mode 100644 index 00000000..9103aa94 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/warped_lantern.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:warped_lantern" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/warped_pallet.json b/src/main/resources/data/foundation/loot_tables/blocks/warped_pallet.json new file mode 100644 index 00000000..e09ab6c1 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/warped_pallet.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:warped_pallet" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/loot_tables/blocks/warped_trim.json b/src/main/resources/data/foundation/loot_tables/blocks/warped_trim.json new file mode 100644 index 00000000..cf47fd17 --- /dev/null +++ b/src/main/resources/data/foundation/loot_tables/blocks/warped_trim.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "foundation:warped_trim" + } + ], + "rolls": 1.0 + } + ] +} diff --git a/src/main/resources/data/foundation/tags/items/columns.json b/src/main/resources/data/foundation/tags/items/columns.json new file mode 100644 index 00000000..a7773074 --- /dev/null +++ b/src/main/resources/data/foundation/tags/items/columns.json @@ -0,0 +1,5 @@ +{ + "values": [ + "foundation:polished_stone_column" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/foundation/tags/items/layers.json b/src/main/resources/data/foundation/tags/items/layers.json new file mode 100644 index 00000000..8db43744 --- /dev/null +++ b/src/main/resources/data/foundation/tags/items/layers.json @@ -0,0 +1,5 @@ +{ + "values": [ + "foundation:stone_layer" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json index 10fa8d83..8d7fc184 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -1,6 +1,49 @@ { "values": [ - "#foundation:wooden_blocks" + "foundation:oak_lantern", + "foundation:spruce_lantern", + "foundation:birch_lantern", + "foundation:jungle_lantern", + "foundation:acacia_lantern", + "foundation:dark_oak_lantern", + "foundation:mangrove_lantern", + "foundation:bamboo_lantern", + "foundation:cherry_lantern", + "foundation:crimson_lantern", + "foundation:warped_lantern", + "foundation:oak_frame", + "foundation:spruce_frame", + "foundation:birch_frame", + "foundation:jungle_frame", + "foundation:acacia_frame", + "foundation:dark_oak_frame", + "foundation:mangrove_frame", + "foundation:bamboo_frame", + "foundation:cherry_frame", + "foundation:crimson_frame", + "foundation:warped_frame", + "foundation:oak_trim", + "foundation:spruce_trim", + "foundation:birch_trim", + "foundation:jungle_trim", + "foundation:acacia_trim", + "foundation:dark_oak_trim", + "foundation:mangrove_trim", + "foundation:bamboo_trim", + "foundation:cherry_trim", + "foundation:crimson_trim", + "foundation:warped_trim", + "foundation:oak_pallet", + "foundation:spruce_pallet", + "foundation:birch_pallet", + "foundation:jungle_pallet", + "foundation:acacia_pallet", + "foundation:dark_oak_pallet", + "foundation:mangrove_pallet", + "foundation:bamboo_pallet", + "foundation:cherry_pallet", + "foundation:crimson_pallet", + "foundation:warped_pallet" ], "replace": false } \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/wooden_doors.json b/src/main/resources/data/minecraft/tags/blocks/wooden_doors.json index d59eab11..2bdfa317 100644 --- a/src/main/resources/data/minecraft/tags/blocks/wooden_doors.json +++ b/src/main/resources/data/minecraft/tags/blocks/wooden_doors.json @@ -1,6 +1,6 @@ { "values": [ - "foundation:big_oak_door" + "foundation:tall_oak_door" ], "replace": false } \ No newline at end of file