Compare commits

..

3 commits

Author SHA1 Message Date
Ridanis
a60d11dde0 Lenses + Snail 2024-04-03 13:49:15 +02:00
Ridanis
4721f5128d VoxelShapes + Worm 2024-04-03 12:37:28 +02:00
Ridanis
c0dfed8fa3 Crops 2024-04-03 10:48:40 +02:00
48 changed files with 1752 additions and 391 deletions

View file

@ -29,6 +29,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
@ -39,6 +40,8 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.block.state.properties.DirectionProperty; import net.minecraft.world.level.block.state.properties.DirectionProperty;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.HitResult; import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import net.neoforged.api.distmarker.Dist; import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn; import net.neoforged.api.distmarker.OnlyIn;
@ -91,6 +94,24 @@ public class BlockAtomicReconstructor extends FullyDirectionalBlock.Container im
return InteractionResult.CONSUME; return InteractionResult.CONSUME;
} }
@Override
public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
switch (state.getValue(FACING)) {
case UP:
return VoxelShapes.AtomicReconstructorShapes.SHAPE_U;
case DOWN:
return VoxelShapes.AtomicReconstructorShapes.SHAPE_D;
case EAST:
return VoxelShapes.AtomicReconstructorShapes.SHAPE_E;
case SOUTH:
return VoxelShapes.AtomicReconstructorShapes.SHAPE_S;
case WEST:
return VoxelShapes.AtomicReconstructorShapes.SHAPE_W;
default:
return VoxelShapes.AtomicReconstructorShapes.SHAPE_N;
}
}
@Nullable @Nullable
@Override @Override
public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {

View file

@ -16,15 +16,20 @@ import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityTicker;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING;
public class BlockBioReactor extends DirectionalBlock.Container { public class BlockBioReactor extends DirectionalBlock.Container {
public BlockBioReactor() { public BlockBioReactor() {
@ -47,4 +52,18 @@ public class BlockBioReactor extends DirectionalBlock.Container {
public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
return this.openGui(world, player, pos, TileEntityBioReactor.class); return this.openGui(world, player, pos, TileEntityBioReactor.class);
} }
@Override
public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
switch (state.getValue(HORIZONTAL_FACING)) {
case EAST:
return VoxelShapes.BioReactorShapes.SHAPE_E;
case SOUTH:
return VoxelShapes.BioReactorShapes.SHAPE_S;
case WEST:
return VoxelShapes.BioReactorShapes.SHAPE_W;
default:
return VoxelShapes.BioReactorShapes.SHAPE_N;
}
}
} }

View file

@ -17,12 +17,15 @@ import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityTicker;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -59,4 +62,22 @@ public class BlockBreaker extends FullyDirectionalBlock.Container {
return this.openGui(world, player, pos, TileEntityBreaker.class); return this.openGui(world, player, pos, TileEntityBreaker.class);
} }
@Override
public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
switch (state.getValue(FACING)) {
case UP:
return VoxelShapes.BlockBreakerShapes.SHAPE_U;
case DOWN:
return VoxelShapes.BlockBreakerShapes.SHAPE_D;
case EAST:
return VoxelShapes.BlockBreakerShapes.SHAPE_E;
case SOUTH:
return VoxelShapes.BlockBreakerShapes.SHAPE_S;
case WEST:
return VoxelShapes.BlockBreakerShapes.SHAPE_W;
default:
return VoxelShapes.BlockBreakerShapes.SHAPE_N;
}
}
} }

View file

@ -103,18 +103,17 @@ public class BlockCrusher extends BlockContainerBase {
: 0; : 0;
} }
// TODO (Rid): Remove Shape @Override
// @Override public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
// public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { switch (state.getValue(HORIZONTAL_FACING)) {
// switch (state.getValue(HORIZONTAL_FACING)) { case EAST:
// case EAST: return VoxelShapes.GrinderShapes.SHAPE_E;
// return VoxelShapes.GrinderShapes.SHAPE_E; case SOUTH:
// case SOUTH: return VoxelShapes.GrinderShapes.SHAPE_S;
// return VoxelShapes.GrinderShapes.SHAPE_S; case WEST:
// case WEST: return VoxelShapes.GrinderShapes.SHAPE_W;
// return VoxelShapes.GrinderShapes.SHAPE_W; default:
// default: return VoxelShapes.GrinderShapes.SHAPE_N;
// return VoxelShapes.GrinderShapes.SHAPE_N; }
// } }
// }
} }

