From 6638d4117b8ba061edd6cc83f7cb069fe774691b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=9A=E7=9A=93=20=E5=BE=90?= Date: Sat, 4 Apr 2026 01:28:04 +0800 Subject: [PATCH] Add a wider V/C range. --- .../creative/CreativeSourceBlockEntity.java | 4 ++-- .../CreativeSourceValueBehaviour.java | 20 ++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/patryk3211/powergrid/electricity/creative/CreativeSourceBlockEntity.java b/src/main/java/org/patryk3211/powergrid/electricity/creative/CreativeSourceBlockEntity.java index 58e08a8f0..b3e52472d 100644 --- a/src/main/java/org/patryk3211/powergrid/electricity/creative/CreativeSourceBlockEntity.java +++ b/src/main/java/org/patryk3211/powergrid/electricity/creative/CreativeSourceBlockEntity.java @@ -68,8 +68,8 @@ public void addBehaviours(List behaviours) { value = new CreativeSourceValueBehaviour(label, this, multiplier, new CreativeSourceBoxTransform()); value.withCallback(i -> { - if(!overwrite) - setValue(i * multiplier); + if (!overwrite) + setValue(((i >> 2) * ((i & 1) > 0 ? 1 : (i & 2) > 0 ? 0.001f : 1000)) * multiplier); }); behaviours.add(value); } diff --git a/src/main/java/org/patryk3211/powergrid/electricity/creative/CreativeSourceValueBehaviour.java b/src/main/java/org/patryk3211/powergrid/electricity/creative/CreativeSourceValueBehaviour.java index 6a4762233..f42979592 100644 --- a/src/main/java/org/patryk3211/powergrid/electricity/creative/CreativeSourceValueBehaviour.java +++ b/src/main/java/org/patryk3211/powergrid/electricity/creative/CreativeSourceValueBehaviour.java @@ -34,14 +34,20 @@ public class CreativeSourceValueBehaviour extends ScrollValueBehaviour { public CreativeSourceValueBehaviour(Component label, SmartBlockEntity be, float multiplier, ValueBoxTransform slot) { super(label, be, slot); this.multiplier = multiplier; - between(-250, 250); - withFormatter(i -> String.format("%.1f", Math.abs(i) * multiplier)); + between(-1000, 1002); + withFormatter(i -> String.format("%.1f%s", Math.abs(i >> 2) * multiplier, + (i & 1) > 0 ? "" : (i & 2) > 0 ? "m" : "k")); + setValue(1); } public ValueSettingsBoard createBoard(Player player, BlockHitResult hitResult) { ImmutableList rows = ImmutableList.of( - Component.literal("+"),//.formatted(Formatting.BOLD), - Component.literal("-")//.formatted(Formatting.BOLD) + Component.literal("+k"),//.formatted(Formatting.BOLD), + Component.literal("+1"),//.formatted(Formatting.BOLD), + Component.literal("+m"),//.formatted(Formatting.BOLD), + Component.literal("-k"),//.formatted(Formatting.BOLD), + Component.literal("-1"),//.formatted(Formatting.BOLD), + Component.literal("-m")//.formatted(Formatting.BOLD) ); ValueSettingsFormatter formatter = new ValueSettingsFormatter(this::formatSettings); return new ValueSettingsBoard(this.label, 250, 20, rows, formatter); @@ -52,12 +58,12 @@ public void setValueSettings(Player player, ValueSettingsBehaviour.ValueSettings if (!valueSetting.equals(this.getValueSettings())) { this.playFeedbackSound(this); } - - this.setValue(valueSetting.row() == 0 ? value : -value); + int row = valueSetting.row(); + this.setValue(value != 0 ? ((row < 3 ? value : -value) << 2) | row % 3 : 1); } public ValueSettingsBehaviour.ValueSettings getValueSettings() { - return new ValueSettingsBehaviour.ValueSettings(this.value < 0 ? 1 : 0, Math.abs(this.value)); + return new ValueSettingsBehaviour.ValueSettings((this.value < 0 ? 3 : 0) + (this.value & 3), Math.abs(this.value >> 2)); } public MutableComponent formatSettings(ValueSettingsBehaviour.ValueSettings settings) {