Pedestal column state, fabric dependency update
This commit is contained in:
parent
4ddeb92680
commit
105e22dda3
11 changed files with 241 additions and 81 deletions
|
@ -6,7 +6,7 @@ import net.minecraft.util.StringIdentifiable;
|
||||||
|
|
||||||
public class BlockProperties {
|
public class BlockProperties {
|
||||||
public static final EnumProperty<TripleShape> TRIPLE_SHAPE = EnumProperty.of("shape", TripleShape.class);
|
public static final EnumProperty<TripleShape> TRIPLE_SHAPE = EnumProperty.of("shape", TripleShape.class);
|
||||||
public final static EnumProperty<State> STATE = EnumProperty.of("state", State.class);
|
public final static EnumProperty<PedestalState> PEDESTAL_STATE = EnumProperty.of("state", PedestalState.class);
|
||||||
public static final BooleanProperty HAS_ITEM = BooleanProperty.of("has_item");
|
public static final BooleanProperty HAS_ITEM = BooleanProperty.of("has_item");
|
||||||
public static final BooleanProperty ACTIVATED = BooleanProperty.of("active");
|
public static final BooleanProperty ACTIVATED = BooleanProperty.of("active");
|
||||||
|
|
||||||
|
@ -32,15 +32,22 @@ public class BlockProperties {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static enum State implements StringIdentifiable {
|
public static enum PedestalState implements StringIdentifiable {
|
||||||
DEFAULT,
|
PEDESTAL_TOP,
|
||||||
|
COLUMN_TOP,
|
||||||
BOTTOM,
|
BOTTOM,
|
||||||
TOP,
|
PILLAR,
|
||||||
PILLAR;
|
COLUMN,
|
||||||
|
DEFAULT;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String asString() {
|
public String asString() {
|
||||||
return this.name().toLowerCase();
|
return this.name().toLowerCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return this.asString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,8 +60,8 @@ public class EternalPedestal extends BlockPedestal {
|
||||||
@Override
|
@Override
|
||||||
public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState newState, WorldAccess world, BlockPos pos, BlockPos posFrom) {
|
public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState newState, WorldAccess world, BlockPos pos, BlockPos posFrom) {
|
||||||
BlockState updated = super.getStateForNeighborUpdate(state, direction, newState, world, pos, posFrom);
|
BlockState updated = super.getStateForNeighborUpdate(state, direction, newState, world, pos, posFrom);
|
||||||
BlockProperties.State updatedState = state.get(BlockProperties.STATE);
|
if (!updated.isOf(this)) return updated;
|
||||||
if (updatedState.equals(BlockProperties.State.BOTTOM) || updatedState.equals(BlockProperties.State.PILLAR)) {
|
if (!this.isPlaceable(updated)) {
|
||||||
return updated.with(ACTIVATED, false);
|
return updated.with(ACTIVATED, false);
|
||||||
}
|
}
|
||||||
return updated;
|
return updated;
|
||||||
|
@ -85,8 +85,8 @@ public class EternalPedestal extends BlockPedestal {
|
||||||
@Override
|
@Override
|
||||||
public List<ItemStack> getDroppedStacks(BlockState state, LootContext.Builder builder) {
|
public List<ItemStack> getDroppedStacks(BlockState state, LootContext.Builder builder) {
|
||||||
if (state.isOf(this)) {
|
if (state.isOf(this)) {
|
||||||
BlockProperties.State currentState = state.get(BlockProperties.STATE);
|
BlockProperties.PedestalState currentState = state.get(BlockProperties.PEDESTAL_STATE);
|
||||||
if (currentState.equals(BlockProperties.State.BOTTOM) || currentState.equals(BlockProperties.State.PILLAR)) {
|
if (currentState.equals(BlockProperties.PedestalState.BOTTOM) || currentState.equals(BlockProperties.PedestalState.PILLAR)) {
|
||||||
return Lists.newArrayList();
|
return Lists.newArrayList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,29 +29,31 @@ import net.minecraft.world.BlockView;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.WorldAccess;
|
import net.minecraft.world.WorldAccess;
|
||||||
import ru.betterend.blocks.BlockProperties;
|
import ru.betterend.blocks.BlockProperties;
|
||||||
import ru.betterend.blocks.BlockProperties.State;
|
import ru.betterend.blocks.BlockProperties.PedestalState;
|
||||||
import ru.betterend.blocks.entities.PedestalBlockEntity;
|
import ru.betterend.blocks.entities.PedestalBlockEntity;
|
||||||
import ru.betterend.util.BlocksHelper;
|
import ru.betterend.util.BlocksHelper;
|
||||||
|
|
||||||
public class BlockPedestal extends BlockBaseNotFull implements BlockEntityProvider {
|
public class BlockPedestal extends BlockBaseNotFull implements BlockEntityProvider {
|
||||||
public final static EnumProperty<State> STATE = BlockProperties.STATE;
|
public final static EnumProperty<PedestalState> STATE = BlockProperties.PEDESTAL_STATE;
|
||||||
public static final BooleanProperty HAS_ITEM = BlockProperties.HAS_ITEM;
|
public static final BooleanProperty HAS_ITEM = BlockProperties.HAS_ITEM;
|
||||||
|
|
||||||
private static final VoxelShape SHAPE_DEFAULT = VoxelShapes.cuboid(0, 0, 0, 16, 14, 16);
|
private static final VoxelShape SHAPE_PILLAR = Block.createCuboidShape(3, 0, 3, 13, 16, 13);
|
||||||
private static final VoxelShape SHAPE_PILLAR = VoxelShapes.cuboid(3, 0, 3, 13, 16, 13);
|
private static final VoxelShape SHAPE_DEFAULT;
|
||||||
|
private static final VoxelShape SHAPE_COLUMN;
|
||||||
|
private static final VoxelShape SHAPE_PEDESTAL_TOP;
|
||||||
|
private static final VoxelShape SHAPE_COLUMN_TOP;
|
||||||
private static final VoxelShape SHAPE_BOTTOM;
|
private static final VoxelShape SHAPE_BOTTOM;
|
||||||
private static final VoxelShape SHAPE_TOP;
|
|
||||||
|
|
||||||
public BlockPedestal(Block parent) {
|
public BlockPedestal(Block parent) {
|
||||||
super(FabricBlockSettings.copyOf(parent));
|
super(FabricBlockSettings.copyOf(parent));
|
||||||
this.setDefaultState(stateManager.getDefaultState().with(STATE, State.DEFAULT).with(HAS_ITEM, false));
|
this.setDefaultState(stateManager.getDefaultState().with(STATE, PedestalState.DEFAULT).with(HAS_ITEM, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
||||||
if (world.isClient || !state.isOf(this)) return ActionResult.CONSUME;
|
if (world.isClient || !state.isOf(this)) return ActionResult.CONSUME;
|
||||||
State currentState = state.get(STATE);
|
PedestalState currentState = state.get(STATE);
|
||||||
if (currentState.equals(State.BOTTOM) || currentState.equals(State.PILLAR)) {
|
if (currentState.equals(PedestalState.BOTTOM) || currentState.equals(PedestalState.PILLAR)) {
|
||||||
return ActionResult.PASS;
|
return ActionResult.PASS;
|
||||||
}
|
}
|
||||||
BlockEntity blockEntity = world.getBlockEntity(pos);
|
BlockEntity blockEntity = world.getBlockEntity(pos);
|
||||||
|
@ -79,47 +81,73 @@ public class BlockPedestal extends BlockBaseNotFull implements BlockEntityProvid
|
||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public BlockState getPlacementState(ItemPlacementContext context) {
|
public BlockState getPlacementState(ItemPlacementContext context) {
|
||||||
|
World world = context.getWorld();
|
||||||
BlockPos pos = context.getBlockPos();
|
BlockPos pos = context.getBlockPos();
|
||||||
Block down = context.getWorld().getBlockState(pos.down()).getBlock();
|
BlockState upState = world.getBlockState(pos.up());
|
||||||
Block up = context.getWorld().getBlockState(pos.up()).getBlock();
|
Block down = world.getBlockState(pos.down()).getBlock();
|
||||||
if (down instanceof BlockPedestal && up instanceof BlockPedestal) {
|
boolean upSideSolid = upState.isSideSolidFullSquare(world, pos.up(), Direction.DOWN);
|
||||||
return this.getDefaultState().with(STATE, State.PILLAR);
|
boolean hasPedestalOver = upState.getBlock() instanceof BlockPedestal;
|
||||||
} else if (down instanceof BlockPedestal) {
|
boolean hasPedestalUnder = down instanceof BlockPedestal;
|
||||||
return this.getDefaultState().with(STATE, State.TOP);
|
if (!hasPedestalOver && hasPedestalUnder && upSideSolid) {
|
||||||
} else if (up instanceof BlockPedestal) {
|
return this.getDefaultState().with(STATE, PedestalState.COLUMN_TOP);
|
||||||
return this.getDefaultState().with(STATE, State.BOTTOM);
|
} else if (!hasPedestalUnder && upSideSolid) {
|
||||||
|
return this.getDefaultState().with(STATE, PedestalState.COLUMN);
|
||||||
|
} else if (hasPedestalUnder && hasPedestalOver) {
|
||||||
|
return this.getDefaultState().with(STATE, PedestalState.PILLAR);
|
||||||
|
} else if (hasPedestalUnder) {
|
||||||
|
return this.getDefaultState().with(STATE, PedestalState.PEDESTAL_TOP);
|
||||||
|
} else if (hasPedestalOver) {
|
||||||
|
return this.getDefaultState().with(STATE, PedestalState.BOTTOM);
|
||||||
}
|
}
|
||||||
return this.getDefaultState();
|
return this.getDefaultState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState newState, WorldAccess world, BlockPos pos, BlockPos posFrom) {
|
public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState newState, WorldAccess world, BlockPos pos, BlockPos posFrom) {
|
||||||
|
BlockState updated = this.getUpdatedState(state, direction, newState, world, pos, posFrom);
|
||||||
|
if (!updated.isOf(this)) return updated;
|
||||||
|
if (!this.isPlaceable(updated)) {
|
||||||
|
this.moveStoredStack(world, updated, pos);
|
||||||
|
}
|
||||||
|
return updated;
|
||||||
|
}
|
||||||
|
|
||||||
|
private BlockState getUpdatedState(BlockState state, Direction direction, BlockState newState, WorldAccess world, BlockPos pos, BlockPos posFrom) {
|
||||||
|
if (!state.isOf(this)) return state.getStateForNeighborUpdate(direction, newState, world, pos, posFrom);
|
||||||
|
PedestalState currentState = state.get(STATE);
|
||||||
if (newState.getBlock() instanceof BlockPedestal) {
|
if (newState.getBlock() instanceof BlockPedestal) {
|
||||||
if (direction.equals(Direction.DOWN)) {
|
if (direction.equals(Direction.DOWN)) {
|
||||||
if (world.getBlockState(pos.up()).getBlock() instanceof BlockPedestal) {
|
if (currentState == PedestalState.BOTTOM) {
|
||||||
this.moveStoredStack(world, state, pos);
|
return state.with(STATE, PedestalState.PILLAR);
|
||||||
return state.with(STATE, State.PILLAR);
|
} else if (currentState == PedestalState.COLUMN) {
|
||||||
|
return state.with(STATE, PedestalState.COLUMN_TOP);
|
||||||
}
|
}
|
||||||
return state.with(STATE, State.TOP);
|
return state.with(STATE, PedestalState.PEDESTAL_TOP);
|
||||||
} else if (direction.equals(Direction.UP)) {
|
} else if (direction.equals(Direction.UP)) {
|
||||||
this.moveStoredStack(world, state, pos);
|
if (currentState == PedestalState.PEDESTAL_TOP) {
|
||||||
if (world.getBlockState(pos.down()).getBlock() instanceof BlockPedestal) {
|
return state.with(STATE, PedestalState.PILLAR);
|
||||||
return state.with(STATE, State.PILLAR);
|
|
||||||
}
|
}
|
||||||
return state.with(STATE, State.BOTTOM);
|
return state.with(STATE, PedestalState.BOTTOM);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (direction.equals(Direction.DOWN)) {
|
if (direction.equals(Direction.DOWN)) {
|
||||||
if (world.getBlockState(pos.up()).getBlock() instanceof BlockPedestal) {
|
if (currentState == PedestalState.COLUMN_TOP) {
|
||||||
this.moveStoredStack(world, state, pos);
|
return state.with(STATE, PedestalState.COLUMN);
|
||||||
return state.with(STATE, State.BOTTOM);
|
|
||||||
}
|
}
|
||||||
return state.with(STATE, State.DEFAULT);
|
if (currentState == PedestalState.PILLAR) {
|
||||||
|
return state.with(STATE, PedestalState.BOTTOM);
|
||||||
|
}
|
||||||
|
return state.with(STATE, PedestalState.DEFAULT);
|
||||||
} else if (direction.equals(Direction.UP)) {
|
} else if (direction.equals(Direction.UP)) {
|
||||||
if (world.getBlockState(pos.down()).getBlock() instanceof BlockPedestal) {
|
boolean upSideSolid = newState.isSideSolidFullSquare(world, posFrom, Direction.DOWN);
|
||||||
return state.with(STATE, State.TOP);
|
if (currentState == PedestalState.PEDESTAL_TOP && upSideSolid) {
|
||||||
|
return state.with(STATE, PedestalState.COLUMN_TOP);
|
||||||
|
} else if (currentState == PedestalState.COLUMN_TOP || currentState == PedestalState.PILLAR) {
|
||||||
|
return state.with(STATE, PedestalState.PEDESTAL_TOP);
|
||||||
|
} else if (upSideSolid) {
|
||||||
|
return state.with(STATE, PedestalState.COLUMN);
|
||||||
}
|
}
|
||||||
return state.with(STATE, State.DEFAULT);
|
return state.with(STATE, PedestalState.DEFAULT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return super.getStateForNeighborUpdate(state, direction, newState, world, pos, posFrom);
|
return super.getStateForNeighborUpdate(state, direction, newState, world, pos, posFrom);
|
||||||
|
@ -129,8 +157,8 @@ public class BlockPedestal extends BlockBaseNotFull implements BlockEntityProvid
|
||||||
public List<ItemStack> getDroppedStacks(BlockState state, LootContext.Builder builder) {
|
public List<ItemStack> getDroppedStacks(BlockState state, LootContext.Builder builder) {
|
||||||
List<ItemStack> drop = super.getDroppedStacks(state, builder);
|
List<ItemStack> drop = super.getDroppedStacks(state, builder);
|
||||||
if (state.isOf(this)) {
|
if (state.isOf(this)) {
|
||||||
State currentState = state.get(STATE);
|
PedestalState currentState = state.get(STATE);
|
||||||
if (currentState.equals(State.BOTTOM) || currentState.equals(State.PILLAR)) {
|
if (currentState.equals(PedestalState.BOTTOM) || currentState.equals(PedestalState.PILLAR)) {
|
||||||
return drop;
|
return drop;
|
||||||
} else {
|
} else {
|
||||||
BlockEntity blockEntity = builder.getNullable(LootContextParameters.BLOCK_ENTITY);
|
BlockEntity blockEntity = builder.getNullable(LootContextParameters.BLOCK_ENTITY);
|
||||||
|
@ -162,9 +190,11 @@ public class BlockPedestal extends BlockBaseNotFull implements BlockEntityProvid
|
||||||
|
|
||||||
private void moveStoredStack(WorldAccess world, ItemStack stack, BlockState state, BlockPos pos) {
|
private void moveStoredStack(WorldAccess world, ItemStack stack, BlockState state, BlockPos pos) {
|
||||||
BlockEntity blockEntity = world.getBlockEntity(pos);
|
BlockEntity blockEntity = world.getBlockEntity(pos);
|
||||||
if (state.get(STATE).equals(State.PILLAR)) {
|
if (state.get(STATE).equals(PedestalState.PILLAR)) {
|
||||||
BlockPos upPos = pos.up();
|
BlockPos upPos = pos.up();
|
||||||
this.moveStoredStack(world, stack, world.getBlockState(upPos), upPos);
|
this.moveStoredStack(world, stack, world.getBlockState(upPos), upPos);
|
||||||
|
} else if (!this.isPlaceable(state)) {
|
||||||
|
this.dropStoredStack(world, stack, pos);
|
||||||
} else if (blockEntity instanceof PedestalBlockEntity) {
|
} else if (blockEntity instanceof PedestalBlockEntity) {
|
||||||
PedestalBlockEntity pedestal = (PedestalBlockEntity) blockEntity;
|
PedestalBlockEntity pedestal = (PedestalBlockEntity) blockEntity;
|
||||||
if (pedestal.isEmpty()) {
|
if (pedestal.isEmpty()) {
|
||||||
|
@ -193,6 +223,15 @@ public class BlockPedestal extends BlockBaseNotFull implements BlockEntityProvid
|
||||||
return this.getDropPos(world, pos.up());
|
return this.getDropPos(world, pos.up());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean isPlaceable(BlockState state) {
|
||||||
|
if (!state.isOf(this)) return false;
|
||||||
|
PedestalState currentState = state.get(STATE);
|
||||||
|
return currentState != PedestalState.BOTTOM &&
|
||||||
|
currentState != PedestalState.COLUMN &&
|
||||||
|
currentState != PedestalState.PILLAR &&
|
||||||
|
currentState != PedestalState.COLUMN_TOP;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) {
|
||||||
if (state.isOf(this)) {
|
if (state.isOf(this)) {
|
||||||
|
@ -200,12 +239,18 @@ public class BlockPedestal extends BlockBaseNotFull implements BlockEntityProvid
|
||||||
case BOTTOM: {
|
case BOTTOM: {
|
||||||
return SHAPE_BOTTOM;
|
return SHAPE_BOTTOM;
|
||||||
}
|
}
|
||||||
case TOP: {
|
case PEDESTAL_TOP: {
|
||||||
return SHAPE_TOP;
|
return SHAPE_PEDESTAL_TOP;
|
||||||
|
}
|
||||||
|
case COLUMN_TOP: {
|
||||||
|
return SHAPE_COLUMN_TOP;
|
||||||
}
|
}
|
||||||
case PILLAR: {
|
case PILLAR: {
|
||||||
return SHAPE_PILLAR;
|
return SHAPE_PILLAR;
|
||||||
}
|
}
|
||||||
|
case COLUMN: {
|
||||||
|
return SHAPE_COLUMN;
|
||||||
|
}
|
||||||
default: {
|
default: {
|
||||||
return SHAPE_DEFAULT;
|
return SHAPE_DEFAULT;
|
||||||
}
|
}
|
||||||
|
@ -225,10 +270,14 @@ public class BlockPedestal extends BlockBaseNotFull implements BlockEntityProvid
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
static {
|
||||||
VoxelShape basin = VoxelShapes.cuboid(0, 0, 0, 16, 4, 16);
|
VoxelShape basin = Block.createCuboidShape(0, 0, 0, 16, 4, 16);
|
||||||
VoxelShape top = VoxelShapes.cuboid(1, 12, 1, 15, 14, 15);
|
VoxelShape pedestal_top = Block.createCuboidShape(1, 12, 1, 15, 14, 15);
|
||||||
VoxelShape pillar = VoxelShapes.cuboid(3, 0, 3, 13, 14, 13);
|
VoxelShape column_top = Block.createCuboidShape(1, 14, 1, 15, 16, 15);
|
||||||
|
VoxelShape pillar = Block.createCuboidShape(3, 0, 3, 13, 14, 13);
|
||||||
|
SHAPE_DEFAULT = VoxelShapes.union(basin, pillar, pedestal_top);
|
||||||
|
SHAPE_PEDESTAL_TOP = VoxelShapes.union(pillar, pedestal_top);
|
||||||
|
SHAPE_COLUMN_TOP = VoxelShapes.union(SHAPE_PILLAR, column_top);
|
||||||
|
SHAPE_COLUMN = VoxelShapes.union(basin, SHAPE_PILLAR, column_top);
|
||||||
SHAPE_BOTTOM = VoxelShapes.union(basin, SHAPE_PILLAR);
|
SHAPE_BOTTOM = VoxelShapes.union(basin, SHAPE_PILLAR);
|
||||||
SHAPE_TOP = VoxelShapes.union(top, pillar);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
"model": "betterend:block/eternal_pedestal_default_active_7"
|
"model": "betterend:block/eternal_pedestal_default_active_7"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"state=top,active=false": [
|
"state=pedestal_top,active=false": [
|
||||||
{
|
{
|
||||||
"model": "betterend:block/eternal_pedestal_top_1"
|
"model": "betterend:block/eternal_pedestal_top_1"
|
||||||
},
|
},
|
||||||
|
@ -69,7 +69,7 @@
|
||||||
"model": "betterend:block/eternal_pedestal_top_7"
|
"model": "betterend:block/eternal_pedestal_top_7"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"state=top,active=true": [
|
"state=pedestal_top,active=true": [
|
||||||
{
|
{
|
||||||
"model": "betterend:block/eternal_pedestal_top_active_1"
|
"model": "betterend:block/eternal_pedestal_top_active_1"
|
||||||
},
|
},
|
||||||
|
@ -92,15 +92,17 @@
|
||||||
"model": "betterend:block/eternal_pedestal_top_active_7"
|
"model": "betterend:block/eternal_pedestal_top_active_7"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"state=bottom": [
|
"state=column": {
|
||||||
{
|
"model": "betterend:block/eternal_pedestal_column"
|
||||||
"model": "betterend:block/eternal_pedestal_bottom"
|
},
|
||||||
}
|
"state=column_top": {
|
||||||
],
|
"model": "betterend:block/eternal_pedestal_column_top"
|
||||||
"state=pillar": [
|
},
|
||||||
{
|
"state=bottom": {
|
||||||
"model": "betterend:block/eternal_pedestal_pillar"
|
"model": "betterend:block/eternal_pedestal_bottom"
|
||||||
}
|
},
|
||||||
]
|
"state=pillar": {
|
||||||
|
"model": "betterend:block/eternal_pedestal_pillar"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"parent": "betterend:block/pedestal_column",
|
||||||
|
"textures": {
|
||||||
|
"base": "betterend:block/flavolite_polished",
|
||||||
|
"pillar": "betterend:block/flavolite_pillar_side",
|
||||||
|
"bottom": "betterend:block/flavolite_polished"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"parent": "betterend:block/pedestal_column_top",
|
||||||
|
"textures": {
|
||||||
|
"base": "betterend:block/flavolite_polished",
|
||||||
|
"pillar": "betterend:block/flavolite_pillar_side"
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,10 +11,10 @@
|
||||||
"faces": {
|
"faces": {
|
||||||
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" },
|
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" },
|
||||||
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom" },
|
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom" },
|
||||||
"north": { "uv": [ 0, 0, 16, 3 ], "texture": "#base" },
|
"north": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" },
|
||||||
"south": { "uv": [ 0, 0, 16, 3 ], "texture": "#base" },
|
"south": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" },
|
||||||
"west": { "uv": [ 0, 0, 16, 3 ], "texture": "#base" },
|
"west": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" },
|
||||||
"east": { "uv": [ 0, 0, 16, 3 ], "texture": "#base" }
|
"east": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -23,10 +23,10 @@
|
||||||
"to": [ 14, 4, 14 ],
|
"to": [ 14, 4, 14 ],
|
||||||
"faces": {
|
"faces": {
|
||||||
"up": { "uv": [ 2, 2, 14, 14 ], "texture": "#bottom" },
|
"up": { "uv": [ 2, 2, 14, 14 ], "texture": "#bottom" },
|
||||||
"north": { "uv": [ 3, 3, 14, 4 ], "texture": "#base" },
|
"north": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" },
|
||||||
"south": { "uv": [ 3, 3, 14, 4 ], "texture": "#base" },
|
"south": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" },
|
||||||
"west": { "uv": [ 3, 3, 14, 4 ], "texture": "#base" },
|
"west": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" },
|
||||||
"east": { "uv": [ 3, 3, 14, 4 ], "texture": "#base" }
|
"east": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:block/block",
|
||||||
|
"textures": {
|
||||||
|
"particle": "#base"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"__comment": "basin_1",
|
||||||
|
"from": [ 0, 0, 0 ],
|
||||||
|
"to": [ 16, 3, 16 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" },
|
||||||
|
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom" },
|
||||||
|
"north": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" },
|
||||||
|
"south": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" },
|
||||||
|
"west": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" },
|
||||||
|
"east": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "basin_2",
|
||||||
|
"from": [ 2, 3, 2 ],
|
||||||
|
"to": [ 14, 4, 14 ],
|
||||||
|
"faces": {
|
||||||
|
"up": { "uv": [ 2, 2, 14, 14 ], "texture": "#bottom" },
|
||||||
|
"north": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" },
|
||||||
|
"south": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" },
|
||||||
|
"west": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" },
|
||||||
|
"east": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "pillar",
|
||||||
|
"from": [ 3, 4, 3 ],
|
||||||
|
"to": [ 13, 14, 13 ],
|
||||||
|
"faces": {
|
||||||
|
"north": { "uv": [ 3, 4, 13, 14 ], "texture": "#pillar" },
|
||||||
|
"south": { "uv": [ 3, 4, 13, 14 ], "texture": "#pillar" },
|
||||||
|
"west": { "uv": [ 3, 4, 13, 14 ], "texture": "#pillar" },
|
||||||
|
"east": { "uv": [ 3, 4, 13, 14 ], "texture": "#pillar" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "top",
|
||||||
|
"from": [ 1, 14, 1 ],
|
||||||
|
"to": [ 15, 16, 15 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 1, 1, 15, 15 ], "texture": "#base" },
|
||||||
|
"north": { "uv": [ 1, 14, 15, 16 ], "texture": "#base" },
|
||||||
|
"south": { "uv": [ 1, 14, 15, 16 ], "texture": "#base" },
|
||||||
|
"west": { "uv": [ 1, 14, 15, 16 ], "texture": "#base" },
|
||||||
|
"east": { "uv": [ 1, 14, 15, 16 ], "texture": "#base" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:block/block",
|
||||||
|
"textures": {
|
||||||
|
"particle": "#base"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"__comment": "pillar",
|
||||||
|
"from": [ 3, 0, 3 ],
|
||||||
|
"to": [ 13, 14, 13 ],
|
||||||
|
"faces": {
|
||||||
|
"north": { "uv": [ 3, 0, 13, 14 ], "texture": "#pillar" },
|
||||||
|
"south": { "uv": [ 3, 0, 13, 14 ], "texture": "#pillar" },
|
||||||
|
"west": { "uv": [ 3, 0, 13, 14 ], "texture": "#pillar" },
|
||||||
|
"east": { "uv": [ 3, 0, 13, 14 ], "texture": "#pillar" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__comment": "top",
|
||||||
|
"from": [ 1, 14, 1 ],
|
||||||
|
"to": [ 15, 16, 15 ],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [ 1, 1, 15, 15 ], "texture": "#base" },
|
||||||
|
"north": { "uv": [ 1, 14, 15, 16 ], "texture": "#base" },
|
||||||
|
"south": { "uv": [ 1, 14, 15, 16 ], "texture": "#base" },
|
||||||
|
"west": { "uv": [ 1, 14, 15, 16 ], "texture": "#base" },
|
||||||
|
"east": { "uv": [ 1, 14, 15, 16 ], "texture": "#base" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -11,10 +11,10 @@
|
||||||
"faces": {
|
"faces": {
|
||||||
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" },
|
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom", "cullface": "down" },
|
||||||
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom" },
|
"up": { "uv": [ 0, 0, 16, 16 ], "texture": "#bottom" },
|
||||||
"north": { "uv": [ 0, 0, 16, 3 ], "texture": "#base" },
|
"north": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" },
|
||||||
"south": { "uv": [ 0, 0, 16, 3 ], "texture": "#base" },
|
"south": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" },
|
||||||
"west": { "uv": [ 0, 0, 16, 3 ], "texture": "#base" },
|
"west": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" },
|
||||||
"east": { "uv": [ 0, 0, 16, 3 ], "texture": "#base" }
|
"east": { "uv": [ 0, 0, 16, 3 ], "texture": "#bottom" }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -23,10 +23,10 @@
|
||||||
"to": [ 14, 4, 14 ],
|
"to": [ 14, 4, 14 ],
|
||||||
"faces": {
|
"faces": {
|
||||||
"up": { "uv": [ 2, 2, 14, 14 ], "texture": "#bottom" },
|
"up": { "uv": [ 2, 2, 14, 14 ], "texture": "#bottom" },
|
||||||
"north": { "uv": [ 3, 3, 14, 4 ], "texture": "#base" },
|
"north": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" },
|
||||||
"south": { "uv": [ 3, 3, 14, 4 ], "texture": "#base" },
|
"south": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" },
|
||||||
"west": { "uv": [ 3, 3, 14, 4 ], "texture": "#base" },
|
"west": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" },
|
||||||
"east": { "uv": [ 3, 3, 14, 4 ], "texture": "#base" }
|
"east": { "uv": [ 3, 3, 14, 4 ], "texture": "#bottom" }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
"from": [ 1, 12, 1 ],
|
"from": [ 1, 12, 1 ],
|
||||||
"to": [ 15, 14, 15 ],
|
"to": [ 15, 14, 15 ],
|
||||||
"faces": {
|
"faces": {
|
||||||
"down": { "uv": [ 1, 1, 15, 15 ], "texture": "#bottom" },
|
"down": { "uv": [ 1, 1, 15, 15 ], "texture": "#base" },
|
||||||
"up": { "uv": [ 1, 1, 15, 15 ], "texture": "#top" },
|
"up": { "uv": [ 1, 1, 15, 15 ], "texture": "#top" },
|
||||||
"north": { "uv": [ 1, 12, 15, 14 ], "texture": "#base" },
|
"north": { "uv": [ 1, 12, 15, 14 ], "texture": "#base" },
|
||||||
"south": { "uv": [ 1, 12, 15, 14 ], "texture": "#base" },
|
"south": { "uv": [ 1, 12, 15, 14 ], "texture": "#base" },
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"version": "${version}",
|
"version": "${version}",
|
||||||
|
|
||||||
"name": "Better End",
|
"name": "Better End",
|
||||||
"description": "More content for The End",
|
"description": "More content for The End.",
|
||||||
"authors": [
|
"authors": [
|
||||||
"paulevs",
|
"paulevs",
|
||||||
"Bulldog83"
|
"Bulldog83"
|
||||||
|
@ -38,8 +38,8 @@
|
||||||
],
|
],
|
||||||
|
|
||||||
"depends": {
|
"depends": {
|
||||||
"fabricloader": ">=0.7.4",
|
"fabricloader": ">=0.10.0",
|
||||||
"fabric": "*",
|
"fabric": ">=0.24.3",
|
||||||
"minecraft": "1.16.x"
|
"minecraft": "1.16.x"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue