From 7e9d7ca8f8ea926632fcdeda1b46fcc9f2ec01d1 Mon Sep 17 00:00:00 2001 From: DBotThePony <dbotthepony@yandex.ru> Date: Wed, 8 Sep 2021 18:23:11 +0700 Subject: [PATCH] Rename IStorageObject to IStorageStack --- .../mc/otm/OverdriveThatMatters.java | 5 ++- .../block/entity/BlockEntityDriveRack.java | 6 ---- .../capability/AbstractStorageGridCell.java | 4 +-- .../otm/capability/drive/IMatteryDrive.java | 7 +--- .../mc/otm/capability/drive/MatteryDrive.java | 34 +++++++++---------- .../mc/otm/menu/ItemMonitorMenu.java | 7 ++-- .../mc/otm/menu/data/NetworkedItemView.java | 14 ++++---- .../mc/otm/storage/IStorageComponent.java | 3 +- .../mc/otm/storage/IStorageConsumer.java | 2 +- .../mc/otm/storage/IStorageIdentity.java | 2 +- .../mc/otm/storage/IStorageListener.java | 3 +- ...IStorageObject.java => IStorageStack.java} | 7 ++-- .../mc/otm/storage/IStorageTrigger.java | 2 +- .../mc/otm/storage/IStorageTuple.java | 2 +- .../mc/otm/storage/IStorageView.java | 4 +-- ...emStackObject.java => ItemStackStack.java} | 12 +++---- .../mc/otm/storage/StorageGrid.java | 12 +++---- .../mc/otm/storage/StorageObjectRegistry.java | 8 ++--- .../mc/otm/storage/StorageObjectTuple.java | 2 +- .../mc/otm/storage/StorageTuple.java | 2 +- .../mc/otm/storage/VirtualComponent.java | 8 ++--- 21 files changed, 61 insertions(+), 85 deletions(-) rename src/main/java/ru/dbotthepony/mc/otm/storage/{IStorageObject.java => IStorageStack.java} (94%) rename src/main/java/ru/dbotthepony/mc/otm/storage/{ItemStackObject.java => ItemStackStack.java} (76%) diff --git a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java index e8ef8ff7c..75a7d106a 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java +++ b/src/main/java/ru/dbotthepony/mc/otm/OverdriveThatMatters.java @@ -1,6 +1,5 @@ package ru.dbotthepony.mc.otm; -import net.minecraft.server.level.ServerLevel; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -31,7 +30,7 @@ import ru.dbotthepony.mc.otm.item.ItemPortableCondensationDrive; import ru.dbotthepony.mc.otm.matter.MatterGrid; import ru.dbotthepony.mc.otm.matter.MatterRegistry; import ru.dbotthepony.mc.otm.network.MatteryNetworking; -import ru.dbotthepony.mc.otm.storage.ItemStackObject; +import ru.dbotthepony.mc.otm.storage.ItemStackStack; import ru.dbotthepony.mc.otm.storage.StorageObjectRegistry; import java.util.ArrayList; @@ -168,7 +167,7 @@ public class OverdriveThatMatters { MatterRegistry.registerInitialItems(); - StorageObjectRegistry.register(ItemStackObject.class, ItemStackObject.EMPTY); + StorageObjectRegistry.register(ItemStackStack.class, ItemStackStack.EMPTY); } private void setupClient(final FMLClientSetupEvent event) { diff --git a/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityDriveRack.java b/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityDriveRack.java index 04fe01edf..dc7b87056 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityDriveRack.java +++ b/src/main/java/ru/dbotthepony/mc/otm/block/entity/BlockEntityDriveRack.java @@ -11,26 +11,20 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; -import ru.dbotthepony.mc.otm.OverdriveThatMatters; import ru.dbotthepony.mc.otm.Registry; import ru.dbotthepony.mc.otm.capability.AbstractStorageGridCell; -import ru.dbotthepony.mc.otm.capability.IStorageGridCell; import ru.dbotthepony.mc.otm.capability.MatteryCapability; import ru.dbotthepony.mc.otm.capability.MatteryMachineEnergyStorage; import ru.dbotthepony.mc.otm.container.MatteryContainer; import ru.dbotthepony.mc.otm.menu.DriveRackMenu; -import ru.dbotthepony.mc.otm.storage.IStorageIdentity; -import ru.dbotthepony.mc.otm.storage.ItemStackObject; import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; import java.math.BigDecimal; -import java.util.List; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault diff --git a/src/main/java/ru/dbotthepony/mc/otm/capability/AbstractStorageGridCell.java b/src/main/java/ru/dbotthepony/mc/otm/capability/AbstractStorageGridCell.java index b27ba122c..e3bb4e7df 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/capability/AbstractStorageGridCell.java +++ b/src/main/java/ru/dbotthepony/mc/otm/capability/AbstractStorageGridCell.java @@ -4,7 +4,7 @@ import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraftforge.common.util.LazyOptional; import ru.dbotthepony.mc.otm.OverdriveThatMatters; import ru.dbotthepony.mc.otm.storage.IStorageIdentity; -import ru.dbotthepony.mc.otm.storage.IStorageObject; +import ru.dbotthepony.mc.otm.storage.IStorageStack; import ru.dbotthepony.mc.otm.storage.StorageGrid; import javax.annotation.Nullable; @@ -26,7 +26,7 @@ public class AbstractStorageGridCell implements IStorageGridCell { return Collections.unmodifiableList(components); } - public <T extends IStorageObject, U extends IStorageIdentity<T>> U computeIfAbsent(Class<T> identity, Supplier<U> provider) { + public <T extends IStorageStack, U extends IStorageIdentity<T>> U computeIfAbsent(Class<T> identity, Supplier<U> provider) { for (var component : components) { if (component.storageIdentity() == identity) { return (U) component; diff --git a/src/main/java/ru/dbotthepony/mc/otm/capability/drive/IMatteryDrive.java b/src/main/java/ru/dbotthepony/mc/otm/capability/drive/IMatteryDrive.java index c793d42af..aef1b6baa 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/capability/drive/IMatteryDrive.java +++ b/src/main/java/ru/dbotthepony/mc/otm/capability/drive/IMatteryDrive.java @@ -4,20 +4,15 @@ import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.common.util.INBTSerializable; -import ru.dbotthepony.mc.otm.menu.DriveViewerMenu; import ru.dbotthepony.mc.otm.storage.*; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; import java.util.List; import java.util.UUID; -import java.util.function.Predicate; @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault -public interface IMatteryDrive extends IStorageComponent<ItemStackObject> { +public interface IMatteryDrive extends IStorageComponent<ItemStackStack> { record StoredStack(ItemStack stack, UUID id) {}; List<StoredStack> getItems(); diff --git a/src/main/java/ru/dbotthepony/mc/otm/capability/drive/MatteryDrive.java b/src/main/java/ru/dbotthepony/mc/otm/capability/drive/MatteryDrive.java index 4eb9012a0..b093f70d9 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/capability/drive/MatteryDrive.java +++ b/src/main/java/ru/dbotthepony/mc/otm/capability/drive/MatteryDrive.java @@ -9,14 +9,12 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraftforge.registries.RegistryManager; -import ru.dbotthepony.mc.otm.OverdriveThatMatters; import ru.dbotthepony.mc.otm.storage.IStorageListener; import ru.dbotthepony.mc.otm.storage.IStorageTuple; -import ru.dbotthepony.mc.otm.storage.ItemStackObject; +import ru.dbotthepony.mc.otm.storage.ItemStackStack; import ru.dbotthepony.mc.otm.storage.StorageTuple; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; import java.math.BigDecimal; import java.util.*; @@ -175,7 +173,7 @@ public class MatteryDrive implements IMatteryDrive { items_by_id.put(state.id(), state); for (var listener : listeners2) { - listener.addObject(new ItemStackObject(state.stack()), state.id(), this); + listener.addObject(new ItemStackStack(state.stack()), state.id(), this); } markDirty(); @@ -187,9 +185,9 @@ public class MatteryDrive implements IMatteryDrive { } @Override - public ItemStackObject insertObject(ItemStackObject obj, boolean simulate) { + public ItemStackStack insertObject(ItemStackStack obj, boolean simulate) { var get = insertItem(obj.stack(), simulate); - return get.isEmpty() ? ItemStackObject.EMPTY : new ItemStackObject(get); + return get.isEmpty() ? ItemStackStack.EMPTY : new ItemStackStack(get); } @Nonnull @@ -324,49 +322,49 @@ public class MatteryDrive implements IMatteryDrive { } @Override - public Class<ItemStackObject> storageIdentity() { - return ItemStackObject.class; + public Class<ItemStackStack> storageIdentity() { + return ItemStackStack.class; } @Override - public ItemStackObject getStoredObject(UUID id) { + public ItemStackStack getStoredObject(UUID id) { var get = getItem(id); - return get.isEmpty() ? ItemStackObject.EMPTY : new ItemStackObject(get); + return get.isEmpty() ? ItemStackStack.EMPTY : new ItemStackStack(get); } @Override - public ItemStackObject extractObject(UUID id, BigDecimal amount, boolean simulate) { + public ItemStackStack extractObject(UUID id, BigDecimal amount, boolean simulate) { var get = extractItem(id, amount.intValue(), simulate); - return get.isEmpty() ? ItemStackObject.EMPTY : new ItemStackObject(get); + return get.isEmpty() ? ItemStackStack.EMPTY : new ItemStackStack(get); } @Override - public List<IStorageTuple<ItemStackObject>> getStorageObjects() { + public List<IStorageTuple<ItemStackStack>> getStorageObjects() { int amount = 0; for (var listing : items.values()) amount += listing.size(); - var list = new ArrayList<IStorageTuple<ItemStackObject>>(amount); + var list = new ArrayList<IStorageTuple<ItemStackStack>>(amount); for (var listing : items.values()) { for (var stack : listing) { - list.add(new StorageTuple<>(stack.id(), new ItemStackObject(stack.stack()))); + list.add(new StorageTuple<>(stack.id(), new ItemStackStack(stack.stack()))); } } return list; } - protected final HashSet<IStorageListener<ItemStackObject>> listeners2 = new HashSet<>(); + protected final HashSet<IStorageListener<ItemStackStack>> listeners2 = new HashSet<>(); @Override - public boolean addListener(IStorageListener<ItemStackObject> listener) { + public boolean addListener(IStorageListener<ItemStackStack> listener) { return listeners2.add(listener); } @Override - public boolean removeListener(IStorageListener<ItemStackObject> listener) { + public boolean removeListener(IStorageListener<ItemStackStack> listener) { return listeners2.remove(listener); } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/menu/ItemMonitorMenu.java b/src/main/java/ru/dbotthepony/mc/otm/menu/ItemMonitorMenu.java index 06ac80bd7..8492d01fa 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/menu/ItemMonitorMenu.java +++ b/src/main/java/ru/dbotthepony/mc/otm/menu/ItemMonitorMenu.java @@ -1,14 +1,11 @@ package ru.dbotthepony.mc.otm.menu; import net.minecraft.world.entity.player.Inventory; -import ru.dbotthepony.mc.otm.OverdriveThatMatters; import ru.dbotthepony.mc.otm.Registry; -import ru.dbotthepony.mc.otm.block.entity.BlockEntityDriveRack; import ru.dbotthepony.mc.otm.block.entity.BlockEntityItemMonitor; import ru.dbotthepony.mc.otm.menu.data.INetworkedItemViewSupplier; -import ru.dbotthepony.mc.otm.menu.data.InteractPacket; import ru.dbotthepony.mc.otm.menu.data.NetworkedItemView; -import ru.dbotthepony.mc.otm.storage.ItemStackObject; +import ru.dbotthepony.mc.otm.storage.ItemStackStack; import javax.annotation.Nonnull; @@ -31,7 +28,7 @@ public class ItemMonitorMenu extends PoweredMatteryMenu implements INetworkedIte view = new NetworkedItemView(inventory.player, this, tile == null); if (tile != null) { - view.setComponent(tile.cell.getStorageGrid().getVirtualComponent(ItemStackObject.class)); + view.setComponent(tile.cell.getStorageGrid().getVirtualComponent(ItemStackStack.class)); } addBatterySlot(); diff --git a/src/main/java/ru/dbotthepony/mc/otm/menu/data/NetworkedItemView.java b/src/main/java/ru/dbotthepony/mc/otm/menu/data/NetworkedItemView.java index 6d8047ccf..a46607c5a 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/menu/data/NetworkedItemView.java +++ b/src/main/java/ru/dbotthepony/mc/otm/menu/data/NetworkedItemView.java @@ -29,7 +29,7 @@ import static net.minecraft.client.gui.screens.Screen.hasShiftDown; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public class NetworkedItemView implements IStorageListener<ItemStackObject> { +public class NetworkedItemView implements IStorageListener<ItemStackStack> { public final boolean remote; public final MatteryMenu menu; public final Player ply; @@ -47,7 +47,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackObject> { private List<NetworkedItem> view_cache; - protected IStorageComponent<ItemStackObject> provider; + protected IStorageComponent<ItemStackStack> provider; public NetworkedItemView(Player ply, MatteryMenu menu, boolean remote) { this.remote = remote; @@ -63,7 +63,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackObject> { MatteryNetworking.send(null, new InteractPacket(menu.containerId, index >= list.size() ? -1 : list.get(index).id(), type, action)); } - public void setComponent(@Nullable IStorageComponent<ItemStackObject> provider) { + public void setComponent(@Nullable IStorageComponent<ItemStackStack> provider) { if (provider == this.provider) return; @@ -94,7 +94,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackObject> { } @Override - public void addObject(ItemStackObject stack, UUID id, IStorageView<ItemStackObject> provider) { + public void addObject(ItemStackStack stack, UUID id, IStorageView<ItemStackStack> provider) { addObject(stack.stack(), id); } @@ -238,7 +238,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackObject> { int amount = calculateIOAmount(carried.getCount()); if (amount == carried.getCount()) { - var leftover = provider.insertObject(new ItemStackObject(menu.getCarried()), false); + var leftover = provider.insertObject(new ItemStackStack(menu.getCarried()), false); menu.setCarried(leftover.stack()); doneIOAmount(amount - leftover.stack().getCount()); @@ -248,7 +248,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackObject> { var copy = carried.copy(); copy.setCount(amount); - var leftover = provider.insertObject(new ItemStackObject(copy), false); + var leftover = provider.insertObject(new ItemStackStack(copy), false); doneIOAmount(amount - leftover.stack().getCount()); leftover.setCount(carried.getCount() - amount + leftover.getCountInt()); @@ -261,7 +261,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackObject> { var copy = menu.getCarried().copy(); copy.setCount(1); - if (calculateIOAmount(1) == 1 && provider.insertObject(new ItemStackObject(copy), false).isEmpty()) { + if (calculateIOAmount(1) == 1 && provider.insertObject(new ItemStackStack(copy), false).isEmpty()) { menu.getCarried().shrink(1); doneIOAmount(1); MatteryNetworking.send((ServerPlayer) ply, new SetCarriedPacket(menu.getCarried())); diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageComponent.java b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageComponent.java index 92bf12656..282876316 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageComponent.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageComponent.java @@ -3,10 +3,9 @@ package ru.dbotthepony.mc.otm.storage; import net.minecraft.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault; -import java.util.List; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public interface IStorageComponent<T extends IStorageObject> extends IStorageView<T>, IStorageConsumer<T> { +public interface IStorageComponent<T extends IStorageStack> extends IStorageView<T>, IStorageConsumer<T> { } diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageConsumer.java b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageConsumer.java index 7f3d71316..6f9cc0a1c 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageConsumer.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageConsumer.java @@ -6,6 +6,6 @@ import javax.annotation.ParametersAreNonnullByDefault; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public interface IStorageConsumer<T extends IStorageObject> extends IStorageIdentity<T> { +public interface IStorageConsumer<T extends IStorageStack> extends IStorageIdentity<T> { T insertObject(T obj, boolean simulate); } diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageIdentity.java b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageIdentity.java index b70efca84..bf40c902e 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageIdentity.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageIdentity.java @@ -6,6 +6,6 @@ import javax.annotation.ParametersAreNonnullByDefault; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public interface IStorageIdentity<T extends IStorageObject> { +public interface IStorageIdentity<T extends IStorageStack> { Class<T> storageIdentity(); } diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageListener.java b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageListener.java index 682b1b76d..d821280d6 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageListener.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageListener.java @@ -1,7 +1,6 @@ package ru.dbotthepony.mc.otm.storage; import net.minecraft.MethodsReturnNonnullByDefault; -import net.minecraft.world.item.ItemStack; import javax.annotation.ParametersAreNonnullByDefault; import java.math.BigDecimal; @@ -9,7 +8,7 @@ import java.util.UUID; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public interface IStorageListener<T extends IStorageObject> { +public interface IStorageListener<T extends IStorageStack> { void addObject(T stack, UUID id, IStorageView<T> provider); void changeObject(UUID id, BigDecimal new_count); void removeObject(UUID id); diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageObject.java b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageStack.java similarity index 94% rename from src/main/java/ru/dbotthepony/mc/otm/storage/IStorageObject.java rename to src/main/java/ru/dbotthepony/mc/otm/storage/IStorageStack.java index bab226d51..1ca8144c8 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageObject.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageStack.java @@ -2,7 +2,6 @@ package ru.dbotthepony.mc.otm.storage; import net.minecraft.MethodsReturnNonnullByDefault; -import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; import java.math.BigDecimal; import java.util.Optional; @@ -16,8 +15,8 @@ import java.util.Optional; */ @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public interface IStorageObject { - IStorageObject copy(); +public interface IStorageStack { + IStorageStack copy(); void setCount(BigDecimal value); BigDecimal getCount(); @@ -53,7 +52,7 @@ public interface IStorageObject { * this include tags, mapping IDs, capabilities, excluding amount; * behavior is pretty much the same as ItemStack.isSameItemSameTags */ - boolean sameItem(IStorageObject other); + boolean sameItem(IStorageStack other); default void grow(BigDecimal amount) { setCount(getCount().add(amount)); diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageTrigger.java b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageTrigger.java index 9bd04557c..de79c8931 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageTrigger.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageTrigger.java @@ -6,7 +6,7 @@ import javax.annotation.ParametersAreNonnullByDefault; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public interface IStorageTrigger<T extends IStorageObject> extends IStorageIdentity<T> { +public interface IStorageTrigger<T extends IStorageStack> extends IStorageIdentity<T> { boolean addListener(IStorageListener<T> listener); boolean removeListener(IStorageListener<T> listener); } diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageTuple.java b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageTuple.java index b37e03178..2438a5041 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageTuple.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageTuple.java @@ -2,7 +2,7 @@ package ru.dbotthepony.mc.otm.storage; import java.util.UUID; -public interface IStorageTuple<T extends IStorageObject> { +public interface IStorageTuple<T extends IStorageStack> { UUID id(); T object(); } diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageView.java b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageView.java index ea1d2cc47..fa35b368c 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageView.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/IStorageView.java @@ -3,16 +3,14 @@ package ru.dbotthepony.mc.otm.storage; import net.minecraft.MethodsReturnNonnullByDefault; -import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; import java.math.BigDecimal; import java.util.List; -import java.util.Optional; import java.util.UUID; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public interface IStorageView<T extends IStorageObject> extends IStorageTrigger<T> { +public interface IStorageView<T extends IStorageStack> extends IStorageTrigger<T> { /** * @param id identifier of object * @return stored object (not a copy). Do not edit it. diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/ItemStackObject.java b/src/main/java/ru/dbotthepony/mc/otm/storage/ItemStackStack.java similarity index 76% rename from src/main/java/ru/dbotthepony/mc/otm/storage/ItemStackObject.java rename to src/main/java/ru/dbotthepony/mc/otm/storage/ItemStackStack.java index abcf8cdba..e44218509 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/ItemStackObject.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/ItemStackStack.java @@ -9,12 +9,12 @@ import java.util.Optional; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public record ItemStackObject(ItemStack stack) implements IStorageObject { - public static final ItemStackObject EMPTY = new ItemStackObject(ItemStack.EMPTY); +public record ItemStackStack(ItemStack stack) implements IStorageStack { + public static final ItemStackStack EMPTY = new ItemStackStack(ItemStack.EMPTY); @Override - public IStorageObject copy() { - return new ItemStackObject(stack.copy()); + public IStorageStack copy() { + return new ItemStackStack(stack.copy()); } @Override @@ -51,11 +51,11 @@ public record ItemStackObject(ItemStack stack) implements IStorageObject { } @Override - public boolean sameItem(IStorageObject other) { + public boolean sameItem(IStorageStack other) { if (other == this) return true; - if (other instanceof ItemStackObject obj) + if (other instanceof ItemStackStack obj) return ItemStack.isSameItemSameTags(stack, obj.stack); return false; diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/StorageGrid.java b/src/main/java/ru/dbotthepony/mc/otm/storage/StorageGrid.java index 3ab8719bc..45880dd5a 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/StorageGrid.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/StorageGrid.java @@ -7,9 +7,7 @@ import net.minecraftforge.common.util.LazyOptional; import ru.dbotthepony.mc.otm.OverdriveThatMatters; import ru.dbotthepony.mc.otm.capability.IStorageGridCell; -import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; -import java.math.BigDecimal; import java.util.*; @MethodsReturnNonnullByDefault @@ -17,11 +15,11 @@ import java.util.*; public class StorageGrid { private final HashSet<IStorageGridCell> cells = new HashSet<>(); - private final HashMap<Class<? extends IStorageObject>, VirtualComponent<? extends IStorageObject>> virtual_components = new HashMap<>(); + private final HashMap<Class<? extends IStorageStack>, VirtualComponent<? extends IStorageStack>> virtual_components = new HashMap<>(); public StorageGrid() {} - public <T extends IStorageObject> T insertObject(Class<T> type, T object, boolean simulate) { + public <T extends IStorageStack> T insertObject(Class<T> type, T object, boolean simulate) { return getVirtualComponent(type).insertObject(object, simulate); } @@ -31,7 +29,7 @@ public class StorageGrid { * @return a virtual IStorageComponent<T>, or null if storage grid contain no view for provided type */ @SuppressWarnings("unchecked") - public <T extends IStorageObject> VirtualComponent<T> getVirtualComponent(final Class<T> type) { + public <T extends IStorageStack> VirtualComponent<T> getVirtualComponent(final Class<T> type) { return (VirtualComponent<T>) virtual_components.computeIfAbsent(type, (k) -> new VirtualComponent<>(type)); } @@ -39,7 +37,7 @@ public class StorageGrid { return cells.size(); } - public <T extends IStorageObject> void add(IStorageIdentity<T> identity) { + public <T extends IStorageStack> void add(IStorageIdentity<T> identity) { getVirtualComponent(identity.storageIdentity()).add(identity); } @@ -75,7 +73,7 @@ public class StorageGrid { return false; } - public <T extends IStorageObject> void remove(IStorageIdentity<T> identity) { + public <T extends IStorageStack> void remove(IStorageIdentity<T> identity) { getVirtualComponent(identity.storageIdentity()).remove(identity); } diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/StorageObjectRegistry.java b/src/main/java/ru/dbotthepony/mc/otm/storage/StorageObjectRegistry.java index fe2d6deaa..044e09cf5 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/StorageObjectRegistry.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/StorageObjectRegistry.java @@ -4,9 +4,9 @@ import java.util.HashMap; import java.util.Objects; public class StorageObjectRegistry { - private static final HashMap<Class<? extends IStorageObject>, StorageObjectTuple<? extends IStorageObject>> REGISTRY = new HashMap<>(); + private static final HashMap<Class<? extends IStorageStack>, StorageObjectTuple<? extends IStorageStack>> REGISTRY = new HashMap<>(); - public static <T extends IStorageObject> boolean register(Class<T> identity, T empty) { + public static <T extends IStorageStack> boolean register(Class<T> identity, T empty) { final var tuple = new StorageObjectTuple<>(identity, empty); final boolean removed = REGISTRY.remove(identity) != null; REGISTRY.put(identity, tuple); @@ -15,11 +15,11 @@ public class StorageObjectRegistry { } @SuppressWarnings("unchecked") - public static <T extends IStorageObject> StorageObjectTuple<T> get(Class<T> identity) { + public static <T extends IStorageStack> StorageObjectTuple<T> get(Class<T> identity) { return (StorageObjectTuple<T>) REGISTRY.get(identity); } - public static <T extends IStorageObject> StorageObjectTuple<T> getOrError(Class<T> identity) { + public static <T extends IStorageStack> StorageObjectTuple<T> getOrError(Class<T> identity) { return Objects.requireNonNull(get(identity), "No storage mapping present for " + identity.toString()); } } diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/StorageObjectTuple.java b/src/main/java/ru/dbotthepony/mc/otm/storage/StorageObjectTuple.java index c4d0d81da..81ef55251 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/StorageObjectTuple.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/StorageObjectTuple.java @@ -1,6 +1,6 @@ package ru.dbotthepony.mc.otm.storage; -public record StorageObjectTuple<T extends IStorageObject>(Class<T> identity, T empty) { +public record StorageObjectTuple<T extends IStorageStack>(Class<T> identity, T empty) { @Override public boolean equals(Object obj) { if (obj instanceof StorageObjectTuple tuple) diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/StorageTuple.java b/src/main/java/ru/dbotthepony/mc/otm/storage/StorageTuple.java index f7859c475..b5835df56 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/StorageTuple.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/StorageTuple.java @@ -2,5 +2,5 @@ package ru.dbotthepony.mc.otm.storage; import java.util.UUID; -public record StorageTuple<T extends IStorageObject>(UUID id, T object) implements IStorageTuple<T> { +public record StorageTuple<T extends IStorageStack>(UUID id, T object) implements IStorageTuple<T> { } diff --git a/src/main/java/ru/dbotthepony/mc/otm/storage/VirtualComponent.java b/src/main/java/ru/dbotthepony/mc/otm/storage/VirtualComponent.java index 2f257a65e..92f5a1380 100644 --- a/src/main/java/ru/dbotthepony/mc/otm/storage/VirtualComponent.java +++ b/src/main/java/ru/dbotthepony/mc/otm/storage/VirtualComponent.java @@ -12,8 +12,8 @@ import java.util.function.Supplier; @MethodsReturnNonnullByDefault @ParametersAreNonnullByDefault -public class VirtualComponent<T extends IStorageObject> implements IStorageComponent<T>, IStorageListener<T> { - public record LocalTuple<T extends IStorageObject>(T object, UUID id, List<RemoteTuple<T>> tuples) implements IStorageTuple<T> { +public class VirtualComponent<T extends IStorageStack> implements IStorageComponent<T>, IStorageListener<T> { + public record LocalTuple<T extends IStorageStack>(T object, UUID id, List<RemoteTuple<T>> tuples) implements IStorageTuple<T> { @Override public boolean equals(Object obj) { return obj instanceof LocalTuple tuple && tuple.id.equals(id) || obj instanceof UUID id && this.id.equals(id); @@ -25,7 +25,7 @@ public class VirtualComponent<T extends IStorageObject> implements IStorageCompo } } - public record RemoteTuple<T extends IStorageObject>(T object, UUID remote_id, IStorageView<T> provider, LocalTuple<T> local) { + public record RemoteTuple<T extends IStorageStack>(T object, UUID remote_id, IStorageView<T> provider, LocalTuple<T> local) { public T extract(BigDecimal amount, boolean simulate) { return provider.extractObject(remote_id, amount, simulate); } @@ -56,7 +56,7 @@ public class VirtualComponent<T extends IStorageObject> implements IStorageCompo this.identity = StorageObjectRegistry.getOrError(identity); } - public static <T extends IStorageObject> Supplier<VirtualComponent<T>> factory(Class<T> identity) { + public static <T extends IStorageStack> Supplier<VirtualComponent<T>> factory(Class<T> identity) { return () -> new VirtualComponent<>(identity); }