mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-16 23:11:40 +01:00
Turn it up
- Fixed Turntable not working with armorstands - Fixed Turntables flinging players away from it - Fixed some z-Fighting in the water wheel model - Basin no longer accepts more than a full stack of an item in its input - Crushing entities now has a fortune modifier - Crushed entities will drop their loot below the wheels - Fixed Crushing wheel stack overflow when attaching one to an existing pair
This commit is contained in:
parent
d563abcbdf
commit
2903b7046c
10 changed files with 612 additions and 542 deletions
|
@ -88,8 +88,8 @@ public class AllShapes {
|
||||||
makeCuboidShape(4, 0, 4, 12, 16, 12),
|
makeCuboidShape(4, 0, 4, 12, 16, 12),
|
||||||
IBooleanFunction.ONLY_FIRST),
|
IBooleanFunction.ONLY_FIRST),
|
||||||
TURNTABLE_SHAPE = VoxelShapes.or(
|
TURNTABLE_SHAPE = VoxelShapes.or(
|
||||||
makeCuboidShape(1, 6, 1, 15, 8, 15),
|
makeCuboidShape(1, 4, 1, 15, 8, 15),
|
||||||
makeCuboidShape(5, 0, 5, 11, 6, 11)),
|
makeCuboidShape(5, 0, 5, 11, 4, 11)),
|
||||||
CRATE_BLOCK_SHAPE = makeCuboidShape(1, 0, 1, 15, 14, 15),
|
CRATE_BLOCK_SHAPE = makeCuboidShape(1, 0, 1, 15, 14, 15),
|
||||||
LOGISTICS_TABLE_BASE = TABLE_POLE_SHAPE,
|
LOGISTICS_TABLE_BASE = TABLE_POLE_SHAPE,
|
||||||
BELT_COLLISION_MASK = makeCuboidShape(0, 0, 0, 16, 19, 16),
|
BELT_COLLISION_MASK = makeCuboidShape(0, 0, 0, 16, 19, 16),
|
||||||
|
|
|
@ -18,7 +18,6 @@ import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.shapes.ISelectionContext;
|
import net.minecraft.util.math.shapes.ISelectionContext;
|
||||||
import net.minecraft.util.math.shapes.VoxelShape;
|
import net.minecraft.util.math.shapes.VoxelShape;
|
||||||
import net.minecraft.world.IBlockReader;
|
import net.minecraft.world.IBlockReader;
|
||||||
import net.minecraft.world.IWorld;
|
|
||||||
import net.minecraft.world.IWorldReader;
|
import net.minecraft.world.IWorldReader;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
@ -44,13 +43,6 @@ public class CrushingWheelBlock extends RotatedPillarKineticBlock {
|
||||||
return AllShapes.CRUSHING_WHEEL_COLLISION_SHAPE;
|
return AllShapes.CRUSHING_WHEEL_COLLISION_SHAPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public BlockState updatePostPlacement(BlockState stateIn, Direction facing, BlockState facingState, IWorld worldIn,
|
|
||||||
BlockPos currentPos, BlockPos facingPos) {
|
|
||||||
updateControllers(stateIn, worldIn.getWorld(), currentPos, facing);
|
|
||||||
return stateIn;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) {
|
public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) {
|
||||||
|
|
||||||
|
@ -66,12 +58,6 @@ public class CrushingWheelBlock extends RotatedPillarKineticBlock {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBlockAdded(BlockState state, World worldIn, BlockPos pos, BlockState oldState, boolean isMoving) {
|
|
||||||
for (Direction d : Direction.values())
|
|
||||||
updateControllers(state, worldIn, pos, d);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateControllers(BlockState state, World world, BlockPos pos, Direction facing) {
|
public void updateControllers(BlockState state, World world, BlockPos pos, Direction facing) {
|
||||||
if (facing.getAxis() == state.get(AXIS) || facing.getAxis().isVertical())
|
if (facing.getAxis() == state.get(AXIS) || facing.getAxis().isVertical())
|
||||||
return;
|
return;
|
||||||
|
@ -143,9 +129,12 @@ public class CrushingWheelBlock extends RotatedPillarKineticBlock {
|
||||||
for (Direction direction : Direction.values()) {
|
for (Direction direction : Direction.values()) {
|
||||||
BlockPos neighbourPos = pos.offset(direction);
|
BlockPos neighbourPos = pos.offset(direction);
|
||||||
BlockState neighbourState = worldIn.getBlockState(neighbourPos);
|
BlockState neighbourState = worldIn.getBlockState(neighbourPos);
|
||||||
|
Axis stateAxis = state.get(AXIS);
|
||||||
|
if (AllBlocks.CRUSHING_WHEEL_CONTROLLER.typeOf(neighbourState) && direction.getAxis() != stateAxis)
|
||||||
|
return false;
|
||||||
if (!AllBlocks.CRUSHING_WHEEL.typeOf(neighbourState))
|
if (!AllBlocks.CRUSHING_WHEEL.typeOf(neighbourState))
|
||||||
continue;
|
continue;
|
||||||
if (neighbourState.get(AXIS) != state.get(AXIS) || state.get(AXIS) != direction.getAxis())
|
if (neighbourState.get(AXIS) != stateAxis || stateAxis != direction.getAxis())
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,11 @@ import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.inventory.InventoryHelper;
|
import net.minecraft.inventory.InventoryHelper;
|
||||||
import net.minecraft.item.BlockItemUseContext;
|
import net.minecraft.item.BlockItemUseContext;
|
||||||
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
|
import net.minecraft.nbt.NBTUtil;
|
||||||
import net.minecraft.particles.ParticleTypes;
|
import net.minecraft.particles.ParticleTypes;
|
||||||
import net.minecraft.state.BooleanProperty;
|
import net.minecraft.state.BooleanProperty;
|
||||||
import net.minecraft.state.StateContainer.Builder;
|
import net.minecraft.state.StateContainer.Builder;
|
||||||
|
@ -80,6 +83,8 @@ public class CrushingWheelControllerBlock extends Block implements IHaveNoBlockI
|
||||||
CrushingWheelControllerTileEntity te = (CrushingWheelControllerTileEntity) tileEntity;
|
CrushingWheelControllerTileEntity te = (CrushingWheelControllerTileEntity) tileEntity;
|
||||||
if (te.isOccupied())
|
if (te.isOccupied())
|
||||||
return;
|
return;
|
||||||
|
if ((entityIn instanceof PlayerEntity) && ((PlayerEntity) entityIn).isCreative())
|
||||||
|
return;
|
||||||
|
|
||||||
te.startCrushing(entityIn);
|
te.startCrushing(entityIn);
|
||||||
}
|
}
|
||||||
|
@ -140,6 +145,14 @@ public class CrushingWheelControllerBlock extends Block implements IHaveNoBlockI
|
||||||
|
|
||||||
Entity entity = context.getEntity();
|
Entity entity = context.getEntity();
|
||||||
if (entity != null) {
|
if (entity != null) {
|
||||||
|
if (entity != null) {
|
||||||
|
CompoundNBT data = entity.getPersistentData();
|
||||||
|
if (data.contains("BypassCrushingWheel")) {
|
||||||
|
if (pos.equals(NBTUtil.readBlockPos(data.getCompound("BypassCrushingWheel"))))
|
||||||
|
return VoxelShapes.empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (new AxisAlignedBB(pos).contains(entity.getPositionVec()))
|
if (new AxisAlignedBB(pos).contains(entity.getPositionVec()))
|
||||||
return VoxelShapes.empty();
|
return VoxelShapes.empty();
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ import com.simibubi.create.AllRecipes;
|
||||||
import com.simibubi.create.AllTileEntities;
|
import com.simibubi.create.AllTileEntities;
|
||||||
import com.simibubi.create.CreateConfig;
|
import com.simibubi.create.CreateConfig;
|
||||||
import com.simibubi.create.foundation.block.SyncedTileEntity;
|
import com.simibubi.create.foundation.block.SyncedTileEntity;
|
||||||
|
import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
import com.simibubi.create.modules.contraptions.processing.ProcessingInventory;
|
import com.simibubi.create.modules.contraptions.processing.ProcessingInventory;
|
||||||
|
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
@ -22,15 +23,11 @@ import net.minecraft.particles.IParticleData;
|
||||||
import net.minecraft.particles.ItemParticleData;
|
import net.minecraft.particles.ItemParticleData;
|
||||||
import net.minecraft.particles.ParticleTypes;
|
import net.minecraft.particles.ParticleTypes;
|
||||||
import net.minecraft.tileentity.ITickableTileEntity;
|
import net.minecraft.tileentity.ITickableTileEntity;
|
||||||
import net.minecraft.util.DamageSource;
|
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.Vec3d;
|
||||||
|
|
||||||
public class CrushingWheelControllerTileEntity extends SyncedTileEntity implements ITickableTileEntity {
|
public class CrushingWheelControllerTileEntity extends SyncedTileEntity implements ITickableTileEntity {
|
||||||
|
|
||||||
private static DamageSource damageSource = new DamageSource("create.crush").setDamageBypassesArmor()
|
|
||||||
.setDifficultyScaled();
|
|
||||||
|
|
||||||
public Entity processingEntity;
|
public Entity processingEntity;
|
||||||
private UUID entityUUID;
|
private UUID entityUUID;
|
||||||
protected boolean searchForEntity;
|
protected boolean searchForEntity;
|
||||||
|
@ -63,6 +60,7 @@ public class CrushingWheelControllerTileEntity extends SyncedTileEntity implemen
|
||||||
return;
|
return;
|
||||||
|
|
||||||
float speed = crushingspeed / 2.5f;
|
float speed = crushingspeed / 2.5f;
|
||||||
|
Vec3d outPos = VecHelper.getCenterOf(pos);
|
||||||
|
|
||||||
if (!hasEntity()) {
|
if (!hasEntity()) {
|
||||||
|
|
||||||
|
@ -80,7 +78,6 @@ public class CrushingWheelControllerTileEntity extends SyncedTileEntity implemen
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec3d outPos = new Vec3d(pos).add(.5, -.5, .5);
|
|
||||||
if (inventory.remainingTime <= 0) {
|
if (inventory.remainingTime <= 0) {
|
||||||
for (int slot = 0; slot < inventory.getSizeInventory(); slot++) {
|
for (int slot = 0; slot < inventory.getSizeInventory(); slot++) {
|
||||||
ItemStack stack = inventory.getStackInSlot(slot);
|
ItemStack stack = inventory.getStackInSlot(slot);
|
||||||
|
@ -88,6 +85,7 @@ public class CrushingWheelControllerTileEntity extends SyncedTileEntity implemen
|
||||||
continue;
|
continue;
|
||||||
ItemEntity entityIn = new ItemEntity(world, outPos.x, outPos.y, outPos.z, stack);
|
ItemEntity entityIn = new ItemEntity(world, outPos.x, outPos.y, outPos.z, stack);
|
||||||
entityIn.setMotion(Vec3d.ZERO);
|
entityIn.setMotion(Vec3d.ZERO);
|
||||||
|
entityIn.getPersistentData().put("BypassCrushingWheel", NBTUtil.writeBlockPos(pos));
|
||||||
world.addEntity(entityIn);
|
world.addEntity(entityIn);
|
||||||
}
|
}
|
||||||
inventory.clear();
|
inventory.clear();
|
||||||
|
@ -104,13 +102,22 @@ public class CrushingWheelControllerTileEntity extends SyncedTileEntity implemen
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
processingEntity.setMotion(new Vec3d(0, Math.max(-speed / 4f, -.5f), 0));
|
double xMotion = ((pos.getX() + .5f) - processingEntity.posX) / 2f;
|
||||||
|
double zMotion = ((pos.getZ() + .5f) - processingEntity.posZ) / 2f;
|
||||||
|
if (processingEntity.isSneaking())
|
||||||
|
xMotion = zMotion = 0;
|
||||||
|
|
||||||
|
processingEntity.setMotion(new Vec3d(xMotion, Math.max(-speed / 4f, -.5f), zMotion));
|
||||||
|
|
||||||
if (world.isRemote)
|
if (world.isRemote)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!(processingEntity instanceof ItemEntity)) {
|
if (!(processingEntity instanceof ItemEntity)) {
|
||||||
processingEntity.attackEntityFrom(damageSource, CreateConfig.parameters.crushingDamage.get());
|
processingEntity.attackEntityFrom(CrushingWheelTileEntity.damageSource,
|
||||||
|
CreateConfig.parameters.crushingDamage.get());
|
||||||
|
if (!processingEntity.isAlive()) {
|
||||||
|
processingEntity.setPosition(outPos.x, outPos.y - .75f, outPos.z);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,18 +3,32 @@ package com.simibubi.create.modules.contraptions.components.crusher;
|
||||||
import com.simibubi.create.AllTileEntities;
|
import com.simibubi.create.AllTileEntities;
|
||||||
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
|
||||||
|
|
||||||
|
import net.minecraft.util.DamageSource;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraftforge.event.entity.living.LivingDeathEvent;
|
||||||
|
import net.minecraftforge.event.entity.living.LootingLevelEvent;
|
||||||
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
||||||
|
|
||||||
|
@EventBusSubscriber
|
||||||
public class CrushingWheelTileEntity extends KineticTileEntity {
|
public class CrushingWheelTileEntity extends KineticTileEntity {
|
||||||
|
|
||||||
|
public static DamageSource damageSource = new DamageSource("create.crush").setDamageBypassesArmor()
|
||||||
|
.setDifficultyScaled();
|
||||||
|
|
||||||
public CrushingWheelTileEntity() {
|
public CrushingWheelTileEntity() {
|
||||||
super(AllTileEntities.CRUSHING_WHEEL.type);
|
super(AllTileEntities.CRUSHING_WHEEL.type);
|
||||||
|
setLazyTickRate(20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSpeedChanged(float prevSpeed) {
|
public void onSpeedChanged(float prevSpeed) {
|
||||||
super.onSpeedChanged(prevSpeed);
|
super.onSpeedChanged(prevSpeed);
|
||||||
|
fixControllers();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void fixControllers() {
|
||||||
for (Direction d : Direction.values())
|
for (Direction d : Direction.values())
|
||||||
((CrushingWheelBlock) getBlockState().getBlock()).updateControllers(getBlockState(), getWorld(), getPos(),
|
((CrushingWheelBlock) getBlockState().getBlock()).updateControllers(getBlockState(), getWorld(), getPos(),
|
||||||
d);
|
d);
|
||||||
|
@ -25,4 +39,24 @@ public class CrushingWheelTileEntity extends KineticTileEntity {
|
||||||
return new AxisAlignedBB(pos).grow(1);
|
return new AxisAlignedBB(pos).grow(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void lazyTick() {
|
||||||
|
super.lazyTick();
|
||||||
|
fixControllers();
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void crushingIsFortunate(LootingLevelEvent event) {
|
||||||
|
if (event.getDamageSource() != damageSource)
|
||||||
|
return;
|
||||||
|
event.setLootingLevel(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void crushingTeleportsEntities(LivingDeathEvent event) {
|
||||||
|
if (event.getSource() != damageSource)
|
||||||
|
return;
|
||||||
|
event.getEntity().posY = Math.floor(event.getEntity().posY) - .5f;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.Direction;
|
import net.minecraft.util.Direction;
|
||||||
import net.minecraft.util.Direction.Axis;
|
import net.minecraft.util.Direction.Axis;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.Vec3d;
|
||||||
import net.minecraft.util.math.shapes.ISelectionContext;
|
import net.minecraft.util.math.shapes.ISelectionContext;
|
||||||
import net.minecraft.util.math.shapes.VoxelShape;
|
import net.minecraft.util.math.shapes.VoxelShape;
|
||||||
|
@ -54,31 +55,29 @@ public class TurntableBlock extends KineticBlock {
|
||||||
if (e.posY < pos.getY() + .5f)
|
if (e.posY < pos.getY() + .5f)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (world.isRemote && (e instanceof PlayerEntity)) {
|
||||||
|
if (worldIn.getBlockState(e.getPosition()) != state) {
|
||||||
Vec3d origin = VecHelper.getCenterOf(pos);
|
Vec3d origin = VecHelper.getCenterOf(pos);
|
||||||
Vec3d offset = e.getPositionVec().subtract(origin);
|
Vec3d offset = e.getPositionVec().subtract(origin);
|
||||||
|
offset = VecHelper.rotate(offset, MathHelper.clamp(speed, -16, 16) / 1f, Axis.Y);
|
||||||
if (!world.isRemote && (e instanceof PlayerEntity))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (offset.length() > 1 / 4f) {
|
|
||||||
offset = VecHelper.rotate(offset, speed / 1f, Axis.Y);
|
|
||||||
Vec3d movement = origin.add(offset).subtract(e.getPositionVec());
|
Vec3d movement = origin.add(offset).subtract(e.getPositionVec());
|
||||||
e.setMotion(e.getMotion().add(movement));
|
e.setMotion(e.getMotion().add(movement));
|
||||||
e.velocityChanged = true;
|
e.velocityChanged = true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (world.isRemote)
|
|
||||||
return;
|
|
||||||
if ((e instanceof PlayerEntity))
|
if ((e instanceof PlayerEntity))
|
||||||
return;
|
return;
|
||||||
|
if (world.isRemote)
|
||||||
|
return;
|
||||||
if ((e instanceof LivingEntity)) {
|
if ((e instanceof LivingEntity)) {
|
||||||
float diff = e.getRotationYawHead() - speed;
|
float diff = e.getRotationYawHead() - speed;
|
||||||
((LivingEntity) e).setIdleTime(20);
|
((LivingEntity) e).setIdleTime(20);
|
||||||
e.setRenderYawOffset(diff);
|
e.setRenderYawOffset(diff);
|
||||||
e.setRotationYawHead(diff);
|
e.setRotationYawHead(diff);
|
||||||
return;
|
e.onGround = false;
|
||||||
|
e.velocityChanged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
e.rotationYaw -= speed;
|
e.rotationYaw -= speed;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +1,39 @@
|
||||||
package com.simibubi.create.modules.contraptions.components.turntable;
|
package com.simibubi.create.modules.contraptions.components.turntable;
|
||||||
|
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
|
import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.modules.contraptions.base.KineticTileEntity;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
import net.minecraft.util.math.Vec3d;
|
||||||
|
|
||||||
public class TurntableHandler {
|
public class TurntableHandler {
|
||||||
|
|
||||||
public static void gameRenderTick() {
|
public static void gameRenderTick() {
|
||||||
Minecraft mc = Minecraft.getInstance();
|
Minecraft mc = Minecraft.getInstance();
|
||||||
|
BlockPos pos = mc.player.getPosition();
|
||||||
|
|
||||||
if (!AllBlocks.TURNTABLE.typeOf(mc.world.getBlockState(mc.player.getPosition())))
|
if (!AllBlocks.TURNTABLE.typeOf(mc.world.getBlockState(pos)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!mc.player.onGround)
|
if (!mc.player.onGround)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (mc.isGamePaused())
|
if (mc.isGamePaused())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
KineticTileEntity te = (KineticTileEntity) mc.world.getTileEntity(mc.player.getPosition());
|
KineticTileEntity te = (KineticTileEntity) mc.world.getTileEntity(pos);
|
||||||
float speed = te.getSpeed() / 19;
|
float speed = te.getSpeed() / 19;
|
||||||
|
|
||||||
|
if (speed == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Vec3d origin = VecHelper.getCenterOf(pos);
|
||||||
|
Vec3d offset = mc.player.getPositionVec().subtract(origin);
|
||||||
|
|
||||||
|
if (offset.length() > 1/4f)
|
||||||
|
speed *= MathHelper.clamp((1/2f - offset.length()) * 2, 0, 1);
|
||||||
|
|
||||||
mc.player.rotationYaw = mc.player.prevRotationYaw - speed * mc.getRenderPartialTicks();
|
mc.player.rotationYaw = mc.player.prevRotationYaw - speed * mc.getRenderPartialTicks();
|
||||||
mc.player.renderYawOffset = mc.player.rotationYaw;
|
mc.player.renderYawOffset = mc.player.rotationYaw;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import net.minecraftforge.common.capabilities.Capability;
|
||||||
import net.minecraftforge.common.util.LazyOptional;
|
import net.minecraftforge.common.util.LazyOptional;
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandlerModifiable;
|
import net.minecraftforge.items.IItemHandlerModifiable;
|
||||||
|
import net.minecraftforge.items.ItemHandlerHelper;
|
||||||
import net.minecraftforge.items.ItemStackHandler;
|
import net.minecraftforge.items.ItemStackHandler;
|
||||||
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
||||||
import net.minecraftforge.items.wrapper.RecipeWrapper;
|
import net.minecraftforge.items.wrapper.RecipeWrapper;
|
||||||
|
@ -39,6 +40,16 @@ public class BasinTileEntity extends SyncedTileEntity implements ITickableTileEn
|
||||||
sendData();
|
sendData();
|
||||||
markDirty();
|
markDirty();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) {
|
||||||
|
for (int i = 0; i < getSlots(); i++) {
|
||||||
|
ItemStack stackInSlot = getStackInSlot(i);
|
||||||
|
if (ItemHandlerHelper.canItemStacksStack(stack, stackInSlot))
|
||||||
|
if (stackInSlot.getCount() == getStackLimit(i, stackInSlot))
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
return super.insertItem(slot, stack, simulate);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
public static class BasinInventory extends CombinedInvWrapper {
|
public static class BasinInventory extends CombinedInvWrapper {
|
||||||
|
|
|
@ -1,51 +1,55 @@
|
||||||
{
|
{
|
||||||
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"textures": {
|
"textures": {
|
||||||
"particle": "block/stripped_spruce_log",
|
|
||||||
"0": "create:block/axis",
|
"0": "create:block/axis",
|
||||||
"1": "block/stripped_spruce_log",
|
"1": "block/stripped_spruce_log",
|
||||||
"2": "block/stripped_spruce_log_top",
|
"2": "block/stripped_spruce_log_top",
|
||||||
"3": "create:block/axis_top"
|
"3": "create:block/axis_top",
|
||||||
|
"5": "create:block/gearbox_top",
|
||||||
|
"6": "create:block/encased_belt",
|
||||||
|
"particle": "block/stripped_spruce_log"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"name": "Axis",
|
"name": "Axis",
|
||||||
"from": [ 6.0, 0.0, 6.0 ],
|
"from": [6, 0, 6],
|
||||||
"to": [ 10.0, 7.0, 10.0 ],
|
"to": [10, 7, 10],
|
||||||
"shade": false,
|
"shade": false,
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#0", "uv": [ 6.0, 0.0, 10.0, 7.0 ] },
|
"north": {"uv": [6, 9, 10, 16], "texture": "#0"},
|
||||||
"east": { "texture": "#0", "uv": [ 6.0, 0.0, 10.0, 7.0 ] },
|
"east": {"uv": [6, 9, 10, 16], "texture": "#0"},
|
||||||
"south": { "texture": "#0", "uv": [ 6.0, 0.0, 10.0, 7.0 ] },
|
"south": {"uv": [6, 9, 10, 16], "texture": "#0"},
|
||||||
"west": { "texture": "#0", "uv": [ 6.0, 0.0, 10.0, 7.0 ] },
|
"west": {"uv": [6, 9, 10, 16], "texture": "#0"},
|
||||||
"down": { "texture": "#3", "uv": [ 6.0, 6.0, 10.0, 10.0 ] }
|
"down": {"uv": [6, 6, 10, 10], "texture": "#3"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "GearCaseInner",
|
"name": "GearCaseInner",
|
||||||
"from": [ 1.0, 6.0, 1.0 ],
|
"from": [1, 5.9, 1],
|
||||||
"to": [ 15.0, 8.0, 15.0 ],
|
"to": [15, 7.9, 15],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.9, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#1", "uv": [ 1.0, 0.0, 15.0, 2.0 ] },
|
"north": {"uv": [1, 1, 15, 3], "texture": "#6"},
|
||||||
"east": { "texture": "#1", "uv": [ 1.0, 0.0, 15.0, 2.0 ] },
|
"east": {"uv": [1, 1, 15, 3], "texture": "#6"},
|
||||||
"south": { "texture": "#1", "uv": [ 1.0, 0.0, 15.0, 2.0 ] },
|
"south": {"uv": [1, 1, 15, 3], "texture": "#6"},
|
||||||
"west": { "texture": "#1", "uv": [ 1.0, 0.0, 15.0, 2.0 ] },
|
"west": {"uv": [1, 1, 15, 3], "texture": "#6"},
|
||||||
"up": { "texture": "#2", "uv": [ 1.0, 1.0, 15.0, 15.0 ] },
|
"up": {"uv": [1, 1, 15, 15], "texture": "#5"},
|
||||||
"down": { "texture": "#2", "uv": [ 1.0, 1.0, 15.0, 15.0 ] }
|
"down": {"uv": [1, 1, 15, 15], "texture": "#2"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "GearCaseOuter",
|
"name": "GearCaseInner",
|
||||||
"from": [ 4.0, 5.0, 4.0 ],
|
"from": [1, 3.9, 1],
|
||||||
"to": [ 12.0, 6.0, 12.0 ],
|
"to": [15, 5.9, 15],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8.9, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#1", "uv": [ 4.0, 0.0, 12.0, 1.0 ] },
|
"north": {"uv": [1, 3, 15, 5], "texture": "#6"},
|
||||||
"east": { "texture": "#1", "uv": [ 4.0, 0.0, 12.0, 1.0 ] },
|
"east": {"uv": [1, 3, 15, 5], "texture": "#6"},
|
||||||
"south": { "texture": "#1", "uv": [ 4.0, 0.0, 12.0, 1.0 ] },
|
"south": {"uv": [1, 3, 15, 5], "texture": "#6"},
|
||||||
"west": { "texture": "#1", "uv": [ 4.0, 0.0, 12.0, 1.0 ] },
|
"west": {"uv": [1, 3, 15, 5], "texture": "#6"},
|
||||||
"up": { "texture": "#2", "uv": [ 4.0, 4.0, 12.0, 12.0 ] },
|
"up": {"uv": [1, 1, 15, 15], "texture": "#2"},
|
||||||
"down": { "texture": "#2", "uv": [ 4.0, 4.0, 12.0, 12.0 ] }
|
"down": {"uv": [1, 1, 15, 15], "texture": "#1"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
{
|
{
|
||||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "create:block/large_wheels",
|
"parent": "create:block/large_wheels",
|
||||||
"textures": {
|
"textures": {
|
||||||
"axis": "create:block/axis",
|
"axis": "create:block/axis",
|
||||||
"axis_top": "create:block/axis_top",
|
"axis_top": "create:block/axis_top",
|
||||||
"particle": "minecraft:block/stripped_spruce_log",
|
|
||||||
"wheel": "create:block/wheel",
|
"wheel": "create:block/wheel",
|
||||||
"spruce_planks": "minecraft:block/spruce_planks",
|
"spruce_planks": "block/spruce_planks",
|
||||||
"stripped_spruce_log": "minecraft:block/stripped_spruce_log",
|
"particle": "block/stripped_spruce_log",
|
||||||
"spruce_log": "minecraft:block/spruce_log"
|
"stripped_spruce_log": "block/stripped_spruce_log",
|
||||||
|
"spruce_log": "block/spruce_log"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
|
@ -17,26 +17,26 @@
|
||||||
"to": [10, 16, 10],
|
"to": [10, 16, 10],
|
||||||
"shade": false,
|
"shade": false,
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ] },
|
"north": {"uv": [6, 0, 10, 16], "texture": "#axis"},
|
||||||
"east": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ] },
|
"east": {"uv": [6, 0, 10, 16], "texture": "#axis"},
|
||||||
"south": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ] },
|
"south": {"uv": [6, 0, 10, 16], "texture": "#axis"},
|
||||||
"west": { "texture": "#axis", "uv": [ 6, 0, 10, 16 ] },
|
"west": {"uv": [6, 0, 10, 16], "texture": "#axis"},
|
||||||
"up": { "texture": "#axis_top", "uv": [ 6, 6, 10, 10 ], "rotation": 90 },
|
"up": {"uv": [6, 6, 10, 10], "rotation": 90, "texture": "#axis_top"},
|
||||||
"down": { "texture": "#axis_top", "uv": [ 6, 6, 10, 10 ], "rotation": 90 }
|
"down": {"uv": [6, 6, 10, 10], "rotation": 90, "texture": "#axis_top"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment1",
|
"name": "Segment1",
|
||||||
"from": [13, -1, -8],
|
"from": [13, -1, -8],
|
||||||
"to": [14, 17, 0],
|
"to": [14, 17, 0],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -22.5 },
|
"rotation": {"angle": -22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"north": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"east": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"south": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"west": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 90 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 90, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 90 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 90, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -44,54 +44,54 @@
|
||||||
"from": [13, -1, -8],
|
"from": [13, -1, -8],
|
||||||
"to": [14, 17, 0],
|
"to": [14, 17, 0],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"north": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"east": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"south": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"west": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 90 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 90, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 90 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 90, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment1",
|
"name": "Segment1",
|
||||||
"from": [13, -1, -8],
|
"from": [13, -1, -8],
|
||||||
"to": [14, 17, 0],
|
"to": [14, 17, 0],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 22.5 },
|
"rotation": {"angle": 22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"north": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"east": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"south": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"west": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 90 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 90, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 90 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 90, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment1",
|
"name": "Segment1",
|
||||||
"from": [13, -1, -8],
|
"from": [13, -1, -8],
|
||||||
"to": [14, 17, 0],
|
"to": [14, 17, 0],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45.0 },
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"north": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"east": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"south": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"west": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 90 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 90, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 90 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 90, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment3",
|
"name": "Segment3",
|
||||||
"from": [2, -1, 16],
|
"from": [2, -1, 16],
|
||||||
"to": [3, 17, 24],
|
"to": [3, 17, 24],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -22.5 },
|
"rotation": {"angle": -22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"north": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"east": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"south": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"west": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 270 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 270, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 270 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 270, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -99,54 +99,54 @@
|
||||||
"from": [2, -1, 16],
|
"from": [2, -1, 16],
|
||||||
"to": [3, 17, 24],
|
"to": [3, 17, 24],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"north": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"east": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"south": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"west": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 270 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 270, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 270 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 270, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment3",
|
"name": "Segment3",
|
||||||
"from": [2, -1, 16],
|
"from": [2, -1, 16],
|
||||||
"to": [3, 17, 24],
|
"to": [3, 17, 24],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 22.5 },
|
"rotation": {"angle": 22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"north": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"east": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"south": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"west": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 270 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 270, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 270 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 270, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment3",
|
"name": "Segment3",
|
||||||
"from": [2, -1, 16],
|
"from": [2, -1, 16],
|
||||||
"to": [3, 17, 24],
|
"to": [3, 17, 24],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45.0 },
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"north": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"east": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"south": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"west": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 270 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 270, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 270 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 270, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment2",
|
"name": "Segment2",
|
||||||
"from": [-8, -1, 2],
|
"from": [-8, -1, 2],
|
||||||
"to": [0, 17, 3],
|
"to": [0, 17, 3],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -22.5 },
|
"rotation": {"angle": -22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"north": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"east": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"south": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"west": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ] },
|
"up": {"uv": [0, 0, 8, 1], "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 180 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 180, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -154,54 +154,54 @@
|
||||||
"from": [-8, -1, 2],
|
"from": [-8, -1, 2],
|
||||||
"to": [0, 17, 3],
|
"to": [0, 17, 3],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"north": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"east": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"south": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"west": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ] },
|
"up": {"uv": [0, 0, 8, 1], "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 180 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 180, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment2",
|
"name": "Segment2",
|
||||||
"from": [-8, -1, 2],
|
"from": [-8, -1, 2],
|
||||||
"to": [0, 17, 3],
|
"to": [0, 17, 3],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 22.5 },
|
"rotation": {"angle": 22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"north": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"east": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"south": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"west": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ] },
|
"up": {"uv": [0, 0, 8, 1], "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 180 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 180, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment2",
|
"name": "Segment2",
|
||||||
"from": [-8, -1, 2],
|
"from": [-8, -1, 2],
|
||||||
"to": [0, 17, 3],
|
"to": [0, 17, 3],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45.0 },
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"north": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"east": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"south": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"west": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ] },
|
"up": {"uv": [0, 0, 8, 1], "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 180 }
|
"down": {"uv": [0, 0, 8, 1], "rotation": 180, "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment4",
|
"name": "Segment4",
|
||||||
"from": [16, -1, 13],
|
"from": [16, -1, 13],
|
||||||
"to": [24, 17, 14],
|
"to": [24, 17, 14],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -22.5 },
|
"rotation": {"angle": -22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"north": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"east": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"south": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"west": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 180 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 180, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ] }
|
"down": {"uv": [0, 0, 8, 1], "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -209,40 +209,40 @@
|
||||||
"from": [16, -1, 13],
|
"from": [16, -1, 13],
|
||||||
"to": [24, 17, 14],
|
"to": [24, 17, 14],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"north": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"east": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"south": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"west": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 180 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 180, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ] }
|
"down": {"uv": [0, 0, 8, 1], "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment4",
|
"name": "Segment4",
|
||||||
"from": [16, -1, 13],
|
"from": [16, -1, 13],
|
||||||
"to": [24, 17, 14],
|
"to": [24, 17, 14],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 22.5 },
|
"rotation": {"angle": 22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"north": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"east": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"south": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"west": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 180 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 180, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ] }
|
"down": {"uv": [0, 0, 8, 1], "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Segment4",
|
"name": "Segment4",
|
||||||
"from": [16, -1, 13],
|
"from": [16, -1, 13],
|
||||||
"to": [24, 17, 14],
|
"to": [24, 17, 14],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45.0 },
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"north": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"east": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"east": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"south": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 16 ] },
|
"south": {"uv": [0, 0, 8, 16], "texture": "#stripped_spruce_log"},
|
||||||
"west": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 1, 16 ] },
|
"west": {"uv": [0, 0, 1, 16], "texture": "#stripped_spruce_log"},
|
||||||
"up": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ], "rotation": 180 },
|
"up": {"uv": [0, 0, 8, 1], "rotation": 180, "texture": "#stripped_spruce_log"},
|
||||||
"down": { "texture": "#stripped_spruce_log", "uv": [ 0, 0, 8, 1 ] }
|
"down": {"uv": [0, 0, 8, 1], "texture": "#stripped_spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -250,134 +250,134 @@
|
||||||
"from": [-2, -0.8, -2],
|
"from": [-2, -0.8, -2],
|
||||||
"to": [18, 16.8, 18],
|
"to": [18, 16.8, 18],
|
||||||
"faces": {
|
"faces": {
|
||||||
"up": { "texture": "#wheel", "uv": [ 2, 2, 14, 14 ] },
|
"up": {"uv": [2, 2, 14, 14], "texture": "#wheel"},
|
||||||
"down": { "texture": "#wheel", "uv": [ 2, 2, 14, 14 ] }
|
"down": {"uv": [2, 2, 14, 14], "texture": "#wheel"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "LargeRim",
|
"name": "LargeRim",
|
||||||
"from": [-5, -0.7, -5],
|
"from": [-5, -0.7, -5],
|
||||||
"to": [ 21, -0.7, 21 ],
|
"to": [21, -0.6, 21],
|
||||||
"faces": {
|
"faces": {
|
||||||
"up": { "texture": "#wheel", "uv": [ 2, 2, 14, 14 ] },
|
"up": {"uv": [2, 2, 14, 14], "texture": "#wheel"},
|
||||||
"down": { "texture": "#wheel", "uv": [ 2, 2, 14, 14 ] }
|
"down": {"uv": [2, 2, 14, 14], "texture": "#wheel"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "LargeRim2",
|
"name": "LargeRim2",
|
||||||
"from": [ -5, 16.7, -5 ],
|
"from": [-5, 16.6, -5],
|
||||||
"to": [21, 16.7, 21],
|
"to": [21, 16.7, 21],
|
||||||
"faces": {
|
"faces": {
|
||||||
"up": { "texture": "#wheel", "uv": [ 2, 2, 14, 14 ] },
|
"up": {"uv": [2, 2, 14, 14], "texture": "#wheel"},
|
||||||
"down": { "texture": "#wheel", "uv": [ 2, 2, 14, 14 ] }
|
"down": {"uv": [2, 2, 14, 14], "texture": "#wheel"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "InnerSegment",
|
"name": "InnerSegment",
|
||||||
"from": [-2, -0.6, 4],
|
"from": [-2, -0.6, 4],
|
||||||
"to": [0, 16.6, 12],
|
"to": [0, 16.6, 12],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45.0 },
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"north": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"east": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 90 },
|
"east": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#spruce_planks"},
|
||||||
"south": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"south": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"west": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 270 },
|
"west": {"uv": [0, 0, 16, 8], "rotation": 270, "texture": "#spruce_planks"},
|
||||||
"up": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] },
|
"up": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"},
|
||||||
"down": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] }
|
"down": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "InnerSegment",
|
||||||
|
"from": [-2, -0.6, 4],
|
||||||
|
"to": [0.1, 16.6, 12],
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
|
"east": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#spruce_planks"},
|
||||||
|
"south": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
|
"west": {"uv": [0, 0, 16, 8], "rotation": 270, "texture": "#spruce_planks"},
|
||||||
|
"up": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"},
|
||||||
|
"down": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "InnerSegment",
|
"name": "InnerSegment",
|
||||||
"from": [-2, -0.6, 4],
|
"from": [-2, -0.6, 4],
|
||||||
"to": [0, 16.6, 12],
|
"to": [0, 16.6, 12],
|
||||||
|
"rotation": {"angle": -45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"north": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"east": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 90 },
|
"east": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#spruce_planks"},
|
||||||
"south": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"south": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"west": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 270 },
|
"west": {"uv": [0, 0, 16, 8], "rotation": 270, "texture": "#spruce_planks"},
|
||||||
"up": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] },
|
"up": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"},
|
||||||
"down": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] }
|
"down": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "InnerSegment",
|
"name": "InnerSegment",
|
||||||
"from": [ -2, -0.6, 4 ],
|
"from": [15.9, -0.6, 4],
|
||||||
"to": [ 0, 16.6, 12 ],
|
"to": [18, 16.6, 12],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -45.0 },
|
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"north": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"east": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 90 },
|
"east": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#spruce_planks"},
|
||||||
"south": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"south": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"west": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 270 },
|
"west": {"uv": [0, 0, 16, 8], "rotation": 270, "texture": "#spruce_planks"},
|
||||||
"up": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] },
|
"up": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"},
|
||||||
"down": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] }
|
"down": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "InnerSegment",
|
"name": "InnerSegment",
|
||||||
"from": [16, -0.6, 4],
|
"from": [16, -0.6, 4],
|
||||||
"to": [18, 16.6, 12],
|
"to": [18, 16.6, 12],
|
||||||
|
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"north": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"east": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 90 },
|
"east": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#spruce_planks"},
|
||||||
"south": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"south": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"west": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 270 },
|
"west": {"uv": [0, 0, 16, 8], "rotation": 270, "texture": "#spruce_planks"},
|
||||||
"up": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] },
|
"up": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"},
|
||||||
"down": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] }
|
"down": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "InnerSegment",
|
"name": "InnerSegment",
|
||||||
"from": [16, -0.6, 4],
|
"from": [16, -0.6, 4],
|
||||||
"to": [18, 16.6, 12],
|
"to": [18, 16.6, 12],
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45.0 },
|
"rotation": {"angle": -45, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"north": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"east": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 90 },
|
"east": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#spruce_planks"},
|
||||||
"south": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"south": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"west": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 270 },
|
"west": {"uv": [0, 0, 16, 8], "rotation": 270, "texture": "#spruce_planks"},
|
||||||
"up": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] },
|
"up": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"},
|
||||||
"down": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] }
|
"down": {"uv": [0, 0, 2, 8], "texture": "#spruce_planks"}
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "InnerSegment",
|
|
||||||
"from": [ 16, -0.6, 4 ],
|
|
||||||
"to": [ 18, 16.6, 12 ],
|
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -45.0 },
|
|
||||||
"faces": {
|
|
||||||
"north": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
|
||||||
"east": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 90 },
|
|
||||||
"south": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
|
||||||
"west": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 270 },
|
|
||||||
"up": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] },
|
|
||||||
"down": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ] }
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "InnerSegment",
|
"name": "InnerSegment",
|
||||||
"from": [4, -0.6, -2],
|
"from": [4, -0.6, -2],
|
||||||
"to": [ 12, 16.6, 0 ],
|
"to": [12, 16.6, 0.1],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 270 },
|
"north": {"uv": [0, 0, 16, 8], "rotation": 270, "texture": "#spruce_planks"},
|
||||||
"east": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"east": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"south": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 90 },
|
"south": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#spruce_planks"},
|
||||||
"west": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"west": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"up": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ], "rotation": 90 },
|
"up": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#spruce_planks"},
|
||||||
"down": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ], "rotation": 90 }
|
"down": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#spruce_planks"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "InnerSegment",
|
"name": "InnerSegment",
|
||||||
"from": [ 4, -0.6, 16 ],
|
"from": [4, -0.6, 15.9],
|
||||||
"to": [12, 16.6, 18],
|
"to": [12, 16.6, 18],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 270 },
|
"north": {"uv": [0, 0, 16, 8], "rotation": 270, "texture": "#spruce_planks"},
|
||||||
"east": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"east": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"south": { "texture": "#spruce_planks", "uv": [ 0, 0, 16, 8 ], "rotation": 90 },
|
"south": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#spruce_planks"},
|
||||||
"west": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 16 ] },
|
"west": {"uv": [0, 0, 2, 16], "texture": "#spruce_planks"},
|
||||||
"up": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ], "rotation": 90 },
|
"up": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#spruce_planks"},
|
||||||
"down": { "texture": "#spruce_planks", "uv": [ 0, 0, 2, 8 ], "rotation": 90 }
|
"down": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#spruce_planks"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -386,12 +386,12 @@
|
||||||
"to": [11, 15, 11],
|
"to": [11, 15, 11],
|
||||||
"shade": false,
|
"shade": false,
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#spruce_log", "uv": [ 5, 2, 11, 16 ] },
|
"north": {"uv": [5, 2, 11, 16], "texture": "#spruce_log"},
|
||||||
"east": { "texture": "#spruce_log", "uv": [ 5, 2, 11, 16 ] },
|
"east": {"uv": [5, 2, 11, 16], "texture": "#spruce_log"},
|
||||||
"south": { "texture": "#spruce_log", "uv": [ 5, 2, 11, 16 ] },
|
"south": {"uv": [5, 2, 11, 16], "texture": "#spruce_log"},
|
||||||
"west": { "texture": "#spruce_log", "uv": [ 5, 2, 11, 16 ] },
|
"west": {"uv": [5, 2, 11, 16], "texture": "#spruce_log"},
|
||||||
"up": { "texture": "#spruce_log", "uv": [ 5, 5, 11, 11 ], "rotation": 90 },
|
"up": {"uv": [5, 5, 11, 11], "rotation": 90, "texture": "#spruce_log"},
|
||||||
"down": { "texture": "#spruce_log", "uv": [ 5, 5, 11, 11 ], "rotation": 90 }
|
"down": {"uv": [5, 5, 11, 11], "rotation": 90, "texture": "#spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -399,25 +399,38 @@
|
||||||
"from": [6.5, 2, -1],
|
"from": [6.5, 2, -1],
|
||||||
"to": [9.5, 14, 17],
|
"to": [9.5, 14, 17],
|
||||||
"shade": false,
|
"shade": false,
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 22.5 },
|
"rotation": {"angle": 22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"east": { "texture": "#spruce_log", "uv": [ 0, 2, 16, 14 ] },
|
"east": {"uv": [0, 2, 16, 14], "texture": "#spruce_log"},
|
||||||
"west": { "texture": "#spruce_log", "uv": [ 0, 2, 16, 14 ] },
|
"west": {"uv": [0, 2, 16, 14], "texture": "#spruce_log"},
|
||||||
"up": { "texture": "#spruce_log", "uv": [ 3, 0, 6, 16 ] },
|
"up": {"uv": [3, 0, 6, 16], "texture": "#spruce_log"},
|
||||||
"down": { "texture": "#spruce_log", "uv": [ 6, 0, 9, 16 ] }
|
"down": {"uv": [6, 0, 9, 16], "texture": "#spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Connector",
|
"name": "Connector",
|
||||||
"from": [ 6.5, 2, -1 ],
|
"from": [6.5, 2.1, -1],
|
||||||
"to": [ 9.5, 14, 17 ],
|
"to": [9.5, 13.9, 17],
|
||||||
"shade": false,
|
"shade": false,
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -22.5 },
|
"rotation": {"angle": -22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"east": { "texture": "#spruce_log", "uv": [ 0, 2, 16, 14 ] },
|
"east": {"uv": [0, 2, 16, 14], "texture": "#spruce_log"},
|
||||||
"west": { "texture": "#spruce_log", "uv": [ 0, 2, 16, 14 ] },
|
"west": {"uv": [0, 2, 16, 14], "texture": "#spruce_log"},
|
||||||
"up": { "texture": "#spruce_log", "uv": [ 9, 0, 12, 16 ] },
|
"up": {"uv": [9, 0, 12, 16], "texture": "#spruce_log"},
|
||||||
"down": { "texture": "#spruce_log", "uv": [ 2, 0, 5, 16 ] }
|
"down": {"uv": [2, 0, 5, 16], "texture": "#spruce_log"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Connector",
|
||||||
|
"from": [-1, 2.1, 6.5],
|
||||||
|
"to": [17, 13.9, 9.5],
|
||||||
|
"shade": false,
|
||||||
|
"rotation": {"angle": -22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0, 2, 16, 14], "texture": "#spruce_log"},
|
||||||
|
"south": {"uv": [0, 2, 16, 14], "texture": "#spruce_log"},
|
||||||
|
"up": {"uv": [4, 0, 7, 16], "rotation": 90, "texture": "#spruce_log"},
|
||||||
|
"down": {"uv": [8, 0, 11, 16], "rotation": 90, "texture": "#spruce_log"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -425,25 +438,12 @@
|
||||||
"from": [-1, 2, 6.5],
|
"from": [-1, 2, 6.5],
|
||||||
"to": [17, 14, 9.5],
|
"to": [17, 14, 9.5],
|
||||||
"shade": false,
|
"shade": false,
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": -22.5 },
|
"rotation": {"angle": 22.5, "axis": "y", "origin": [8, 8, 8]},
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#spruce_log", "uv": [ 0, 2, 16, 14 ] },
|
"north": {"uv": [0, 2, 16, 14], "texture": "#spruce_log"},
|
||||||
"south": { "texture": "#spruce_log", "uv": [ 0, 2, 16, 14 ] },
|
"south": {"uv": [0, 2, 16, 14], "texture": "#spruce_log"},
|
||||||
"up": { "texture": "#spruce_log", "uv": [ 4, 0, 7, 16 ], "rotation": 90 },
|
"up": {"uv": [9, 0, 12, 16], "rotation": 90, "texture": "#spruce_log"},
|
||||||
"down": { "texture": "#spruce_log", "uv": [ 8, 0, 11, 16 ], "rotation": 90 }
|
"down": {"uv": [2, 0, 5, 16], "rotation": 90, "texture": "#spruce_log"}
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Connector",
|
|
||||||
"from": [ -1, 2, 6.5 ],
|
|
||||||
"to": [ 17, 14, 9.5 ],
|
|
||||||
"shade": false,
|
|
||||||
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 22.5 },
|
|
||||||
"faces": {
|
|
||||||
"north": { "texture": "#spruce_log", "uv": [ 0, 2, 16, 14 ] },
|
|
||||||
"south": { "texture": "#spruce_log", "uv": [ 0, 2, 16, 14 ] },
|
|
||||||
"up": { "texture": "#spruce_log", "uv": [ 9, 0, 12, 16 ], "rotation": 90 },
|
|
||||||
"down": { "texture": "#spruce_log", "uv": [ 2, 0, 5, 16 ], "rotation": 90 }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in a new issue