Rename ItemStackStack to ItemStackWrapper

This commit is contained in:
DBotThePony 2021-09-08 18:38:47 +07:00
parent f4929ea25d
commit b3e2b30e72
Signed by: DBot
GPG Key ID: DCC23B5715498507
7 changed files with 41 additions and 32 deletions

View File

@ -30,7 +30,7 @@ import ru.dbotthepony.mc.otm.item.ItemPortableCondensationDrive;
import ru.dbotthepony.mc.otm.matter.MatterGrid; import ru.dbotthepony.mc.otm.matter.MatterGrid;
import ru.dbotthepony.mc.otm.matter.MatterRegistry; import ru.dbotthepony.mc.otm.matter.MatterRegistry;
import ru.dbotthepony.mc.otm.network.MatteryNetworking; import ru.dbotthepony.mc.otm.network.MatteryNetworking;
import ru.dbotthepony.mc.otm.storage.ItemStackStack; import ru.dbotthepony.mc.otm.storage.ItemStackWrapper;
import ru.dbotthepony.mc.otm.storage.StorageObjectRegistry; import ru.dbotthepony.mc.otm.storage.StorageObjectRegistry;
import java.util.ArrayList; import java.util.ArrayList;
@ -167,7 +167,7 @@ public class OverdriveThatMatters {
MatterRegistry.registerInitialItems(); MatterRegistry.registerInitialItems();
StorageObjectRegistry.register(ItemStackStack.class, ItemStackStack.EMPTY); StorageObjectRegistry.register(ItemStackWrapper.class, ItemStackWrapper.EMPTY);
} }
private void setupClient(final FMLClientSetupEvent event) { private void setupClient(final FMLClientSetupEvent event) {

View File

@ -12,7 +12,7 @@ import java.util.UUID;
@ParametersAreNonnullByDefault @ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault @MethodsReturnNonnullByDefault
public interface IMatteryDrive extends IStorageComponent<ItemStackStack> { public interface IMatteryDrive extends IStorageComponent<ItemStackWrapper> {
record StoredStack(ItemStack stack, UUID id) {}; record StoredStack(ItemStack stack, UUID id) {};
List<StoredStack> getItems(); List<StoredStack> getItems();

View File

@ -11,7 +11,7 @@ import net.minecraft.world.item.Items;
import net.minecraftforge.registries.RegistryManager; import net.minecraftforge.registries.RegistryManager;
import ru.dbotthepony.mc.otm.storage.IStorageListener; import ru.dbotthepony.mc.otm.storage.IStorageListener;
import ru.dbotthepony.mc.otm.storage.IStorageTuple; import ru.dbotthepony.mc.otm.storage.IStorageTuple;
import ru.dbotthepony.mc.otm.storage.ItemStackStack; import ru.dbotthepony.mc.otm.storage.ItemStackWrapper;
import ru.dbotthepony.mc.otm.storage.StorageTuple; import ru.dbotthepony.mc.otm.storage.StorageTuple;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@ -173,7 +173,7 @@ public class MatteryDrive implements IMatteryDrive {
items_by_id.put(state.id(), state); items_by_id.put(state.id(), state);
for (var listener : listeners2) { for (var listener : listeners2) {
listener.addObject(new ItemStackStack(state.stack()), state.id(), this); listener.addObject(new ItemStackWrapper(state.stack()), state.id(), this);
} }
markDirty(); markDirty();
@ -185,9 +185,9 @@ public class MatteryDrive implements IMatteryDrive {
} }
@Override @Override
public ItemStackStack insertObject(ItemStackStack obj, boolean simulate) { public ItemStackWrapper insertObject(ItemStackWrapper obj, boolean simulate) {
var get = insertItem(obj.stack(), simulate); var get = insertItem(obj.stack(), simulate);
return get.isEmpty() ? ItemStackStack.EMPTY : new ItemStackStack(get); return get.isEmpty() ? ItemStackWrapper.EMPTY : new ItemStackWrapper(get);
} }
@Nonnull @Nonnull
@ -322,49 +322,49 @@ public class MatteryDrive implements IMatteryDrive {
} }
@Override @Override
public Class<ItemStackStack> storageIdentity() { public Class<ItemStackWrapper> storageIdentity() {
return ItemStackStack.class; return ItemStackWrapper.class;
} }
@Override @Override
public ItemStackStack getStoredObject(UUID id) { public ItemStackWrapper getStoredObject(UUID id) {
var get = getItem(id); var get = getItem(id);
return get.isEmpty() ? ItemStackStack.EMPTY : new ItemStackStack(get); return get.isEmpty() ? ItemStackWrapper.EMPTY : new ItemStackWrapper(get);
} }
@Override @Override
public ItemStackStack extractObject(UUID id, BigDecimal amount, boolean simulate) { public ItemStackWrapper extractObject(UUID id, BigDecimal amount, boolean simulate) {
var get = extractItem(id, amount.intValue(), simulate); var get = extractItem(id, amount.intValue(), simulate);
return get.isEmpty() ? ItemStackStack.EMPTY : new ItemStackStack(get); return get.isEmpty() ? ItemStackWrapper.EMPTY : new ItemStackWrapper(get);
} }
@Override @Override
public List<IStorageTuple<ItemStackStack>> getStorageObjects() { public List<IStorageTuple<ItemStackWrapper>> getStorageObjects() {
int amount = 0; int amount = 0;
for (var listing : items.values()) for (var listing : items.values())
amount += listing.size(); amount += listing.size();
var list = new ArrayList<IStorageTuple<ItemStackStack>>(amount); var list = new ArrayList<IStorageTuple<ItemStackWrapper>>(amount);
for (var listing : items.values()) { for (var listing : items.values()) {
for (var stack : listing) { for (var stack : listing) {
list.add(new StorageTuple<>(stack.id(), new ItemStackStack(stack.stack()))); list.add(new StorageTuple<>(stack.id(), new ItemStackWrapper(stack.stack())));
} }
} }
return list; return list;
} }
protected final HashSet<IStorageListener<ItemStackStack>> listeners2 = new HashSet<>(); protected final HashSet<IStorageListener<ItemStackWrapper>> listeners2 = new HashSet<>();
@Override @Override
public boolean addListener(IStorageListener<ItemStackStack> listener) { public boolean addListener(IStorageListener<ItemStackWrapper> listener) {
return listeners2.add(listener); return listeners2.add(listener);
} }
@Override @Override
public boolean removeListener(IStorageListener<ItemStackStack> listener) { public boolean removeListener(IStorageListener<ItemStackWrapper> listener) {
return listeners2.remove(listener); return listeners2.remove(listener);
} }
} }

View File

@ -5,7 +5,7 @@ import ru.dbotthepony.mc.otm.Registry;
import ru.dbotthepony.mc.otm.block.entity.BlockEntityItemMonitor; import ru.dbotthepony.mc.otm.block.entity.BlockEntityItemMonitor;
import ru.dbotthepony.mc.otm.menu.data.INetworkedItemViewSupplier; import ru.dbotthepony.mc.otm.menu.data.INetworkedItemViewSupplier;
import ru.dbotthepony.mc.otm.menu.data.NetworkedItemView; import ru.dbotthepony.mc.otm.menu.data.NetworkedItemView;
import ru.dbotthepony.mc.otm.storage.ItemStackStack; import ru.dbotthepony.mc.otm.storage.ItemStackWrapper;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
@ -28,7 +28,7 @@ public class ItemMonitorMenu extends PoweredMatteryMenu implements INetworkedIte
view = new NetworkedItemView(inventory.player, this, tile == null); view = new NetworkedItemView(inventory.player, this, tile == null);
if (tile != null) { if (tile != null) {
view.setComponent(tile.cell.getStorageGrid().getVirtualComponent(ItemStackStack.class)); view.setComponent(tile.cell.getStorageGrid().getVirtualComponent(ItemStackWrapper.class));
} }
addBatterySlot(); addBatterySlot();

View File

@ -29,7 +29,7 @@ import static net.minecraft.client.gui.screens.Screen.hasShiftDown;
@MethodsReturnNonnullByDefault @MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault @ParametersAreNonnullByDefault
public class NetworkedItemView implements IStorageListener<ItemStackStack> { public class NetworkedItemView implements IStorageListener<ItemStackWrapper> {
public final boolean remote; public final boolean remote;
public final MatteryMenu menu; public final MatteryMenu menu;
public final Player ply; public final Player ply;
@ -47,7 +47,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
private List<NetworkedItem> view_cache; private List<NetworkedItem> view_cache;
protected IStorageComponent<ItemStackStack> provider; protected IStorageComponent<ItemStackWrapper> provider;
public NetworkedItemView(Player ply, MatteryMenu menu, boolean remote) { public NetworkedItemView(Player ply, MatteryMenu menu, boolean remote) {
this.remote = remote; this.remote = remote;
@ -63,7 +63,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
MatteryNetworking.send(null, new InteractPacket(menu.containerId, index >= list.size() ? -1 : list.get(index).id(), type, action)); MatteryNetworking.send(null, new InteractPacket(menu.containerId, index >= list.size() ? -1 : list.get(index).id(), type, action));
} }
public void setComponent(@Nullable IStorageComponent<ItemStackStack> provider) { public void setComponent(@Nullable IStorageComponent<ItemStackWrapper> provider) {
if (provider == this.provider) if (provider == this.provider)
return; return;
@ -94,7 +94,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
} }
@Override @Override
public void addObject(ItemStackStack stack, UUID id, IStorageView<ItemStackStack> provider) { public void addObject(ItemStackWrapper stack, UUID id, IStorageView<ItemStackWrapper> provider) {
addObject(stack.stack(), id); addObject(stack.stack(), id);
} }
@ -238,7 +238,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
int amount = calculateIOAmount(carried.getCount()); int amount = calculateIOAmount(carried.getCount());
if (amount == carried.getCount()) { if (amount == carried.getCount()) {
var leftover = provider.insertObject(new ItemStackStack(menu.getCarried()), false); var leftover = provider.insertObject(new ItemStackWrapper(menu.getCarried()), false);
menu.setCarried(leftover.stack()); menu.setCarried(leftover.stack());
doneIOAmount(amount - leftover.stack().getCount()); doneIOAmount(amount - leftover.stack().getCount());
@ -248,7 +248,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
var copy = carried.copy(); var copy = carried.copy();
copy.setCount(amount); copy.setCount(amount);
var leftover = provider.insertObject(new ItemStackStack(copy), false); var leftover = provider.insertObject(new ItemStackWrapper(copy), false);
doneIOAmount(amount - leftover.stack().getCount()); doneIOAmount(amount - leftover.stack().getCount());
leftover.setCount(carried.getCount() - amount + leftover.getCountInt()); leftover.setCount(carried.getCount() - amount + leftover.getCountInt());
@ -261,7 +261,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
var copy = menu.getCarried().copy(); var copy = menu.getCarried().copy();
copy.setCount(1); copy.setCount(1);
if (calculateIOAmount(1) == 1 && provider.insertObject(new ItemStackStack(copy), false).isEmpty()) { if (calculateIOAmount(1) == 1 && provider.insertObject(new ItemStackWrapper(copy), false).isEmpty()) {
menu.getCarried().shrink(1); menu.getCarried().shrink(1);
doneIOAmount(1); doneIOAmount(1);
MatteryNetworking.send((ServerPlayer) ply, new SetCarriedPacket(menu.getCarried())); MatteryNetworking.send((ServerPlayer) ply, new SetCarriedPacket(menu.getCarried()));

View File

@ -9,12 +9,12 @@ import java.util.Optional;
@MethodsReturnNonnullByDefault @MethodsReturnNonnullByDefault
@ParametersAreNonnullByDefault @ParametersAreNonnullByDefault
public record ItemStackStack(ItemStack stack) implements IStorageStack { public record ItemStackWrapper(ItemStack stack) implements IStorageStack {
public static final ItemStackStack EMPTY = new ItemStackStack(ItemStack.EMPTY); public static final ItemStackWrapper EMPTY = new ItemStackWrapper(ItemStack.EMPTY);
@Override @Override
public IStorageStack copy() { public IStorageStack copy() {
return new ItemStackStack(stack.copy()); return new ItemStackWrapper(stack.copy());
} }
@Override @Override
@ -55,7 +55,7 @@ public record ItemStackStack(ItemStack stack) implements IStorageStack {
if (other == this) if (other == this)
return true; return true;
if (other instanceof ItemStackStack obj) if (other instanceof ItemStackWrapper obj)
return ItemStack.isSameItemSameTags(stack, obj.stack); return ItemStack.isSameItemSameTags(stack, obj.stack);
return false; return false;

View File

@ -1,8 +1,15 @@
package ru.dbotthepony.mc.otm.storage; package ru.dbotthepony.mc.otm.storage;
import net.minecraft.MethodsReturnNonnullByDefault;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
import java.util.HashMap; import java.util.HashMap;
import java.util.Objects; import java.util.Objects;
@ParametersAreNonnullByDefault
@MethodsReturnNonnullByDefault
public class StorageObjectRegistry { public class StorageObjectRegistry {
private static final HashMap<Class<? extends IStorageStack>, StorageObjectTuple<? extends IStorageStack>> REGISTRY = new HashMap<>(); private static final HashMap<Class<? extends IStorageStack>, StorageObjectTuple<? extends IStorageStack>> REGISTRY = new HashMap<>();
@ -15,10 +22,12 @@ public class StorageObjectRegistry {
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Nullable
public static <T extends IStorageStack> StorageObjectTuple<T> get(Class<T> identity) { public static <T extends IStorageStack> StorageObjectTuple<T> get(Class<T> identity) {
return (StorageObjectTuple<T>) REGISTRY.get(identity); return (StorageObjectTuple<T>) REGISTRY.get(identity);
} }
@Nonnull
public static <T extends IStorageStack> 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()); return Objects.requireNonNull(get(identity), "No storage mapping present for " + identity.toString());
} }