mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-26 15:06:42 +01:00
Slots of fun
- Fixed upright mechanical saws only able to be oriented in two directions - Deployers now have their filter slot on the side of the block - Deployers can now be rotated by wrenching them near the edge of the front face
This commit is contained in:
parent
9cd992eed7
commit
a673734c71
17 changed files with 272 additions and 142 deletions
|
@ -312,7 +312,7 @@ cd13e5327f1adaf9ab2bfc511ead05b2799fdfb3 assets/create/blockstates/mechanical_pl
|
|||
92269fe66d7b83095a2e04e121af0be792f55dd6 assets/create/blockstates/mechanical_press.json
|
||||
b7c4a0ff0c6f16e14d71fc0fb7fc66d032b65cf3 assets/create/blockstates/mechanical_pump.json
|
||||
29ec1a3ec9b158b954f9ca126eaac89cee96cf84 assets/create/blockstates/mechanical_roller.json
|
||||
264d72320ee0f1e014319f7d99dcc1fa953a4ad4 assets/create/blockstates/mechanical_saw.json
|
||||
63543864991460d67e7474548bfa2f5f5bc23535 assets/create/blockstates/mechanical_saw.json
|
||||
94bbcb7e622471dbf418d78f9200ad321c7168de assets/create/blockstates/metal_bracket.json
|
||||
c253a827d9f0b0e29f67dfd19d65b259d3d4f045 assets/create/blockstates/metal_girder.json
|
||||
e20699a753e7b12abd4a881de473d494a4ffeaa9 assets/create/blockstates/metal_girder_encased_shaft.json
|
||||
|
@ -578,7 +578,7 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
|||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
11c1ebd001468641aacda3e4ed11995ed37853da assets/create/lang/en_ud.json
|
||||
6433e657b968debdc3f4a7f13afb3e62406fdaa8 assets/create/lang/en_us.json
|
||||
ff4f0cd079e13fcc7eae4f8c9af2a455af019056 assets/create/lang/en_us.json
|
||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||
|
|
|
@ -1,48 +1,96 @@
|
|||
{
|
||||
"variants": {
|
||||
"axis_along_first=false,facing=down": {
|
||||
"axis_along_first=false,facing=down,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/vertical",
|
||||
"x": 180
|
||||
},
|
||||
"axis_along_first=true,facing=down": {
|
||||
"axis_along_first=true,facing=down,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/vertical",
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=false,facing=up,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/vertical"
|
||||
},
|
||||
"axis_along_first=true,facing=up,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/vertical",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=false,facing=north,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=true,facing=north,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=false,facing=south,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/horizontal"
|
||||
},
|
||||
"axis_along_first=true,facing=south,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/horizontal"
|
||||
},
|
||||
"axis_along_first=false,facing=west,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=true,facing=west,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,facing=east,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=true,facing=east,flipped=false": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=false,facing=down,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/vertical",
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=true,facing=down,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/vertical",
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,facing=up": {
|
||||
"model": "create:block/mechanical_saw/vertical"
|
||||
"axis_along_first=false,facing=up,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/vertical",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=true,facing=up": {
|
||||
"axis_along_first=true,facing=up,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/vertical",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,facing=north": {
|
||||
"axis_along_first=false,facing=north,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=true,facing=north": {
|
||||
"axis_along_first=true,facing=north,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=false,facing=south": {
|
||||
"axis_along_first=false,facing=south,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/horizontal"
|
||||
},
|
||||
"axis_along_first=true,facing=south": {
|
||||
"axis_along_first=true,facing=south,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/horizontal"
|
||||
},
|
||||
"axis_along_first=false,facing=west": {
|
||||
"axis_along_first=false,facing=west,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=true,facing=west": {
|
||||
"axis_along_first=true,facing=west,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,facing=east": {
|
||||
"axis_along_first=false,facing=east,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=true,facing=east": {
|
||||
"axis_along_first=true,facing=east,flipped=true": {
|
||||
"model": "create:block/mechanical_saw/horizontal",
|
||||
"y": 270
|
||||
}
|
||||
|
|
|
@ -1469,7 +1469,7 @@
|
|||
"create.hint.mechanical_arm_no_targets": "It appears this _Mechanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.",
|
||||
"create.hint.empty_bearing.title": "Update Bearing",
|
||||
"create.hint.empty_bearing": "_Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.",
|
||||
"create.hint.full_deployer.title": "Deployer Item Overflow",
|
||||
"create.hint.full_deployer.title": "Deployer cannot activate",
|
||||
"create.hint.full_deployer": "It appears this _Deployer_ contains _excess_ _items_ that need to be _extracted._ Use a _hopper,_ _funnel_ or other means to free it from its overflow.",
|
||||
|
||||
"create.backtank.low": "Backtank pressure low",
|
||||
|
|
|
@ -167,6 +167,9 @@ public class AllShapes {
|
|||
TRACK_DIAG = shape(TrackVoxelShapes.diagonal()).forHorizontal(SOUTH),
|
||||
TRACK_ORTHO_LONG = shape(TrackVoxelShapes.longOrthogonalZOffset()).forHorizontal(SOUTH),
|
||||
|
||||
DEPLOYER_INTERACTION = shape(CASING_12PX.get(UP)).add(SIX_VOXEL_POLE.get(Axis.Y))
|
||||
.forDirectional(UP),
|
||||
|
||||
WHISTLE_BASE = shape(1, 0, 1, 15, 3, 15).add(5, 0, 5, 11, 8, 11)
|
||||
.forDirectional(UP)
|
||||
|
||||
|
@ -273,8 +276,6 @@ public class AllShapes {
|
|||
FUNNEL_CEILING = shape(2, 8, 2, 14, 18, 14).add(1, 8, 1, 15, 15, 15)
|
||||
.add(0, 6, 0, 16, 12, 16)
|
||||
.build(),
|
||||
DEPOT = shape(CASING_11PX.get(Direction.UP)).add(1, 11, 1, 15, 13, 15)
|
||||
.build(),
|
||||
STATION = shape(0, 0, 0, 16, 2, 16).add(1, 0, 1, 15, 13, 15)
|
||||
.build(),
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ import net.minecraft.world.level.block.state.BlockState;
|
|||
import net.minecraft.world.level.material.PushReaction;
|
||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
|
@ -45,7 +46,7 @@ import net.minecraft.world.phys.shapes.VoxelShape;
|
|||
public class DeployerBlock extends DirectionalAxisKineticBlock implements IBE<DeployerBlockEntity> {
|
||||
|
||||
private static final int placementHelperId = PlacementHelpers.register(new PlacementHelper());
|
||||
|
||||
|
||||
public DeployerBlock(Properties properties) {
|
||||
super(properties);
|
||||
}
|
||||
|
@ -57,12 +58,21 @@ public class DeployerBlock extends DirectionalAxisKineticBlock implements IBE<De
|
|||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
return AllShapes.DEPLOYER_INTERACTION.get(state.getValue(FACING));
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getCollisionShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
return AllShapes.CASING_12PX.get(state.getValue(FACING));
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult onWrenched(BlockState state, UseOnContext context) {
|
||||
if (context.getClickedFace() == state.getValue(FACING)) {
|
||||
Vec3 location = context.getClickLocation()
|
||||
.subtract(Vec3.atCenterOf(context.getClickedPos()))
|
||||
.multiply(Vec3.atLowerCornerOf(state.getValue(FACING)
|
||||
.getNormal()));
|
||||
if (location.length() > .25f) {
|
||||
if (!context.getLevel().isClientSide)
|
||||
withBlockEntityDo(context.getLevel(), context.getClickedPos(), DeployerBlockEntity::changeMode);
|
||||
return InteractionResult.SUCCESS;
|
||||
|
@ -97,11 +107,15 @@ public class DeployerBlock extends DirectionalAxisKineticBlock implements IBE<De
|
|||
.consumesAction())
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
if (AllItems.WRENCH.isIn(heldByPlayer))
|
||||
return InteractionResult.PASS;
|
||||
|
||||
if (hit.getDirection() != state.getValue(FACING))
|
||||
Vec3 location = hit.getLocation()
|
||||
.subtract(Vec3.atCenterOf(pos))
|
||||
.multiply(Vec3.atLowerCornerOf(state.getValue(FACING)
|
||||
.getNormal()));
|
||||
if (hit.getDirection() != state.getValue(FACING) && location.length() < .25f)
|
||||
return InteractionResult.PASS;
|
||||
if (worldIn.isClientSide)
|
||||
return InteractionResult.SUCCESS;
|
||||
|
|
|
@ -11,29 +11,49 @@ import net.minecraft.core.Direction.Axis;
|
|||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class DeployerFilterSlot extends ValueBoxTransform {
|
||||
public class DeployerFilterSlot extends ValueBoxTransform.Sided {
|
||||
|
||||
@Override
|
||||
protected Vec3 getLocalOffset(BlockState state) {
|
||||
Direction facing = state.getValue(DeployerBlock.FACING);
|
||||
Vec3 vec = VecHelper.voxelSpace(8f, 13f, 11.5f);
|
||||
Vec3 vec = VecHelper.voxelSpace(8f, 8f, 15.5f);
|
||||
|
||||
float yRot = AngleHelper.horizontalAngle(facing);
|
||||
float xRot = facing == Direction.UP ? 270 : facing == Direction.DOWN ? 90 : 0;
|
||||
vec = VecHelper.rotateCentered(vec, yRot, Axis.Y);
|
||||
vec = VecHelper.rotateCentered(vec, xRot, Axis.X);
|
||||
vec = VecHelper.rotateCentered(vec, AngleHelper.horizontalAngle(getSide()), Axis.Y);
|
||||
vec = VecHelper.rotateCentered(vec, AngleHelper.verticalAngle(getSide()), Axis.X);
|
||||
vec = vec.subtract(Vec3.atLowerCornerOf(facing.getNormal())
|
||||
.scale(2 / 16f));
|
||||
|
||||
return vec;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void rotate(BlockState state, PoseStack ms) {
|
||||
protected boolean isSideActive(BlockState state, Direction direction) {
|
||||
Direction facing = state.getValue(DeployerBlock.FACING);
|
||||
if (direction.getAxis() == facing.getAxis())
|
||||
return false;
|
||||
if (((DeployerBlock) state.getBlock()).getRotationAxis(state) == direction.getAxis())
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void rotate(BlockState state, PoseStack ms) {
|
||||
Direction facing = getSide();
|
||||
float xRot = facing == Direction.UP ? 90 : facing == Direction.DOWN ? 270 : 0;
|
||||
float yRot = AngleHelper.horizontalAngle(facing) + 180;
|
||||
|
||||
if (facing.getAxis() == Axis.Y)
|
||||
TransformStack.cast(ms)
|
||||
.rotateY(180 + AngleHelper.horizontalAngle(state.getValue(DeployerBlock.FACING)));
|
||||
|
||||
TransformStack.cast(ms)
|
||||
.rotateY(yRot)
|
||||
.rotateX(xRot);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Vec3 getSouthLocation() {
|
||||
return Vec3.ZERO;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ import net.minecraft.MethodsReturnNonnullByDefault;
|
|||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.Direction.AxisDirection;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
|
@ -31,8 +32,13 @@ import net.minecraft.world.item.context.BlockPlaceContext;
|
|||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Mirror;
|
||||
import net.minecraft.world.level.block.Rotation;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition.Builder;
|
||||
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
||||
import net.minecraft.world.level.material.PushReaction;
|
||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
@ -45,20 +51,69 @@ import net.minecraft.world.phys.shapes.VoxelShape;
|
|||
public class SawBlock extends DirectionalAxisKineticBlock implements IBE<SawBlockEntity> {
|
||||
public static DamageSource damageSourceSaw = new DamageSource("create.mechanical_saw").bypassArmor();
|
||||
|
||||
public static final BooleanProperty FLIPPED = BooleanProperty.create("flipped");
|
||||
|
||||
private static final int placementHelperId = PlacementHelpers.register(new PlacementHelper());
|
||||
|
||||
public SawBlock(Properties properties) {
|
||||
super(properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(Builder<Block, BlockState> builder) {
|
||||
super.createBlockStateDefinition(builder.add(FLIPPED));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
BlockState stateForPlacement = super.getStateForPlacement(context);
|
||||
Direction facing = stateForPlacement.getValue(FACING);
|
||||
if (facing.getAxis()
|
||||
.isVertical())
|
||||
return stateForPlacement;
|
||||
return stateForPlacement.setValue(AXIS_ALONG_FIRST_COORDINATE, facing.getAxis() == Axis.X);
|
||||
return stateForPlacement.setValue(FLIPPED, facing.getAxis() == Axis.Y && context.getHorizontalDirection()
|
||||
.getAxisDirection() == AxisDirection.POSITIVE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getRotatedBlockState(BlockState originalState, Direction targetedFace) {
|
||||
BlockState newState = super.getRotatedBlockState(originalState, targetedFace);
|
||||
if (newState.getValue(FACING)
|
||||
.getAxis() != Axis.Y)
|
||||
return newState;
|
||||
if (targetedFace.getAxis() != Axis.Y)
|
||||
return newState;
|
||||
if (!originalState.getValue(AXIS_ALONG_FIRST_COORDINATE))
|
||||
newState = newState.cycle(FLIPPED);
|
||||
return newState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState rotate(BlockState state, Rotation rot) {
|
||||
BlockState newState = super.rotate(state, rot);
|
||||
if (state.getValue(FACING)
|
||||
.getAxis() != Axis.Y)
|
||||
return newState;
|
||||
|
||||
if (rot.ordinal() % 2 == 1 && (rot == Rotation.CLOCKWISE_90) != state.getValue(AXIS_ALONG_FIRST_COORDINATE))
|
||||
newState = newState.cycle(FLIPPED);
|
||||
if (rot == Rotation.CLOCKWISE_180)
|
||||
newState = newState.cycle(FLIPPED);
|
||||
|
||||
return newState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState mirror(BlockState state, Mirror mirrorIn) {
|
||||
BlockState newState = super.mirror(state, mirrorIn);
|
||||
if (state.getValue(FACING)
|
||||
.getAxis() != Axis.Y)
|
||||
return newState;
|
||||
|
||||
boolean alongX = state.getValue(AXIS_ALONG_FIRST_COORDINATE);
|
||||
if (alongX && mirrorIn == Mirror.FRONT_BACK)
|
||||
newState = newState.cycle(FLIPPED);
|
||||
if (!alongX && mirrorIn == Mirror.LEFT_RIGHT)
|
||||
newState = newState.cycle(FLIPPED);
|
||||
|
||||
return newState;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -200,7 +255,8 @@ public class SawBlock extends DirectionalAxisKineticBlock implements IBE<SawBloc
|
|||
else {
|
||||
return PlacementOffset.success(pos.relative(directions.get(0)),
|
||||
s -> s.setValue(FACING, state.getValue(FACING))
|
||||
.setValue(AXIS_ALONG_FIRST_COORDINATE, state.getValue(AXIS_ALONG_FIRST_COORDINATE)));
|
||||
.setValue(AXIS_ALONG_FIRST_COORDINATE, state.getValue(AXIS_ALONG_FIRST_COORDINATE))
|
||||
.setValue(FLIPPED, state.getValue(FLIPPED)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,14 +15,16 @@ public class SawFilterSlot extends ValueBoxTransform {
|
|||
protected Vec3 getLocalOffset(BlockState state) {
|
||||
if (state.getValue(SawBlock.FACING) != Direction.UP)
|
||||
return null;
|
||||
Vec3 x = VecHelper.voxelSpace(8f, 12.5f, 5f);
|
||||
Vec3 z = VecHelper.voxelSpace(11f, 12.5f, 8f);
|
||||
int offset = state.getValue(SawBlock.FLIPPED) ? -3 : 3;
|
||||
Vec3 x = VecHelper.voxelSpace(8, 12.5f, 8 + offset);
|
||||
Vec3 z = VecHelper.voxelSpace(8 + offset, 12.5f, 8);
|
||||
return state.getValue(SawBlock.AXIS_ALONG_FIRST_COORDINATE) ? z : x;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void rotate(BlockState state, PoseStack ms) {
|
||||
int yRot = state.getValue(SawBlock.AXIS_ALONG_FIRST_COORDINATE) ? 270 : 0;
|
||||
int yRot = (state.getValue(SawBlock.AXIS_ALONG_FIRST_COORDINATE) ? 90 : 0)
|
||||
+ (state.getValue(SawBlock.FLIPPED) ? 0 : 180);
|
||||
TransformStack.cast(ms)
|
||||
.rotateY(yRot)
|
||||
.rotateX(90);
|
||||
|
|
|
@ -22,7 +22,7 @@ public class SawGenerator extends SpecialBlockStateGen {
|
|||
boolean axisAlongFirst = state.getValue(SawBlock.AXIS_ALONG_FIRST_COORDINATE);
|
||||
if (facing.getAxis()
|
||||
.isVertical())
|
||||
return axisAlongFirst ? 90 : 0;
|
||||
return (axisAlongFirst ? 270 : 0) + (state.getValue(SawBlock.FLIPPED) ? 180 : 0);
|
||||
return horizontalAngle(facing);
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,8 @@ public class ArmScenes {
|
|||
scene.overlay.showControls(new InputWindowElement(depotSurface, Pointing.RIGHT).rightClick()
|
||||
.withItem(armItem), 50);
|
||||
scene.idle(7);
|
||||
AABB depotBounds = AllShapes.DEPOT.bounds();
|
||||
AABB depotBounds = AllShapes.CASING_13PX.get(Direction.UP)
|
||||
.bounds();
|
||||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.INPUT, new Object(), depotBounds.move(4, 2, 1), 400);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
|
@ -394,7 +395,8 @@ public class ArmScenes {
|
|||
scene.world.showSection(util.select.fromTo(1, 1, 1, 5, 1, 2), Direction.SOUTH);
|
||||
scene.idle(10);
|
||||
|
||||
AABB depotBox = AllShapes.DEPOT.bounds();
|
||||
AABB depotBox = AllShapes.CASING_13PX.get(Direction.UP)
|
||||
.bounds();
|
||||
AABB beltBox = depotBox.contract(0, -3 / 16f, 0)
|
||||
.inflate(1, 0, 0);
|
||||
BlockPos depotPos = util.grid.at(1, 1, 4);
|
||||
|
|
|
@ -619,7 +619,7 @@
|
|||
"create.hint.mechanical_arm_no_targets": "It appears this _Mechanical_ _Arm_ has not been assigned any _targets._ Select belts, depots, funnels and other blocks by _right-clicking_ them while _holding_ the _Mechanical_ _Arm_ in your _hand_.",
|
||||
"create.hint.empty_bearing.title": "Update Bearing",
|
||||
"create.hint.empty_bearing": "_Right-click_ the bearing with an _empty_ _hand_ to _attach_ the structure you just built in front of it.",
|
||||
"create.hint.full_deployer.title": "Deployer Item Overflow",
|
||||
"create.hint.full_deployer.title": "Deployer cannot activate",
|
||||
"create.hint.full_deployer": "It appears this _Deployer_ contains _excess_ _items_ that need to be _extracted._ Use a _hopper,_ _funnel_ or other means to free it from its overflow.",
|
||||
|
||||
"create.backtank.low": "Backtank pressure low",
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"5": "create:block/andesite_casing_piston",
|
||||
"6": "create:block/piston_bottom",
|
||||
"7": "create:block/piston_inner",
|
||||
"particle": "create:block/gearbox_top",
|
||||
|
@ -44,7 +45,7 @@
|
|||
"south": {"uv": [0, 0, 16, 2], "texture": "#andesite_casing_short"},
|
||||
"west": {"uv": [14, 0, 16, 10], "rotation": 90, "texture": "#gearbox_top"},
|
||||
"up": {"uv": [0, 0, 16, 10], "rotation": 180, "texture": "#gearbox_top"},
|
||||
"down": {"uv": [0, 4, 16, 14], "texture": "#andesite_casing_short"}
|
||||
"down": {"uv": [0, 4, 16, 14], "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@ -55,7 +56,7 @@
|
|||
"east": {"uv": [14, 0, 16, 10], "rotation": 270, "texture": "#gearbox_top"},
|
||||
"south": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#andesite_casing_short"},
|
||||
"west": {"uv": [16, 0, 14, 10], "rotation": 90, "texture": "#gearbox_top"},
|
||||
"up": {"uv": [0, 4, 16, 14], "rotation": 180, "texture": "#andesite_casing_short"},
|
||||
"up": {"uv": [0, 4, 16, 14], "rotation": 180, "texture": "#5"},
|
||||
"down": {"uv": [0, 0, 16, 10], "texture": "#gearbox_top"}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
"1": "create:block/axis_top",
|
||||
"6": "create:block/piston_bottom",
|
||||
"7": "create:block/piston_inner",
|
||||
"10": "create:block/andesite_casing_piston",
|
||||
"18": "create:block/deployer",
|
||||
"particle": "create:block/axis",
|
||||
"gearbox_top": "create:block/gearbox_top",
|
||||
|
@ -45,7 +46,7 @@
|
|||
"from": [14, 0, 2],
|
||||
"to": [16, 16, 12],
|
||||
"faces": {
|
||||
"east": {"uv": [0, 4, 16, 14], "rotation": 270, "texture": "#andesite_casing_short"},
|
||||
"east": {"uv": [0, 4, 16, 14], "rotation": 270, "texture": "#10"},
|
||||
"south": {"uv": [0, 0, 16, 2], "rotation": 270, "texture": "#andesite_casing_short"},
|
||||
"west": {"uv": [0, 0, 16, 10], "rotation": 90, "texture": "#gearbox_top"},
|
||||
"up": {"uv": [16, 0, 14, 10], "rotation": 180, "texture": "#gearbox_top"},
|
||||
|
@ -59,7 +60,7 @@
|
|||
"faces": {
|
||||
"east": {"uv": [0, 0, 16, 10], "rotation": 270, "texture": "#gearbox_top"},
|
||||
"south": {"uv": [0, 0, 16, 2], "rotation": 90, "texture": "#andesite_casing_short"},
|
||||
"west": {"uv": [0, 4, 16, 14], "rotation": 90, "texture": "#andesite_casing_short"},
|
||||
"west": {"uv": [0, 4, 16, 14], "rotation": 90, "texture": "#10"},
|
||||
"up": {"uv": [14, 0, 16, 10], "rotation": 180, "texture": "#gearbox_top"},
|
||||
"down": {"uv": [16, 0, 14, 10], "texture": "#gearbox_top"}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"5": "create:block/andesite_casing_piston",
|
||||
"6": "create:block/piston_bottom",
|
||||
"7": "create:block/piston_inner",
|
||||
"particle": "create:block/gearbox_top",
|
||||
|
@ -40,7 +41,7 @@
|
|||
"from": [14, 0, 2],
|
||||
"to": [16, 16, 12],
|
||||
"faces": {
|
||||
"east": {"uv": [0, 4, 16, 14], "rotation": 270, "texture": "#andesite_casing_short"},
|
||||
"east": {"uv": [0, 4, 16, 14], "rotation": 270, "texture": "#5"},
|
||||
"south": {"uv": [0, 0, 16, 2], "rotation": 270, "texture": "#andesite_casing_short"},
|
||||
"west": {"uv": [0, 0, 16, 10], "rotation": 90, "texture": "#gearbox_top"},
|
||||
"up": {"uv": [16, 0, 14, 10], "rotation": 180, "texture": "#gearbox_top"},
|
||||
|
@ -54,7 +55,7 @@
|
|||
"faces": {
|
||||
"east": {"uv": [0, 0, 16, 10], "rotation": 270, "texture": "#gearbox_top"},
|
||||
"south": {"uv": [0, 0, 16, 2], "rotation": 90, "texture": "#andesite_casing_short"},
|
||||
"west": {"uv": [0, 4, 16, 14], "rotation": 90, "texture": "#andesite_casing_short"},
|
||||
"west": {"uv": [0, 4, 16, 14], "rotation": 90, "texture": "#5"},
|
||||
"up": {"uv": [14, 2, 16, 12], "rotation": 180, "texture": "#gearbox_top"},
|
||||
"down": {"uv": [16, 0, 14, 10], "texture": "#gearbox_top"}
|
||||
}
|
||||
|
|
|
@ -1,88 +1,80 @@
|
|||
{
|
||||
"__comment": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"textures": {
|
||||
"particle": "create:block/gearbox_top",
|
||||
"slit": "create:block/mechanical_saw_top",
|
||||
"gearbox_top": "create:block/gearbox_top",
|
||||
"encased_belt": "create:block/encased_chain_drive",
|
||||
"gearbox": "create:block/gearbox",
|
||||
"andesite_casing_short": "create:block/andesite_casing_short"
|
||||
},
|
||||
"credit": "Model generated using MrCrayfish's Model Creator (https://mrcrayfish.com/tools?id=mc)",
|
||||
"parent": "create:block/block",
|
||||
"elements": [
|
||||
{
|
||||
"name": "Bottom",
|
||||
"from": [ 0, 0, 0 ],
|
||||
"to": [ 16, 2, 12 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#andesite_casing_short", "uv": [ 0, 14, 16, 16 ] },
|
||||
"east": { "texture": "#andesite_casing_short", "uv": [ 4, 14, 16, 16 ] },
|
||||
"south": { "texture": "#encased_belt", "uv": [ 0, 14, 16, 16 ] },
|
||||
"west": { "texture": "#andesite_casing_short", "uv": [ 0, 14, 12, 16 ] },
|
||||
"up": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 16 ] },
|
||||
"down": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 16 ] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Top",
|
||||
"from": [ 0, 14, 0 ],
|
||||
"to": [ 16, 16, 12 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 6 ] },
|
||||
"east": { "texture": "#andesite_casing_short", "uv": [ 4, 4, 16, 6 ] },
|
||||
"south": { "texture": "#encased_belt", "uv": [ 0, 0, 16, 2 ] },
|
||||
"west": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 12, 6 ] },
|
||||
"up": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 16 ] },
|
||||
"down": { "texture": "#andesite_casing_short", "uv": [ 0, 4, 16, 16 ] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [ 0, 2, 0 ],
|
||||
"to": [ 2, 14, 2 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#gearbox_top", "uv": [ 14, 2, 16, 14 ] },
|
||||
"east": { "texture": "#gearbox_top", "uv": [ 14, 2, 16, 14 ] },
|
||||
"south": { "texture": "#gearbox_top", "uv": [ 0, 2, 2, 14 ] },
|
||||
"west": { "texture": "#gearbox_top", "uv": [ 0, 2, 2, 14 ] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Inner",
|
||||
"from": [ 0, 2, 2 ],
|
||||
"to": [ 16, 14, 11 ],
|
||||
"faces": {
|
||||
"east": { "texture": "#andesite_casing_short", "uv": [ 2, 6, 14, 15 ], "rotation": 90 },
|
||||
"south": { "texture": "#gearbox_top", "uv": [ 0, 2, 16, 14 ] },
|
||||
"west": { "texture": "#andesite_casing_short", "uv": [ 2, 6, 14, 15 ], "rotation": 270 }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SawSlit",
|
||||
"from": [ 1, 7, 11.062 ],
|
||||
"to": [ 15, 9, 11.062 ],
|
||||
"faces": {
|
||||
"south": { "texture": "#slit", "uv": [ 1, 7, 15, 9 ] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [ 14, 2, 0 ],
|
||||
"to": [ 16, 14, 2 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#gearbox_top", "uv": [ 0, 2, 2, 14 ] },
|
||||
"east": { "texture": "#gearbox_top", "uv": [ 14, 2, 16, 14 ] },
|
||||
"south": { "texture": "#gearbox_top", "uv": [ 0, 2, 2, 14 ] },
|
||||
"west": { "texture": "#gearbox_top", "uv": [ 0, 2, 2, 14 ] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [ 2, 2, 1 ],
|
||||
"to": [ 14, 14, 2 ],
|
||||
"faces": {
|
||||
"north": { "texture": "#gearbox", "uv": [ 2, 2, 14, 14 ] }
|
||||
}
|
||||
}
|
||||
]
|
||||
"textures": {
|
||||
"slit": "create:block/mechanical_saw_top_no_slot",
|
||||
"particle": "create:block/gearbox_top",
|
||||
"gearbox_top": "create:block/gearbox_top",
|
||||
"encased_belt": "create:block/encased_chain_drive",
|
||||
"gearbox": "create:block/gearbox",
|
||||
"andesite_casing_short": "create:block/andesite_casing_short"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "Bottom",
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 2, 12],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 14, 16, 16], "texture": "#andesite_casing_short"},
|
||||
"east": {"uv": [4, 14, 16, 16], "texture": "#andesite_casing_short"},
|
||||
"south": {"uv": [0, 14, 16, 16], "texture": "#encased_belt"},
|
||||
"west": {"uv": [0, 14, 12, 16], "texture": "#andesite_casing_short"},
|
||||
"up": {"uv": [0, 4, 16, 16], "texture": "#andesite_casing_short"},
|
||||
"down": {"uv": [0, 4, 16, 16], "texture": "#andesite_casing_short"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Top",
|
||||
"from": [0, 14, 0],
|
||||
"to": [16, 16, 12],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 16, 6], "texture": "#andesite_casing_short"},
|
||||
"east": {"uv": [4, 4, 16, 6], "texture": "#andesite_casing_short"},
|
||||
"south": {"uv": [0, 0, 16, 2], "texture": "#encased_belt"},
|
||||
"west": {"uv": [0, 4, 12, 6], "texture": "#andesite_casing_short"},
|
||||
"up": {"uv": [0, 4, 16, 16], "texture": "#andesite_casing_short"},
|
||||
"down": {"uv": [0, 4, 16, 16], "texture": "#andesite_casing_short"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [0, 2, 0],
|
||||
"to": [2, 14, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 2, 16, 14], "texture": "#gearbox_top"},
|
||||
"east": {"uv": [14, 2, 16, 14], "texture": "#gearbox_top"},
|
||||
"south": {"uv": [0, 2, 2, 14], "texture": "#gearbox_top"},
|
||||
"west": {"uv": [0, 2, 2, 14], "texture": "#gearbox_top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Inner",
|
||||
"from": [0, 2, 2],
|
||||
"to": [16, 14, 11],
|
||||
"faces": {
|
||||
"east": {"uv": [2, 6, 14, 15], "rotation": 90, "texture": "#andesite_casing_short"},
|
||||
"south": {"uv": [0, 2, 16, 14], "texture": "#slit"},
|
||||
"west": {"uv": [2, 6, 14, 15], "rotation": 270, "texture": "#andesite_casing_short"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [14, 2, 0],
|
||||
"to": [16, 14, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 2, 2, 14], "texture": "#gearbox_top"},
|
||||
"east": {"uv": [14, 2, 16, 14], "texture": "#gearbox_top"},
|
||||
"south": {"uv": [0, 2, 2, 14], "texture": "#gearbox_top"},
|
||||
"west": {"uv": [0, 2, 2, 14], "texture": "#gearbox_top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [2, 2, 1],
|
||||
"to": [14, 14, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [2, 2, 14, 14], "texture": "#gearbox"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
"credit": "Made with Blockbench",
|
||||
"parent": "create:block/block",
|
||||
"textures": {
|
||||
"slit": "create:block/mechanical_saw_top",
|
||||
"slit": "create:block/mechanical_saw_top_no_slot",
|
||||
"stonecutter_saw": "block/stonecutter_saw",
|
||||
"particle": "create:block/gearbox_top",
|
||||
"gearbox_top": "create:block/gearbox_top",
|
||||
|
@ -54,18 +54,10 @@
|
|||
"to": [16, 14, 11],
|
||||
"faces": {
|
||||
"east": {"uv": [2, 6, 14, 15], "rotation": 90, "texture": "#andesite_casing_short"},
|
||||
"south": {"uv": [0, 2, 16, 14], "texture": "#gearbox_top"},
|
||||
"south": {"uv": [0, 2, 16, 14], "texture": "#slit"},
|
||||
"west": {"uv": [2, 6, 14, 15], "rotation": 270, "texture": "#andesite_casing_short"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SawSlit",
|
||||
"from": [1, 7, 11.062],
|
||||
"to": [15, 9, 11.062],
|
||||
"faces": {
|
||||
"south": {"uv": [1, 7, 15, 9], "texture": "#slit"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Blade",
|
||||
"from": [1, 8, 11],
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 357 B |
Loading…
Reference in a new issue