From 8799fb38e88cd71b9df4f6241d877086afebeeef Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Wed, 22 Mar 2023 12:32:22 +0100 Subject: [PATCH 1/3] No turning back - Mechanical Pumps no longer reverse direction based on kinetic input - Fixed pipe connections pulling fluids with half the speed compared to a directly attached pump - Substantially increased speed of visual flow propagation inside pipe networks - Fixed observers on elevator contacts firing in the wrong order when triggered by manual floor selection - Portable storage interfaces now stall for longer after an exchange has happened, and shorter otherwise --- .../com/simibubi/create/AllPartialModels.java | 2 +- .../java/com/simibubi/create/AllShapes.java | 2 +- .../PortableStorageInterfaceBlockEntity.java | 4 +- .../elevator/ElevatorContactBlock.java | 6 +- .../elevator/ElevatorTargetFloorPacket.java | 19 +-- .../contraptions/fluids/PipeConnection.java | 2 +- .../contraptions/fluids/PumpBlock.java | 26 ++- .../contraptions/fluids/PumpBlockEntity.java | 71 +++----- .../contraptions/fluids/PumpCogInstance.java | 58 +------ .../contraptions/fluids/PumpRenderer.java | 32 ---- .../create/foundation/config/CLogistics.java | 2 +- .../models/block/mechanical_pump/arrow.json | 117 -------------- .../models/block/mechanical_pump/block.json | 66 +++++++- .../models/block/mechanical_pump/item.json | 152 ++++++++---------- .../assets/create/textures/block/pipes.png | Bin 808 -> 881 bytes .../assets/create/textures/block/pump.png | Bin 678 -> 684 bytes 16 files changed, 193 insertions(+), 366 deletions(-) delete mode 100644 src/main/resources/assets/create/models/block/mechanical_pump/arrow.json diff --git a/src/main/java/com/simibubi/create/AllPartialModels.java b/src/main/java/com/simibubi/create/AllPartialModels.java index 1519988e1..0ce78b729 100644 --- a/src/main/java/com/simibubi/create/AllPartialModels.java +++ b/src/main/java/com/simibubi/create/AllPartialModels.java @@ -92,7 +92,7 @@ public class AllPartialModels { ARM_HEAD = block("mechanical_arm/head"), ARM_CLAW_BASE = block("mechanical_arm/claw_base"), ARM_CLAW_GRIP = block("mechanical_arm/claw_grip"), - MECHANICAL_PUMP_ARROW = block("mechanical_pump/arrow"), MECHANICAL_PUMP_COG = block("mechanical_pump/cog"), + MECHANICAL_PUMP_COG = block("mechanical_pump/cog"), FLUID_PIPE_CASING = block("fluid_pipe/casing"), FLUID_VALVE_POINTER = block("fluid_valve/pointer"), SPOUT_TOP = block("spout/top"), SPOUT_MIDDLE = block("spout/middle"), SPOUT_BOTTOM = block("spout/bottom"), diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index 28e13b1ff..48acad91e 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -109,7 +109,7 @@ public class AllShapes { .add(5, -1, 6, 11, 0, 8) .forHorizontal(SOUTH), PUMP = shape(2, 0, 2, 14, 5, 14).add(4, 0, 4, 12, 16, 12) - .add(3, 12, 3, 13, 16, 13) + .add(3, 11, 3, 13, 16, 13) .forDirectional(Direction.UP), CRUSHING_WHEEL_CONTROLLER_COLLISION = shape(0, 0, 0, 16, 13, 16).forDirectional(Direction.DOWN), diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceBlockEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceBlockEntity.java index 082a7e97b..da30c9f61 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/PortableStorageInterfaceBlockEntity.java @@ -84,7 +84,7 @@ public abstract class PortableStorageInterfaceBlockEntity extends SmartBlockEnti } } - transferTimer = Math.min(transferTimer, ANIMATION * 2 + getTransferTimeout()); + transferTimer = Math.min(transferTimer, ANIMATION * 2 + timeUnit); boolean timerCanDecrement = transferTimer > ANIMATION || transferTimer > 0 && keepAlive == 0 && (isVirtual() || !level.isClientSide || transferTimer != ANIMATION); @@ -180,7 +180,7 @@ public abstract class PortableStorageInterfaceBlockEntity extends SmartBlockEnti } public void startConnecting() { - transferTimer = getTransferTimeout() + ANIMATION * 2; + transferTimer = 6 + ANIMATION * 2; } public void onContentTransferred() { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorContactBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorContactBlock.java index 319ef50e0..3b34d358e 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorContactBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorContactBlock.java @@ -90,9 +90,13 @@ public class ElevatorContactBlock extends WrenchableDirectionalBlock if (pState.getValue(CALLING)) return; + ElevatorColumn elevatorColumn = ElevatorColumn.getOrCreate(pLevel, getColumnCoords(pLevel, pPos)); + callToContactAndUpdate(elevatorColumn, pState, pLevel, pPos); + } + + public void callToContactAndUpdate(ElevatorColumn elevatorColumn, BlockState pState, Level pLevel, BlockPos pPos) { pLevel.setBlock(pPos, pState.cycle(CALLING), 2); - ElevatorColumn elevatorColumn = ElevatorColumn.getOrCreate(pLevel, getColumnCoords(pLevel, pPos)); for (BlockPos otherPos : elevatorColumn.getContacts()) { if (otherPos.equals(pPos)) continue; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java index 0bc29f19d..001371986 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/elevator/ElevatorTargetFloorPacket.java @@ -1,6 +1,5 @@ package com.simibubi.create.content.contraptions.components.structureMovement.elevator; -import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.foundation.networking.SimplePacketBase; @@ -41,7 +40,7 @@ public class ElevatorTargetFloorPacket extends SimplePacketBase { .getEntity(entityId); if (!(entityByID instanceof AbstractContraptionEntity ace)) return; - if (!(ace.getContraption()instanceof ElevatorContraption ec)) + if (!(ace.getContraption() instanceof ElevatorContraption ec)) return; if (ace.distanceToSqr(sender) > 50 * 50) return; @@ -53,18 +52,12 @@ public class ElevatorTargetFloorPacket extends SimplePacketBase { if (ec.isTargetUnreachable(targetY)) return; - for (BlockPos otherPos : elevatorColumn.getContacts()) { - BlockState otherState = level.getBlockState(otherPos); - if (!AllBlocks.ELEVATOR_CONTACT.has(otherState)) - continue; - level.setBlock(otherPos, otherState.setValue(ElevatorContactBlock.CALLING, otherPos.getY() == targetY), - 2); - AllBlocks.ELEVATOR_CONTACT.get() - .scheduleActivation(level, otherPos); - } + BlockPos pos = elevatorColumn.contactAt(targetY); + BlockState blockState = level.getBlockState(pos); + if (!(blockState.getBlock() instanceof ElevatorContactBlock ecb)) + return; - elevatorColumn.target(targetY); - elevatorColumn.markDirty(); + ecb.callToContactAndUpdate(elevatorColumn, blockState, level, pos); }); return true; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java index d1961bf7b..1b6d3461f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java @@ -201,7 +201,7 @@ public class PipeConnection { particleSplashNextTick = false; } - float flowSpeed = 1 / 32f + Mth.clamp(pressure.get(flow.inbound) / 512f, 0, 1) * 31 / 32f; + float flowSpeed = 1 / 32f + Mth.clamp(pressure.get(flow.inbound) / 128f, 0, 1) * 31 / 32f; flow.progress.setValue(Math.min(flow.progress.getValue() + flowSpeed, 1)); if (flow.progress.getValue() >= 1) flow.complete = true; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java index 681d2cc17..fb0333cc3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlock.java @@ -32,6 +32,7 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Fluids; import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.ticks.TickPriority; @@ -107,20 +108,33 @@ public class PumpBlock extends DirectionalKineticBlock Player player = context.getPlayer(); toPlace = ProperWaterloggedBlock.withWater(level, toPlace, pos); - if (player != null && player.isSteppingCarefully()) - return toPlace; + Direction nearestLookingDirection = context.getNearestLookingDirection(); + Direction targetDirection = context.getPlayer() != null && context.getPlayer() + .isShiftKeyDown() ? nearestLookingDirection : nearestLookingDirection.getOpposite(); + Direction bestConnectedDirection = null; + double bestDistance = Double.MAX_VALUE; for (Direction d : Iterate.directions) { BlockPos adjPos = pos.relative(d); BlockState adjState = level.getBlockState(adjPos); if (!FluidPipeBlock.canConnectTo(level, adjPos, adjState, d)) continue; - toPlace = toPlace.setValue(FACING, d); - if (context.getClickedFace() == d.getOpposite()) - break; + double distance = Vec3.atLowerCornerOf(d.getNormal()) + .distanceTo(Vec3.atLowerCornerOf(targetDirection.getNormal())); + if (distance > bestDistance) + continue; + bestDistance = distance; + bestConnectedDirection = d; } - return toPlace; + if (bestConnectedDirection == null) + return toPlace; + if (bestConnectedDirection.getAxis() == targetDirection.getAxis()) + return toPlace; + if (player.isSteppingCarefully() && bestConnectedDirection.getAxis() != targetDirection.getAxis()) + return toPlace; + + return toPlace.setValue(FACING, bestConnectedDirection); } public static boolean isPump(BlockState state) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlockEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlockEntity.java index c1dfb23da..9bacc5d80 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpBlockEntity.java @@ -21,8 +21,6 @@ import com.simibubi.create.foundation.utility.BlockFace; import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Pair; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -38,15 +36,14 @@ import net.minecraftforge.fluids.capability.IFluidHandler; public class PumpBlockEntity extends KineticBlockEntity { - LerpedFloat arrowDirection; Couple sidesToUpdate; boolean pressureUpdate; - boolean reversed; + + // Backcompat- flips any pump blockstate that loads with reversed=true + boolean scheduleFlip; public PumpBlockEntity(BlockEntityType typeIn, BlockPos pos, BlockState state) { super(typeIn, pos, state); - arrowDirection = LerpedFloat.linear() - .startWithValue(1); sidesToUpdate = Couple.create(MutableBoolean::new); } @@ -58,55 +55,36 @@ public class PumpBlockEntity extends KineticBlockEntity { registerAwardables(behaviours, AllAdvancements.PUMP); } - @Override - public void initialize() { - super.initialize(); - reversed = getSpeed() < 0; - } - @Override public void tick() { super.tick(); - float speed = getSpeed(); - if (level.isClientSide) { - if (speed == 0) - return; - arrowDirection.chase(speed >= 0 ? 1 : -1, .5f, Chaser.EXP); - arrowDirection.tickChaser(); - if (!isVirtual()) - return; + if (level.isClientSide && !isVirtual()) + return; + + if (scheduleFlip) { + level.setBlockAndUpdate(worldPosition, + getBlockState().setValue(PumpBlock.FACING, getBlockState().getValue(PumpBlock.FACING) + .getOpposite())); + scheduleFlip = false; } -// if (pressureUpdate) -// updatePressureChange(); - sidesToUpdate.forEachWithContext((update, isFront) -> { if (update.isFalse()) return; update.setFalse(); distributePressureTo(isFront ? getFront() : getFront().getOpposite()); }); - - if (speed == 0) - return; - if (speed < 0 != reversed) { - reversed = speed < 0; - updatePressureChange(); - return; - } } @Override public void onSpeedChanged(float previousSpeed) { super.onSpeedChanged(previousSpeed); - if (previousSpeed == getSpeed()) + if (Math.abs(previousSpeed) == Math.abs(getSpeed())) return; - if (speed != 0) { - reversed = speed < 0; + if (speed != 0) award(AllAdvancements.PUMP); - } if (level.isClientSide && !isVirtual()) return; @@ -126,6 +104,13 @@ public class PumpBlockEntity extends KineticBlockEntity { sidesToUpdate.forEach(MutableBoolean::setTrue); } + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + if (compound.getBoolean("Reversed")) + scheduleFlip = true; + } + protected void distributePressureTo(Direction side) { if (getSpeed() == 0) return; @@ -216,7 +201,7 @@ public class PumpBlockEntity extends KineticBlockEntity { float pressure = Math.abs(getSpeed()); for (Set set : validFaces.values()) { - int parallelBranches = set.size(); + int parallelBranches = Math.max(1, set.size() - 1); for (BlockFace face : set) { BlockPos pipePos = face.getPos(); Direction pipeSide = face.getFace(); @@ -309,18 +294,6 @@ public class PumpBlockEntity extends KineticBlockEntity { return FluidPropagator.isOpenEnd(world, blockFace.getPos(), face); } - @Override - public void write(CompoundTag compound, boolean clientPacket) { - compound.putBoolean("Reversed", reversed); - super.write(compound, clientPacket); - } - - @Override - protected void read(CompoundTag compound, boolean clientPacket) { - reversed = compound.getBoolean("Reversed"); - super.read(compound, clientPacket); - } - public void updatePipesOnSide(Direction side) { if (!isSideAccessible(side)) return; @@ -359,7 +332,7 @@ public class PumpBlockEntity extends KineticBlockEntity { } public boolean isPullingOnSide(boolean front) { - return front == reversed; + return !front; } class PumpFluidTransferBehaviour extends FluidTransportBehaviour { diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java index 37cf56e9f..14693ac31 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpCogInstance.java @@ -3,74 +3,28 @@ package com.simibubi.create.content.contraptions.fluids; import com.jozufozu.flywheel.api.Instancer; import com.jozufozu.flywheel.api.MaterialManager; import com.jozufozu.flywheel.api.instance.DynamicInstance; -import com.jozufozu.flywheel.core.Materials; -import com.jozufozu.flywheel.core.materials.model.ModelData; import com.simibubi.create.AllPartialModels; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.core.Direction; -import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; public class PumpCogInstance extends SingleRotatingInstance implements DynamicInstance { - private final ModelData[] arrows = new ModelData[2]; - private final Direction direction = blockState.getValue(PumpBlock.FACING); - - public PumpCogInstance(MaterialManager materialManager, PumpBlockEntity blockEntity) { - super(materialManager, blockEntity); - } - - @Override - public void init() { - super.init(); - - materialManager.defaultSolid() - .material(Materials.TRANSFORMED) - .getModel(AllPartialModels.MECHANICAL_PUMP_ARROW, blockState) - .createInstances(arrows); + public PumpCogInstance(MaterialManager materialManager, PumpBlockEntity blockEntity) { + super(materialManager, blockEntity); } + + @Override + public void beginFrame() {} @Override - public void beginFrame() { - float angle = Mth.lerp(blockEntity.arrowDirection.getValue(AnimationTickHolder.getPartialTicks()), 0, 90) - 90; - for (int i = 0, arrowsLength = arrows.length; i < arrowsLength; i++) { - arrows[i].loadIdentity() - .translate(getInstancePosition()) - .centre() - .rotateY(AngleHelper.horizontalAngle(direction) + 180) - .rotateX(-AngleHelper.verticalAngle(direction) - 90) - .unCentre() - .translate(.5, 14 / 16f, .5) - .rotateY(90 * i) - .rotateZ(angle) - .translateBack(.5, 14 / 16f, .5); - } - } - - @Override - public void updateLight() { - super.updateLight(); - relight(pos, arrows); - } - - @Override - protected Instancer getModel() { + protected Instancer getModel() { BlockState referenceState = blockEntity.getBlockState(); Direction facing = referenceState.getValue(BlockStateProperties.FACING); return getRotatingMaterial().getModel(AllPartialModels.MECHANICAL_PUMP_COG, referenceState, facing); } - @Override - public void remove() { - super.remove(); - - for (ModelData arrow : arrows) { - arrow.delete(); - } - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java index c9dd5777d..b9ff47060 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpRenderer.java @@ -1,20 +1,12 @@ package com.simibubi.create.content.contraptions.fluids; -import com.jozufozu.flywheel.backend.Backend; -import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllPartialModels; import com.simibubi.create.content.contraptions.base.KineticBlockEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; -import com.simibubi.create.foundation.utility.AngleHelper; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.core.Direction; -import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.Vec3; public class PumpRenderer extends KineticBlockEntityRenderer { @@ -22,30 +14,6 @@ public class PumpRenderer extends KineticBlockEntityRenderer { super(context); } - @Override - protected void renderSafe(PumpBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, - int light, int overlay) { - super.renderSafe(be, partialTicks, ms, buffer, light, overlay); - if (Backend.canUseInstancing(be.getLevel())) return; - Vec3 rotationOffset = new Vec3(.5, 14 / 16f, .5); - BlockState blockState = be.getBlockState(); - float angle = Mth.lerp(be.arrowDirection.getValue(partialTicks), 0, 90) - 90; - SuperByteBuffer arrow = CachedBufferer.partial(AllPartialModels.MECHANICAL_PUMP_ARROW, blockState); - for (float yRot : new float[] { 0, 90 }) { - Direction direction = blockState.getValue(PumpBlock.FACING); - arrow.centre() - .rotateY(AngleHelper.horizontalAngle(direction) + 180) - .rotateX(-AngleHelper.verticalAngle(direction) - 90) - .unCentre() - .translate(rotationOffset) - .rotateY(yRot) - .rotateZ(angle) - .translateBack(rotationOffset) - .light(light) - .renderInto(ms, buffer.getBuffer(RenderType.solid())); - } - } - @Override protected SuperByteBuffer getRotatedModel(PumpBlockEntity be, BlockState state) { return CachedBufferer.partialFacing(AllPartialModels.MECHANICAL_PUMP_COG, state); diff --git a/src/main/java/com/simibubi/create/foundation/config/CLogistics.java b/src/main/java/com/simibubi/create/foundation/config/CLogistics.java index cde5fe2d3..4ba3b7d49 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CLogistics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CLogistics.java @@ -5,7 +5,7 @@ public class CLogistics extends ConfigBase { public final ConfigInt defaultExtractionLimit = i(64, 1, 64, "defaultExtractionLimit", Comments.defaultExtractionLimit); public final ConfigInt defaultExtractionTimer = i(8, 1, "defaultExtractionTimer", Comments.defaultExtractionTimer); - public final ConfigInt psiTimeout = i(20, 1, "psiTimeout", Comments.psiTimeout); + public final ConfigInt psiTimeout = i(60, 1, "psiTimeout", Comments.psiTimeout); public final ConfigInt mechanicalArmRange = i(5, 1, "mechanicalArmRange", Comments.mechanicalArmRange); public final ConfigInt linkRange = i(256, 1, "linkRange", Comments.linkRange); public final ConfigInt displayLinkRange = i(64, 1, "displayLinkRange", Comments.displayLinkRange); diff --git a/src/main/resources/assets/create/models/block/mechanical_pump/arrow.json b/src/main/resources/assets/create/models/block/mechanical_pump/arrow.json deleted file mode 100644 index 56ff46484..000000000 --- a/src/main/resources/assets/create/models/block/mechanical_pump/arrow.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create:block/large_wheels", - "textures": { - "4": "create:block/pump", - "particle": "create:block/fluid_pipe" - }, - "elements": [ - { - "from": [7, 11.5, 1.5], - "to": [9, 13.5, 2.5], - "rotation": {"angle": -45, "axis": "z", "origin": [8, 14.5, 9.5]}, - "faces": { - "north": {"uv": [12, 2, 14, 4], "rotation": 270, "texture": "#4"}, - "east": {"uv": [12, 2, 14, 3], "rotation": 270, "texture": "#4"}, - "south": {"uv": [14, 2, 12, 4], "rotation": 90, "texture": "#4"}, - "west": {"uv": [12, 3, 14, 4], "rotation": 90, "texture": "#4"}, - "up": {"uv": [12, 3, 14, 4], "texture": "#4"}, - "down": {"uv": [12, 2, 13, 4], "rotation": 90, "texture": "#4"} - } - }, - { - "from": [7, 11.5, 13.5], - "to": [9, 13.5, 14.5], - "rotation": {"angle": -45, "axis": "z", "origin": [8, 14.5, 6.5]}, - "faces": { - "north": {"uv": [14, 4, 12, 2], "rotation": 90, "texture": "#4"}, - "east": {"uv": [12, 3, 14, 2], "rotation": 270, "texture": "#4"}, - "south": {"uv": [12, 4, 14, 2], "rotation": 270, "texture": "#4"}, - "west": {"uv": [12, 4, 14, 3], "rotation": 90, "texture": "#4"}, - "up": {"uv": [12, 4, 14, 3], "texture": "#4"}, - "down": {"uv": [13, 2, 12, 4], "rotation": 90, "texture": "#4"} - } - }, - { - "from": [7, 13.5, 1.5], - "to": [11, 15.5, 2.5], - "rotation": {"angle": -45, "axis": "z", "origin": [8, 14.5, 9.5]}, - "faces": { - "north": {"uv": [14, 0, 16, 4], "rotation": 270, "texture": "#4"}, - "east": {"uv": [14, 0, 16, 1], "rotation": 270, "texture": "#4"}, - "south": {"uv": [16, 0, 14, 4], "rotation": 90, "texture": "#4"}, - "west": {"uv": [12, 3, 14, 4], "rotation": 270, "texture": "#4"}, - "up": {"uv": [15, 0, 16, 4], "rotation": 90, "texture": "#4"}, - "down": {"uv": [12, 0, 13, 4], "rotation": 270, "texture": "#4"} - } - }, - { - "from": [7, 13.5, 13.5], - "to": [11, 15.5, 14.5], - "rotation": {"angle": -45, "axis": "z", "origin": [8, 14.5, 6.5]}, - "faces": { - "north": {"uv": [16, 4, 14, 0], "rotation": 90, "texture": "#4"}, - "east": {"uv": [14, 1, 16, 0], "rotation": 270, "texture": "#4"}, - "south": {"uv": [14, 4, 16, 0], "rotation": 270, "texture": "#4"}, - "west": {"uv": [12, 4, 14, 3], "rotation": 270, "texture": "#4"}, - "up": {"uv": [16, 0, 15, 4], "rotation": 90, "texture": "#4"}, - "down": {"uv": [13, 0, 12, 4], "rotation": 270, "texture": "#4"} - } - }, - { - "name": "rod", - "from": [7.5, 13.5, 1], - "to": [8.5, 14.5, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [15.5, 21.5, 10]}, - "faces": { - "north": {"uv": [0, 15, 1, 16], "texture": "#4"}, - "east": {"uv": [0, 15, 14, 16], "texture": "#4"}, - "south": {"uv": [0, 15, 1, 16], "texture": "#4"}, - "west": {"uv": [0, 15, 14, 16], "texture": "#4"}, - "up": {"uv": [0, 15, 14, 16], "rotation": 90, "texture": "#4"}, - "down": {"uv": [0, 15, 14, 16], "rotation": 90, "texture": "#4"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 1, 1.25], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "translation": [2.5, -0.5, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, 180, 0], - "translation": [0, 1.75, -4.5], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "arrow", - "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_pump/block.json b/src/main/resources/assets/create/models/block/mechanical_pump/block.json index df7988ce9..8dd3ab9b7 100644 --- a/src/main/resources/assets/create/models/block/mechanical_pump/block.json +++ b/src/main/resources/assets/create/models/block/mechanical_pump/block.json @@ -37,17 +37,67 @@ }, { "name": "front", - "from": [3, 12, 3], + "from": [3, 11, 3], "to": [13, 16, 13], "rotation": {"angle": 0, "axis": "z", "origin": [8.33333, 8.5, 8]}, "faces": { - "north": {"uv": [12, 4, 16, 14], "rotation": 90, "texture": "#4"}, - "east": {"uv": [12, 4, 16, 14], "rotation": 90, "texture": "#4"}, - "south": {"uv": [12, 4, 16, 14], "rotation": 90, "texture": "#4"}, - "west": {"uv": [12, 4, 16, 14], "rotation": 90, "texture": "#4"}, + "north": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"}, + "east": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"}, + "south": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"}, + "west": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"}, "up": {"uv": [11, 11, 16, 16], "texture": "#2"}, "down": {"uv": [6, 11, 11, 16], "texture": "#2"} } + }, + { + "from": [5.85355, 13.25, 1.75], + "to": [9.85355, 15.25, 13.75], + "rotation": {"angle": 45, "axis": "z", "origin": [8.35355, 13.25, 7.75]}, + "faces": { + "north": {"uv": [16, 0, 12, 2], "texture": "#4"}, + "east": {"uv": [15, 0, 16, 2], "texture": "#4"}, + "south": {"uv": [12, 0, 16, 2], "texture": "#4"}, + "west": {"uv": [12, 0, 13, 2], "texture": "#4"}, + "up": {"uv": [12, 0, 16, 1], "texture": "#4"}, + "down": {"uv": [12, 1, 16, 2], "texture": "#4"} + } + }, + { + "from": [7.85355, 11.25, 1.75], + "to": [9.85355, 13.25, 13.75], + "rotation": {"angle": 45, "axis": "z", "origin": [8.35355, 13.25, 7.75]}, + "faces": { + "north": {"uv": [16, 2, 14, 4], "texture": "#4"}, + "east": {"uv": [15, 2, 16, 4], "texture": "#4"}, + "south": {"uv": [14, 2, 16, 4], "texture": "#4"}, + "west": {"uv": [14, 2, 15, 4], "texture": "#4"}, + "down": {"uv": [14, 3, 16, 4], "texture": "#4"} + } + }, + { + "from": [2.35355, 10.75, 7.75], + "to": [14.35355, 12.75, 9.75], + "rotation": {"angle": -45, "axis": "x", "origin": [8.35355, 13.25, 7.75]}, + "faces": { + "north": {"uv": [14, 2, 15, 4], "texture": "#4"}, + "east": {"uv": [16, 2, 14, 4], "texture": "#4"}, + "south": {"uv": [15, 2, 16, 4], "texture": "#4"}, + "west": {"uv": [14, 2, 16, 4], "texture": "#4"}, + "down": {"uv": [14, 3, 16, 4], "rotation": 270, "texture": "#4"} + } + }, + { + "from": [2.35355, 12.75, 5.75], + "to": [14.35355, 14.75, 9.75], + "rotation": {"angle": -45, "axis": "x", "origin": [8.35355, 13.25, 7.75]}, + "faces": { + "north": {"uv": [12, 0, 13, 2], "texture": "#4"}, + "east": {"uv": [16, 0, 12, 2], "texture": "#4"}, + "south": {"uv": [15, 0, 16, 2], "texture": "#4"}, + "west": {"uv": [12, 0, 16, 2], "texture": "#4"}, + "up": {"uv": [12, 0, 16, 1], "rotation": 90, "texture": "#4"}, + "down": {"uv": [12, 1, 16, 2], "rotation": 270, "texture": "#4"} + } } ], "display": { @@ -87,6 +137,10 @@ "origin": [8, 8, 8], "color": 0, "children": [0, 1, 2] - } + }, + 3, + 4, + 5, + 6 ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/mechanical_pump/item.json b/src/main/resources/assets/create/models/block/mechanical_pump/item.json index c2dd84152..161c4910c 100644 --- a/src/main/resources/assets/create/models/block/mechanical_pump/item.json +++ b/src/main/resources/assets/create/models/block/mechanical_pump/item.json @@ -8,72 +8,6 @@ "particle": "create:block/pump" }, "elements": [ - { - "from": [1, 3, 1.5], - "to": [3, 5, 2.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 4, 8]}, - "faces": { - "north": {"uv": [12, 2, 14, 4], "texture": "#4"}, - "east": {"uv": [12, 2, 13, 4], "texture": "#4"}, - "south": {"uv": [14, 2, 12, 4], "texture": "#4"}, - "west": {"uv": [12, 3, 14, 4], "rotation": 270, "texture": "#4"}, - "up": {"uv": [12, 2, 14, 3], "rotation": 180, "texture": "#4"}, - "down": {"uv": [12, 3, 14, 4], "texture": "#4"} - } - }, - { - "from": [1, 3, 13.5], - "to": [3, 5, 14.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 4, 8]}, - "faces": { - "north": {"uv": [14, 4, 12, 2], "rotation": 180, "texture": "#4"}, - "east": {"uv": [13, 2, 12, 4], "texture": "#4"}, - "south": {"uv": [12, 4, 14, 2], "rotation": 180, "texture": "#4"}, - "west": {"uv": [12, 4, 14, 3], "rotation": 270, "texture": "#4"}, - "up": {"uv": [12, 3, 14, 2], "rotation": 180, "texture": "#4"}, - "down": {"uv": [12, 4, 14, 3], "texture": "#4"} - } - }, - { - "from": [-1, 3, 1.5], - "to": [1, 7, 2.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 4, 8]}, - "faces": { - "north": {"uv": [14, 0, 16, 4], "texture": "#4"}, - "east": {"uv": [12, 0, 13, 4], "rotation": 180, "texture": "#4"}, - "south": {"uv": [16, 0, 14, 4], "texture": "#4"}, - "west": {"uv": [15, 0, 16, 4], "texture": "#4"}, - "up": {"uv": [14, 0, 16, 1], "rotation": 180, "texture": "#4"}, - "down": {"uv": [12, 3, 14, 4], "rotation": 180, "texture": "#4"} - } - }, - { - "from": [-1, 3, 13.5], - "to": [1, 7, 14.5], - "rotation": {"angle": -45, "axis": "z", "origin": [6.5, 4, 8]}, - "faces": { - "north": {"uv": [16, 4, 14, 0], "rotation": 180, "texture": "#4"}, - "east": {"uv": [13, 0, 12, 4], "rotation": 180, "texture": "#4"}, - "south": {"uv": [14, 4, 16, 0], "rotation": 180, "texture": "#4"}, - "west": {"uv": [16, 0, 15, 4], "texture": "#4"}, - "up": {"uv": [14, 1, 16, 0], "rotation": 180, "texture": "#4"}, - "down": {"uv": [12, 4, 14, 3], "rotation": 180, "texture": "#4"} - } - }, - { - "name": "rod", - "from": [2, 8, 1], - "to": [3, 9, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 16, 8]}, - "faces": { - "north": {"uv": [0, 15, 1, 16], "rotation": 90, "texture": "#4"}, - "east": {"uv": [0, 15, 14, 16], "texture": "#4"}, - "south": {"uv": [0, 15, 1, 16], "rotation": 270, "texture": "#4"}, - "west": {"uv": [0, 15, 14, 16], "texture": "#4"}, - "up": {"uv": [0, 15, 14, 16], "rotation": 270, "texture": "#4"}, - "down": {"uv": [0, 15, 14, 16], "rotation": 270, "texture": "#4"} - } - }, { "name": "Gear5", "from": [5.5, 7, -1], @@ -158,6 +92,20 @@ "down": {"uv": [11.5, 15.5, 15.5, 11.5], "texture": "#2"} } }, + { + "name": "front", + "from": [0.5, 3.5, 3], + "to": [5.5, 13.5, 13], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 180, "texture": "#2"}, + "east": {"uv": [6, 11, 11, 16], "rotation": 270, "texture": "#2"}, + "south": {"uv": [10.5, 2.5, 13, 7.5], "texture": "#2"}, + "west": {"uv": [11, 11, 16, 16], "rotation": 270, "texture": "#2"}, + "up": {"uv": [10.5, 2.5, 13, 7.5], "texture": "#2"}, + "down": {"uv": [10.5, 2.5, 13, 7.5], "texture": "#2"} + } + }, { "name": "back", "from": [11.5, 2.5, 2], @@ -173,17 +121,53 @@ } }, { - "name": "front", - "from": [0.5, 3.5, 3], - "to": [4.5, 13.5, 13], - "rotation": {"angle": 0, "axis": "y", "origin": [8.5, 10.5, 8]}, + "from": [1.70355, 6.15, 2], + "to": [3.70355, 10.15, 14], + "rotation": {"angle": 45, "axis": "z", "origin": [3.35355, 8.25, 7.75]}, "faces": { - "north": {"uv": [12, 4, 16, 14], "rotation": 180, "texture": "#4"}, - "east": {"uv": [6, 11, 11, 16], "rotation": 270, "texture": "#2"}, - "south": {"uv": [12, 4, 16, 14], "texture": "#4"}, - "west": {"uv": [11, 11, 16, 16], "rotation": 270, "texture": "#2"}, - "up": {"uv": [12, 4, 16, 14], "texture": "#4"}, - "down": {"uv": [12, 4, 16, 14], "texture": "#4"} + "north": {"uv": [16, 0, 12, 2], "rotation": 90, "texture": "#4"}, + "east": {"uv": [12, 1, 16, 2], "rotation": 270, "texture": "#4"}, + "south": {"uv": [12, 0, 16, 2], "rotation": 270, "texture": "#4"}, + "west": {"uv": [12, 0, 16, 1], "rotation": 270, "texture": "#4"}, + "up": {"uv": [15, 0, 16, 2], "rotation": 270, "texture": "#4"}, + "down": {"uv": [12, 0, 13, 2], "rotation": 270, "texture": "#4"} + } + }, + { + "from": [3.70355, 8.15, 2], + "to": [5.70355, 10.15, 14], + "rotation": {"angle": 45, "axis": "z", "origin": [3.35355, 8.25, 7.75]}, + "faces": { + "north": {"uv": [16, 2, 14, 4], "rotation": 90, "texture": "#4"}, + "east": {"uv": [14, 3, 16, 4], "rotation": 270, "texture": "#4"}, + "south": {"uv": [14, 2, 16, 4], "rotation": 270, "texture": "#4"}, + "up": {"uv": [15, 2, 16, 4], "rotation": 270, "texture": "#4"}, + "down": {"uv": [14, 2, 15, 4], "rotation": 270, "texture": "#4"} + } + }, + { + "from": [3.85355, 2.5, 7.75], + "to": [5.85355, 14.5, 9.75], + "rotation": {"angle": -45, "axis": "y", "origin": [3.35355, 8.25, 7.75]}, + "faces": { + "north": {"uv": [14, 2, 15, 4], "rotation": 90, "texture": "#4"}, + "east": {"uv": [14, 3, 16, 4], "rotation": 180, "texture": "#4"}, + "south": {"uv": [15, 2, 16, 4], "rotation": 270, "texture": "#4"}, + "up": {"uv": [16, 2, 14, 4], "rotation": 270, "texture": "#4"}, + "down": {"uv": [14, 2, 16, 4], "rotation": 270, "texture": "#4"} + } + }, + { + "from": [1.85355, 2.5, 5.75], + "to": [3.85355, 14.5, 9.75], + "rotation": {"angle": -45, "axis": "y", "origin": [3.35355, 8.25, 7.75]}, + "faces": { + "north": {"uv": [12, 0, 13, 2], "rotation": 90, "texture": "#4"}, + "east": {"uv": [12, 1, 16, 2], "rotation": 180, "texture": "#4"}, + "south": {"uv": [15, 0, 16, 2], "rotation": 270, "texture": "#4"}, + "west": {"uv": [12, 0, 16, 1], "texture": "#4"}, + "up": {"uv": [16, 0, 12, 2], "rotation": 270, "texture": "#4"}, + "down": {"uv": [12, 0, 16, 2], "rotation": 270, "texture": "#4"} } } ], @@ -220,22 +204,22 @@ }, "groups": [ { - "name": "arrow", + "name": "cogwheel", "origin": [8, 8, 8], "color": 0, "children": [0, 1, 2, 3, 4] }, - { - "name": "cogwheel", - "origin": [8, 8, 8], - "color": 0, - "children": [5, 6, 7, 8, 9] - }, { "name": "pump", "origin": [8, 8, 8], "color": 0, - "children": [10, 11, 12] + "children": [5, 6, 7] + }, + { + "name": "Arrow", + "origin": [8, 8, 8], + "color": 0, + "children": [8, 9, 10, 11] } ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/pipes.png b/src/main/resources/assets/create/textures/block/pipes.png index 790be85be0fb42833cd722f50ea3ee4e0326a72c..c9166a8b1daadbcc1a0bd5c920e390ddd3f2bb98 100644 GIT binary patch delta 806 zcmV+>1KIqj2Jr@vEhSKLZ)Rz1WdHyu&y|rqNW)MRg-_FJMOqx}AmWgrcCsKU;wVv( zQZ9cgc;WFr&U@!@-+h44s4~q8j02i(o9Tok=JG3I@D;uAA&eLTGP8_iW+98N^>t5o zsqW%D3;(OITCf=46NzV;VcNv&#M7I$!FiuJ!pgErd`>)OQiH^gTvt4P<6LrC;F%FK zo1P<%5R0V_RyvrKO^tYpII3zoEa{4A*ImAb~|Bk%9;X zHB?ZAjX3Q(DHhUnE_Lw_yZ#ip6mnI-$T5!%Xpmh$_#gb9tyP?y@RC9j(DULrAEQ8U z7iiWU=lj@knkRt&8MxBh{*4AO^GSNWtwoQ3fo`H!GLa~1c zyr0oG<$=LlpnuhyTk9OB4?vb?wR8g<90IWtWv_L4cVFk+{=DPP57G}RI&z9q#rZ=3 z001^nOjJd^UQghQWAwIp%4k%uR7#jeLwGhj*mGK>O-77BK>x~x>7#ALV^UQhEC2Vx zJr*8iDK!890NaiCE&u=k5_D2dQ~!Ve|NsC0|NsC0|NsC0|Ns90;=jKV00009a7bBm z000XU000XU0RWnu7ytkPGD$>1R5(wClI?cFFbqTOB#uJ74*LEtJGm)c*AFIsVeYXd z1rbe}i`Dr?Qb3?R?g2sn2hadMoLGQs4{+}ifS&-%MeGeAfP)9oF9?C|0VIDvnG}V} zT#A{En8yuB{LBCZQm#y*2jFl5mnK(0ysW^nhxLS@EHTeT?M)8gQ_STx55S+I?w@-A zCONlOt3VT_T)n7TRw}b7&gg+(Q}2nR0ZfxNdej97leEj`7~2L=O)Y8D<%ICW82>5& zRbkp2#fgY;3v4F8`KMa7^YM0TS$c2T-Ieo7XaJ&>2|_CFbQ)?PFs1=aPimqEfB;v( zP=NsesmAZmrz9zbKu-stzkx1~M*#f@*ap0FfNAN_+RU22ABd;kCd07*qoM6N<$f-(zw_5c6? delta 733 zcmV<30wVqK2B-#*EhTVrZ)Rz1WdHzpoPCi!NW)MRg-_FJMOqx}AmWgrcCsKU;wV*- zQZ9evg~$6i@1DbZ_W?q)##A#f4yc-CWReLnUsw@?ujqvjVZ;!Sn5n0-3pse!*FE)8 z-Nkv9ci*2CR*EJAd?N8I(+!Jwop^fF(mC%FM_5Hth|h_~47wokBiCh@-#C{Y7IKTr#<;VC0y`22@CnAN&t~&(-1km$h+aIGq za2IGbZ2SAzwp%BF{~5T_I{u9&F!M=zqoYNSfPrn`;<}^Bd%)!mF!ZELhU7?oT0(!R z1iYWoHx+=vTcCf{om=}Hrw>4mX0>z!92^3%GG(uMyt}V^ZvXbQ=l26DI&z9Vf(r!z z000SaNLh0L01FcU01FcV0GgZ_0000pP)t-s00030_rm|mh4i+0>7#Ani(}YxTFPit zy1nBb7OM^Jx&)gQN4+OXpIBDpxYbU1DHd*=M%%4ki7xvRjqt}!C}@|xwwb{*pA&JM*mmll8Ay^AH5 zc+k^GZ8Ah1_k`K4y!-l~=6k@#x-RfO#c4n0F+W(^MlZ&4zW?{R~ zosUS>JOH@$p%Lp->rs(imE)jF8~{f@XyC&Ry&<2l797}xd2a_kkwsgewSv-nL09?9 z08G|8-9-cJqTDFuw+f(kDJd-s0mO6)BfFkI-rbaiqY-$A8j7a?&Ia`v@jr2W+Jz7> P00000NkvXXu0mjfW{Xsk diff --git a/src/main/resources/assets/create/textures/block/pump.png b/src/main/resources/assets/create/textures/block/pump.png index 0f5a56bef6fbe35737a4574ac250598d627d97e1..d7335ec98b6848b4307c09949e11de14a8718c72 100644 GIT binary patch delta 579 zcmV-J0=)gE1*`>-BNhRLX+uL$Nkc;*P;zf(X>4Tx04UFukxm!^QITgZe=2z4@jlLb z=WySBfY7Ki%?gYInr@rvge2zjD`M~!z3?H77y>f0jAUjZi>~!`Pj{*A;yergtFT(I z7~m6$XPIHz#OuV+?K&wI z(sV9$@ejNH6uA^~RlvwGj}2&$T|f9A{GP24lwj&$foQ{ep*7Ye+ayv(KqFR!CRnz z)tg)E9H$RJmS(kd0~{Ozu@Yskb$NGR=iL6h7#AEUQgI_T1!btL_t8XR7zf3T5@b@m_|dSO-77BKvf_sJr*9yXjC{bEC2ui%sQ}d z0000HbW%=J|NsC05&!@H|NsC0|NsC0{{SVenPQP47k>b8NklAQ=$AnGhZuoedjhybDS&fNf z%&nE8Nf`MFeGsa#3SXAah{U)W^DM>4xc44>>?D%PDHLkV1m`n3)BDr delta 595 zcmV-Z0<8V41*Qd%Ba;vU6)ypWX+uL$Nkc;*aB^>EX>4Tx0C=2zkv&MmP!xqv(`rRp z9PA+CkfC<6AS&W0RgqFIf8&M6`#A5O!+ZAuLbJwHGcXRQnq_2?2{B(-5rePjg%4rG z5RjOur?Lw$FCY#3E8iLxhYvs;I$2oOX>A6B#;Bc=(4Mf0|q}xvF5~n8yZGNRA);4}QuX((?uX}F) z_O$2s11dUliaml01poj5JWxzjMF0Q*|H_5*wt4BJZQzSz*mGLSXjH^wQoUYJuvAK< zO-7hTLySN`SxrV#NI^_OJV!k^I4~?#AS*o<9x9@@xc~qFe*tt-PE!Ct=GbNc0044H zL_t(|0R_P^V#7cP05HK3r%Q(Z|B>D80F@%etB2RK#wW`Wl1NRcFnPgbe1dxKxdJ;J zrXCp(tMfUV1EBRxCjc;;DFF1CDmJiDzDwPCTg07{sFg;$(h5okjag@90Km`pOaZ`| h3;+P}3jqH76$9lWGD;O$*RlWr002ovPDHLkV1h3_2N3`O From 379b8d1f26e231c69b37e5ad940fa243d34fecc3 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Wed, 22 Mar 2023 15:22:06 +0100 Subject: [PATCH 2/3] Taking Inventory - Set a default tooltip colour palette - Moved copper block sets back to creates building blocks tab - Fixed mechanical belt not appearing in base creative tab - Fixed items added after world creation not appearing in tabs at the correct slot - Added missing survival mode recipes for new blocks & items --- src/generated/resources/.cache/cache | 146 ++++++++++-------- ...at_panel_from_zinc_ingot_stonecutting.json | 34 ++++ ...cat_step_from_zinc_ingot_stonecutting.json | 34 ++++ .../appliances/netherite_backtank.json | 34 ++++ .../appliances/netherite_diving_boots.json | 34 ++++ .../appliances/netherite_diving_helmet.json | 34 ++++ .../kinetics/contraption_controls.json | 34 ++++ .../crafting/kinetics/elevator_pulley.json | 32 ++++ .../copper_shingle_slab.json | 0 ...lab_from_copper_shingles_stonecutting.json | 0 .../copper_shingle_stairs.json | 0 ...irs_from_copper_shingles_stonecutting.json | 0 ...ngles_from_plates_copper_stonecutting.json | 0 .../copper_tile_slab.json | 0 ...e_slab_from_copper_tiles_stonecutting.json | 0 .../copper_tile_stairs.json | 0 ...stairs_from_copper_tiles_stonecutting.json | 0 ...tiles_from_plates_copper_stonecutting.json | 0 ...ed_copper_shingle_slab_from_honeycomb.json | 0 ..._copper_shingle_stairs_from_honeycomb.json | 0 .../waxed_copper_shingles_from_honeycomb.json | 0 ...waxed_copper_tile_slab_from_honeycomb.json | 0 ...xed_copper_tile_stairs_from_honeycomb.json | 0 .../waxed_copper_tiles_from_honeycomb.json | 0 ...ed_copper_shingle_slab_from_honeycomb.json | 0 ..._copper_shingle_stairs_from_honeycomb.json | 0 ...xposed_copper_shingles_from_honeycomb.json | 0 ...posed_copper_tile_slab_from_honeycomb.json | 0 ...sed_copper_tile_stairs_from_honeycomb.json | 0 ...d_exposed_copper_tiles_from_honeycomb.json | 0 ...ed_copper_shingle_slab_from_honeycomb.json | 0 ..._copper_shingle_stairs_from_honeycomb.json | 0 ...idized_copper_shingles_from_honeycomb.json | 0 ...dized_copper_tile_slab_from_honeycomb.json | 0 ...zed_copper_tile_stairs_from_honeycomb.json | 0 ..._oxidized_copper_tiles_from_honeycomb.json | 0 ...ed_copper_shingle_slab_from_honeycomb.json | 0 ..._copper_shingle_stairs_from_honeycomb.json | 0 ...thered_copper_shingles_from_honeycomb.json | 0 ...hered_copper_tile_slab_from_honeycomb.json | 0 ...red_copper_tile_stairs_from_honeycomb.json | 0 ...weathered_copper_tiles_from_honeycomb.json | 0 .../brass_block_from_compacting.json | 0 .../crafting/materials/raw_zinc_block.json | 0 .../rose_quartz_tilesfrom_conversion.json | 0 ...mall_rose_quartz_tilesfrom_conversion.json | 0 .../materials/zinc_block_from_compacting.json | 0 .../exposed_copper_shingle_slab.json | 0 ..._exposed_copper_shingles_stonecutting.json | 0 .../exposed_copper_shingle_stairs.json | 0 ..._exposed_copper_shingles_stonecutting.json | 0 .../exposed_copper_tile_slab.json | 0 ...rom_exposed_copper_tiles_stonecutting.json | 0 .../exposed_copper_tile_stairs.json | 0 ...rom_exposed_copper_tiles_stonecutting.json | 0 .../oxidized_copper_shingle_slab.json | 0 ...oxidized_copper_shingles_stonecutting.json | 0 .../oxidized_copper_shingle_stairs.json | 0 ...oxidized_copper_shingles_stonecutting.json | 0 .../oxidized_copper_tile_slab.json | 0 ...om_oxidized_copper_tiles_stonecutting.json | 0 .../oxidized_copper_tile_stairs.json | 0 ...om_oxidized_copper_tiles_stonecutting.json | 0 ...z_block_from_rose_quartz_stonecutting.json | 0 ...rom_polished_rose_quartz_stonecutting.json | 0 ...rom_polished_rose_quartz_stonecutting.json | 0 .../weathered_copper_shingle_slab.json | 0 ...eathered_copper_shingles_stonecutting.json | 0 .../weathered_copper_shingle_stairs.json | 0 ...eathered_copper_shingles_stonecutting.json | 0 .../weathered_copper_tile_slab.json | 0 ...m_weathered_copper_tiles_stonecutting.json | 0 .../weathered_copper_tile_stairs.json | 0 ...m_weathered_copper_tiles_stonecutting.json | 0 ...at_panel_from_zinc_ingot_stonecutting.json | 8 + ...cat_step_from_zinc_ingot_stonecutting.json | 8 + .../appliances/netherite_backtank.json | 12 ++ .../appliances/netherite_diving_boots.json | 12 ++ .../appliances/netherite_diving_helmet.json | 12 ++ .../kinetics/contraption_controls.json | 22 +++ .../crafting/kinetics/elevator_pulley.json | 22 +++ .../java/com/simibubi/create/AllBlocks.java | 6 + src/main/java/com/simibubi/create/Create.java | 5 +- .../contraptions/relays/belt/BeltBlock.java | 7 - .../relays/belt/item/BeltConnectorItem.java | 12 +- .../relays/elementary/CogWheelBlock.java | 12 ++ .../data/recipe/CreateRecipeProvider.java | 5 + .../data/recipe/StandardRecipeGen.java | 37 ++++- .../item/CreateCreativeModeTab.java | 34 ++-- .../create/foundation/item/TooltipHelper.java | 6 + 90 files changed, 505 insertions(+), 97 deletions(-) create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/copycat_panel_from_zinc_ingot_stonecutting.json create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/copycat_step_from_zinc_ingot_stonecutting.json create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_backtank.json create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_boots.json create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_helmet.json create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/contraption_controls.json create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/elevator_pulley.json rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/copper_shingle_slab.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/copper_shingle_slab_from_copper_shingles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/copper_shingle_stairs.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/copper_shingle_stairs_from_copper_shingles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/copper_shingles_from_plates_copper_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/copper_tile_slab.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/copper_tile_slab_from_copper_tiles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/copper_tile_stairs.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/copper_tile_stairs_from_copper_tiles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/copper_tiles_from_plates_copper_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_copper_shingles_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_copper_tiles_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/materials/brass_block_from_compacting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/materials/raw_zinc_block.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/materials/rose_quartz_tilesfrom_conversion.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/materials/small_rose_quartz_tilesfrom_conversion.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/crafting/materials/zinc_block_from_compacting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/exposed_copper_shingle_slab.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/exposed_copper_shingle_stairs.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/exposed_copper_tile_slab.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/exposed_copper_tile_stairs.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/oxidized_copper_shingle_slab.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/oxidized_copper_shingle_stairs.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/oxidized_copper_tile_slab.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/oxidized_copper_tile_stairs.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/rose_quartz_block_from_rose_quartz_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/weathered_copper_shingle_slab.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/weathered_copper_shingle_stairs.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/weathered_copper_tile_slab.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/weathered_copper_tile_stairs.json (100%) rename src/generated/resources/data/create/advancements/recipes/{create.base => create.palettes}/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json (100%) create mode 100644 src/generated/resources/data/create/recipes/copycat_panel_from_zinc_ingot_stonecutting.json create mode 100644 src/generated/resources/data/create/recipes/copycat_step_from_zinc_ingot_stonecutting.json create mode 100644 src/generated/resources/data/create/recipes/crafting/appliances/netherite_backtank.json create mode 100644 src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_boots.json create mode 100644 src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_helmet.json create mode 100644 src/generated/resources/data/create/recipes/crafting/kinetics/contraption_controls.json create mode 100644 src/generated/resources/data/create/recipes/crafting/kinetics/elevator_pulley.json diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index f9bb93b65..90b09a730 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -2310,47 +2310,18 @@ ba80332510acab3f60f30d8b802ee2d450fd51b9 data/create/advancements/recipes/create 00ff89f208cb9023d7a2657c43d267e21755fb2e data/create/advancements/recipes/create.base/blasting/zinc_ingot_from_raw_ore.json 13ce2dba955de3b6b943fa406e3dde6863093820 data/create/advancements/recipes/create.base/brass_ladder_from_plates_brass_stonecutting.json 1dea56b4759da676f0edf0878ec834a4129d110b data/create/advancements/recipes/create.base/copper_ladder_from_plates_copper_stonecutting.json -19b18800dfc55508e250ebb87fbaa70510736834 data/create/advancements/recipes/create.base/copper_shingle_slab.json -0a8b2f2e35c128e470d0fd1a886b9d6ca2e99483 data/create/advancements/recipes/create.base/copper_shingle_slab_from_copper_shingles_stonecutting.json -6b066af05bef4c41a6b8fefa2cb38bcdb821eada data/create/advancements/recipes/create.base/copper_shingle_stairs.json -f5ab02df55489afd71af8a54f41a7d9b89e28b6c data/create/advancements/recipes/create.base/copper_shingle_stairs_from_copper_shingles_stonecutting.json -c2ca0ac0d670fa4d7e8150ba6e314de2881248b6 data/create/advancements/recipes/create.base/copper_shingles_from_plates_copper_stonecutting.json -6d86dd16e892ea7fcaa9c98d6f1c80ee8b2b3d50 data/create/advancements/recipes/create.base/copper_tile_slab.json -4976383641eb8308fdaf9c5c02af7191154e232e data/create/advancements/recipes/create.base/copper_tile_slab_from_copper_tiles_stonecutting.json -9a4f929ad023abc111e4da7dce14104bcd162949 data/create/advancements/recipes/create.base/copper_tile_stairs.json -f605ac221fbd565152f8e987beb7697299588da2 data/create/advancements/recipes/create.base/copper_tile_stairs_from_copper_tiles_stonecutting.json -5190d5c155ebd9a670dc8271e4920a048e633d25 data/create/advancements/recipes/create.base/copper_tiles_from_plates_copper_stonecutting.json +3397bed32684183c2896348e3010f47137e3216d data/create/advancements/recipes/create.base/copycat_panel_from_zinc_ingot_stonecutting.json +3c22b58635d4b1c1e4c4033e43b7b4a74b1af186 data/create/advancements/recipes/create.base/copycat_step_from_zinc_ingot_stonecutting.json 376bda381f3dedb52b03eb1504b103d8ddd1b672 data/create/advancements/recipes/create.base/crafting/appliances/copper_backtank.json 9833d16405f8c51646590e98588fb410f96d9523 data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_boots.json 680c982dd1d3c45bed4d390fc0da5042750c157a data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_helmet.json 265a953eaac909fd2817c6dc3d1a08b376579a25 data/create/advancements/recipes/create.base/crafting/appliances/crafting_blueprint.json fa2e18298f7710465d9b0798a69288e846c646fd data/create/advancements/recipes/create.base/crafting/appliances/dough.json a9b163744b1c494d07ec256d0367884f9601176d data/create/advancements/recipes/create.base/crafting/appliances/linked_controller.json +ab1e704db4a41a8d2cba357942f95c411a80a0c8 data/create/advancements/recipes/create.base/crafting/appliances/netherite_backtank.json +f714a7fa70ed9e9b0c145d466357cd1ef4de184b data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_boots.json +99efa64a74ad29cf3b6cc565eabdd9b7e7e0cc40 data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_helmet.json c4769d7ac9c537eb4409b02883e89d0930514a8b data/create/advancements/recipes/create.base/crafting/appliances/tree_fertilizer.json -9a3666ff51dc8bc84fc19a662cbe7a74ba2ea6e1 data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json -4401458a7b24d26a1195b1bcc8aa98dbc49b5343 data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json -af9f28793d0fe25c09ffe695412f76db8e00aac9 data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingles_from_honeycomb.json -f4b00c480033de4122a8910760be937c3c14b6fa data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json -819573e770501ae2877502bde97f88f18674d664 data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json -88a1a812e70a839d881d6a2de0c7bd2901cd7110 data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tiles_from_honeycomb.json -b3c40ad7ba1d3168c2f107437356bdf2c1b656cd data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json -95a9872f9fa780a4becd99922dc1a07dc49f6197 data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json -1d507e15315a0e8021a3896048fee38074ad59be data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json -42624cd60adfa07d8b54ff995017663f2c080b4c data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json -3a9adacc43929f920094bb126e1d83c856a86bfe data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json -efd9cd067c1b2693ca8dbb587418ed224de4a0e5 data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json -a61208fab2c5ac4abdeca0a1f43359820d34cff8 data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json -546507f9ec60f2b282440c5cbe873865749f7267 data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json -30da09d01454489196caca640975799c54ff7fe4 data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json -e56eeb0bf21f743236ffaf061efab5e75b1cba2a data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json -c43e0847e84d5909c2d5f943faeb641bb33b3814 data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json -18ad4ce8a00680c49e42f232352dbd56bc4b9b13 data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json -2ade4a47afb8a9eab6bf6b965571051a3bdda6c6 data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json -abda25ed5695780b534412b4501e927ec3a6fe16 data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json -7675fa9d8f2914f68f425f20d2ef9fab0287051e data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json -5a3e5b3285e44d543c55ab92510864f031f0ccf8 data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json -2e8b01267e308929961be0b1f268b34f5faa3aa3 data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json -1ed6fd1f67443f5d6d955218dc45254db407d8ac data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json bb138bedd2aec741fa54b6b52be384fdbd741249 data/create/advancements/recipes/create.base/crafting/curiosities/brown_toolbox.json 773faf96b003868e35ceeb0bf738281d066e343b data/create/advancements/recipes/create.base/crafting/curiosities/minecart_coupling.json a8c72e7e02fd0843d33fa4c5d43de81f29bc3aa4 data/create/advancements/recipes/create.base/crafting/curiosities/peculiar_bell.json @@ -2375,6 +2346,7 @@ bf3bcb52176b43f1886c7538705ca7a4f0e84a9e data/create/advancements/recipes/create d5e444853f95bcdb3b19d0d222806ac077e2e72d data/create/advancements/recipes/create.base/crafting/kinetics/clockwork_bearing.json cc7d35a428412b995e46165b10873b538063d1e1 data/create/advancements/recipes/create.base/crafting/kinetics/clutch.json f1d8029514853b25356dbdeadd56c4d765fb2a08 data/create/advancements/recipes/create.base/crafting/kinetics/cogwheel.json +cf98248087a419198f5f468ad7d17822c6aa40cc data/create/advancements/recipes/create.base/crafting/kinetics/contraption_controls.json 261bcfc98cc5ccd25b63776a32e8c0d1075640b4 data/create/advancements/recipes/create.base/crafting/kinetics/controller_rail.json c66893266dac69fdcc9ba6bae432e915678b0706 data/create/advancements/recipes/create.base/crafting/kinetics/controls.json 70ba0f80929fb60409518d03fbeecd21d5002cb3 data/create/advancements/recipes/create.base/crafting/kinetics/copper_valve_handle.json @@ -2387,6 +2359,7 @@ bb771079e7e814a2a7a854d48bbf270db16a420e data/create/advancements/recipes/create cd1a6ea80663ec9251bb13e27d90e6ccdd10ce3e data/create/advancements/recipes/create.base/crafting/kinetics/deployer.json 2c85a7080390156ce05985bbba840ad9ffbaed8f data/create/advancements/recipes/create.base/crafting/kinetics/depot.json f79cc141e2cfc8dde9f27b1e3b2e00aced8ee632 data/create/advancements/recipes/create.base/crafting/kinetics/display_board.json +1c23b12718f1efd4b5a538801637eb1619089120 data/create/advancements/recipes/create.base/crafting/kinetics/elevator_pulley.json 81a3fe7e87c26767e3be6f97ea1de50f1cd74b65 data/create/advancements/recipes/create.base/crafting/kinetics/empty_blaze_burner.json 77ee6740d2e0f3ec4bffb298d9d8ce4c77ebff0e data/create/advancements/recipes/create.base/crafting/kinetics/encased_chain_drive.json 3a9aef30af8d9694548da236fe3129c16dba4883 data/create/advancements/recipes/create.base/crafting/kinetics/encased_fan.json @@ -2523,20 +2496,15 @@ b9b0a8bfff61a89149d4fcadf679f753385212d0 data/create/advancements/recipes/create 5da3e404c9195ee68c25e91a4fd29ab21a8e9316 data/create/advancements/recipes/create.base/crafting/logistics/stockpile_switchfrom_conversion.json 8e137e9ad4870708d4c015400f91d78cb37b4a92 data/create/advancements/recipes/create.base/crafting/materials/andesite_alloy.json 6ad84f6f8b4ef85e67ebcc68c5326a22b59bc81a data/create/advancements/recipes/create.base/crafting/materials/andesite_alloy_from_zinc.json -a7d9a6dda3049332f04f4db027340070e1a9e597 data/create/advancements/recipes/create.base/crafting/materials/brass_block_from_compacting.json 7716dae5a22a02fa9ea129985eb14639811c2045 data/create/advancements/recipes/create.base/crafting/materials/brass_ingot_from_compacting.json 906a26d805d46f44ce094a14ce138a6ce14431fa data/create/advancements/recipes/create.base/crafting/materials/brass_ingot_from_decompacting.json 90d4658a26a32bfdade4573797ea4d913151c707 data/create/advancements/recipes/create.base/crafting/materials/brass_nugget_from_decompacting.json dbfba4474ce5229205245d46680a651754a593ce data/create/advancements/recipes/create.base/crafting/materials/copper_nugget.json a8a032b40204919242bf5043d2920627cd28d348 data/create/advancements/recipes/create.base/crafting/materials/electron_tube.json 121f9d02b1405327ff01113e32c1a1019f9b2f35 data/create/advancements/recipes/create.base/crafting/materials/raw_zinc.json -433e9dae24a4167b2cbd23e37e59bc84cfe352e5 data/create/advancements/recipes/create.base/crafting/materials/raw_zinc_block.json 2d875ed3e78b4840863f2188aea2b9dd23304512 data/create/advancements/recipes/create.base/crafting/materials/red_sand_paper.json bc58b9bec08df3ae2ba9aa871097f0113e4f9075 data/create/advancements/recipes/create.base/crafting/materials/rose_quartz.json -37ff5e0f0a1224e310c4a63e9690913b525db337 data/create/advancements/recipes/create.base/crafting/materials/rose_quartz_tilesfrom_conversion.json 75cbc691e7443b566c1639d0c77c96cab66677c8 data/create/advancements/recipes/create.base/crafting/materials/sand_paper.json -401f3b540c745c05bfb7b24e27367790aa232d74 data/create/advancements/recipes/create.base/crafting/materials/small_rose_quartz_tilesfrom_conversion.json -d8a83ace588c01d781fea3e62fa3762ee04e0250 data/create/advancements/recipes/create.base/crafting/materials/zinc_block_from_compacting.json 827269a9749c37af9221d27281a85de09942fa2a data/create/advancements/recipes/create.base/crafting/materials/zinc_ingot_from_compacting.json b15e93ea48cc71a78dca4d5fa5738d5354a3a944 data/create/advancements/recipes/create.base/crafting/materials/zinc_ingot_from_decompacting.json b13ffffe311c3e16c3577aeeca881a04aeed7ee6 data/create/advancements/recipes/create.base/crafting/materials/zinc_nugget_from_decompacting.json @@ -2544,36 +2512,9 @@ b13ffffe311c3e16c3577aeeca881a04aeed7ee6 data/create/advancements/recipes/create 453c39a149831f27b4c0069fae40cb1a8c87ed5e data/create/advancements/recipes/create.base/crafting/schematics/schematic_and_quill.json d5efcd206b74c5165cbd4c2f5bb7bf3cf3eeae34 data/create/advancements/recipes/create.base/crafting/schematics/schematic_table.json cd1f66066664ed58995f8a7988fb1aa22605650b data/create/advancements/recipes/create.base/crafting/schematics/schematicannon.json -513de02268c39a5e9e35aa048b95bdef089b0506 data/create/advancements/recipes/create.base/exposed_copper_shingle_slab.json -cdd290ecaaba6c2debf40bbb4619834b53873478 data/create/advancements/recipes/create.base/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json -cf780e8976aabaed5c8af81c8bb0575566b1192e data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs.json -c66711a5e902e052806b3b963b36f8d66a19b04d data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json -960333a7850f7ad2be6609b6acc28ca16ef55100 data/create/advancements/recipes/create.base/exposed_copper_tile_slab.json -73c87bb34bb523d1253ef447ca7a74f8996e4f6c data/create/advancements/recipes/create.base/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json -9342614352d7359477ed968da90ac4decb6b5f57 data/create/advancements/recipes/create.base/exposed_copper_tile_stairs.json -4e982ff097886f4b6b36ff381ff55e335496526d data/create/advancements/recipes/create.base/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json -f252ece4cb4229302f9f7cb490d3a2722856660a data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab.json -71c3e234e634292b28a4409179d9c96982d88631 data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json -a0cca91653064ca509a1dc499ff6d9fd8ae80584 data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs.json -b089b6900828f642f87c4502293f69e0ce2841a4 data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json -f35f31c4ce11e8aaf6eef0e840eced22d969c614 data/create/advancements/recipes/create.base/oxidized_copper_tile_slab.json -873bedb88243757360f8c49b15eef4d8f28c09da data/create/advancements/recipes/create.base/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json -f89386ad5e50a50cfb2d423b9543c1bb7b6fd867 data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs.json -18dac4389d7b0fac7287dfa8dd21b65a0b04cfb6 data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json -57b304371e080df11d87a539b1c5b30721057ce6 data/create/advancements/recipes/create.base/rose_quartz_block_from_rose_quartz_stonecutting.json -6afa5267c43c3592a5da7d9f4526b712d5ef5b15 data/create/advancements/recipes/create.base/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json -8547f4a498595eb11dde29df4b6f9e9051d2bf5f data/create/advancements/recipes/create.base/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json b2b9c6d93ff4d912081cee2ab5e68209828cdc86 data/create/advancements/recipes/create.base/smelting/zinc_ingot_from_crushed.json 16e52ba04279bcf803c5f6be46550ba5d81be1a3 data/create/advancements/recipes/create.base/smelting/zinc_ingot_from_ore.json 88a8661167993de0f2897c95e398b6f77429d724 data/create/advancements/recipes/create.base/smelting/zinc_ingot_from_raw_ore.json -7116a947db0270e0948da79fbb89ba8a9585fc06 data/create/advancements/recipes/create.base/weathered_copper_shingle_slab.json -3596f5854c2791d92cb0cad28870b4cfffeda7da data/create/advancements/recipes/create.base/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json -072a42e28fa53adc050b76e68cf513019322b071 data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs.json -7e0ecedccf437fc33b061791e46fe9818b2342e1 data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json -11147672814885dd3752eff396018d76f1275092 data/create/advancements/recipes/create.base/weathered_copper_tile_slab.json -6e197869c90b2ee996fac4735336183939d1fe2b data/create/advancements/recipes/create.base/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json -5ff8d9ec43683be5be130f980091222ffccfb2d9 data/create/advancements/recipes/create.base/weathered_copper_tile_stairs.json -2a058814de30b03625e90da7188cea7cabe7b4a0 data/create/advancements/recipes/create.base/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json e7134f9dd47eb9f706f1ec1bd886a14eb7d3010a data/create/advancements/recipes/create.palettes/acacia_window.json abeb5dfa9931aac86b080309bd0ed5397fd1254b data/create/advancements/recipes/create.palettes/acacia_window_pane.json 60545d0d6d70b4be2a22b03b09de45c6d4f7434b data/create/advancements/recipes/create.palettes/andesite_pillar_from_andesite_stonecutting.json @@ -2584,6 +2525,45 @@ f1ba98fa90ae0b81cef3e8bfed4a63565539b4a2 data/create/advancements/recipes/create 62772c540e195fc6b8cfa91f9ae32898c649f93e data/create/advancements/recipes/create.palettes/birch_window_pane.json bfa045d74386df70fd1130c934ed814376442dee data/create/advancements/recipes/create.palettes/calcite_pillar_from_calcite_stonecutting.json 7d0d2554ea3e646941a1ed59c8f5e9d45f9d76d6 data/create/advancements/recipes/create.palettes/calcite_pillar_from_stone_types_calcite_stonecutting.json +19b18800dfc55508e250ebb87fbaa70510736834 data/create/advancements/recipes/create.palettes/copper_shingle_slab.json +0a8b2f2e35c128e470d0fd1a886b9d6ca2e99483 data/create/advancements/recipes/create.palettes/copper_shingle_slab_from_copper_shingles_stonecutting.json +6b066af05bef4c41a6b8fefa2cb38bcdb821eada data/create/advancements/recipes/create.palettes/copper_shingle_stairs.json +f5ab02df55489afd71af8a54f41a7d9b89e28b6c data/create/advancements/recipes/create.palettes/copper_shingle_stairs_from_copper_shingles_stonecutting.json +c2ca0ac0d670fa4d7e8150ba6e314de2881248b6 data/create/advancements/recipes/create.palettes/copper_shingles_from_plates_copper_stonecutting.json +6d86dd16e892ea7fcaa9c98d6f1c80ee8b2b3d50 data/create/advancements/recipes/create.palettes/copper_tile_slab.json +4976383641eb8308fdaf9c5c02af7191154e232e data/create/advancements/recipes/create.palettes/copper_tile_slab_from_copper_tiles_stonecutting.json +9a4f929ad023abc111e4da7dce14104bcd162949 data/create/advancements/recipes/create.palettes/copper_tile_stairs.json +f605ac221fbd565152f8e987beb7697299588da2 data/create/advancements/recipes/create.palettes/copper_tile_stairs_from_copper_tiles_stonecutting.json +5190d5c155ebd9a670dc8271e4920a048e633d25 data/create/advancements/recipes/create.palettes/copper_tiles_from_plates_copper_stonecutting.json +9a3666ff51dc8bc84fc19a662cbe7a74ba2ea6e1 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json +4401458a7b24d26a1195b1bcc8aa98dbc49b5343 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json +af9f28793d0fe25c09ffe695412f76db8e00aac9 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingles_from_honeycomb.json +f4b00c480033de4122a8910760be937c3c14b6fa data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json +819573e770501ae2877502bde97f88f18674d664 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json +88a1a812e70a839d881d6a2de0c7bd2901cd7110 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tiles_from_honeycomb.json +b3c40ad7ba1d3168c2f107437356bdf2c1b656cd data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json +95a9872f9fa780a4becd99922dc1a07dc49f6197 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json +1d507e15315a0e8021a3896048fee38074ad59be data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json +42624cd60adfa07d8b54ff995017663f2c080b4c data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json +3a9adacc43929f920094bb126e1d83c856a86bfe data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json +efd9cd067c1b2693ca8dbb587418ed224de4a0e5 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json +a61208fab2c5ac4abdeca0a1f43359820d34cff8 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json +546507f9ec60f2b282440c5cbe873865749f7267 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json +30da09d01454489196caca640975799c54ff7fe4 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json +e56eeb0bf21f743236ffaf061efab5e75b1cba2a data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json +c43e0847e84d5909c2d5f943faeb641bb33b3814 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json +18ad4ce8a00680c49e42f232352dbd56bc4b9b13 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json +2ade4a47afb8a9eab6bf6b965571051a3bdda6c6 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json +abda25ed5695780b534412b4501e927ec3a6fe16 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json +7675fa9d8f2914f68f425f20d2ef9fab0287051e data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json +5a3e5b3285e44d543c55ab92510864f031f0ccf8 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json +2e8b01267e308929961be0b1f268b34f5faa3aa3 data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json +1ed6fd1f67443f5d6d955218dc45254db407d8ac data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json +a7d9a6dda3049332f04f4db027340070e1a9e597 data/create/advancements/recipes/create.palettes/crafting/materials/brass_block_from_compacting.json +433e9dae24a4167b2cbd23e37e59bc84cfe352e5 data/create/advancements/recipes/create.palettes/crafting/materials/raw_zinc_block.json +37ff5e0f0a1224e310c4a63e9690913b525db337 data/create/advancements/recipes/create.palettes/crafting/materials/rose_quartz_tilesfrom_conversion.json +401f3b540c745c05bfb7b24e27367790aa232d74 data/create/advancements/recipes/create.palettes/crafting/materials/small_rose_quartz_tilesfrom_conversion.json +d8a83ace588c01d781fea3e62fa3762ee04e0250 data/create/advancements/recipes/create.palettes/crafting/materials/zinc_block_from_compacting.json 265595b70feaec33e5a2d7fb552b0284fcc09030 data/create/advancements/recipes/create.palettes/crafting/palettes/scorchia.json 0577e7cff04b9fb37d8d4fccf8218271fc7983ca data/create/advancements/recipes/create.palettes/crimsite_pillar_from_crimsite_stonecutting.json 97c48ddf1f9ef0f8433bf34ed7c4f6a7f44cf445 data/create/advancements/recipes/create.palettes/crimsite_pillar_from_stone_types_crimsite_stonecutting.json @@ -2933,6 +2913,14 @@ fc2da04056c0a1a3347c227696c13d85394e27e6 data/create/advancements/recipes/create 79375ff88b84f85e1983cba3e4af45abe399f881 data/create/advancements/recipes/create.palettes/diorite_pillar_from_stone_types_diorite_stonecutting.json 7a0e600fdcc58aa91f06c7049209a7af138451e8 data/create/advancements/recipes/create.palettes/dripstone_pillar_from_dripstone_block_stonecutting.json 9c64a60aa3741533d1fe6d43bfcdf52673880651 data/create/advancements/recipes/create.palettes/dripstone_pillar_from_stone_types_dripstone_stonecutting.json +513de02268c39a5e9e35aa048b95bdef089b0506 data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab.json +cdd290ecaaba6c2debf40bbb4619834b53873478 data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json +cf780e8976aabaed5c8af81c8bb0575566b1192e data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs.json +c66711a5e902e052806b3b963b36f8d66a19b04d data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json +960333a7850f7ad2be6609b6acc28ca16ef55100 data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab.json +73c87bb34bb523d1253ef447ca7a74f8996e4f6c data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json +9342614352d7359477ed968da90ac4decb6b5f57 data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs.json +4e982ff097886f4b6b36ff381ff55e335496526d data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json 05331b5f1701453ecdfd0b3e6429b22ec209ba67 data/create/advancements/recipes/create.palettes/framed_glass_from_glass_colorless_stonecutting.json a2146b1cb0dab36728469c0792bc3ec187ea950b data/create/advancements/recipes/create.palettes/framed_glass_pane.json c89d97bf7dbdc3740c4c3cc9446f0921b9bbe6e3 data/create/advancements/recipes/create.palettes/granite_pillar_from_granite_stonecutting.json @@ -2977,6 +2965,14 @@ ea8ec2e00c9d88b9a58202033c483efa068a15b5 data/create/advancements/recipes/create 5c662131b9d73434a5ee6abda5b6f5b9819e194d data/create/advancements/recipes/create.palettes/ochrum_pillar_from_stone_types_ochrum_stonecutting.json fc374d88e9f4ffeb54348a611dc470f148c572de data/create/advancements/recipes/create.palettes/ornate_iron_window.json 47aebe2078baf3b0c22f09934461f7376ebbea39 data/create/advancements/recipes/create.palettes/ornate_iron_window_pane.json +f252ece4cb4229302f9f7cb490d3a2722856660a data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab.json +71c3e234e634292b28a4409179d9c96982d88631 data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json +a0cca91653064ca509a1dc499ff6d9fd8ae80584 data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs.json +b089b6900828f642f87c4502293f69e0ce2841a4 data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json +f35f31c4ce11e8aaf6eef0e840eced22d969c614 data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab.json +873bedb88243757360f8c49b15eef4d8f28c09da data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json +f89386ad5e50a50cfb2d423b9543c1bb7b6fd867 data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs.json +18dac4389d7b0fac7287dfa8dd21b65a0b04cfb6 data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json 0b40d3c37e27d9d9297f050ad710af6c17821954 data/create/advancements/recipes/create.palettes/polished_cut_andesite_from_andesite_stonecutting.json eb1770f5e5f4384e84ae90e566d0d48a857b7748 data/create/advancements/recipes/create.palettes/polished_cut_andesite_from_stone_types_andesite_stonecutting.json f586b7389c46acb2ade3286ea234e5b37bfd728c data/create/advancements/recipes/create.palettes/polished_cut_andesite_slab.json @@ -3145,6 +3141,8 @@ f9654753495f21ebc977577bd68b48f9342d28eb data/create/advancements/recipes/create cddfc113bdeb65b6c3b6c03464f8c1b58184a03a data/create/advancements/recipes/create.palettes/polished_cut_veridium_wall.json 3fba2f3cbf33e52859936c79dbe35889e1feca9f data/create/advancements/recipes/create.palettes/polished_cut_veridium_wall_from_stone_types_veridium_stonecutting.json 7530647e53e597277c53f774a48482322b4950e0 data/create/advancements/recipes/create.palettes/polished_cut_veridium_wall_from_veridium_stonecutting.json +57b304371e080df11d87a539b1c5b30721057ce6 data/create/advancements/recipes/create.palettes/rose_quartz_block_from_rose_quartz_stonecutting.json +6afa5267c43c3592a5da7d9f4526b712d5ef5b15 data/create/advancements/recipes/create.palettes/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json 4436c573f6c2f8f2e3b5de43e405e832546e04e0 data/create/advancements/recipes/create.palettes/scorchia_pillar_from_scorchia_stonecutting.json 3b5e6ce9528b42d64c0250a09ed4e0e3d4102f31 data/create/advancements/recipes/create.palettes/scorchia_pillar_from_stone_types_scorchia_stonecutting.json a18f7ceb32cf98586d8ddd6e1df329d2a6b1a65d data/create/advancements/recipes/create.palettes/scoria_pillar_from_scoria_stonecutting.json @@ -3269,6 +3267,7 @@ fc5c86d935760cd49916773ca9b3625dabfac841 data/create/advancements/recipes/create 5f9a53d974c34dd146a4bba599349608be0bca07 data/create/advancements/recipes/create.palettes/small_ochrum_brick_wall_from_stone_types_ochrum_stonecutting.json 6eaba6b9654bd90c42fe4cde9de3cc4e59f4dd91 data/create/advancements/recipes/create.palettes/small_ochrum_bricks_from_ochrum_stonecutting.json c7c4893d0f539dfb37a68752c8d5334bdab47eef data/create/advancements/recipes/create.palettes/small_ochrum_bricks_from_stone_types_ochrum_stonecutting.json +8547f4a498595eb11dde29df4b6f9e9051d2bf5f data/create/advancements/recipes/create.palettes/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json ece579c71a88be47b633e8c5dd3b4bf37aa459cf data/create/advancements/recipes/create.palettes/small_scorchia_brick_slab.json cb37044471b3cb8f264ed078ce68069d5fae92ce data/create/advancements/recipes/create.palettes/small_scorchia_brick_slab_from_scorchia_stonecutting.json 1d3911ee4791cd4610e21eb56d64f3b0ad80f68a data/create/advancements/recipes/create.palettes/small_scorchia_brick_slab_from_stone_types_scorchia_stonecutting.json @@ -3330,6 +3329,14 @@ ff8a4ea4ad4e56379f4dfc78909b669c72702680 data/create/advancements/recipes/create 8f719c087e4344de4cb57e06f10ebd49850f17b5 data/create/advancements/recipes/create.palettes/vertical_framed_glass_pane.json 7211458c5fb7116de2e789252da01b08820ec207 data/create/advancements/recipes/create.palettes/warped_window.json cce0482d2f60d11478bb73c778e157744899b7d3 data/create/advancements/recipes/create.palettes/warped_window_pane.json +7116a947db0270e0948da79fbb89ba8a9585fc06 data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab.json +3596f5854c2791d92cb0cad28870b4cfffeda7da data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json +072a42e28fa53adc050b76e68cf513019322b071 data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs.json +7e0ecedccf437fc33b061791e46fe9818b2342e1 data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json +11147672814885dd3752eff396018d76f1275092 data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab.json +6e197869c90b2ee996fac4735336183939d1fe2b data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json +5ff8d9ec43683be5be130f980091222ffccfb2d9 data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs.json +2a058814de30b03625e90da7188cea7cabe7b4a0 data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json 340b7f0161ec9513273c90f28bf4c7edc18f3c7f data/create/advancements/recipes/decorations/smelting/glass_pane_from_framed_glass_pane.json 6cf30c17433f545140d247414b6d211b904a63be data/create/advancements/recipes/decorations/smelting/glass_pane_from_horizontal_framed_glass_pane.json d759d42813afa08afa27fdc6b986ad89b735be4a data/create/advancements/recipes/decorations/smelting/glass_pane_from_tiled_glass_pane.json @@ -3991,12 +3998,17 @@ bea832822e0e5f0048eb94649641ea541e11f943 data/create/recipes/copper_shingles_fro 0c52acde7dc4d19349d859d76527b712542d36c5 data/create/recipes/copper_tile_stairs.json 15da07234ee005be984f060520d0cf87bca672f5 data/create/recipes/copper_tile_stairs_from_copper_tiles_stonecutting.json 10fdc13f5b2b745e13e6e4e949a07ceaf4544a26 data/create/recipes/copper_tiles_from_plates_copper_stonecutting.json +89aed29928cdfa7cdde43d4a51fc4387497ddde0 data/create/recipes/copycat_panel_from_zinc_ingot_stonecutting.json +c06a4519139a33250c01297b532ba6ac7d76284c data/create/recipes/copycat_step_from_zinc_ingot_stonecutting.json eb18d5972484418fa5a768633e68688ad20d2bd7 data/create/recipes/crafting/appliances/copper_backtank.json 5771562086710eb5a3a05d464989d2f23d6c5e86 data/create/recipes/crafting/appliances/copper_diving_boots.json ec38ddb44e4bf8eaaba6f9d27e8469234fc98528 data/create/recipes/crafting/appliances/copper_diving_helmet.json c077375d16b4505e52548613fbc9356993556e6b data/create/recipes/crafting/appliances/crafting_blueprint.json edf96556bb2357f54fd398fe573641afa15239b2 data/create/recipes/crafting/appliances/dough.json 75cdbd88973a8ca943ebe890153b01a344b96b01 data/create/recipes/crafting/appliances/linked_controller.json +9ef7bae26db471741096abd2b02f738202913994 data/create/recipes/crafting/appliances/netherite_backtank.json +e84952517f02a7c1ba10f12e2e0e32b94f720e58 data/create/recipes/crafting/appliances/netherite_diving_boots.json +664421c08143e4eb60332f53da17f70b4be83e74 data/create/recipes/crafting/appliances/netherite_diving_helmet.json 7b5f863dda3d05a79cb85943a178eba0bd8a7dc7 data/create/recipes/crafting/appliances/slime_ball.json b159ba84428eee6ef6e23df1766f2a18f2c8a63e data/create/recipes/crafting/appliances/tree_fertilizer.json 395f5fc62e27448121e3447a24a752be1a91def2 data/create/recipes/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json @@ -4049,6 +4061,7 @@ ac71fb7ad49c64bbe37230deeb1b06f7ea76036c data/create/recipes/crafting/kinetics/c 507e4d788144224d977c5f136800b6c9e277f837 data/create/recipes/crafting/kinetics/clockwork_bearing.json 031788926b5d8b77ec061773a11c3cfd2b361cd1 data/create/recipes/crafting/kinetics/clutch.json a79bb44c6b136ea3d3f28926adf84e37e6aa6aa6 data/create/recipes/crafting/kinetics/cogwheel.json +a0c74542a8cc156e6055cda6aaca7545890b7bef data/create/recipes/crafting/kinetics/contraption_controls.json 11fe2ccc11f470e5735c3e848a944f889697ff73 data/create/recipes/crafting/kinetics/controller_rail.json 397c6c0691a54987b67854673b8d3c16c7f74e14 data/create/recipes/crafting/kinetics/controls.json 3093be508f6597eee2f3230cd9072f12d2821a6f data/create/recipes/crafting/kinetics/copper_valve_handle.json @@ -4061,6 +4074,7 @@ a79bb44c6b136ea3d3f28926adf84e37e6aa6aa6 data/create/recipes/crafting/kinetics/c 0c9f611a3982b04f817136b8bcee2548f2eff450 data/create/recipes/crafting/kinetics/deployer.json 2fe66b3d37ff5b0f7f30d5baa4efd713dd8b502a data/create/recipes/crafting/kinetics/depot.json 37012670f9913fbaf83a44a5655693390dcf4a2b data/create/recipes/crafting/kinetics/display_board.json +37c7e1769d99c39109c6bf1fd7e42b15c90ba851 data/create/recipes/crafting/kinetics/elevator_pulley.json 93940e00c442077ce101dca50dbc28e0f1178560 data/create/recipes/crafting/kinetics/empty_blaze_burner.json 882d1f0f2a05a067cc6c5d73440464310514f95b data/create/recipes/crafting/kinetics/encased_chain_drive.json 665cf36bbca980b538eee76c87e1d80dffca0669 data/create/recipes/crafting/kinetics/encased_fan.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copycat_panel_from_zinc_ingot_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.base/copycat_panel_from_zinc_ingot_stonecutting.json new file mode 100644 index 000000000..7a6ffe049 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/copycat_panel_from_zinc_ingot_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:copycat_panel_from_zinc_ingot_stonecutting" + ] + }, + "criteria": { + "has_zinc_ingot": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:zinc_ingot" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:copycat_panel_from_zinc_ingot_stonecutting" + } + } + }, + "requirements": [ + [ + "has_zinc_ingot", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copycat_step_from_zinc_ingot_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.base/copycat_step_from_zinc_ingot_stonecutting.json new file mode 100644 index 000000000..6e594aece --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/copycat_step_from_zinc_ingot_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:copycat_step_from_zinc_ingot_stonecutting" + ] + }, + "criteria": { + "has_zinc_ingot": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:zinc_ingot" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:copycat_step_from_zinc_ingot_stonecutting" + } + } + }, + "requirements": [ + [ + "has_zinc_ingot", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_backtank.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_backtank.json new file mode 100644 index 000000000..ebb5d2ee6 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_backtank.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/appliances/netherite_backtank" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:copper_backtank" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/appliances/netherite_backtank" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_boots.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_boots.json new file mode 100644 index 000000000..c6e3aec85 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_boots.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/appliances/netherite_diving_boots" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:copper_diving_boots" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/appliances/netherite_diving_boots" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_helmet.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_helmet.json new file mode 100644 index 000000000..450a9ca49 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/netherite_diving_helmet.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/appliances/netherite_diving_helmet" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:copper_diving_helmet" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/appliances/netherite_diving_helmet" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/contraption_controls.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/contraption_controls.json new file mode 100644 index 000000000..69e0835f1 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/contraption_controls.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/kinetics/contraption_controls" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "create:andesite_alloy" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/kinetics/contraption_controls" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/elevator_pulley.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/elevator_pulley.json new file mode 100644 index 000000000..d6d780eed --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/elevator_pulley.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/kinetics/elevator_pulley" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "forge:ingots/brass" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/kinetics/elevator_pulley" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_slab_from_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_slab_from_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_slab_from_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_slab_from_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_stairs_from_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_stairs_from_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_shingle_stairs_from_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingle_stairs_from_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_shingles_from_plates_copper_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingles_from_plates_copper_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_shingles_from_plates_copper_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_shingles_from_plates_copper_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_slab_from_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_slab_from_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_slab_from_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_slab_from_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_stairs_from_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_stairs_from_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_tile_stairs_from_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tile_stairs_from_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/copper_tiles_from_plates_copper_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tiles_from_plates_copper_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/copper_tiles_from_plates_copper_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/copper_tiles_from_plates_copper_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingle_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_shingles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_shingles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tile_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tiles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tiles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_copper_tiles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_copper_tiles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingle_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_shingles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tile_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_exposed_copper_tiles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingle_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_shingles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tile_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_oxidized_copper_tiles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingle_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_shingles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_slab_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tile_stairs_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/copper/waxed_weathered_copper_tiles_from_honeycomb.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/brass_block_from_compacting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/brass_block_from_compacting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/brass_block_from_compacting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/brass_block_from_compacting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/raw_zinc_block.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/raw_zinc_block.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/raw_zinc_block.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/raw_zinc_block.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/rose_quartz_tilesfrom_conversion.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/rose_quartz_tilesfrom_conversion.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/rose_quartz_tilesfrom_conversion.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/rose_quartz_tilesfrom_conversion.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/small_rose_quartz_tilesfrom_conversion.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/small_rose_quartz_tilesfrom_conversion.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/small_rose_quartz_tilesfrom_conversion.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/small_rose_quartz_tilesfrom_conversion.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/zinc_block_from_compacting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/zinc_block_from_compacting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/materials/zinc_block_from_compacting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/crafting/materials/zinc_block_from_compacting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_slab_from_exposed_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_shingle_stairs_from_exposed_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_slab_from_exposed_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/exposed_copper_tile_stairs_from_exposed_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_slab_from_oxidized_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_shingle_stairs_from_oxidized_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_slab_from_oxidized_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/oxidized_copper_tile_stairs_from_oxidized_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/rose_quartz_block_from_rose_quartz_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/rose_quartz_block_from_rose_quartz_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/rose_quartz_block_from_rose_quartz_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/rose_quartz_block_from_rose_quartz_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/small_rose_quartz_tiles_from_polished_rose_quartz_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_slab_from_weathered_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_shingle_stairs_from_weathered_copper_shingles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_slab.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_slab.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_stairs.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_stairs.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs.json diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json b/src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json similarity index 100% rename from src/generated/resources/data/create/advancements/recipes/create.base/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json rename to src/generated/resources/data/create/advancements/recipes/create.palettes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json diff --git a/src/generated/resources/data/create/recipes/copycat_panel_from_zinc_ingot_stonecutting.json b/src/generated/resources/data/create/recipes/copycat_panel_from_zinc_ingot_stonecutting.json new file mode 100644 index 000000000..098515d72 --- /dev/null +++ b/src/generated/resources/data/create/recipes/copycat_panel_from_zinc_ingot_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "create:zinc_ingot" + }, + "result": "create:copycat_panel", + "count": 4 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/copycat_step_from_zinc_ingot_stonecutting.json b/src/generated/resources/data/create/recipes/copycat_step_from_zinc_ingot_stonecutting.json new file mode 100644 index 000000000..851f7759c --- /dev/null +++ b/src/generated/resources/data/create/recipes/copycat_step_from_zinc_ingot_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": { + "item": "create:zinc_ingot" + }, + "result": "create:copycat_step", + "count": 4 +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/appliances/netherite_backtank.json b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_backtank.json new file mode 100644 index 000000000..ab3830a3c --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_backtank.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing", + "base": { + "item": "create:copper_backtank" + }, + "addition": { + "tag": "forge:ingots/netherite" + }, + "result": { + "item": "create:netherite_backtank" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_boots.json b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_boots.json new file mode 100644 index 000000000..82e8c9128 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_boots.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing", + "base": { + "item": "create:copper_diving_boots" + }, + "addition": { + "tag": "forge:ingots/netherite" + }, + "result": { + "item": "create:netherite_diving_boots" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_helmet.json b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_helmet.json new file mode 100644 index 000000000..7d8cae6d4 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/appliances/netherite_diving_helmet.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:smithing", + "base": { + "item": "create:copper_diving_helmet" + }, + "addition": { + "tag": "forge:ingots/netherite" + }, + "result": { + "item": "create:netherite_diving_helmet" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/contraption_controls.json b/src/generated/resources/data/create/recipes/crafting/kinetics/contraption_controls.json new file mode 100644 index 000000000..7ef868c4c --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/contraption_controls.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "B", + "C", + "I" + ], + "key": { + "B": { + "tag": "minecraft:buttons" + }, + "C": { + "item": "create:andesite_casing" + }, + "I": { + "item": "create:electron_tube" + } + }, + "result": { + "item": "create:contraption_controls" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/elevator_pulley.json b/src/generated/resources/data/create/recipes/crafting/kinetics/elevator_pulley.json new file mode 100644 index 000000000..b60facd72 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/elevator_pulley.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "B", + "C", + "I" + ], + "key": { + "B": { + "item": "create:brass_casing" + }, + "C": { + "item": "minecraft:dried_kelp_block" + }, + "I": { + "tag": "forge:plates/iron" + } + }, + "result": { + "item": "create:elevator_pulley" + } +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index ccd61d3b4..f3b0d4064 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -1710,6 +1710,7 @@ public class AllBlocks { .transform(BuilderTransformers.copycat()) .onRegister(CreateRegistrate.blockModel(() -> CopycatStepModel::new)) .item() + .recipe((c, p) -> p.stonecutting(DataIngredient.items(AllItems.ZINC_INGOT), c::get, 4)) .transform(customItemModel("copycat_base", "step")) .register(); @@ -1718,6 +1719,7 @@ public class AllBlocks { .transform(BuilderTransformers.copycat()) .onRegister(CreateRegistrate.blockModel(() -> CopycatPanelModel::new)) .item() + .recipe((c, p) -> p.stonecutting(DataIngredient.items(AllItems.ZINC_INGOT), c::get, 4)) .transform(customItemModel("copycat_base", "panel")) .register(); @@ -2042,6 +2044,10 @@ public class AllBlocks { }); // Materials + + static { + REGISTRATE.creativeModeTab(() -> AllCreativeModeTabs.PALETTES_CREATIVE_TAB); + } public static final BlockEntry ZINC_ORE = REGISTRATE.block("zinc_ore", Block::new) .initialProperties(() -> Blocks.GOLD_ORE) diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index 78a253b1a..aa053074b 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -83,10 +83,9 @@ public class Create { public static final CreateRegistrate REGISTRATE = CreateRegistrate.create(ID); static { - // TODO 0.5.1: choose color palette REGISTRATE.setTooltipModifierFactory(item -> { - return new ItemDescription.Modifier(item, Palette.BLUE) - .andThen(TooltipModifier.mapNull(KineticStats.create(item))); + return new ItemDescription.Modifier(item, Palette.STANDARD_CREATE) + .andThen(TooltipModifier.mapNull(KineticStats.create(item))); }); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java index 62050a5c8..436e74a41 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java @@ -38,7 +38,6 @@ 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.core.NonNullList; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -48,7 +47,6 @@ import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.UseOnContext; @@ -104,11 +102,6 @@ public class BeltBlock extends HorizontalKineticBlock implements IBE p_149666_2_) { - p_149666_2_.add(AllItems.BELT_CONNECTOR.asStack()); - } - @Override protected boolean areStatesKineticallyEquivalent(BlockState oldState, BlockState newState) { return super.areStatesKineticallyEquivalent(oldState, newState) diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java index 2e3884003..98cb323c2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java @@ -47,14 +47,14 @@ public class BeltConnectorItem extends BlockItem { public String getDescriptionId() { return getOrCreateDescriptionId(); } - + @Override - public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList p_150895_2_) { - if (p_150895_1_ == AllCreativeModeTabs.BASE_CREATIVE_TAB) - return; - super.fillItemCategory(p_150895_1_, p_150895_2_); + public void fillItemCategory(CreativeModeTab pGroup, NonNullList pItems) { + // See CogWheelBlock.fillItemCategory() + if (pGroup != AllCreativeModeTabs.BASE_CREATIVE_TAB) + super.fillItemCategory(pGroup, pItems); } - + @Nonnull @Override public InteractionResult useOn(UseOnContext context) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java index b0b11b568..9a148dbca 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/elementary/CogWheelBlock.java @@ -3,6 +3,8 @@ package com.simibubi.create.content.contraptions.relays.elementary; import javax.annotation.ParametersAreNonnullByDefault; import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllCreativeModeTabs; +import com.simibubi.create.AllItems; import com.simibubi.create.AllShapes; import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.relays.advanced.SpeedControllerBlock; @@ -14,10 +16,12 @@ 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.core.NonNullList; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; @@ -60,6 +64,14 @@ public class CogWheelBlock extends AbstractSimpleShaftBlock implements ICogWheel return !isLarge; } + @Override + public void fillItemCategory(CreativeModeTab pTab, NonNullList pItems) { + super.fillItemCategory(pTab, pItems); + // Ensure the belt item is added after large cogwheels in the creative tab + if (AllBlocks.LARGE_COGWHEEL.is(this) && pTab == AllCreativeModeTabs.BASE_CREATIVE_TAB) + pItems.add(AllItems.BELT_CONNECTOR.asStack()); + } + @Override public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { return (isLarge ? AllShapes.LARGE_GEAR : AllShapes.SMALL_GEAR).get(state.getValue(AXIS)); diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java index 4c9b734ef..9f5342ffa 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CreateRecipeProvider.java @@ -16,6 +16,7 @@ import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.ItemLike; import net.minecraftforge.common.Tags; @@ -184,5 +185,9 @@ public abstract class CreateRecipeProvider extends RecipeProvider { return AllItems.SHADOW_STEEL.get(); } + static Ingredient netherite() { + return Ingredient.of(AllTags.forgeItemTag("ingots/netherite")); + } + } } diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index 38bc54e12..00d226019 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -38,6 +38,7 @@ import net.minecraft.data.recipes.ShapedRecipeBuilder; import net.minecraft.data.recipes.ShapelessRecipeBuilder; import net.minecraft.data.recipes.SimpleCookingRecipeBuilder; import net.minecraft.data.recipes.SpecialRecipeBuilder; +import net.minecraft.data.recipes.UpgradeRecipeBuilder; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; @@ -631,6 +632,22 @@ public class StandardRecipeGen extends CreateRecipeProvider { .pattern("C") .pattern("I")), + ELEVATOR_PULLEY = create(AllBlocks.ELEVATOR_PULLEY).unlockedByTag(I::brass) + .viaShaped(b -> b.define('B', I.brassCasing()) + .define('C', Items.DRIED_KELP_BLOCK) + .define('I', I.ironSheet()) + .pattern("B") + .pattern("C") + .pattern("I")), + + CONTRAPTION_CONTROLS = create(AllBlocks.CONTRAPTION_CONTROLS).unlockedBy(I::andesite) + .viaShaped(b -> b.define('B', ItemTags.BUTTONS) + .define('C', I.andesiteCasing()) + .define('I', I.electronTube()) + .pattern("B") + .pattern("C") + .pattern("I")), + EMPTY_BLAZE_BURNER = create(AllItems.EMPTY_BLAZE_BURNER).unlockedByTag(I::iron) .viaShaped(b -> b.define('A', Tags.Items.NETHERRACK) .define('I', I.ironSheet()) @@ -1036,7 +1053,13 @@ public class StandardRecipeGen extends CreateRecipeProvider { .viaShapeless(b -> b.requires(Ingredient.of(ItemTags.SMALL_FLOWERS), 2) .requires(Ingredient.of(Items.HORN_CORAL, Items.BRAIN_CORAL, Items.TUBE_CORAL, Items.BUBBLE_CORAL, Items.FIRE_CORAL)) - .requires(Items.BONE_MEAL)) + .requires(Items.BONE_MEAL)), + + NETHERITE_DIVING_HELMET = + create(AllItems.NETHERITE_DIVING_HELMET).viaSmithing(AllItems.COPPER_DIVING_HELMET, I.netherite()), + NETHERITE_BACKTANK = create(AllItems.NETHERITE_BACKTANK).viaSmithing(AllItems.COPPER_BACKTANK, I.netherite()), + NETHERITE_DIVING_BOOTS = + create(AllItems.NETHERITE_DIVING_BOOTS).viaSmithing(AllItems.COPPER_DIVING_BOOTS, I.netherite()) ; @@ -1274,6 +1297,18 @@ public class StandardRecipeGen extends CreateRecipeProvider { }); } + GeneratedRecipe viaSmithing(ItemEntry base, Ingredient upgradeMaterial) { + return register(consumer -> { + UpgradeRecipeBuilder b = + UpgradeRecipeBuilder.smithing(Ingredient.of(base.get()), upgradeMaterial, result.get() + .asItem()); + b.unlocks("has_item", inventoryTrigger(ItemPredicate.Builder.item() + .of(base.get()) + .build())); + b.save(consumer, createLocation("crafting")); + }); + } + private ResourceLocation createSimpleLocation(String recipeType) { return Create.asResource(recipeType + "/" + getRegistryName().getPath() + suffix); } diff --git a/src/main/java/com/simibubi/create/foundation/item/CreateCreativeModeTab.java b/src/main/java/com/simibubi/create/foundation/item/CreateCreativeModeTab.java index 2fdbbef70..b6d044554 100644 --- a/src/main/java/com/simibubi/create/foundation/item/CreateCreativeModeTab.java +++ b/src/main/java/com/simibubi/create/foundation/item/CreateCreativeModeTab.java @@ -1,6 +1,9 @@ package com.simibubi.create.foundation.item; +import java.util.Collection; + import com.simibubi.create.Create; +import com.tterrag.registrate.util.entry.RegistryEntry; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.entity.ItemRenderer; @@ -24,25 +27,28 @@ public abstract class CreateCreativeModeTab extends CreativeModeTab { addItems(items, false); } + protected Collection> registeredItems() { + return Create.REGISTRATE.getAll(ForgeRegistries.ITEMS.getRegistryKey()); + } + public void addBlocks(NonNullList items) { - for (Item item : ForgeRegistries.ITEMS) { - if (item instanceof BlockItem) { - item.fillItemCategory(this, items); - } - } + for (RegistryEntry entry : registeredItems()) + if (entry.get() instanceof BlockItem blockItem) + blockItem.fillItemCategory(this, items); } public void addItems(NonNullList items, boolean specialItems) { - ItemRenderer itemRenderer = Minecraft.getInstance().getItemRenderer(); + ItemRenderer itemRenderer = Minecraft.getInstance() + .getItemRenderer(); - for (Item item : ForgeRegistries.ITEMS) { - if (!(item instanceof BlockItem)) { - ItemStack stack = new ItemStack(item); - BakedModel model = itemRenderer.getModel(stack, null, null, 0); - if (model.isGui3d() == specialItems) { - item.fillItemCategory(this, items); - } - } + for (RegistryEntry entry : registeredItems()) { + Item item = entry.get(); + if (item instanceof BlockItem) + continue; + ItemStack stack = new ItemStack(item); + BakedModel model = itemRenderer.getModel(stack, null, null, 0); + if (model.isGui3d() == specialItems) + item.fillItemCategory(this, items); } } } diff --git a/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java b/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java index b0d8d4ecf..66227ec33 100644 --- a/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java +++ b/src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java @@ -54,6 +54,10 @@ public class TooltipHelper { public static Style styleFromColor(ChatFormatting color) { return Style.EMPTY.applyFormat(color); } + + public static Style styleFromColor(int hex) { + return Style.EMPTY.withColor(hex); + } public static List cutStringTextComponent(String s, Palette palette) { return cutTextComponent(Components.literal(s), palette); @@ -140,6 +144,8 @@ public class TooltipHelper { } public record Palette(Style primary, Style highlight) { + public static final Palette STANDARD_CREATE = new Palette(styleFromColor(0xC9974C), styleFromColor(0xF1DD79)); + public static final Palette BLUE = ofColors(ChatFormatting.BLUE, ChatFormatting.AQUA); public static final Palette GREEN = ofColors(ChatFormatting.DARK_GREEN, ChatFormatting.GREEN); public static final Palette YELLOW = ofColors(ChatFormatting.GOLD, ChatFormatting.YELLOW); From 36cd43997d59339b94bcb118ebb5e6ad5d61c3bc Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Wed, 22 Mar 2023 22:50:00 +0100 Subject: [PATCH 3/3] Trekking Inventory - Contraption storage now accepts more chests and barrels from other mods - Players can now open chests and barrels on assembled contraptions - Added a `#contraption_inventory_deny` block tag as a way to opt out --- src/generated/resources/.cache/cache | 3 +- .../resources/assets/create/lang/en_us.json | 1 + .../blocks/contraption_inventory_deny.json | 4 ++ .../java/com/simibubi/create/AllTags.java | 1 + .../AbstractContraptionEntity.java | 9 ++- .../structureMovement/MountedStorage.java | 31 +++++++-- .../MountedStorageInteraction.java | 68 +++++++++++++++++++ .../MountedStorageManager.java | 57 ++++++++++++++++ .../assets/create/lang/default/interface.json | 2 + 9 files changed, 168 insertions(+), 8 deletions(-) create mode 100644 src/generated/resources/data/create/tags/blocks/contraption_inventory_deny.json create mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageInteraction.java diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 90b09a730..3250272bd 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -567,7 +567,7 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json f1bedeb51c35e70a2247178634e61ea637a6622e assets/create/lang/en_ud.json -59bd0d1e0f74f1dbfd2443b3e6cb8c683b57827a assets/create/lang/en_us.json +59fd557ef593efa3c7b783195ec5dc789eae1834 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 @@ -5652,6 +5652,7 @@ ac265a674626e0e832330086fd18fe0be37fc327 data/create/recipes/weathered_copper_ti 5942a571f79c40524bbf408775cf91de4715f2b6 data/create/recipes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json 2a2700b43614f86d3294726595cb28ed7dca4387 data/create/tags/blocks/brittle.json d99d5c67bdffff60789a19bd51a5c5267c75e0a4 data/create/tags/blocks/casing.json +74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/create/tags/blocks/contraption_inventory_deny.json bc203f09dd7f48965d146d0bd035fb904cb75e7d data/create/tags/blocks/copycat_allow.json d4a3b66f4b763b9a2dcdea74b7273f0ae85cb335 data/create/tags/blocks/copycat_deny.json 2b4c93e5a752ebf54217594766f30d8d60cb4343 data/create/tags/blocks/fan_transparent.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 48c2234b1..af41fc01d 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1048,6 +1048,7 @@ "create.minecart_coupling.removed": "Removed all couplings from minecart", "create.minecart_coupling.too_far": "Minecarts are too far apart", + "create.contraptions.moving_container": "Moving %1$s", "create.contraptions.movement_mode": "Movement Mode", "create.contraptions.movement_mode.move_place": "Always Place when Stopped", "create.contraptions.movement_mode.move_place_returned": "Place only in Starting Position", diff --git a/src/generated/resources/data/create/tags/blocks/contraption_inventory_deny.json b/src/generated/resources/data/create/tags/blocks/contraption_inventory_deny.json new file mode 100644 index 000000000..5e8aecc98 --- /dev/null +++ b/src/generated/resources/data/create/tags/blocks/contraption_inventory_deny.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": [] +} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index c28aa9fea..212140104 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -87,6 +87,7 @@ public class AllTags { WRENCH_PICKUP, COPYCAT_ALLOW, COPYCAT_DENY, + CONTRAPTION_INVENTORY_DENY, RELOCATION_NOT_SUPPORTED(FORGE), WG_STONE(FORGE), diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java index dcf514392..077d21987 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java @@ -278,9 +278,12 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit InteractionHand interactionHand) { int indexOfSeat = contraption.getSeats() .indexOf(localPos); - if (indexOfSeat == -1 || AllItems.WRENCH.isIn(player.getItemInHand(interactionHand))) - return contraption.interactors.containsKey(localPos) && contraption.interactors.get(localPos) - .handlePlayerInteraction(player, interactionHand, localPos, this); + if (indexOfSeat == -1 || AllItems.WRENCH.isIn(player.getItemInHand(interactionHand))) { + if (contraption.interactors.containsKey(localPos)) + return contraption.interactors.get(localPos) + .handlePlayerInteraction(player, interactionHand, localPos, this); + return contraption.storage.handlePlayerStorageInteraction(contraption, player, localPos); + } if (player.isPassenger()) return false; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java index 8d41c67ea..b4333d0cb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorage.java @@ -1,6 +1,7 @@ package com.simibubi.create.content.contraptions.components.structureMovement; import com.simibubi.create.AllBlockEntityTypes; +import com.simibubi.create.AllTags.AllBlockTags; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterBlockEntity; import com.simibubi.create.content.contraptions.processing.ProcessingInventory; import com.simibubi.create.content.logistics.block.inventories.BottomlessItemHandler; @@ -15,6 +16,7 @@ import net.minecraft.world.level.block.entity.BarrelBlockEntity; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.ChestBlockEntity; import net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity; +import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; @@ -47,9 +49,30 @@ public class MountedStorage { if (be instanceof ItemVaultBlockEntity) return true; - LazyOptional capability = be.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY); - IItemHandler handler = capability.orElse(null); - return handler instanceof ItemStackHandler && !(handler instanceof ProcessingInventory); + try { + LazyOptional capability = be.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY); + IItemHandler handler = capability.orElse(null); + if (handler instanceof ItemStackHandler) + return !(handler instanceof ProcessingInventory); + return canUseModdedInventory(be, handler); + + } catch (Exception e) { + return false; + } + } + + public static boolean canUseModdedInventory(BlockEntity be, IItemHandler handler) { + if (!(handler instanceof IItemHandlerModifiable validItemHandler)) + return false; + BlockState blockState = be.getBlockState(); + if (AllBlockTags.CONTRAPTION_INVENTORY_DENY.matches(blockState)) + return false; + + // There doesn't appear to be much of a standard for tagging chests/barrels + String blockId = blockState.getBlock() + .getRegistryName() + .getPath(); + return blockId.endsWith("_chest") || blockId.endsWith("_barrel"); } public MountedStorage(BlockEntity be) { @@ -182,7 +205,7 @@ public class MountedStorage { public boolean isValid() { return valid; } - + public boolean canUseForFuel() { return !noFuel; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageInteraction.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageInteraction.java new file mode 100644 index 000000000..c9bd3a7ab --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageInteraction.java @@ -0,0 +1,68 @@ +package com.simibubi.create.content.contraptions.components.structureMovement; + +import java.util.List; +import java.util.function.Supplier; + +import com.google.common.collect.ImmutableList; +import com.simibubi.create.foundation.utility.Lang; + +import net.minecraft.network.chat.Component; +import net.minecraft.util.Mth; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ChestMenu; +import net.minecraft.world.inventory.MenuType; +import net.minecraftforge.items.IItemHandlerModifiable; +import net.minecraftforge.items.wrapper.RecipeWrapper; + +public class MountedStorageInteraction { + + public static final List> menus = ImmutableList.of(MenuType.GENERIC_9x1, MenuType.GENERIC_9x2, + MenuType.GENERIC_9x3, MenuType.GENERIC_9x4, MenuType.GENERIC_9x5, MenuType.GENERIC_9x6); + + public static MenuProvider createMenuProvider(Component displayName, IItemHandlerModifiable handler, + int slotCount, Supplier stillValid) { + int rows = Mth.clamp(slotCount / 9, 1, 6); + MenuType menuType = menus.get(rows - 1); + Component menuName = Lang.translateDirect("contraptions.moving_container", displayName); + + return new MenuProvider() { + + @Override + public AbstractContainerMenu createMenu(int pContainerId, Inventory pPlayerInventory, Player pPlayer) { + return new ChestMenu(menuType, pContainerId, pPlayerInventory, new StorageInteractionContainer(handler, stillValid), + rows); + } + + @Override + public Component getDisplayName() { + return menuName; + } + + }; + } + + public static class StorageInteractionContainer extends RecipeWrapper { + + private Supplier stillValid; + + public StorageInteractionContainer(IItemHandlerModifiable inv, Supplier stillValid) { + super(inv); + this.stillValid = stillValid; + } + + @Override + public boolean stillValid(Player player) { + return stillValid.get(); + } + + @Override + public int getMaxStackSize() { + return 64; + } + + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java index 507ef58ee..c7c416e38 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MountedStorageManager.java @@ -6,27 +6,38 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.function.Supplier; import java.util.stream.Collectors; import com.simibubi.create.content.contraptions.components.structureMovement.Contraption.ContraptionInvWrapper; import com.simibubi.create.content.contraptions.fluids.tank.FluidTankBlockEntity; import com.simibubi.create.foundation.fluid.CombinedTankWrapper; +import com.simibubi.create.foundation.utility.Components; import com.simibubi.create.foundation.utility.NBTHelper; import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.nbt.Tag; +import net.minecraft.network.chat.Component; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.ChestBlock; import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.properties.ChestType; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; +import net.minecraft.world.phys.Vec3; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidTank; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; import net.minecraftforge.fluids.capability.templates.FluidTank; import net.minecraftforge.items.IItemHandlerModifiable; +import net.minecraftforge.items.wrapper.CombinedInvWrapper; public class MountedStorageManager { @@ -202,4 +213,50 @@ public class MountedStorageManager { return fluidInventory; } + public boolean handlePlayerStorageInteraction(Contraption contraption, Player player, BlockPos localPos) { + if (player.level.isClientSide()) { + BlockEntity localBE = contraption.presentBlockEntities.get(localPos); + return MountedStorage.canUseAsStorage(localBE); + } + + MountedStorageManager storageManager = contraption.getStorageForSpawnPacket(); + MountedStorage storage = storageManager.storage.get(localPos); + if (storage == null || storage.getItemHandler() == null) + return false; + IItemHandlerModifiable handler = storage.getItemHandler(); + + StructureBlockInfo info = contraption.getBlocks() + .get(localPos); + if (info != null && info.state.hasProperty(ChestBlock.TYPE)) { + ChestType chestType = info.state.getValue(ChestBlock.TYPE); + Direction facing = info.state.getOptionalValue(ChestBlock.FACING) + .orElse(Direction.SOUTH); + Direction connectedDirection = + chestType == ChestType.LEFT ? facing.getClockWise() : facing.getCounterClockWise(); + + if (chestType != ChestType.SINGLE) { + MountedStorage storage2 = storageManager.storage.get(localPos.relative(connectedDirection)); + if (storage2 != null && storage2.getItemHandler() != null) + handler = chestType == ChestType.RIGHT ? new CombinedInvWrapper(handler, storage2.getItemHandler()) + : new CombinedInvWrapper(storage2.getItemHandler(), handler); + } + } + + int slotCount = handler.getSlots(); + if (slotCount == 0) + return false; + if (slotCount % 9 != 0) + return false; + + Supplier stillValid = () -> contraption.entity.isAlive() + && player.distanceToSqr(contraption.entity.toGlobalVector(Vec3.atCenterOf(localPos), 0)) < 64; + Component name = info != null ? info.state.getBlock() + .getName() : Components.literal("Container"); + player.openMenu(MountedStorageInteraction.createMenuProvider(name, handler, slotCount, stillValid)); + + Vec3 soundPos = contraption.entity.toGlobalVector(Vec3.atCenterOf(localPos), 0); + player.level.playSound(null, new BlockPos(soundPos), SoundEvents.BARREL_OPEN, SoundSource.BLOCKS, 0.75f, 1f); + return true; + } + } diff --git a/src/main/resources/assets/create/lang/default/interface.json b/src/main/resources/assets/create/lang/default/interface.json index be8be8169..dd6433bd8 100644 --- a/src/main/resources/assets/create/lang/default/interface.json +++ b/src/main/resources/assets/create/lang/default/interface.json @@ -180,6 +180,8 @@ "create.minecart_coupling.removed": "Removed all couplings from minecart", "create.minecart_coupling.too_far": "Minecarts are too far apart", + "create.contraptions.moving_container": "Moving %1$s", + "create.contraptions.movement_mode": "Movement Mode", "create.contraptions.movement_mode.move_place": "Always Place when Stopped", "create.contraptions.movement_mode.move_place_returned": "Place only in Starting Position",