Skip to content

Commit d0d13f0

Browse files
committed
Clamped shut
- Add support for minValue in ValueSettingsBoard - Fix creative motor showing 1 twice in the speed picking UI #9406 - Dynamically set max creative motor speed with the config option maxRotationSpeed
1 parent baab227 commit d0d13f0

File tree

5 files changed

+12
-10
lines changed

5 files changed

+12
-10
lines changed

src/main/java/com/simibubi/create/content/kinetics/motor/CreativeMotorBlockEntity.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.simibubi.create.foundation.blockEntity.behaviour.ValueBoxTransform;
1414
import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollValueBehaviour;
1515
import com.simibubi.create.foundation.utility.CreateLang;
16+
import com.simibubi.create.infrastructure.config.AllConfigs;
1617

1718
import dan200.computercraft.api.peripheral.PeripheralCapability;
1819
import dev.engine_room.flywheel.lib.transform.TransformStack;
@@ -29,9 +30,7 @@
2930
import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent;
3031

3132
public class CreativeMotorBlockEntity extends GeneratingKineticBlockEntity {
32-
3333
public static final int DEFAULT_SPEED = 16;
34-
public static final int MAX_SPEED = 256;
3534

3635
public ScrollValueBehaviour generatedSpeed;
3736
public AbstractComputerBehaviour computerBehaviour;
@@ -53,7 +52,7 @@ public static void registerCapabilities(RegisterCapabilitiesEvent event) {
5352
@Override
5453
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
5554
super.addBehaviours(behaviours);
56-
int max = MAX_SPEED;
55+
int max = AllConfigs.server().kinetics.maxRotationSpeed.get();
5756
generatedSpeed = new KineticScrollValueBehaviour(CreateLang.translateDirect("kinetics.creative_motor.rotation_speed"),
5857
this, new MotorValueBox());
5958
generatedSpeed.between(-max, max);
@@ -117,5 +116,4 @@ public void invalidate() {
117116
super.invalidate();
118117
computerBehaviour.removePeripheral();
119118
}
120-
121119
}

src/main/java/com/simibubi/create/content/kinetics/motor/KineticScrollValueBehaviour.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public ValueSettingsBoard createBoard(Player player, BlockHitResult hitResult) {
2828
Component.literal("\u27f2")
2929
.withStyle(ChatFormatting.BOLD));
3030
ValueSettingsFormatter formatter = new ValueSettingsFormatter(this::formatSettings);
31-
return new ValueSettingsBoard(label, 256, 32, rows, formatter);
31+
return new ValueSettingsBoard(label, 1, 256, 32, rows, formatter);
3232
}
3333

3434
@Override

src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueSettingsBoard.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44

55
import net.minecraft.network.chat.Component;
66

7-
public record ValueSettingsBoard(Component title, int maxValue, int milestoneInterval, List<Component> rows,
7+
public record ValueSettingsBoard(Component title, int minValue, int maxValue, int milestoneInterval,
8+
List<Component> rows,
89
ValueSettingsFormatter formatter) {
10+
public ValueSettingsBoard(Component title, int maxValue, int milestoneInterval, List<Component> rows, ValueSettingsFormatter formatter) {
11+
this(title, 0, maxValue, milestoneInterval, rows, formatter);
12+
}
913
}

src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/ValueSettingsScreen.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
import com.simibubi.create.foundation.gui.AllIcons;
1717
import com.simibubi.create.foundation.utility.CreateLang;
1818

19+
import net.createmod.catnip.animation.AnimationTickHolder;
1920
import net.createmod.catnip.gui.AbstractSimiScreen;
2021
import net.createmod.catnip.gui.UIRenderHelper;
2122
import net.createmod.catnip.platform.CatnipServices;
22-
import net.createmod.catnip.animation.AnimationTickHolder;
2323
import net.minecraft.client.gui.GuiGraphics;
2424
import net.minecraft.client.resources.sounds.SimpleSoundInstance;
2525
import net.minecraft.core.BlockPos;
@@ -91,8 +91,7 @@ public ValueSettings getClosestCoordinate(int mouseX, int mouseY) {
9191
boolean milestonesOnly = hasShiftDown();
9292

9393
double bestDiff = Double.MAX_VALUE;
94-
for (; row < board.rows()
95-
.size(); row++) {
94+
for (; row < board.rows().size(); row++) {
9695
Vec2 coord = getCoordinateOfValue(row, 0);
9796
double diff = Math.abs(coord.y - mouseY);
9897
if (bestDiff < diff)
@@ -110,6 +109,7 @@ public ValueSettings getClosestCoordinate(int mouseX, int mouseY) {
110109
bestDiff = diff;
111110
}
112111
column -= 1;
112+
column = Math.max(board.minValue(), column);
113113

114114
return new ValueSettings(row,
115115
milestonesOnly ? Math.min(column * board.milestoneInterval(), board.maxValue()) : column);

src/main/java/com/simibubi/create/foundation/blockEntity/behaviour/scrollValue/ScrollValueBehaviour.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.function.Consumer;
44
import java.util.function.Function;
55
import java.util.function.Supplier;
6+
67
import com.google.common.collect.ImmutableList;
78
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
89
import com.simibubi.create.foundation.blockEntity.behaviour.BehaviourType;
@@ -30,7 +31,6 @@ public class ScrollValueBehaviour extends BlockEntityBehaviour implements ValueS
3031
public static final BehaviourType<ScrollValueBehaviour> TYPE = new BehaviourType<>();
3132

3233
ValueBoxTransform slotPositioning;
33-
Vec3 textShift;
3434

3535
int min = 0;
3636
protected int max = 1;

0 commit comments

Comments
 (0)