View file

@ -16,12 +16,15 @@ import net.minecraft.core.BlockPos;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityTicker; import net.minecraft.world.level.block.entity.BlockEntityTicker;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -51,4 +54,22 @@ public class BlockDropper extends FullyDirectionalBlock.Container {
return this.openGui(world, player, pos, TileEntityDropper.class); return this.openGui(world, player, pos, TileEntityDropper.class);
} }
@Override
public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
switch (state.getValue(FACING)) {
case UP:
return VoxelShapes.BlockBreakerShapes.SHAPE_U;
case DOWN:
return VoxelShapes.BlockBreakerShapes.SHAPE_D;
case EAST:
return VoxelShapes.BlockBreakerShapes.SHAPE_E;
case SOUTH:
return VoxelShapes.BlockBreakerShapes.SHAPE_S;
case WEST:
return VoxelShapes.BlockBreakerShapes.SHAPE_W;
default:
return VoxelShapes.BlockBreakerShapes.SHAPE_N;
}
}
} }

View file

@ -51,18 +51,17 @@ public class BlockFarmer extends DirectionalBlock.Container {
return this.openGui(worldIn, player, pos, TileEntityFarmer.class); return this.openGui(worldIn, player, pos, TileEntityFarmer.class);
} }
// TODO (Rid): Remove Shape @Override
// @Override public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
// public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { switch (state.getValue(FACING)) {
// switch (state.getValue(FACING)) { case EAST:
// case EAST: return VoxelShapes.FarmerShapes.SHAPE_E;
// return VoxelShapes.FarmerShapes.SHAPE_E; case SOUTH:
// case SOUTH: return VoxelShapes.FarmerShapes.SHAPE_S;
// return VoxelShapes.FarmerShapes.SHAPE_S; case WEST:
// case WEST: return VoxelShapes.FarmerShapes.SHAPE_W;
// return VoxelShapes.FarmerShapes.SHAPE_W; default:
// default: return VoxelShapes.FarmerShapes.SHAPE_N;
// return VoxelShapes.FarmerShapes.SHAPE_N; }
// } }
// }
} }

View file

@ -51,9 +51,8 @@ public class BlockFeeder extends BlockContainerBase {
return this.openGui(worldIn, player, pos, TileEntityFeeder.class); return this.openGui(worldIn, player, pos, TileEntityFeeder.class);
} }
// TODO (Rid): Remove Shape @Override
// @Override public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
// public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { return VoxelShapes.FEEDER_SHAPE;
// return VoxelShapes.FEEDER_SHAPE; }
// }
} }

View file

@ -55,22 +55,21 @@ public class BlockLongRangeBreaker extends FullyDirectionalBlock.Container {
return this.openGui(world, player, pos, TileEntityLongRangeBreaker.class); return this.openGui(world, player, pos, TileEntityLongRangeBreaker.class);
} }
// TODO (Rid) - Remove Shape @Override
// @Override public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
// public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { switch (state.getValue(FACING)) {
// switch (state.getValue(FACING)) { case UP:
// case UP: return VoxelShapes.BlockBreakerShapes.SHAPE_U;
// return VoxelShapes.DirectionalBlockBreakerShapes.SHAPE_U; case DOWN:
// case DOWN: return VoxelShapes.BlockBreakerShapes.SHAPE_D;
// return VoxelShapes.DirectionalBlockBreakerShapes.SHAPE_D; case EAST:
// case EAST: return VoxelShapes.BlockBreakerShapes.SHAPE_E;
// return VoxelShapes.DirectionalBlockBreakerShapes.SHAPE_E; case SOUTH:
// case SOUTH: return VoxelShapes.BlockBreakerShapes.SHAPE_S;
// return VoxelShapes.DirectionalBlockBreakerShapes.SHAPE_S; case WEST:
// case WEST: return VoxelShapes.BlockBreakerShapes.SHAPE_W;
// return VoxelShapes.DirectionalBlockBreakerShapes.SHAPE_W; default:
// default: return VoxelShapes.BlockBreakerShapes.SHAPE_N;
// return VoxelShapes.DirectionalBlockBreakerShapes.SHAPE_N; }
// } }
// }
} }

