mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-15 05:03:42 +01:00
Directional sources of rotation
- Fixed gearbox pretending to be a deployer - Fixed reversed rendering in the furnace engine TER - Motors, fans, flywheels and handcranks now reverse their rotation when facing in negative axisdirections. Addresses #236 - Cart assemblers no longer auto-attach to blocks on their sides (top only)
This commit is contained in:
parent
82ed9cd85d
commit
cfdc9d0a5e
18 changed files with 196 additions and 174 deletions
|
@ -53,7 +53,7 @@ public class AllShapes {
|
||||||
.forDirectional(),
|
.forDirectional(),
|
||||||
CRANK = shape(5, 0, 5, 11, 6, 11).add(1, 3, 1, 15, 8, 15)
|
CRANK = shape(5, 0, 5, 11, 6, 11).add(1, 3, 1, 15, 8, 15)
|
||||||
.forDirectional(),
|
.forDirectional(),
|
||||||
CART_ASSEMBLER = shape(VoxelShapes.fullCube()).add(-2, 0, 1, 18, 13, 15)
|
CART_ASSEMBLER = shape(0,12,0,16,16,16).add(-2, 0, 1, 18, 14, 15)
|
||||||
.forHorizontalAxis(),
|
.forHorizontalAxis(),
|
||||||
STOCKPILE_SWITCH = shape(0, 0, 0, 16, 2, 16).add(1, 0, 1, 15, 16, 15)
|
STOCKPILE_SWITCH = shape(0, 0, 0, 16, 2, 16).add(1, 0, 1, 15, 16, 15)
|
||||||
.add(0, 14, 0, 16, 16, 16)
|
.add(0, 14, 0, 16, 16, 16)
|
||||||
|
|
|
@ -58,7 +58,6 @@ import com.simibubi.create.content.contraptions.relays.encased.ClutchTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftRenderer;
|
import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftRenderer;
|
||||||
import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftTileEntity;
|
import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.relays.encased.SplitShaftRenderer;
|
import com.simibubi.create.content.contraptions.relays.encased.SplitShaftRenderer;
|
||||||
import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock;
|
|
||||||
import com.simibubi.create.content.contraptions.relays.gauge.GaugeRenderer;
|
import com.simibubi.create.content.contraptions.relays.gauge.GaugeRenderer;
|
||||||
import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity;
|
import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.relays.gauge.StressGaugeTileEntity;
|
import com.simibubi.create.content.contraptions.relays.gauge.StressGaugeTileEntity;
|
||||||
|
@ -259,8 +258,8 @@ public class AllTileEntities {
|
||||||
bind(MECHANICAL_PRESS, MechanicalPressRenderer::new);
|
bind(MECHANICAL_PRESS, MechanicalPressRenderer::new);
|
||||||
bind(MECHANICAL_MIXER, MechanicalMixerRenderer::new);
|
bind(MECHANICAL_MIXER, MechanicalMixerRenderer::new);
|
||||||
bind(MECHANICAL_CRAFTER, MechanicalCrafterRenderer::new);
|
bind(MECHANICAL_CRAFTER, MechanicalCrafterRenderer::new);
|
||||||
bind(SPEEDOMETER, disp -> new GaugeRenderer(disp, GaugeBlock.Type.SPEED));
|
bind(SPEEDOMETER, GaugeRenderer::speed);
|
||||||
bind(STRESSOMETER, disp -> new GaugeRenderer(disp, GaugeBlock.Type.STRESS));
|
bind(STRESSOMETER, GaugeRenderer::stress);
|
||||||
bind(BASIN, BasinRenderer::new);
|
bind(BASIN, BasinRenderer::new);
|
||||||
bind(DEPLOYER, DeployerRenderer::new);
|
bind(DEPLOYER, DeployerRenderer::new);
|
||||||
bind(FLYWHEEL, FlywheelRenderer::new);
|
bind(FLYWHEEL, FlywheelRenderer::new);
|
||||||
|
|
|
@ -28,6 +28,8 @@ import net.minecraft.nbt.NBTUtil;
|
||||||
import net.minecraft.tileentity.ITickableTileEntity;
|
import net.minecraft.tileentity.ITickableTileEntity;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.tileentity.TileEntityType;
|
import net.minecraft.tileentity.TileEntityType;
|
||||||
|
import net.minecraft.util.Direction;
|
||||||
|
import net.minecraft.util.Direction.AxisDirection;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
@ -445,5 +447,9 @@ public abstract class KineticTileEntity extends SmartTileEntity
|
||||||
public int getFlickerScore() {
|
public int getFlickerScore() {
|
||||||
return flickerTally;
|
return flickerTally;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static float convertToDirection(float axisSpeed, Direction d) {
|
||||||
|
return d.getAxisDirection() == AxisDirection.POSITIVE ? axisSpeed : -axisSpeed;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.simibubi.create.content.contraptions.components.crank;
|
package com.simibubi.create.content.contraptions.components.crank;
|
||||||
|
|
||||||
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
|
||||||
|
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
|
@ -30,15 +31,18 @@ public class HandCrankTileEntity extends GeneratingKineticTileEntity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getGeneratedSpeed() {
|
public float getGeneratedSpeed() {
|
||||||
return inUse == 0 ? 0 : backwards ? -32 : 32;
|
if (!AllBlocks.HAND_CRANK.has(getBlockState()))
|
||||||
|
return 0;
|
||||||
|
int speed = inUse == 0 ? 0 : backwards ? -32 : 32;
|
||||||
|
return convertToDirection(speed, getBlockState().get(HandCrankBlock.FACING));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CompoundNBT write(CompoundNBT compound) {
|
public CompoundNBT write(CompoundNBT compound) {
|
||||||
compound.putInt("InUse", inUse);
|
compound.putInt("InUse", inUse);
|
||||||
return super.write(compound);
|
return super.write(compound);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(CompoundNBT compound) {
|
public void read(CompoundNBT compound) {
|
||||||
inUse = compound.getInt("InUse");
|
inUse = compound.getInt("InUse");
|
||||||
|
|
|
@ -82,10 +82,12 @@ public class EncasedFanTileEntity extends GeneratingKineticTileEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Direction getAirFlowDirection() {
|
public Direction getAirFlowDirection() {
|
||||||
if (getSpeed() == 0)
|
float speed = getSpeed();
|
||||||
|
if (speed == 0)
|
||||||
return null;
|
return null;
|
||||||
Direction facing = getBlockState().get(BlockStateProperties.FACING);
|
Direction facing = getBlockState().get(BlockStateProperties.FACING);
|
||||||
return getSpeed() > 0 ? facing : facing.getOpposite();
|
speed = convertToDirection(speed, facing);
|
||||||
|
return speed > 0 ? facing : facing.getOpposite();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -125,7 +125,7 @@ public class NozzleTileEntity extends SmartTileEntity {
|
||||||
return 0;
|
return 0;
|
||||||
if (fan.getSpeed() == 0)
|
if (fan.getSpeed() == 0)
|
||||||
return 0;
|
return 0;
|
||||||
pushing = fan.getSpeed() > 0;
|
pushing = fan.getAirFlowDirection() == fan.getBlockState().get(EncasedFanBlock.FACING);
|
||||||
return fan.getMaxDistance();
|
return fan.getMaxDistance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class FlywheelTileEntity extends GeneratingKineticTileEntity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getGeneratedSpeed() {
|
public float getGeneratedSpeed() {
|
||||||
return generatedSpeed;
|
return convertToDirection(generatedSpeed, getBlockState().get(FlywheelBlock.HORIZONTAL_FACING));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -60,7 +60,7 @@ public class FlywheelTileEntity extends GeneratingKineticTileEntity {
|
||||||
@Override
|
@Override
|
||||||
public void readClientUpdate(CompoundNBT tag) {
|
public void readClientUpdate(CompoundNBT tag) {
|
||||||
super.readClientUpdate(tag);
|
super.readClientUpdate(tag);
|
||||||
visualSpeed.withSpeed(1 / 32f).target(generatedSpeed);
|
visualSpeed.withSpeed(1 / 32f).target(getGeneratedSpeed());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -84,7 +84,7 @@ public class FlywheelTileEntity extends GeneratingKineticTileEntity {
|
||||||
super.tick();
|
super.tick();
|
||||||
|
|
||||||
if (world.isRemote) {
|
if (world.isRemote) {
|
||||||
visualSpeed.target(generatedSpeed);
|
visualSpeed.target(getGeneratedSpeed());
|
||||||
visualSpeed.tick();
|
visualSpeed.tick();
|
||||||
angle += visualSpeed.value * 3 / 10f;
|
angle += visualSpeed.value * 3 / 10f;
|
||||||
angle %= 360;
|
angle %= 360;
|
||||||
|
|
|
@ -20,17 +20,21 @@ public class EngineRenderer<T extends EngineTileEntity> extends SafeTileEntityRe
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void renderSafe(T te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light,
|
protected void renderSafe(T te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, int light,
|
||||||
int overlay) {
|
int overlay) {
|
||||||
Block block = te.getBlockState().getBlock();
|
Block block = te.getBlockState()
|
||||||
|
.getBlock();
|
||||||
if (block instanceof EngineBlock) {
|
if (block instanceof EngineBlock) {
|
||||||
EngineBlock engineBlock = (EngineBlock) block;
|
EngineBlock engineBlock = (EngineBlock) block;
|
||||||
AllBlockPartials frame = engineBlock.getFrameModel();
|
AllBlockPartials frame = engineBlock.getFrameModel();
|
||||||
if (frame != null) {
|
if (frame != null) {
|
||||||
Direction facing = te.getBlockState().get(EngineBlock.HORIZONTAL_FACING);
|
Direction facing = te.getBlockState()
|
||||||
|
.get(EngineBlock.HORIZONTAL_FACING);
|
||||||
float angle = AngleHelper.rad(AngleHelper.horizontalAngle(facing));
|
float angle = AngleHelper.rad(AngleHelper.horizontalAngle(facing));
|
||||||
frame.renderOn(te.getBlockState()).translate(0, 0, -1).rotateCentered(Direction.UP, angle)
|
frame.renderOn(te.getBlockState())
|
||||||
.light(WorldRenderer.getLightmapCoordinates(te.getWorld(), te.getBlockState(), te.getPos()))
|
.rotateCentered(Direction.UP, angle)
|
||||||
.renderInto(ms, buffer.getBuffer(RenderType.getSolid()));
|
.translate(0, 0, -1)
|
||||||
|
.light(WorldRenderer.getLightmapCoordinates(te.getWorld(), te.getBlockState(), te.getPos()))
|
||||||
|
.renderInto(ms, buffer.getBuffer(RenderType.getSolid()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.simibubi.create.content.contraptions.components.motor;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
|
||||||
import com.simibubi.create.foundation.config.AllConfigs;
|
import com.simibubi.create.foundation.config.AllConfigs;
|
||||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||||
|
@ -48,7 +49,9 @@ public class CreativeMotorTileEntity extends GeneratingKineticTileEntity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public float getGeneratedSpeed() {
|
public float getGeneratedSpeed() {
|
||||||
return generatedSpeed.getValue();
|
if (!AllBlocks.CREATIVE_MOTOR.has(getBlockState()))
|
||||||
|
return 0;
|
||||||
|
return convertToDirection(generatedSpeed.getValue(), getBlockState().get(CreativeMotorBlock.FACING));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int step(StepContext context) {
|
public static int step(StepContext context) {
|
||||||
|
|
|
@ -8,7 +8,6 @@ import org.apache.commons.lang3.tuple.Pair;
|
||||||
|
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.AllContraptionTypes;
|
import com.simibubi.create.content.contraptions.components.structureMovement.AllContraptionTypes;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.BlockMovementTraits;
|
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity.CartMovementMode;
|
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity.CartMovementMode;
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
|
@ -20,7 +19,6 @@ import net.minecraft.state.properties.RailShape;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
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.Direction.AxisDirection;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.Vec3d;
|
import net.minecraft.util.math.Vec3d;
|
||||||
import net.minecraft.world.IWorld;
|
import net.minecraft.world.IWorld;
|
||||||
|
@ -63,18 +61,6 @@ public class MountedContraption extends Contraption {
|
||||||
protected boolean addToInitialFrontier(World world, BlockPos pos, Direction direction, List<BlockPos> frontier) {
|
protected boolean addToInitialFrontier(World world, BlockPos pos, Direction direction, List<BlockPos> frontier) {
|
||||||
frontier.clear();
|
frontier.clear();
|
||||||
frontier.add(pos.up());
|
frontier.add(pos.up());
|
||||||
BlockState state = world.getBlockState(pos);
|
|
||||||
if (!AllBlocks.CART_ASSEMBLER.has(state))
|
|
||||||
return false;
|
|
||||||
Axis axis = state.get(CartAssemblerBlock.RAIL_SHAPE) == RailShape.EAST_WEST ? Axis.Z : Axis.X;
|
|
||||||
for (AxisDirection axisDirection : AxisDirection.values()) {
|
|
||||||
Direction facingFromAxis = Direction.getFacingFromAxis(axisDirection, axis);
|
|
||||||
BlockPos offset = pos.offset(facingFromAxis);
|
|
||||||
BlockState blockState = world.getBlockState(offset);
|
|
||||||
if (!BlockMovementTraits.isBrittle(blockState)
|
|
||||||
|| BlockMovementTraits.isBlockAttachedTowards(blockState, facingFromAxis.getOpposite()))
|
|
||||||
frontier.add(offset);
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,15 @@ public class GaugeRenderer extends KineticTileEntityRenderer {
|
||||||
|
|
||||||
protected GaugeBlock.Type type;
|
protected GaugeBlock.Type type;
|
||||||
|
|
||||||
public GaugeRenderer(TileEntityRendererDispatcher dispatcher, GaugeBlock.Type type) {
|
public static GaugeRenderer speed(TileEntityRendererDispatcher dispatcher) {
|
||||||
|
return new GaugeRenderer(dispatcher, Type.SPEED);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GaugeRenderer stress(TileEntityRendererDispatcher dispatcher) {
|
||||||
|
return new GaugeRenderer(dispatcher, Type.STRESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected GaugeRenderer(TileEntityRendererDispatcher dispatcher, GaugeBlock.Type type) {
|
||||||
super(dispatcher);
|
super(dispatcher);
|
||||||
this.type = type;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ public class GearboxBlock extends RotatedPillarKineticBlock {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
public TileEntity createTileEntity(BlockState state, IBlockReader world) {
|
||||||
return AllTileEntities.DEPLOYER.create();
|
return AllTileEntities.GEARBOX.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,93 +1,103 @@
|
||||||
{
|
{
|
||||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"textures": {
|
"textures": {
|
||||||
"particle": "create:block/linear_chassis_side",
|
"4": "create:block/bearing_top",
|
||||||
"gearbox_top": "create:block/gearbox_top",
|
"5": "create:block/mechanical_bearing_side",
|
||||||
"clutch_off": "create:block/clutch_off",
|
"clutch_off": "create:block/clutch_off",
|
||||||
"rail": "minecraft:block/rail",
|
"rail": "block/rail",
|
||||||
"translation_chassis_side": "create:block/linear_chassis_side"
|
"translation_chassis_side": "create:block/cart_assembler_side",
|
||||||
},
|
"particle": "create:block/cart_assembler_side"
|
||||||
"elements": [
|
},
|
||||||
{
|
"elements": [
|
||||||
"name": "Rail",
|
{
|
||||||
"from": [ 0, 1, 0 ],
|
"name": "Rail",
|
||||||
"to": [ 16, 1, 16 ],
|
"from": [0, 1, 0],
|
||||||
"faces": {
|
"to": [16, 1, 16],
|
||||||
"up": { "texture": "#rail", "uv": [ 0, 0, 16, 16 ] },
|
"faces": {
|
||||||
"down": { "texture": "#rail", "uv": [ 0, 0, 16, 16 ], "rotation": 180 }
|
"up": {"uv": [0, 0, 16, 16], "texture": "#rail"},
|
||||||
}
|
"down": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#rail"}
|
||||||
},
|
}
|
||||||
{
|
},
|
||||||
"name": "Side",
|
{
|
||||||
"from": [ 0, 0, 0 ],
|
"name": "Side",
|
||||||
"to": [ 2, 16, 16 ],
|
"from": [13.875, 0.062, 1.125],
|
||||||
"faces": {
|
"to": [17.875, 13.937, 14.875],
|
||||||
"north": { "texture": "#gearbox_top", "uv": [ 14, 0, 16, 16 ] },
|
"faces": {
|
||||||
"east": { "texture": "#translation_chassis_side", "uv": [ 0, 0, 16, 16 ], "rotation": 90 },
|
"north": {"uv": [1, 4, 15, 0], "rotation": 90, "texture": "#translation_chassis_side"},
|
||||||
"south": { "texture": "#gearbox_top", "uv": [ 0, 16, 2, 0 ] },
|
"east": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#translation_chassis_side"},
|
||||||
"west": { "texture": "#translation_chassis_side", "uv": [ 0, 0, 16, 16 ], "rotation": 90 },
|
"south": {"uv": [1, 0, 15, 4], "rotation": 90, "texture": "#translation_chassis_side"},
|
||||||
"up": { "texture": "#translation_chassis_side", "uv": [ 0, 0, 2, 16 ] },
|
"west": {"uv": [1, 1, 15, 15], "rotation": 90, "texture": "#translation_chassis_side"},
|
||||||
"down": { "texture": "#translation_chassis_side", "uv": [ 0, 0, 2, 16 ] }
|
"up": {"uv": [5, 1, 9, 15], "texture": "#translation_chassis_side"},
|
||||||
}
|
"down": {"uv": [2, 1, 6, 15], "texture": "#translation_chassis_side"}
|
||||||
},
|
}
|
||||||
{
|
},
|
||||||
"name": "Side",
|
{
|
||||||
"from": [ 14, 0, 0 ],
|
"name": "Side",
|
||||||
"to": [ 16, 16, 16 ],
|
"from": [-1.875, 0.062, 1.125],
|
||||||
"faces": {
|
"to": [2.125, 13.937, 14.875],
|
||||||
"north": { "texture": "#gearbox_top", "uv": [ 0, 0, 2, 16 ] },
|
"faces": {
|
||||||
"east": { "texture": "#translation_chassis_side", "uv": [ 0, 0, 16, 16 ], "rotation": 90 },
|
"north": {"uv": [1, 0, 15, 4], "rotation": 90, "texture": "#translation_chassis_side"},
|
||||||
"south": { "texture": "#gearbox_top", "uv": [ 14, 16, 16, 0 ] },
|
"east": {"uv": [1, 15, 15, 1], "rotation": 90, "texture": "#translation_chassis_side"},
|
||||||
"west": { "texture": "#translation_chassis_side", "uv": [ 0, 0, 16, 16 ], "rotation": 90 },
|
"south": {"uv": [1, 4, 15, 0], "rotation": 90, "texture": "#translation_chassis_side"},
|
||||||
"up": { "texture": "#translation_chassis_side", "uv": [ 14, 0, 16, 16 ] },
|
"west": {"uv": [1, 15, 15, 1], "rotation": 90, "texture": "#translation_chassis_side"},
|
||||||
"down": { "texture": "#translation_chassis_side", "uv": [ 14, 0, 16, 16 ] }
|
"up": {"uv": [9, 1, 5, 15], "texture": "#translation_chassis_side"},
|
||||||
}
|
"down": {"uv": [6, 1, 2, 15], "texture": "#translation_chassis_side"}
|
||||||
},
|
}
|
||||||
{
|
},
|
||||||
"name": "Top",
|
{
|
||||||
"from": [ 2, 14, 0 ],
|
"from": [0, 12, 0],
|
||||||
"to": [ 14, 16, 16 ],
|
"to": [16, 16, 16],
|
||||||
"faces": {
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 23, 8]},
|
||||||
"north": { "texture": "#gearbox_top", "uv": [ 2, 0, 14, 2 ] },
|
"faces": {
|
||||||
"south": { "texture": "#gearbox_top", "uv": [ 2, 0, 14, 2 ] },
|
"north": {"uv": [0, 0, 16, 4], "texture": "#5"},
|
||||||
"up": { "texture": "#translation_chassis_side", "uv": [ 2, 0, 14, 16 ], "rotation": 180 },
|
"east": {"uv": [0, 0, 16, 4], "texture": "#5"},
|
||||||
"down": { "texture": "#translation_chassis_side", "uv": [ 2, 0, 14, 16 ] }
|
"south": {"uv": [0, 0, 16, 4], "texture": "#5"},
|
||||||
}
|
"west": {"uv": [0, 0, 16, 4], "texture": "#5"},
|
||||||
},
|
"up": {"uv": [0, 0, 16, 16], "texture": "#4"},
|
||||||
{
|
"down": {"uv": [0, 0, 16, 16], "texture": "#translation_chassis_side"}
|
||||||
"name": "Indicator",
|
}
|
||||||
"from": [ 1, 10, 2 ],
|
},
|
||||||
"to": [ 15, 14, 14 ],
|
{
|
||||||
"faces": {
|
"from": [2, 10, 1],
|
||||||
"north": { "texture": "#clutch_off", "uv": [ 1, 6, 15, 10 ] },
|
"to": [14, 12, 15],
|
||||||
"south": { "texture": "#clutch_off", "uv": [ 1, 6, 15, 10 ] },
|
"rotation": {"angle": 0, "axis": "y", "origin": [18, 22, 10]},
|
||||||
"down": { "texture": "#gearbox_top", "uv": [ 1, 2, 15, 14 ] }
|
"faces": {
|
||||||
}
|
"north": {"uv": [2, 7, 14, 9], "texture": "#clutch_off"},
|
||||||
},
|
"south": {"uv": [2, 7, 14, 9], "texture": "#clutch_off"},
|
||||||
{
|
"down": {"uv": [2, 1, 14, 15], "texture": "#translation_chassis_side"}
|
||||||
"name": "Side",
|
}
|
||||||
"from": [ 15.875, 0.062, 1.125 ],
|
}
|
||||||
"to": [ 17.875, 12.937, 14.875 ],
|
],
|
||||||
"faces": {
|
"display": {
|
||||||
"north": { "texture": "#gearbox_top", "uv": [ 0, 0, 2, 12.875 ] },
|
"thirdperson_righthand": {
|
||||||
"east": { "texture": "#translation_chassis_side", "uv": [ 2, 1, 14, 15 ], "rotation": 90 },
|
"rotation": [75, 45, 0],
|
||||||
"south": { "texture": "#gearbox_top", "uv": [ 14, 16, 16, 3 ] },
|
"translation": [0, 2.5, 0],
|
||||||
"up": { "texture": "#translation_chassis_side", "uv": [ 7, 1, 9, 15 ] },
|
"scale": [0.375, 0.375, 0.375]
|
||||||
"down": { "texture": "#translation_chassis_side", "uv": [ 7, 1, 9, 15 ] }
|
},
|
||||||
}
|
"thirdperson_lefthand": {
|
||||||
},
|
"rotation": [75, 45, 0],
|
||||||
{
|
"translation": [0, 2.5, 0],
|
||||||
"name": "Side",
|
"scale": [0.375, 0.375, 0.375]
|
||||||
"from": [ -1.875, 0.062, 1.125 ],
|
},
|
||||||
"to": [ 0.125, 12.937, 14.875 ],
|
"firstperson_righthand": {
|
||||||
"faces": {
|
"rotation": [0, 45, 0],
|
||||||
"north": { "texture": "#gearbox_top", "uv": [ 14, 0, 16, 12.875 ] },
|
"scale": [0.4, 0.4, 0.4]
|
||||||
"south": { "texture": "#gearbox_top", "uv": [ 0, 16, 2, 3 ] },
|
},
|
||||||
"west": { "texture": "#translation_chassis_side", "uv": [ 2, 1, 14, 15 ], "rotation": 90 },
|
"firstperson_lefthand": {
|
||||||
"up": { "texture": "#translation_chassis_side", "uv": [ 7, 1, 9, 15 ] },
|
"rotation": [0, 225, 0],
|
||||||
"down": { "texture": "#translation_chassis_side", "uv": [ 7, 1, 9, 15 ] }
|
"scale": [0.4, 0.4, 0.4]
|
||||||
}
|
},
|
||||||
}
|
"ground": {
|
||||||
]
|
"translation": [0, 3, 0],
|
||||||
|
"scale": [0.25, 0.25, 0.25]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [30, 225, 0],
|
||||||
|
"scale": [0.625, 0.625, 0.625]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"scale": [0.5, 0.5, 0.5]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||||
"textures": {
|
"textures": {
|
||||||
"translation_chassis_side": "create:block/linear_chassis_side"
|
"translation_chassis_side": "create:block/cart_assembler_side"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,48 +1,48 @@
|
||||||
{
|
{
|
||||||
"__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"textures": {
|
"textures": {
|
||||||
"0": "create:block/gearbox_top",
|
"0": "create:block/andesite_casing",
|
||||||
"1": "create:block/gearbox",
|
"1": "create:block/gearbox",
|
||||||
"particle": "create:block/gearbox_top"
|
"particle": "create:block/andesite_casing"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"name": "Bottom",
|
"name": "Bottom",
|
||||||
"from": [ 0.0, 0.0, 0.0 ],
|
"from": [0, 0, 0],
|
||||||
"to": [ 16.0, 2.0, 16.0 ],
|
"to": [16, 2, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#0", "uv": [ 0.0, 14.0, 16.0, 16.0 ] },
|
"north": {"uv": [0, 14, 16, 16], "texture": "#0"},
|
||||||
"east": { "texture": "#0", "uv": [ 0.0, 14.0, 16.0, 16.0 ] },
|
"east": {"uv": [0, 14, 16, 16], "texture": "#0"},
|
||||||
"south": { "texture": "#0", "uv": [ 0.0, 14.0, 16.0, 16.0 ] },
|
"south": {"uv": [0, 14, 16, 16], "texture": "#0"},
|
||||||
"west": { "texture": "#0", "uv": [ 0.0, 14.0, 16.0, 16.0 ] },
|
"west": {"uv": [0, 14, 16, 16], "texture": "#0"},
|
||||||
"up": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },
|
"up": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||||
"down": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }
|
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Core",
|
"name": "Core",
|
||||||
"from": [ 1.0, 2.0, 1.0 ],
|
"from": [1, 2, 1],
|
||||||
"to": [ 15.0, 14.0, 15.0 ],
|
"to": [15, 14, 15],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#1", "uv": [ 1.0, 2.0, 15.0, 14.0 ] },
|
"north": {"uv": [1, 2, 15, 14], "texture": "#1"},
|
||||||
"east": { "texture": "#1", "uv": [ 1.0, 2.0, 15.0, 14.0 ] },
|
"east": {"uv": [1, 2, 15, 14], "texture": "#1"},
|
||||||
"south": { "texture": "#1", "uv": [ 1.0, 2.0, 15.0, 14.0 ] },
|
"south": {"uv": [1, 2, 15, 14], "texture": "#1"},
|
||||||
"west": { "texture": "#1", "uv": [ 1.0, 2.0, 15.0, 14.0 ] }
|
"west": {"uv": [1, 2, 15, 14], "texture": "#1"}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Top",
|
"name": "Top",
|
||||||
"from": [ 0.0, 14.0, 0.0 ],
|
"from": [0, 14, 0],
|
||||||
"to": [ 16.0, 16.0, 16.0 ],
|
"to": [16, 16, 16],
|
||||||
"faces": {
|
"faces": {
|
||||||
"north": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 2.0 ] },
|
"north": {"uv": [0, 0, 16, 2], "texture": "#0"},
|
||||||
"east": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 2.0 ] },
|
"east": {"uv": [0, 0, 16, 2], "texture": "#0"},
|
||||||
"south": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 2.0 ] },
|
"south": {"uv": [0, 0, 16, 2], "texture": "#0"},
|
||||||
"west": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 2.0 ] },
|
"west": {"uv": [0, 0, 16, 2], "texture": "#0"},
|
||||||
"up": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] },
|
"up": {"uv": [0, 0, 16, 16], "texture": "#0"},
|
||||||
"down": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }
|
"down": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
"credit": "Made with Blockbench",
|
"credit": "Made with Blockbench",
|
||||||
"parent": "block/block",
|
"parent": "block/block",
|
||||||
"textures": {
|
"textures": {
|
||||||
"0": "create:block/gearbox_top",
|
"0": "create:block/andesite_casing",
|
||||||
"1": "create:block/gearbox",
|
"1": "create:block/gearbox",
|
||||||
"particle": "create:block/axis",
|
"particle": "create:block/axis",
|
||||||
"1_0": "create:block/axis",
|
"1_0": "create:block/axis",
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"textures": {
|
"textures": {
|
||||||
"0": "create:block/axis",
|
"0": "create:block/axis",
|
||||||
"1": "create:block/axis_top",
|
"1": "create:block/axis_top",
|
||||||
"gearbox_top": "create:block/gearbox_top",
|
"gearbox_top": "create:block/andesite_casing",
|
||||||
"gearbox": "create:block/gearbox",
|
"gearbox": "create:block/gearbox",
|
||||||
"particle": "create:block/axis"
|
"particle": "create:block/axis"
|
||||||
},
|
},
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 472 B |
Loading…
Reference in a new issue