From 95a96c35ca63cb695b9d198e33ecdd7768f460c0 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Mon, 23 Aug 2021 19:39:27 +0700 Subject: [PATCH] Pattern fillage gauge --- .../entity/BlockEntityPatternStorage.java | 20 ++-- .../dbotthepony/mc/otm/matter/MatterGrid.java | 32 ++++++ .../mc/otm/menu/PatternStorageMenu.java | 24 +++++ .../mc/otm/menu/data/LongDataContainer.java | 65 ++++++++++++ .../otm/menu/widget/PatternStorageWidget.java | 93 ++++++++++++++++++ .../mc/otm/screen/BatteryBankScreen.java | 2 +- .../otm/screen/MatterCapacitorBankScreen.java | 2 +- .../mc/otm/screen/MatterDecomposerScreen.java | 4 +- .../mc/otm/screen/MatterReplicatorScreen.java | 2 +- .../mc/otm/screen/MatterScannerScreen.java | 2 +- .../mc/otm/screen/PatternStorageScreen.java | 24 ++--- .../overdrive_that_matters/lang/en_us.json | 3 + .../textures/gui/widgets.png | Bin 2161 -> 2665 bytes .../textures/gui/widgets.xcf | 4 +- 14 files changed, 249 insertions(+), 28 deletions(-) create mode 100644 src/main/java/ru/dbotthepony/mc/otm/menu/data/LongDataContainer.java create mode 100644 src/main/java/ru/dbotthepony/mc/otm/menu/widget/PatternStorageWidget.java diff --git a/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityPatternStorage.java b/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityPatternStorage.java index 1ee9a5e58..1422788d9 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityPatternStorage.java +++ b/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityPatternStorage.java @@ -182,16 +182,24 @@ public class BlockEntityPatternStorage extends BlockEntityMattery implements IMa @Override public int getCapacity() { - AtomicInteger stored = new AtomicInteger(); - patterns.consumeCapability(MatteryCapability.PATTERN, capability -> stored.getAndAdd(capability.getCapacity())); - return stored.get(); + long stored = 0; + + for (var pattern : patterns.capabilityIterator(MatteryCapability.PATTERN)) { + stored += pattern.getCapacity(); + } + + return stored > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) stored; } @Override public int getStored() { - AtomicInteger stored = new AtomicInteger(); - patterns.consumeCapability(MatteryCapability.PATTERN, capability -> stored.getAndAdd(capability.getStored())); - return stored.get(); + long stored = 0; + + for (var pattern : patterns.capabilityIterator(MatteryCapability.PATTERN)) { + stored += pattern.getStored(); + } + + return stored > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) stored; } @Override diff --git a/src/main/java/ru/dbotthepony/mc/otm/matter/MatterGrid.java b/src/main/java/ru/dbotthepony/mc/otm/matter/MatterGrid.java index d2847c614..33e3219b9 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/matter/MatterGrid.java +++ b/src/main/java/ru/dbotthepony/mc/otm/matter/MatterGrid.java @@ -260,6 +260,38 @@ public class MatterGrid implements IMatterGridListener { return ImmutableList.copyOf(list); } + public long getStoredPatternCount() { + validate(); + + long value = 0; + + for (IMatterGridCell cell : cells) { + IPatternStorage storage = cell.getPatternStorage(); + + if (storage != null) { + value += storage.getStored(); + } + } + + return value; + } + + public long getPatternCapacity() { + validate(); + + long value = 0; + + for (IMatterGridCell cell : cells) { + IPatternStorage storage = cell.getPatternStorage(); + + if (storage != null) { + value += storage.getCapacity(); + } + } + + return value; + } + public Collection findPatterns(Item item) { return findPatterns((patternState -> item == patternState.item())); } diff --git a/src/main/java/ru/dbotthepony/mc/otm/menu/PatternStorageMenu.java b/src/main/java/ru/dbotthepony/mc/otm/menu/PatternStorageMenu.java index 81da17864..534075789 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/menu/PatternStorageMenu.java +++ b/src/main/java/ru/dbotthepony/mc/otm/menu/PatternStorageMenu.java @@ -6,6 +6,7 @@ import net.minecraft.world.entity.player.Inventory; import ru.dbotthepony.mc.otm.Registry; import ru.dbotthepony.mc.otm.block.entity.BlockEntityPatternStorage; import ru.dbotthepony.mc.otm.menu.slot.PatternSlot; +import ru.dbotthepony.mc.otm.menu.widget.PatternStorageWidget; public class PatternStorageMenu extends MatteryMenu { public PatternStorageMenu(int p_38852_, Inventory inventory) { @@ -14,9 +15,32 @@ public class PatternStorageMenu extends MatteryMenu { public PatternSlot[] pattern_slots = new PatternSlot[2 * 4]; + public PatternStorageWidget stored_this; + public PatternStorageWidget stored_grid; + public PatternStorageMenu(int p_38852_, Inventory inventory, BlockEntityPatternStorage tile) { super(Registry.Menus.PATTERN_STORAGE, p_38852_, inventory, tile); + if (tile == null) { + stored_this = new PatternStorageWidget(this); + stored_grid = new PatternStorageWidget(this); + } else { + stored_this = new PatternStorageWidget(this, tile.getPatternStorage()); + stored_grid = new PatternStorageWidget(this, () -> { + if (tile.getMatterGrid() != null) { + return tile.getMatterGrid().getStoredPatternCount(); + } + + return 0L; + }, () -> { + if (tile.getMatterGrid() != null) { + return tile.getMatterGrid().getPatternCapacity(); + } + + return 0L; + }); + } + Container patterns = tile != null ? tile.patterns : new SimpleContainer(2 * 4); for (int row = 0; row < 2; row++) { diff --git a/src/main/java/ru/dbotthepony/mc/otm/menu/data/LongDataContainer.java b/src/main/java/ru/dbotthepony/mc/otm/menu/data/LongDataContainer.java new file mode 100644 index 000000000..835b8f6b4 --- /dev/null +++ b/src/main/java/ru/dbotthepony/mc/otm/menu/data/LongDataContainer.java @@ -0,0 +1,65 @@ +package ru.dbotthepony.mc.otm.menu.data; + +import net.minecraft.world.inventory.ContainerData; +import org.apache.commons.lang3.ArrayUtils; +import ru.dbotthepony.mc.otm.OverdriveThatMatters; + +import java.math.BigDecimal; +import java.math.BigInteger; + +public class LongDataContainer implements ContainerData { + public static final int NETWORK_PAYLOAD_SIZE = 4; + + private Long value; + private final int[] buffer = new int[NETWORK_PAYLOAD_SIZE]; + + public Long getValue() { + if (value != null) { + return value; + } + + long a = buffer[0]; + long b = buffer[1]; + long c = buffer[2]; + long d = buffer[3]; + + return value = a | b << 16 | c << 32 | d << 48; + } + + public void setValue(long value) { + if (this.value != null && value == this.value) { + return; + } + + this.value = value; + buffer[0] = (int) ((value) & 0xFFFF); + buffer[1] = (int) ((value >>> 16) & 0xFFFF); + buffer[2] = (int) ((value >>> 32) & 0xFFFF); + buffer[3] = (int) ((value >>> 48) & 0xFFFF); + } + + // override + protected void updateValue() { + + } + + @Override + public int get(int index) { + updateValue(); + return buffer[index]; + } + + @Override + public void set(int index, int _value) { + if (buffer[index] == _value) + return; + + value = null; + buffer[index] = _value; + } + + @Override + public int getCount() { + return NETWORK_PAYLOAD_SIZE; + } +} diff --git a/src/main/java/ru/dbotthepony/mc/otm/menu/widget/PatternStorageWidget.java b/src/main/java/ru/dbotthepony/mc/otm/menu/widget/PatternStorageWidget.java new file mode 100644 index 000000000..9f8f2e1b3 --- /dev/null +++ b/src/main/java/ru/dbotthepony/mc/otm/menu/widget/PatternStorageWidget.java @@ -0,0 +1,93 @@ +package ru.dbotthepony.mc.otm.menu.widget; + +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import ru.dbotthepony.mc.otm.capability.IMatterHandler; +import ru.dbotthepony.mc.otm.capability.IPatternStorage; +import ru.dbotthepony.mc.otm.capability.MatteryCapability; +import ru.dbotthepony.mc.otm.menu.FormattingHelper; +import ru.dbotthepony.mc.otm.menu.MatteryMenu; +import ru.dbotthepony.mc.otm.menu.data.BigDecimalDataContainer; +import ru.dbotthepony.mc.otm.menu.data.LongDataContainer; + +import javax.annotation.Nullable; +import java.math.BigDecimal; +import java.util.List; +import java.util.function.Supplier; + +public class PatternStorageWidget extends GaugeWidget { + public Supplier value_supplier; + public Supplier max_value_supplier; + + protected final LongDataContainer value_container = new LongDataContainer(); + protected final LongDataContainer max_value_container = new LongDataContainer(); + + public PatternStorageWidget(MatteryMenu menu, int x, int y, IPatternStorage capability) { + this(menu, x, y, () -> (long) capability.getStored(), () -> (long) capability.getCapacity()); + } + + public PatternStorageWidget(MatteryMenu menu, IPatternStorage capability) { + this(menu, 0, 0, () -> (long) capability.getStored(), () -> (long) capability.getCapacity()); + } + + public PatternStorageWidget(MatteryMenu menu) { + this(menu, 0, 0, null, null); + } + + public PatternStorageWidget(MatteryMenu menu, int x, int y, Supplier value_supplier, Supplier max_value_supplier) { + super(menu, x, y); + this.value_supplier = value_supplier; + this.max_value_supplier = max_value_supplier; + + addDataSlots(value_container); + addDataSlots(max_value_container); + } + + public PatternStorageWidget(MatteryMenu menu, Supplier value_supplier, Supplier max_value_supplier) { + this(menu, 0, 0, value_supplier, max_value_supplier); + } + + @Override + public void updateServer() { + if (value_supplier == null || max_value_supplier == null) + return; + + value_container.setValue(value_supplier.get()); + max_value_container.setValue(max_value_supplier.get()); + } + + @Override + public int getImageWidth() { + return 9; + } + + @Override + public int getImageHeight() { + return 48; + } + + @Override + public int getImageX() { + return 0; + } + + @Override + public int getImageY() { + return 148; + } + + @Nullable + @Override + public List getTooltip() { + return List.of( + new TranslatableComponent("otm.gui.pattern.percentage_level", String.format("%.2f", getLevel() * 100d)), + new TranslatableComponent("otm.gui.pattern.format", value_container.getValue(), max_value_container.getValue()) + ); + } + + @Override + public float getLevel() { + return max_value_container.getValue() == 0 ? 0 : (float) ((double) value_container.getValue() / (double) max_value_container.getValue()); + } +} diff --git a/src/main/java/ru/dbotthepony/mc/otm/screen/BatteryBankScreen.java b/src/main/java/ru/dbotthepony/mc/otm/screen/BatteryBankScreen.java index efc8c161a..5244cf662 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/screen/BatteryBankScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/screen/BatteryBankScreen.java @@ -30,7 +30,7 @@ public class BatteryBankScreen extends MatteryScreen implements @Override public void createGridPanels(FlexGridPanel grid) { for (var slot : menu.battery_slots) { - new SlotPanel(this, grid, 0, 0, slot); + new SlotPanel<>(this, grid, 0, 0, slot); } } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/screen/MatterCapacitorBankScreen.java b/src/main/java/ru/dbotthepony/mc/otm/screen/MatterCapacitorBankScreen.java index 24f0849b6..8562257bf 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/screen/MatterCapacitorBankScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/screen/MatterCapacitorBankScreen.java @@ -23,7 +23,7 @@ public class MatterCapacitorBankScreen extends MatteryScreen(this, grid, 0, 0, slot); } } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/screen/MatterDecomposerScreen.java b/src/main/java/ru/dbotthepony/mc/otm/screen/MatterDecomposerScreen.java index 9005cb374..93804fc00 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/screen/MatterDecomposerScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/screen/MatterDecomposerScreen.java @@ -28,8 +28,8 @@ public class MatterDecomposerScreen extends MatteryScreen @Override public void createGridPanels(FlexGridPanel grid) { - new SlotPanel(this, grid, 0, 0, menu.input).setDockMargin(2, 0, 2, 0); + new SlotPanel<>(this, grid, 0, 0, menu.input).setDockMargin(2, 0, 2, 0); new MatteryWidgetPanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); - new SlotPanel(this, grid, 0, 0, menu.output).setDockMargin(2, 0, 2, 0); + new SlotPanel<>(this, grid, 0, 0, menu.output).setDockMargin(2, 0, 2, 0); } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/screen/MatterReplicatorScreen.java b/src/main/java/ru/dbotthepony/mc/otm/screen/MatterReplicatorScreen.java index 5b6df0ed9..ca81436ca 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/screen/MatterReplicatorScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/screen/MatterReplicatorScreen.java @@ -30,7 +30,7 @@ public class MatterReplicatorScreen extends MatteryScreen new MatteryWidgetPanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); for (var slot : menu.output_slots) { - new SlotPanel(this, grid, 0, 0, slot); + new SlotPanel<>(this, grid, 0, 0, slot); } } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/screen/MatterScannerScreen.java b/src/main/java/ru/dbotthepony/mc/otm/screen/MatterScannerScreen.java index 06cd2479e..22712e5e7 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/screen/MatterScannerScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/screen/MatterScannerScreen.java @@ -27,7 +27,7 @@ public class MatterScannerScreen extends MatteryScreen implem @Override public void createGridPanels(FlexGridPanel grid) { - new SlotPanel(this, grid, 0, 0, menu.input).setDockMargin(2, 0, 2, 0); + new SlotPanel<>(this, grid, 0, 0, menu.input).setDockMargin(2, 0, 2, 0); new MatteryWidgetPanel(this, grid, menu.progress).setDockMargin(2, 0, 2, 0); } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/screen/PatternStorageScreen.java b/src/main/java/ru/dbotthepony/mc/otm/screen/PatternStorageScreen.java index 76a6d733c..fed15e796 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/screen/PatternStorageScreen.java +++ b/src/main/java/ru/dbotthepony/mc/otm/screen/PatternStorageScreen.java @@ -3,30 +3,26 @@ package ru.dbotthepony.mc.otm.screen; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; import ru.dbotthepony.mc.otm.menu.PatternStorageMenu; -import ru.dbotthepony.mc.otm.screen.panels.Dock; -import ru.dbotthepony.mc.otm.screen.panels.FlexGridPanel; -import ru.dbotthepony.mc.otm.screen.panels.FramePanel; -import ru.dbotthepony.mc.otm.screen.panels.SlotPanel; +import ru.dbotthepony.mc.otm.menu.widget.GaugeWidget; +import ru.dbotthepony.mc.otm.screen.panels.*; import javax.annotation.Nullable; +import java.util.List; -public class PatternStorageScreen extends MatteryScreen { +public class PatternStorageScreen extends MatteryScreen implements MatteryScreen.IMatteryScreenGaugeGetter, MatteryScreen.IMatteryScreenGridBased { public PatternStorageScreen(PatternStorageMenu p_97741_, Inventory p_97742_, Component p_97743_) { super(p_97741_, p_97742_, p_97743_); } - @Nullable @Override - protected FramePanel makeMainFrame() { - var frame = super.makeMainFrame(); - - var grid = new FlexGridPanel(this, frame, 0, 0, 0, 0); - grid.setDock(Dock.FILL); + public List getGauges() { + return List.of(menu.stored_this, menu.stored_grid); + } + @Override + public void createGridPanels(FlexGridPanel grid) { for (var slot : menu.pattern_slots) { - new SlotPanel(this, grid, 0, 0, slot).setDockMargin(1, 1, 1, 1); + new SlotPanel<>(this, grid, 0, 0, slot).setDockMargin(1, 1, 1, 1); } - - return frame; } } diff --git a/src/main/resources/assets/overdrive_that_matters/lang/en_us.json b/src/main/resources/assets/overdrive_that_matters/lang/en_us.json index fe0a114c0..3d82b68c1 100644 --- a/src/main/resources/assets/overdrive_that_matters/lang/en_us.json +++ b/src/main/resources/assets/overdrive_that_matters/lang/en_us.json @@ -15,6 +15,9 @@ "otm.gui.matter.format": "Matter: %s", "otm.gui.matter.name": "MtU", + "otm.gui.pattern.percentage_level": "Fill level: %s%%", + "otm.gui.pattern.format": "Stored patterns: %s / %s", + "otm.death_reason": "Decommissioned!", "otm.item.power.infinite.storage": "Stored energy: Infinity / Infinity", diff --git a/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.png b/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.png index e2fdef15e9f4637d1d56882a4b19dd0c5ef151f0..f9eb592ea389e84cf494ce05d285075b12794c12 100644 GIT binary patch delta 2170 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 EAMumWe*gdg diff --git a/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.xcf b/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.xcf index f0336af4c..04c170680 100644 --- a/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.xcf +++ b/src/main/resources/assets/overdrive_that_matters/textures/gui/widgets.xcf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a4d2744fb1ef44fba62ecd4190bfe6c61fb64b463d684e25f735692e631339a3 -size 13359 +oid sha256:25ebaaca88202ae47c54d500fa36d785fcc1039ca8843f46aef9a50f89e3e5f2 +size 26216