mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-13 05:54:17 +01:00
Back to fighting Minecarts
- Fixed Minecart Contraptions started on a powered rail facing in unwanted directions - Fixed powered rail Cart Assemblers not respecting the solid block rule of powered rails - Fixed Minecart contraption items not facing away from the player when placed - Polished every last bit of the belt uvs
This commit is contained in:
parent
62c3ae4040
commit
d61b840c5c
@ -58,7 +58,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
|
|||||||
|
|
||||||
protected Contraption contraption;
|
protected Contraption contraption;
|
||||||
protected boolean initialized;
|
protected boolean initialized;
|
||||||
private boolean prevPosInvalid;
|
protected boolean prevPosInvalid;
|
||||||
private boolean ticking;
|
private boolean ticking;
|
||||||
|
|
||||||
public AbstractContraptionEntity(EntityType<?> entityTypeIn, World worldIn) {
|
public AbstractContraptionEntity(EntityType<?> entityTypeIn, World worldIn) {
|
||||||
|
@ -64,6 +64,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||||||
protected boolean forceAngle;
|
protected boolean forceAngle;
|
||||||
private boolean isSerializingFurnaceCart;
|
private boolean isSerializingFurnaceCart;
|
||||||
private boolean attachedExtraInventories;
|
private boolean attachedExtraInventories;
|
||||||
|
private boolean manuallyPlaced;
|
||||||
|
|
||||||
public float prevYaw;
|
public float prevYaw;
|
||||||
public float yaw;
|
public float yaw;
|
||||||
@ -94,6 +95,14 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static OrientedContraptionEntity createAtYaw(World world, Contraption contraption,
|
||||||
|
Optional<Direction> initialOrientation, float initialYaw) {
|
||||||
|
OrientedContraptionEntity entity = create(world, contraption, initialOrientation);
|
||||||
|
entity.startAtYaw(initialYaw);
|
||||||
|
entity.manuallyPlaced = true;
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
public void setInitialOrientation(Direction direction) {
|
public void setInitialOrientation(Direction direction) {
|
||||||
dataManager.set(INITIAL_ORIENTATION, direction);
|
dataManager.set(INITIAL_ORIENTATION, direction);
|
||||||
}
|
}
|
||||||
@ -153,6 +162,11 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||||||
|
|
||||||
if (compound.contains("InitialOrientation"))
|
if (compound.contains("InitialOrientation"))
|
||||||
setInitialOrientation(NBTHelper.readEnum(compound, "InitialOrientation", Direction.class));
|
setInitialOrientation(NBTHelper.readEnum(compound, "InitialOrientation", Direction.class));
|
||||||
|
|
||||||
|
yaw = compound.getFloat("Yaw");
|
||||||
|
pitch = compound.getFloat("Pitch");
|
||||||
|
manuallyPlaced = compound.getBoolean("Placed");
|
||||||
|
|
||||||
if (compound.contains("ForceYaw"))
|
if (compound.contains("ForceYaw"))
|
||||||
startAtYaw(compound.getFloat("ForceYaw"));
|
startAtYaw(compound.getFloat("ForceYaw"));
|
||||||
|
|
||||||
@ -164,9 +178,6 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||||||
setMotion(Vec3d.ZERO);
|
setMotion(Vec3d.ZERO);
|
||||||
}
|
}
|
||||||
|
|
||||||
yaw = compound.getFloat("Yaw");
|
|
||||||
pitch = compound.getFloat("Pitch");
|
|
||||||
|
|
||||||
setCouplingId(
|
setCouplingId(
|
||||||
compound.contains("OnCoupling") ? NBTUtil.readUniqueId(compound.getCompound("OnCoupling")) : null);
|
compound.contains("OnCoupling") ? NBTUtil.readUniqueId(compound.getCompound("OnCoupling")) : null);
|
||||||
}
|
}
|
||||||
@ -188,6 +199,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||||||
forceAngle = false;
|
forceAngle = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
compound.putBoolean("Placed", manuallyPlaced);
|
||||||
compound.putFloat("Yaw", yaw);
|
compound.putFloat("Yaw", yaw);
|
||||||
compound.putFloat("Pitch", pitch);
|
compound.putFloat("Pitch", pitch);
|
||||||
|
|
||||||
@ -198,7 +210,7 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||||||
@Override
|
@Override
|
||||||
public void notifyDataManagerChange(DataParameter<?> key) {
|
public void notifyDataManagerChange(DataParameter<?> key) {
|
||||||
super.notifyDataManagerChange(key);
|
super.notifyDataManagerChange(key);
|
||||||
if (key == INITIAL_ORIENTATION && isInitialOrientationPresent())
|
if (key == INITIAL_ORIENTATION && isInitialOrientationPresent() && !manuallyPlaced)
|
||||||
startAtInitialYaw();
|
startAtInitialYaw();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -357,14 +369,16 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||||||
|
|
||||||
boolean rotating = false;
|
boolean rotating = false;
|
||||||
Vec3d movementVector = riding.getMotion();
|
Vec3d movementVector = riding.getMotion();
|
||||||
|
Vec3d locationDiff = riding.getPositionVec()
|
||||||
|
.subtract(riding.prevPosX, riding.prevPosY, riding.prevPosZ);
|
||||||
if (!(riding instanceof AbstractMinecartEntity))
|
if (!(riding instanceof AbstractMinecartEntity))
|
||||||
movementVector = getPositionVec().subtract(prevPosX, prevPosY, prevPosZ);
|
movementVector = locationDiff;
|
||||||
Vec3d motion = movementVector.normalize();
|
Vec3d motion = movementVector.normalize();
|
||||||
|
|
||||||
if (!isInitialOrientationPresent() && !world.isRemote) {
|
if (!isInitialOrientationPresent() && !world.isRemote) {
|
||||||
if (motion.length() > 0) {
|
if (locationDiff.length() > 0) {
|
||||||
Direction facingFromVector = Direction.getFacingFromVector(motion.x, motion.y, motion.z);
|
Direction facingFromVector =
|
||||||
|
Direction.getFacingFromVector(locationDiff.x, locationDiff.y, locationDiff.z);
|
||||||
if (initialYawOffset != -1)
|
if (initialYawOffset != -1)
|
||||||
facingFromVector = Direction.fromAngle(facingFromVector.getHorizontalAngle() - initialYawOffset);
|
facingFromVector = Direction.fromAngle(facingFromVector.getHorizontalAngle() - initialYawOffset);
|
||||||
if (facingFromVector.getAxis()
|
if (facingFromVector.getAxis()
|
||||||
@ -520,12 +534,12 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||||||
|
|
||||||
for (MatrixStack stack : matrixStacks)
|
for (MatrixStack stack : matrixStacks)
|
||||||
MatrixStacker.of(stack)
|
MatrixStacker.of(stack)
|
||||||
.nudge(getEntityId())
|
.nudge(getEntityId())
|
||||||
.centre()
|
.centre()
|
||||||
.rotateY(angleYaw)
|
.rotateY(angleYaw)
|
||||||
.rotateZ(anglePitch)
|
.rotateZ(anglePitch)
|
||||||
.rotateY(angleInitialYaw)
|
.rotateY(angleInitialYaw)
|
||||||
.unCentre();
|
.unCentre();
|
||||||
}
|
}
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
@ -541,7 +555,8 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||||||
private void repositionOnCart(float partialTicks, MatrixStack[] matrixStacks, Entity ridingEntity) {
|
private void repositionOnCart(float partialTicks, MatrixStack[] matrixStacks, Entity ridingEntity) {
|
||||||
Vec3d cartPos = getCartOffset(partialTicks, ridingEntity);
|
Vec3d cartPos = getCartOffset(partialTicks, ridingEntity);
|
||||||
|
|
||||||
if (cartPos == Vec3d.ZERO) return;
|
if (cartPos == Vec3d.ZERO)
|
||||||
|
return;
|
||||||
|
|
||||||
for (MatrixStack stack : matrixStacks)
|
for (MatrixStack stack : matrixStacks)
|
||||||
stack.translate(cartPos.x, cartPos.y, cartPos.z);
|
stack.translate(cartPos.x, cartPos.y, cartPos.z);
|
||||||
|
@ -92,15 +92,18 @@ public class CartAssemblerBlock extends AbstractRailBlock
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static Item getRailItem(BlockState state) {
|
private static Item getRailItem(BlockState state) {
|
||||||
return state.get(RAIL_TYPE).getItem();
|
return state.get(RAIL_TYPE)
|
||||||
|
.getItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BlockState getRailBlock(BlockState state) {
|
public static BlockState getRailBlock(BlockState state) {
|
||||||
AbstractRailBlock railBlock = (AbstractRailBlock) state.get(RAIL_TYPE).getBlock();
|
AbstractRailBlock railBlock = (AbstractRailBlock) state.get(RAIL_TYPE)
|
||||||
|
.getBlock();
|
||||||
BlockState railState = railBlock.getDefaultState()
|
BlockState railState = railBlock.getDefaultState()
|
||||||
.with(railBlock.getShapeProperty(), state.get(RAIL_SHAPE));
|
.with(railBlock.getShapeProperty(), state.get(RAIL_SHAPE));
|
||||||
if (railState.has(ControllerRailBlock.BACKWARDS)) {
|
if (railState.has(ControllerRailBlock.BACKWARDS)) {
|
||||||
railState = railState.with(ControllerRailBlock.BACKWARDS, state.get(RAIL_TYPE) == CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS);
|
railState = railState.with(ControllerRailBlock.BACKWARDS,
|
||||||
|
state.get(RAIL_TYPE) == CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS);
|
||||||
}
|
}
|
||||||
return railState;
|
return railState;
|
||||||
}
|
}
|
||||||
@ -145,11 +148,22 @@ public class CartAssemblerBlock extends AbstractRailBlock
|
|||||||
disassemble(world, pos, cart);
|
disassemble(world, pos, cart);
|
||||||
if (action == CartAssemblerAction.ASSEMBLE_ACCELERATE) {
|
if (action == CartAssemblerAction.ASSEMBLE_ACCELERATE) {
|
||||||
Direction facing = cart.getAdjustedHorizontalFacing();
|
Direction facing = cart.getAdjustedHorizontalFacing();
|
||||||
|
|
||||||
|
RailShape railShape = state.get(RAIL_SHAPE);
|
||||||
|
for (Direction d : Iterate.directionsInAxis(railShape == RailShape.EAST_WEST ? Axis.X : Axis.Z))
|
||||||
|
if (world.getBlockState(pos.offset(d))
|
||||||
|
.isNormalCube(world, pos.offset(d)))
|
||||||
|
facing = d.getOpposite();
|
||||||
|
|
||||||
float speed = getRailMaxSpeed(state, world, pos, cart);
|
float speed = getRailMaxSpeed(state, world, pos, cart);
|
||||||
cart.setMotion(facing.getXOffset() * speed, facing.getYOffset() * speed, facing.getZOffset() * speed);
|
cart.setMotion(facing.getXOffset() * speed, facing.getYOffset() * speed, facing.getZOffset() * speed);
|
||||||
}
|
}
|
||||||
if (action == CartAssemblerAction.ASSEMBLE_ACCELERATE_DIRECTIONAL) {
|
if (action == CartAssemblerAction.ASSEMBLE_ACCELERATE_DIRECTIONAL) {
|
||||||
Vec3i accelerationVector = ControllerRailBlock.getAccelerationVector(AllBlocks.CONTROLLER_RAIL.getDefaultState().with(ControllerRailBlock.SHAPE, state.get(RAIL_SHAPE)).with(ControllerRailBlock.BACKWARDS, state.get(RAIL_TYPE) == CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS));
|
Vec3i accelerationVector =
|
||||||
|
ControllerRailBlock.getAccelerationVector(AllBlocks.CONTROLLER_RAIL.getDefaultState()
|
||||||
|
.with(ControllerRailBlock.SHAPE, state.get(RAIL_SHAPE))
|
||||||
|
.with(ControllerRailBlock.BACKWARDS,
|
||||||
|
state.get(RAIL_TYPE) == CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS));
|
||||||
float speed = getRailMaxSpeed(state, world, pos, cart);
|
float speed = getRailMaxSpeed(state, world, pos, cart);
|
||||||
cart.setMotion(new Vec3d(accelerationVector).scale(speed));
|
cart.setMotion(new Vec3d(accelerationVector).scale(speed));
|
||||||
}
|
}
|
||||||
@ -192,7 +206,8 @@ public class CartAssemblerBlock extends AbstractRailBlock
|
|||||||
.isEmpty() ? CartAssemblerAction.ASSEMBLE_ACCELERATE : CartAssemblerAction.DISASSEMBLE;
|
.isEmpty() ? CartAssemblerAction.ASSEMBLE_ACCELERATE : CartAssemblerAction.DISASSEMBLE;
|
||||||
|
|
||||||
if (type == CartAssembleRailType.CONTROLLER_RAIL || type == CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS)
|
if (type == CartAssembleRailType.CONTROLLER_RAIL || type == CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS)
|
||||||
return powered ? CartAssemblerAction.ASSEMBLE_ACCELERATE_DIRECTIONAL : CartAssemblerAction.DISASSEMBLE_BRAKE;
|
return powered ? CartAssemblerAction.ASSEMBLE_ACCELERATE_DIRECTIONAL
|
||||||
|
: CartAssemblerAction.DISASSEMBLE_BRAKE;
|
||||||
|
|
||||||
return CartAssemblerAction.PASS;
|
return CartAssemblerAction.PASS;
|
||||||
}
|
}
|
||||||
@ -241,10 +256,9 @@ public class CartAssemblerBlock extends AbstractRailBlock
|
|||||||
.isCoupledThroughContraption())
|
.isCoupledThroughContraption())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
Optional<CartAssemblerTileEntity> assembler = getTileEntityOptional(world, pos);
|
Optional<CartAssemblerTileEntity> assembler = getTileEntityOptional(world, pos);
|
||||||
CartMovementMode mode = assembler.map(te -> CartMovementMode.values()[te.movementMode.value])
|
CartMovementMode mode = assembler.map(te -> CartMovementMode.values()[te.movementMode.value])
|
||||||
.orElse(CartMovementMode.ROTATE);
|
.orElse(CartMovementMode.ROTATE);
|
||||||
|
|
||||||
MountedContraption contraption = new MountedContraption(mode);
|
MountedContraption contraption = new MountedContraption(mode);
|
||||||
try {
|
try {
|
||||||
@ -485,15 +499,22 @@ public class CartAssemblerBlock extends AbstractRailBlock
|
|||||||
if (world.isRemote)
|
if (world.isRemote)
|
||||||
return ActionResultType.SUCCESS;
|
return ActionResultType.SUCCESS;
|
||||||
BlockPos pos = context.getPos();
|
BlockPos pos = context.getPos();
|
||||||
BlockState newState = state.with(RAIL_SHAPE, state.get(RAIL_SHAPE) == RailShape.NORTH_SOUTH ? RailShape.EAST_WEST : RailShape.NORTH_SOUTH);
|
BlockState newState = state.with(RAIL_SHAPE,
|
||||||
if (state.get(RAIL_TYPE) == CartAssembleRailType.CONTROLLER_RAIL || state.get(RAIL_TYPE) == CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS) {
|
state.get(RAIL_SHAPE) == RailShape.NORTH_SOUTH ? RailShape.EAST_WEST : RailShape.NORTH_SOUTH);
|
||||||
newState = newState.with(RAIL_TYPE, AllBlocks.CONTROLLER_RAIL.get().rotate(AllBlocks.CONTROLLER_RAIL.getDefaultState()
|
if (state.get(RAIL_TYPE) == CartAssembleRailType.CONTROLLER_RAIL
|
||||||
.with(ControllerRailBlock.SHAPE, state.get(RAIL_SHAPE)).with(ControllerRailBlock.BACKWARDS,
|
|| state.get(RAIL_TYPE) == CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS) {
|
||||||
state.get(RAIL_TYPE) == CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS), Rotation.CLOCKWISE_90)
|
newState = newState.with(RAIL_TYPE, AllBlocks.CONTROLLER_RAIL.get()
|
||||||
.get(ControllerRailBlock.BACKWARDS) ? CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS : CartAssembleRailType.CONTROLLER_RAIL);
|
.rotate(AllBlocks.CONTROLLER_RAIL.getDefaultState()
|
||||||
|
.with(ControllerRailBlock.SHAPE, state.get(RAIL_SHAPE))
|
||||||
|
.with(ControllerRailBlock.BACKWARDS,
|
||||||
|
state.get(RAIL_TYPE) == CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS),
|
||||||
|
Rotation.CLOCKWISE_90)
|
||||||
|
.get(ControllerRailBlock.BACKWARDS) ? CartAssembleRailType.CONTROLLER_RAIL_BACKWARDS
|
||||||
|
: CartAssembleRailType.CONTROLLER_RAIL);
|
||||||
}
|
}
|
||||||
context.getWorld().setBlockState(pos, newState, 3);
|
context.getWorld()
|
||||||
world.notifyNeighborsOfStateChange(pos.down(), this);
|
.setBlockState(pos, newState, 3);
|
||||||
|
world.notifyNeighborsOfStateChange(pos.down(), this);
|
||||||
return ActionResultType.SUCCESS;
|
return ActionResultType.SUCCESS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -169,7 +169,9 @@ public class MinecartContraptionItem extends Item {
|
|||||||
|
|
||||||
Contraption mountedContraption = Contraption.fromNBT(world, contraptionTag, false);
|
Contraption mountedContraption = Contraption.fromNBT(world, contraptionTag, false);
|
||||||
OrientedContraptionEntity contraptionEntity =
|
OrientedContraptionEntity contraptionEntity =
|
||||||
OrientedContraptionEntity.create(world, mountedContraption, intialOrientation);
|
newFacing == null ? OrientedContraptionEntity.create(world, mountedContraption, intialOrientation)
|
||||||
|
: OrientedContraptionEntity.createAtYaw(world, mountedContraption, intialOrientation,
|
||||||
|
newFacing.getHorizontalAngle());
|
||||||
|
|
||||||
contraptionEntity.startRiding(cart);
|
contraptionEntity.startRiding(cart);
|
||||||
contraptionEntity.setPosition(cart.getX(), cart.getY(), cart.getZ());
|
contraptionEntity.setPosition(cart.getX(), cart.getY(), cart.getZ());
|
||||||
@ -209,7 +211,8 @@ public class MinecartContraptionItem extends Item {
|
|||||||
OrientedContraptionEntity contraption = (OrientedContraptionEntity) passengers.get(0);
|
OrientedContraptionEntity contraption = (OrientedContraptionEntity) passengers.get(0);
|
||||||
|
|
||||||
if (!event.getWorld().isRemote) {
|
if (!event.getWorld().isRemote) {
|
||||||
player.inventory.placeItemBackInInventory(event.getWorld(), create(type, contraption).setDisplayName(entity.getCustomName()));
|
player.inventory.placeItemBackInInventory(event.getWorld(),
|
||||||
|
create(type, contraption).setDisplayName(entity.getCustomName()));
|
||||||
contraption.remove();
|
contraption.remove();
|
||||||
entity.remove();
|
entity.remove();
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
"name": "Bottom",
|
"name": "Bottom",
|
||||||
"from": [0.9, 3, 1],
|
"from": [0.9, 3, 1],
|
||||||
"to": [15.1, 5, 6.8],
|
"to": [15.1, 5, 6.8],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1, 6, 15, 7], "rotation": 180, "texture": "#0"},
|
"north": {"uv": [1, 6, 15, 7], "rotation": 180, "texture": "#0"},
|
||||||
"east": {"uv": [14, 0, 16, 6], "rotation": 270, "texture": "#0"},
|
"east": {"uv": [14, 0, 16, 6], "rotation": 270, "texture": "#0"},
|
||||||
@ -22,6 +23,7 @@
|
|||||||
"name": "Bottom",
|
"name": "Bottom",
|
||||||
"from": [2.9, 5, 2],
|
"from": [2.9, 5, 2],
|
||||||
"to": [13.1, 6, 6.8],
|
"to": [13.1, 6, 6.8],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"east": {"uv": [3, 0, 4, 5], "rotation": 270, "texture": "#0"},
|
"east": {"uv": [3, 0, 4, 5], "rotation": 270, "texture": "#0"},
|
||||||
"west": {"uv": [12, 0, 13, 5], "rotation": 90, "texture": "#0"},
|
"west": {"uv": [12, 0, 13, 5], "rotation": 90, "texture": "#0"},
|
||||||
@ -32,8 +34,9 @@
|
|||||||
"name": "Top",
|
"name": "Top",
|
||||||
"from": [0.9, 11, 1],
|
"from": [0.9, 11, 1],
|
||||||
"to": [15.1, 13, 10.1],
|
"to": [15.1, 13, 10.1],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1, 6, 15, 5], "rotation": 180, "texture": "#0"},
|
"north": {"uv": [1, 5, 15, 6], "rotation": 180, "texture": "#0"},
|
||||||
"east": {"uv": [14, 6, 16, 15], "rotation": 90, "texture": "#0"},
|
"east": {"uv": [14, 6, 16, 15], "rotation": 90, "texture": "#0"},
|
||||||
"west": {"uv": [0, 6, 2, 15], "rotation": 270, "texture": "#0"},
|
"west": {"uv": [0, 6, 2, 15], "rotation": 270, "texture": "#0"},
|
||||||
"up": {"uv": [1, 6, 15, 15], "texture": "#0"},
|
"up": {"uv": [1, 6, 15, 15], "texture": "#0"},
|
||||||
@ -44,6 +47,7 @@
|
|||||||
"name": "Top",
|
"name": "Top",
|
||||||
"from": [2.9, 10, 2],
|
"from": [2.9, 10, 2],
|
||||||
"to": [13.1, 11, 10.1],
|
"to": [13.1, 11, 10.1],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"east": {"uv": [3, 7, 4, 15], "rotation": 90, "texture": "#0"},
|
"east": {"uv": [3, 7, 4, 15], "rotation": 90, "texture": "#0"},
|
||||||
"west": {"uv": [12, 7, 13, 15], "rotation": 270, "texture": "#0"},
|
"west": {"uv": [12, 7, 13, 15], "rotation": 270, "texture": "#0"},
|
||||||
@ -54,19 +58,21 @@
|
|||||||
"name": "Side",
|
"name": "Side",
|
||||||
"from": [1, 4, 0],
|
"from": [1, 4, 0],
|
||||||
"to": [15, 12, 2],
|
"to": [15, 12, 2],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
|
"north": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
|
||||||
"east": {"uv": [14, 8, 16, 16], "rotation": 180, "texture": "#0"},
|
"east": {"uv": [14, 8, 16, 16], "rotation": 180, "texture": "#0"},
|
||||||
"south": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
|
"south": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
|
||||||
"west": {"uv": [0, 8, 2, 16], "rotation": 180, "texture": "#0"},
|
"west": {"uv": [0, 8, 2, 16], "rotation": 180, "texture": "#0"},
|
||||||
"up": {"uv": [1, 4, 15, 5], "rotation": 180, "texture": "#0"},
|
"up": {"uv": [1, 4, 15, 5], "texture": "#0"},
|
||||||
"down": {"uv": [1, 7, 15, 8], "rotation": 180, "texture": "#0"}
|
"down": {"uv": [1, 7, 15, 8], "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Side",
|
"name": "Side",
|
||||||
"from": [2.9, 6, 2],
|
"from": [2.9, 6, 2],
|
||||||
"to": [13.1, 10, 3],
|
"to": [13.1, 10, 3],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"east": {"uv": [3, 10, 4, 14], "rotation": 180, "texture": "#0"},
|
"east": {"uv": [3, 10, 4, 14], "rotation": 180, "texture": "#0"},
|
||||||
"south": {"uv": [3, 10, 13, 14], "rotation": 180, "texture": "#0"},
|
"south": {"uv": [3, 10, 13, 14], "rotation": 180, "texture": "#0"},
|
||||||
|
@ -9,9 +9,10 @@
|
|||||||
"name": "Top",
|
"name": "Top",
|
||||||
"from": [1, 11, 0],
|
"from": [1, 11, 0],
|
||||||
"to": [15, 13, 15],
|
"to": [15, 13, 15],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"east": {"uv": [0, 1, 2, 16], "rotation": 270, "texture": "#0"},
|
"east": {"uv": [0, 1, 2, 16], "rotation": 270, "texture": "#0"},
|
||||||
"south": {"uv": [1, 1, 15, 0], "texture": "#0"},
|
"south": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#0"},
|
||||||
"west": {"uv": [14, 1, 16, 16], "rotation": 90, "texture": "#0"},
|
"west": {"uv": [14, 1, 16, 16], "rotation": 90, "texture": "#0"},
|
||||||
"up": {"uv": [1, 1, 15, 16], "rotation": 180, "texture": "#0"},
|
"up": {"uv": [1, 1, 15, 16], "rotation": 180, "texture": "#0"},
|
||||||
"down": {"uv": [1, 1, 15, 16], "texture": "#0"}
|
"down": {"uv": [1, 1, 15, 16], "texture": "#0"}
|
||||||
@ -21,6 +22,7 @@
|
|||||||
"name": "Top",
|
"name": "Top",
|
||||||
"from": [3, 10, 0],
|
"from": [3, 10, 0],
|
||||||
"to": [13, 11, 14],
|
"to": [13, 11, 14],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"east": {"uv": [3, 2, 4, 16], "rotation": 270, "texture": "#0"},
|
"east": {"uv": [3, 2, 4, 16], "rotation": 270, "texture": "#0"},
|
||||||
"west": {"uv": [12, 2, 13, 16], "rotation": 90, "texture": "#0"},
|
"west": {"uv": [12, 2, 13, 16], "rotation": 90, "texture": "#0"},
|
||||||
@ -31,19 +33,21 @@
|
|||||||
"name": "Side",
|
"name": "Side",
|
||||||
"from": [1.1, 4, 14],
|
"from": [1.1, 4, 14],
|
||||||
"to": [14.9, 12, 16],
|
"to": [14.9, 12, 16],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
|
"north": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
|
||||||
"east": {"uv": [0, 8, 2, 16], "rotation": 180, "texture": "#0"},
|
"east": {"uv": [0, 8, 2, 16], "rotation": 180, "texture": "#0"},
|
||||||
"south": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
|
"south": {"uv": [1, 8, 15, 16], "rotation": 180, "texture": "#0"},
|
||||||
"west": {"uv": [14, 8, 16, 16], "rotation": 180, "texture": "#0"},
|
"west": {"uv": [14, 8, 16, 16], "rotation": 180, "texture": "#0"},
|
||||||
"up": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#0"},
|
"up": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#0"},
|
||||||
"down": {"uv": [1, 8, 15, 9], "rotation": 180, "texture": "#0"}
|
"down": {"uv": [1, 7, 15, 8], "rotation": 180, "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Side",
|
"name": "Side",
|
||||||
"from": [3, 6, 13],
|
"from": [3, 6, 13],
|
||||||
"to": [13, 10, 14],
|
"to": [13, 10, 14],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [3, 10, 13, 14], "rotation": 180, "texture": "#0"},
|
"north": {"uv": [3, 10, 13, 14], "rotation": 180, "texture": "#0"},
|
||||||
"east": {"uv": [12, 10, 13, 14], "rotation": 180, "texture": "#0"},
|
"east": {"uv": [12, 10, 13, 14], "rotation": 180, "texture": "#0"},
|
||||||
|
@ -39,8 +39,8 @@
|
|||||||
"east": {"uv": [0, 0, 2, 8], "texture": "#0"},
|
"east": {"uv": [0, 0, 2, 8], "texture": "#0"},
|
||||||
"south": {"uv": [1, 0, 15, 8], "texture": "#0"},
|
"south": {"uv": [1, 0, 15, 8], "texture": "#0"},
|
||||||
"west": {"uv": [14, 0, 16, 8], "texture": "#0"},
|
"west": {"uv": [14, 0, 16, 8], "texture": "#0"},
|
||||||
"up": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#0"},
|
"up": {"uv": [1, 15, 15, 16], "rotation": 180, "texture": "#0"},
|
||||||
"down": {"uv": [1, 7, 15, 8], "rotation": 180, "texture": "#0"}
|
"down": {"uv": [1, 8, 15, 9], "rotation": 180, "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -9,8 +9,9 @@
|
|||||||
"name": "Bottom",
|
"name": "Bottom",
|
||||||
"from": [1, 3, 1],
|
"from": [1, 3, 1],
|
||||||
"to": [15, 5, 16],
|
"to": [15, 5, 16],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": {"uv": [1, 0, 15, 1], "rotation": 180, "texture": "#1"},
|
"north": {"uv": [1, 0, 15, 1], "texture": "#1"},
|
||||||
"east": {"uv": [0, 1, 2, 16], "rotation": 90, "texture": "#1"},
|
"east": {"uv": [0, 1, 2, 16], "rotation": 90, "texture": "#1"},
|
||||||
"west": {"uv": [14, 1, 16, 16], "rotation": 270, "texture": "#1"},
|
"west": {"uv": [14, 1, 16, 16], "rotation": 270, "texture": "#1"},
|
||||||
"up": {"uv": [1, 1, 15, 16], "texture": "#1"},
|
"up": {"uv": [1, 1, 15, 16], "texture": "#1"},
|
||||||
@ -21,6 +22,7 @@
|
|||||||
"name": "Bottom",
|
"name": "Bottom",
|
||||||
"from": [3, 5, 2],
|
"from": [3, 5, 2],
|
||||||
"to": [13, 6, 16],
|
"to": [13, 6, 16],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 0]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"east": {"uv": [12, 2, 13, 16], "rotation": 90, "texture": "#1"},
|
"east": {"uv": [12, 2, 13, 16], "rotation": 90, "texture": "#1"},
|
||||||
"west": {"uv": [3, 2, 4, 16], "rotation": 270, "texture": "#1"},
|
"west": {"uv": [3, 2, 4, 16], "rotation": 270, "texture": "#1"},
|
||||||
|
Loading…
Reference in New Issue
Block a user