View file

@ -31,18 +31,19 @@ import java.util.stream.Stream;
public class CrystalClusterBlock extends FullyDirectionalBlock { public class CrystalClusterBlock extends FullyDirectionalBlock {
public static final DirectionProperty FACING = BlockStateProperties.FACING; public static final DirectionProperty FACING = BlockStateProperties.FACING;
public static final VoxelShape CRYSTAL_SHAPE = Stream.of( // TODO: Remove - Duplicate
Block.box(5, 4, 5, 10, 19, 10), Block.box(4, 0, 4, 11, 5, 11), // public static final VoxelShape CRYSTAL_SHAPE = Stream.of(
Block.box(3, 0, 3, 5, 4, 5), Block.box(10, 0, 3, 12, 2, 5), // Block.box(5, 4, 5, 10, 19, 10), Block.box(4, 0, 4, 11, 5, 11),
Block.box(12, 0, 4, 13, 1, 5), Block.box(11, 0, 5, 12, 1, 6), // Block.box(3, 0, 3, 5, 4, 5), Block.box(10, 0, 3, 12, 2, 5),
Block.box(10, 0, 10, 12, 3, 12), Block.box(3, 0, 10, 5, 1, 12), // Block.box(12, 0, 4, 13, 1, 5), Block.box(11, 0, 5, 12, 1, 6),
Block.box(9, 0, 3, 10, 3, 4), Block.box(8, 0, 2, 11, 1, 4), // Block.box(10, 0, 10, 12, 3, 12), Block.box(3, 0, 10, 5, 1, 12),
Block.box(4, 0, 2, 5, 2, 3), Block.box(5, 0, 3, 7, 1, 4), // Block.box(9, 0, 3, 10, 3, 4), Block.box(8, 0, 2, 11, 1, 4),
Block.box(2, 0, 4, 4, 1, 6), Block.box(3, 0, 5, 4, 3, 6.5), // Block.box(4, 0, 2, 5, 2, 3), Block.box(5, 0, 3, 7, 1, 4),
Block.box(3, 0, 9, 4, 2, 10), Block.box(2, 0, 8, 4, 1, 10), // Block.box(2, 0, 4, 4, 1, 6), Block.box(3, 0, 5, 4, 3, 6.5),
Block.box(5, 0, 11, 7, 2, 13), Block.box(7, 0, 11, 11, 1, 13), // Block.box(3, 0, 9, 4, 2, 10), Block.box(2, 0, 8, 4, 1, 10),
Block.box(10, 0, 9, 13, 1, 11), Block.box(11, 0, 7, 12, 3, 9) // Block.box(5, 0, 11, 7, 2, 13), Block.box(7, 0, 11, 11, 1, 13),
).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR) ).get(); // Block.box(10, 0, 9, 13, 1, 11), Block.box(11, 0, 7, 12, 3, 9)
// ).reduce((v1, v2) -> Shapes.join(v1, v2, BooleanOp.OR) ).get();
public CrystalClusterBlock(Crystals crystal) { public CrystalClusterBlock(Crystals crystal) {
super(Block.Properties.of() super(Block.Properties.of()
@ -60,6 +61,6 @@ public class CrystalClusterBlock extends FullyDirectionalBlock {
@Override @Override
public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
return CRYSTAL_SHAPE; return VoxelShapes.CRYSTAL_CLUSTER_SHAPE;
} }
} }

View file

@ -63,7 +63,7 @@ public class ReconstructorRenderer implements BlockEntityRenderer<TileEntityAtom
} }
matrices.pushPose(); matrices.pushPose();
matrices.translate(0.5F, 0.5F, 0.5F); matrices.translate(0.5F, 0.5F, 0.45F);
matrices.mulPose(Axis.YP.rotationDegrees(rot)); matrices.mulPose(Axis.YP.rotationDegrees(rot));
matrices.mulPose(Axis.XP.rotationDegrees(pitch)); matrices.mulPose(Axis.XP.rotationDegrees(pitch));

