diff --git a/gradle.properties b/gradle.properties index 70e1708aa..d7fae4618 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,7 +23,7 @@ use_parchment = true # dependency versions registrate_version = MC1.18.2-1.1.3 flywheel_minecraft_version = 1.18.2 -flywheel_version = 0.6.10-105 +flywheel_version = 0.6.10-106 jei_minecraft_version = 1.18.2 jei_version = 9.7.2.277 curios_minecraft_version = 1.18.2 diff --git a/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyBlockEntity.java b/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyBlockEntity.java index 2c425dd01..28bf7924d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/pulley/PulleyBlockEntity.java @@ -18,6 +18,7 @@ import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; import com.simibubi.create.foundation.blockEntity.behaviour.CenteredSideValueBoxTransform; import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform; +import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.infrastructure.config.AllConfigs; @@ -194,28 +195,42 @@ public class PulleyBlockEntity extends LinearActuatorBlockEntity implements Thre if (offset > 0) { BlockPos magnetPos = worldPosition.below((int) offset); FluidState ifluidstate = level.getFluidState(magnetPos); - level.destroyBlock(magnetPos, level.getBlockState(magnetPos) - .getCollisionShape(level, magnetPos) - .isEmpty()); - level.setBlock(magnetPos, AllBlocks.PULLEY_MAGNET.getDefaultState() - .setValue(BlockStateProperties.WATERLOGGED, - Boolean.valueOf(ifluidstate.getType() == Fluids.WATER)), - 66); + if (level.getBlockState(magnetPos) + .getDestroySpeed(level, magnetPos) != -1) { + + level.destroyBlock(magnetPos, level.getBlockState(magnetPos) + .getCollisionShape(level, magnetPos) + .isEmpty()); + level.setBlock(magnetPos, AllBlocks.PULLEY_MAGNET.getDefaultState() + .setValue(BlockStateProperties.WATERLOGGED, + Boolean.valueOf(ifluidstate.getType() == Fluids.WATER)), + 66); + } } boolean[] waterlog = new boolean[(int) offset]; - for (int i = 1; i <= ((int) offset) - 1; i++) { - BlockPos ropePos = worldPosition.below(i); - FluidState ifluidstate = level.getFluidState(ropePos); - waterlog[i] = ifluidstate.getType() == Fluids.WATER; - level.destroyBlock(ropePos, level.getBlockState(ropePos) - .getCollisionShape(level, ropePos) - .isEmpty()); + for (boolean destroyPass : Iterate.trueAndFalse) { + for (int i = 1; i <= ((int) offset) - 1; i++) { + BlockPos ropePos = worldPosition.below(i); + if (level.getBlockState(ropePos) + .getDestroySpeed(level, ropePos) == -1) + continue; + + if (destroyPass) { + FluidState ifluidstate = level.getFluidState(ropePos); + waterlog[i] = ifluidstate.getType() == Fluids.WATER; + level.destroyBlock(ropePos, level.getBlockState(ropePos) + .getCollisionShape(level, ropePos) + .isEmpty()); + continue; + } + + level.setBlock(worldPosition.below(i), AllBlocks.ROPE.getDefaultState() + .setValue(BlockStateProperties.WATERLOGGED, waterlog[i]), 66); + } } - for (int i = 1; i <= ((int) offset) - 1; i++) - level.setBlock(worldPosition.below(i), AllBlocks.ROPE.getDefaultState() - .setValue(BlockStateProperties.WATERLOGGED, waterlog[i]), 66); + } if (movedContraption != null && mirrorParent == null) diff --git a/src/main/java/com/simibubi/create/content/kinetics/belt/BeltBlock.java b/src/main/java/com/simibubi/create/content/kinetics/belt/BeltBlock.java index bf99e8d14..64c37cc2c 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/belt/BeltBlock.java +++ b/src/main/java/com/simibubi/create/content/kinetics/belt/BeltBlock.java @@ -60,6 +60,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; @@ -304,12 +305,24 @@ public class BeltBlock extends HorizontalKineticBlock if (AllBlocks.BRASS_CASING.isIn(heldItem)) { withBlockEntityDo(world, pos, be -> be.setCasingType(CasingType.BRASS)); updateCoverProperty(world, pos, world.getBlockState(pos)); + + SoundType soundType = AllBlocks.BRASS_CASING.getDefaultState() + .getSoundType(world, pos, player); + world.playSound(null, pos, soundType.getPlaceSound(), SoundSource.BLOCKS, + (soundType.getVolume() + 1.0F) / 2.0F, soundType.getPitch() * 0.8F); + return InteractionResult.SUCCESS; } if (AllBlocks.ANDESITE_CASING.isIn(heldItem)) { withBlockEntityDo(world, pos, be -> be.setCasingType(CasingType.ANDESITE)); updateCoverProperty(world, pos, world.getBlockState(pos)); + + SoundType soundType = AllBlocks.ANDESITE_CASING.getDefaultState() + .getSoundType(world, pos, player); + world.playSound(null, pos, soundType.getPlaceSound(), SoundSource.BLOCKS, + (soundType.getVolume() + 1.0F) / 2.0F, soundType.getPitch() * 0.8F); + return InteractionResult.SUCCESS; } diff --git a/src/main/java/com/simibubi/create/content/trains/display/FlapDisplayBlockEntity.java b/src/main/java/com/simibubi/create/content/trains/display/FlapDisplayBlockEntity.java index 06813e48e..dc014511c 100644 --- a/src/main/java/com/simibubi/create/content/trains/display/FlapDisplayBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/trains/display/FlapDisplayBlockEntity.java @@ -111,7 +111,7 @@ public class FlapDisplayBlockEntity extends KineticBlockEntity { if ((!level.isClientSide || !isRunning) && !isVirtual()) return; int activeFlaps = 0; - boolean instant = getSpeed() > 128; + boolean instant = Math.abs(getSpeed()) > 128; for (FlapDisplayLayout line : lines) for (FlapDisplaySection section : line.getSections()) activeFlaps += section.tick(instant); diff --git a/src/main/java/com/simibubi/create/infrastructure/gui/CreateMainMenuScreen.java b/src/main/java/com/simibubi/create/infrastructure/gui/CreateMainMenuScreen.java index dbd8fa9f4..4268d09f2 100644 --- a/src/main/java/com/simibubi/create/infrastructure/gui/CreateMainMenuScreen.java +++ b/src/main/java/com/simibubi/create/infrastructure/gui/CreateMainMenuScreen.java @@ -108,6 +108,8 @@ public class CreateMainMenuScreen extends AbstractSimiScreen { .render(ms); ms.popPose(); } + + RenderSystem.enableBlend(); ms.pushPose(); ms.translate(width / 2 - 32, 32, -10); diff --git a/src/main/resources/assets/create/textures/gui/logo.png b/src/main/resources/assets/create/textures/gui/logo.png index d3460172c..a3242f42f 100644 Binary files a/src/main/resources/assets/create/textures/gui/logo.png and b/src/main/resources/assets/create/textures/gui/logo.png differ diff --git a/src/main/resources/icon.png b/src/main/resources/icon.png index 61de5f066..b9226b681 100644 Binary files a/src/main/resources/icon.png and b/src/main/resources/icon.png differ