View file

@ -46,7 +46,7 @@ public class RenderWorm extends EntityRenderer<EntityWorm> {
public void render(EntityWorm entity, float partialTicks, float p_225623_3_, PoseStack matrix, MultiBufferSource buffer, int light) { public void render(EntityWorm entity, float partialTicks, float p_225623_3_, PoseStack matrix, MultiBufferSource buffer, int light) {
boolean isSnail = entity.getCustomName().getString().equalsIgnoreCase("snail mail"); boolean isSnail = entity.getCustomName().getString().equalsIgnoreCase("snail mail");
matrix.pushPose(); matrix.pushPose();
matrix.translate(0, 0.7F, 0); matrix.translate(0, 0.75F, 0);
double boop = Util.getMillis() / 70D; double boop = Util.getMillis() / 70D;
matrix.mulPose(Axis.YP.rotationDegrees(-(float) (boop % 360))); matrix.mulPose(Axis.YP.rotationDegrees(-(float) (boop % 360)));
matrix.translate(0,0,0.4); matrix.translate(0,0,0.4);

View file

@ -11,73 +11,85 @@
}, },
"elements": [ "elements": [
{ {
"from": [0, 15, 0], "from": [0, 4, 4],
"to": [1, 16, 16], "to": [1, 12, 12],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 23, 8]}, "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]},
"faces": { "faces": {
"north": {"uv": [15, 0, 16, 1], "texture": "#base", "cullface": "north"}, "north": {"uv": [4, 4, 5, 12], "texture": "#back"},
"east": {"uv": [15, 0, 16, 16], "rotation": 270, "texture": "#base"}, "south": {"uv": [11, 4, 12, 12], "texture": "#back"},
"south": {"uv": [0, 0, 1, 1], "texture": "#base", "cullface": "south"}, "west": {"uv": [4, 4, 12, 12], "texture": "#back", "cullface": "west"},
"west": {"uv": [15, 0, 16, 16], "rotation": 90, "texture": "#base", "cullface": "west"}, "up": {"uv": [4, 4, 12, 5], "rotation": 90, "texture": "#back"},
"up": {"uv": [15, 0, 16, 16], "rotation": 180, "texture": "#base", "cullface": "up"}, "down": {"uv": [12, 11, 4, 12], "rotation": 90, "texture": "#back"}
"down": {"uv": [15, 0, 16, 16], "texture": "#base"}
} }
}, },
{ {
"from": [15, 15, 0], "from": [1, 1, 1],
"to": [16, 16, 16], "to": [15, 15, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [23, 23, 8]}, "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": { "faces": {
"north": {"uv": [0, 0, 1, 1], "texture": "#base", "cullface": "north"}, "north": {"uv": [1, 1, 15, 15], "rotation": 180, "texture": "#front"},
"east": {"uv": [15, 0, 16, 16], "rotation": 90, "texture": "#base", "cullface": "east"}, "east": {"uv": [1, 1, 15, 15], "texture": "#side"},
"south": {"uv": [15, 0, 16, 1], "texture": "#base", "cullface": "south"}, "south": {"uv": [1, 1, 15, 15], "texture": "#5"},
"west": {"uv": [15, 0, 16, 16], "rotation": 270, "texture": "#base"}, "west": {"uv": [1, 1, 15, 15], "texture": "#base"},
"up": {"uv": [15, 0, 16, 16], "texture": "#base", "cullface": "up"}, "up": {"uv": [1, 1, 15, 15], "texture": "#top"},
"down": {"uv": [15, 0, 16, 16], "rotation": 180, "texture": "#base"} "down": {"uv": [1, 1, 15, 15], "rotation": 180, "texture": "#top"}
} }
}, },
{ {
"from": [1, 15, 0], "from": [0, 1, 0],
"to": [15, 16, 1], "to": [1, 15, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 23, 8]}, "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": { "faces": {
"north": {"uv": [1, 0, 15, 1], "texture": "#base", "cullface": "north"}, "north": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "north"},
"south": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#base"}, "east": {"uv": [15, 1, 16, 15], "texture": "#base"},
"up": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#base", "cullface": "up"}, "south": {"uv": [15, 1, 16, 15], "texture": "#base"},
"down": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#base"} "west": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "west"}
} }
}, },
{ {
"from": [1, 15, 15], "from": [15, 1, 0],
"to": [15, 16, 16], "to": [16, 15, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 23, 23]}, "rotation": {"angle": 0, "axis": "y", "origin": [23, 8, 8]},
"faces": { "faces": {
"north": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#base"}, "north": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "north"},
"south": {"uv": [1, 0, 15, 1], "texture": "#base", "cullface": "south"}, "east": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "east"},
"up": {"uv": [1, 0, 15, 1], "texture": "#base", "cullface": "up"}, "south": {"uv": [0, 1, 1, 15], "texture": "#base"},
"down": {"uv": [1, 0, 15, 1], "texture": "#base"} "west": {"uv": [0, 1, 1, 15], "texture": "#base"}
} }
}, },
{ {
"from": [1, 0, 15], "from": [15, 1, 15],
"to": [15, 1, 16], "to": [16, 15, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 23]}, "rotation": {"angle": 0, "axis": "y", "origin": [23, 8, 23]},
"faces": { "faces": {
"north": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#base"}, "north": {"uv": [15, 1, 16, 15], "texture": "#base"},
"south": {"uv": [1, 15, 15, 16], "texture": "#base", "cullface": "south"}, "east": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "east"},
"up": {"uv": [1, 15, 15, 16], "texture": "#base"}, "south": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "south"},
"down": {"uv": [1, 15, 15, 16], "texture": "#base", "cullface": "down"} "west": {"uv": [15, 1, 16, 15], "texture": "#base"}
} }
}, },
{ {
"from": [1, 0, 0], "from": [0, 1, 15],
"to": [15, 1, 1], "to": [1, 15, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 8]}, "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 23]},
"faces": { "faces": {
"north": {"uv": [1, 15, 15, 16], "texture": "#base", "cullface": "north"}, "north": {"uv": [0, 1, 1, 15], "texture": "#base"},
"south": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#base"}, "east": {"uv": [0, 1, 1, 15], "texture": "#base"},
"up": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#base"}, "south": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "south"},
"down": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#base", "cullface": "down"} "west": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "west"}
}
},
{
"from": [0, 0, 0],
"to": [1, 1, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]},
"faces": {
"north": {"uv": [15, 15, 16, 16], "texture": "#base", "cullface": "north"},
"east": {"uv": [0, 0, 1, 16], "rotation": 90, "texture": "#base"},
"south": {"uv": [0, 15, 1, 16], "texture": "#base", "cullface": "south"},
"west": {"uv": [0, 0, 1, 16], "rotation": 270, "texture": "#base", "cullface": "west"},
"up": {"uv": [0, 0, 1, 16], "texture": "#base"},
"down": {"uv": [0, 0, 1, 16], "rotation": 180, "texture": "#base", "cullface": "down"}
} }
}, },
{ {
@ -94,135 +106,73 @@
} }
}, },
{ {
"from": [0, 0, 0], "from": [1, 0, 0],
"to": [1, 1, 16], "to": [15, 1, 1],
"faces": {
"north": {"uv": [15, 15, 16, 16], "texture": "#base", "cullface": "north"},
"east": {"uv": [0, 0, 1, 16], "rotation": 90, "texture": "#base"},
"south": {"uv": [0, 15, 1, 16], "texture": "#base", "cullface": "south"},
"west": {"uv": [0, 0, 1, 16], "rotation": 270, "texture": "#base", "cullface": "west"},
"up": {"uv": [0, 0, 1, 16], "texture": "#base"},
"down": {"uv": [0, 0, 1, 16], "rotation": 180, "texture": "#base", "cullface": "down"}
}
},
{
"from": [0, 1, 15],
"to": [1, 15, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 23]},
"faces": {
"north": {"uv": [0, 1, 1, 15], "texture": "#base"},
"east": {"uv": [0, 1, 1, 15], "texture": "#base"},
"south": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "south"},
"west": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "west"}
}
},
{
"from": [15, 1, 15],
"to": [16, 15, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [23, 9, 23]},
"faces": {
"north": {"uv": [15, 1, 16, 15], "texture": "#base"},
"east": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "east"},
"south": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "south"},
"west": {"uv": [15, 1, 16, 15], "texture": "#base"}
}
},
{
"from": [15, 1, 0],
"to": [16, 15, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [23, 9, 8]},
"faces": {
"north": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "north"},
"east": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "east"},
"south": {"uv": [0, 1, 1, 15], "texture": "#base"},
"west": {"uv": [0, 1, 1, 15], "texture": "#base"}
}
},
{
"from": [0, 1, 0],
"to": [1, 15, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 8]},
"faces": {
"north": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "north"},
"east": {"uv": [15, 1, 16, 15], "texture": "#base"},
"south": {"uv": [15, 1, 16, 15], "texture": "#base"},
"west": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "west"}
}
},
{
"from": [1, 14, 1],
"to": [15, 15, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 21, 8]},
"faces": {
"north": {"uv": [1, 1, 15, 2], "rotation": 180, "texture": "#front"},
"east": {"uv": [1, 1, 15, 2], "texture": "#side"},
"south": {"uv": [1, 1, 15, 2], "texture": "#back"},
"west": {"uv": [1, 1, 15, 2], "texture": "#side"},
"up": {"uv": [1, 1, 15, 15], "texture": "#top"},
"down": {"uv": [1, 1, 15, 15], "rotation": 180, "texture": "#base"}
}
},
{
"from": [1, 1, 1],
"to": [15, 2, 15],
"faces": {
"north": {"uv": [1, 14, 15, 15], "texture": "#front"},
"east": {"uv": [1, 14, 15, 15], "texture": "#side"},
"south": {"uv": [1, 14, 15, 15], "rotation": 180, "texture": "#back"},
"west": {"uv": [1, 14, 15, 15], "texture": "#side"},
"up": {"uv": [1, 1, 15, 15], "texture": "#base"},
"down": {"uv": [1, 1, 15, 15], "rotation": 180, "texture": "#top"}
}
},
{
"from": [14, 2, 1],
"to": [15, 14, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [22, 8, 8]},
"faces": {
"north": {"uv": [1, 2, 2, 14], "texture": "#base"},
"east": {"uv": [1, 2, 15, 14], "texture": "#side"},
"south": {"uv": [14, 2, 15, 14], "texture": "#back"},
"west": {"uv": [2, 2, 16, 14], "texture": "#base"}
}
},
{
"from": [1, 2, 1],
"to": [2, 14, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 8]}, "rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 8]},
"faces": { "faces": {
"north": {"uv": [14, 2, 15, 14], "texture": "#base"}, "north": {"uv": [1, 15, 15, 16], "texture": "#base", "cullface": "north"},
"east": {"uv": [2, 2, 16, 14], "texture": "#base"}, "south": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#base"},
"south": {"uv": [1, 2, 2, 14], "texture": "#back"}, "up": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#base"},
"west": {"uv": [1, 2, 15, 14], "texture": "#back"} "down": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#base", "cullface": "down"}
} }
}, },
{ {
"from": [2, 2, 14], "from": [1, 0, 15],
"to": [14, 14, 15], "to": [15, 1, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 22]}, "rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 23]},
"faces": { "faces": {
"north": {"uv": [2, 2, 14, 14], "texture": "#base"}, "north": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#base"},
"south": {"uv": [2, 2, 14, 14], "texture": "#5"} "south": {"uv": [1, 15, 15, 16], "texture": "#base", "cullface": "south"},
"up": {"uv": [1, 15, 15, 16], "texture": "#base"},
"down": {"uv": [1, 15, 15, 16], "texture": "#base", "cullface": "down"}
} }
}, },
{ {
"from": [2, 2, 1], "from": [1, 15, 15],
"to": [14, 14, 2], "to": [15, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 9]}, "rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 23]},
"faces": { "faces": {
"north": {"uv": [2, 2, 14, 14], "texture": "#front"}, "north": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#base"},
"south": {"uv": [2, 2, 14, 14], "texture": "#base"} "south": {"uv": [1, 0, 15, 1], "texture": "#base", "cullface": "south"},
"up": {"uv": [1, 0, 15, 1], "texture": "#base", "cullface": "up"},
"down": {"uv": [1, 0, 15, 1], "texture": "#base"}
} }
}, },
{ {
"from": [0, 4, 4], "from": [1, 15, 0],
"to": [1, 12, 12], "to": [15, 16, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 8]},
"faces": { "faces": {
"north": {"uv": [4, 4, 5, 12], "texture": "#back"}, "north": {"uv": [1, 0, 15, 1], "texture": "#base", "cullface": "north"},
"south": {"uv": [11, 4, 12, 12], "texture": "#back"}, "south": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#base"},
"west": {"uv": [4, 4, 12, 12], "texture": "#back", "cullface": "west"}, "up": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#base", "cullface": "up"},
"up": {"uv": [4, 4, 12, 5], "rotation": 90, "texture": "#back"}, "down": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#base"}
"down": {"uv": [12, 11, 4, 12], "rotation": 90, "texture": "#back"} }
},
{
"from": [15, 15, 0],
"to": [16, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [23, 8, 8]},
"faces": {
"north": {"uv": [0, 0, 1, 1], "texture": "#base", "cullface": "north"},
"east": {"uv": [15, 0, 16, 16], "rotation": 90, "texture": "#base", "cullface": "east"},
"south": {"uv": [15, 0, 16, 1], "texture": "#base", "cullface": "south"},
"west": {"uv": [15, 0, 16, 16], "rotation": 270, "texture": "#base"},
"up": {"uv": [15, 0, 16, 16], "texture": "#base", "cullface": "up"},
"down": {"uv": [15, 0, 16, 16], "rotation": 180, "texture": "#base"}
}
},
{
"from": [0, 15, 0],
"to": [1, 16, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
"faces": {
"north": {"uv": [15, 0, 16, 1], "texture": "#base", "cullface": "north"},
"east": {"uv": [15, 0, 16, 16], "rotation": 270, "texture": "#base"},
"south": {"uv": [0, 0, 1, 1], "texture": "#base", "cullface": "south"},
"west": {"uv": [15, 0, 16, 16], "rotation": 90, "texture": "#base", "cullface": "west"},
"up": {"uv": [15, 0, 16, 16], "rotation": 180, "texture": "#base", "cullface": "up"},
"down": {"uv": [15, 0, 16, 16], "texture": "#base"}
} }
} }
], ],

View file

@ -57,47 +57,51 @@
} }
}, },
{ {
"from": [0, 1, 15], "from": [0, 0, 15],
"to": [1, 15, 16], "to": [1, 15, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 23]}, "rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 23]},
"faces": { "faces": {
"north": {"uv": [0, 1, 1, 15], "texture": "#base"}, "north": {"uv": [0, 1, 1, 16], "texture": "#base"},
"east": {"uv": [0, 1, 1, 15], "texture": "#base"}, "east": {"uv": [0, 1, 1, 16], "texture": "#base"},
"south": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "south"}, "south": {"uv": [0, 1, 1, 16], "texture": "#base", "cullface": "south"},
"west": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "west"} "west": {"uv": [0, 1, 1, 16], "texture": "#base", "cullface": "west"},
"down": {"uv": [0, 0, 1, 1], "texture": "#base", "cullface": "down"}
} }
}, },
{ {
"from": [15, 1, 15], "from": [15, 0, 15],
"to": [16, 15, 16], "to": [16, 15, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [23, 9, 23]}, "rotation": {"angle": 0, "axis": "y", "origin": [23, 9, 23]},
"faces": { "faces": {
"north": {"uv": [15, 1, 16, 15], "texture": "#base"}, "north": {"uv": [15, 1, 16, 16], "texture": "#base"},
"east": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "east"}, "east": {"uv": [15, 1, 16, 16], "texture": "#base", "cullface": "east"},
"south": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "south"}, "south": {"uv": [15, 1, 16, 16], "texture": "#base", "cullface": "south"},
"west": {"uv": [15, 1, 16, 15], "texture": "#base"} "west": {"uv": [15, 1, 16, 16], "texture": "#base"},
"down": {"uv": [0, 0, 1, 1], "texture": "#base", "cullface": "down"}
} }
}, },
{ {
"from": [15, 1, 0], "from": [15, 0, 0],
"to": [16, 15, 1], "to": [16, 15, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [23, 9, 8]}, "rotation": {"angle": 0, "axis": "y", "origin": [23, 9, 8]},
"faces": { "faces": {
"north": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "north"}, "north": {"uv": [0, 1, 1, 16], "texture": "#base", "cullface": "north"},
"east": {"uv": [0, 1, 1, 15], "texture": "#base", "cullface": "east"}, "east": {"uv": [0, 1, 1, 16], "texture": "#base", "cullface": "east"},
"south": {"uv": [0, 1, 1, 15], "texture": "#base"}, "south": {"uv": [0, 1, 1, 16], "texture": "#base"},
"west": {"uv": [0, 1, 1, 15], "texture": "#base"} "west": {"uv": [0, 1, 1, 16], "texture": "#base"},
"down": {"uv": [0, 0, 1, 1], "texture": "#base", "cullface": "down"}
} }
}, },
{ {
"from": [0, 1, 0], "from": [0, 0, 0],
"to": [1, 15, 1], "to": [1, 15, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 8]}, "rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 8]},
"faces": { "faces": {
"north": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "north"}, "north": {"uv": [15, 1, 16, 16], "texture": "#base", "cullface": "north"},
"east": {"uv": [15, 1, 16, 15], "texture": "#base"}, "east": {"uv": [15, 1, 16, 16], "texture": "#base"},
"south": {"uv": [15, 1, 16, 15], "texture": "#base"}, "south": {"uv": [15, 1, 16, 16], "texture": "#base"},
"west": {"uv": [15, 1, 16, 15], "texture": "#base", "cullface": "west"} "west": {"uv": [15, 1, 16, 16], "texture": "#base", "cullface": "west"},
"down": {"uv": [0, 0, 1, 1], "texture": "#base", "cullface": "down"}
} }
}, },
{ {
@ -236,53 +240,6 @@
"up": {"uv": [2, 2, 8, 7], "texture": "#animation"}, "up": {"uv": [2, 2, 8, 7], "texture": "#animation"},
"down": {"uv": [0, 0, 12, 12], "texture": "#animation"} "down": {"uv": [0, 0, 12, 12], "texture": "#animation"}
} }
},
{
"from": [0, 0, 15],
"to": [1, 1, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 23]},
"faces": {
"north": {"uv": [2, 1, 3, 2], "texture": "#base"},
"east": {"uv": [2, 1, 3, 2], "texture": "#base"},
"south": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "south"},
"west": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "west"},
"down": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "down"}
}
},
{
"from": [15, 0, 15],
"to": [16, 1, 16],
"rotation": {"angle": 0, "axis": "y", "origin": [23, 8, 23]},
"faces": {
"north": {"uv": [2, 1, 3, 2], "texture": "#base"},
"east": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "east"},
"south": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "south"},
"west": {"uv": [2, 1, 3, 2], "texture": "#base"},
"down": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "down"}
}
},
{
"from": [15, 0, 0],
"to": [16, 1, 1],
"rotation": {"angle": 0, "axis": "y", "origin": [23, 8, 8]},
"faces": {
"north": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "north"},
"east": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "east"},
"south": {"uv": [2, 1, 3, 2], "texture": "#base"},
"west": {"uv": [2, 1, 3, 2], "texture": "#base"},
"down": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "down"}
}
},
{
"from": [0, 0, 0],
"to": [1, 1, 1],
"faces": {
"north": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "north"},
"east": {"uv": [2, 1, 3, 2], "texture": "#base"},
"south": {"uv": [2, 1, 3, 2], "texture": "#base"},
"west": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "west"},
"down": {"uv": [2, 1, 3, 2], "texture": "#base", "cullface": "down"}
}
} }
], ],
"display": { "display": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 240 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -1,19 +1,6 @@
{ {
"animation": { "animation": {
"frametime": 4, "interpolate": true,
"frames": [ "frametime": 10
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
]
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 683 B

View file

@ -0,0 +1,6 @@
{
"animation": {
"interpolate": true,
"frametime": 10
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 KiB

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 625 B