Rename ItemStackStack to ItemStackWrapper
This commit is contained in:
parent
f4929ea25d
commit
b3e2b30e72
@ -30,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.ItemStackStack;
|
||||
import ru.dbotthepony.mc.otm.storage.ItemStackWrapper;
|
||||
import ru.dbotthepony.mc.otm.storage.StorageObjectRegistry;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -167,7 +167,7 @@ public class OverdriveThatMatters {
|
||||
|
||||
MatterRegistry.registerInitialItems();
|
||||
|
||||
StorageObjectRegistry.register(ItemStackStack.class, ItemStackStack.EMPTY);
|
||||
StorageObjectRegistry.register(ItemStackWrapper.class, ItemStackWrapper.EMPTY);
|
||||
}
|
||||
|
||||
private void setupClient(final FMLClientSetupEvent event) {
|
||||
|
@ -12,7 +12,7 @@ import java.util.UUID;
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
@MethodsReturnNonnullByDefault
|
||||
public interface IMatteryDrive extends IStorageComponent<ItemStackStack> {
|
||||
public interface IMatteryDrive extends IStorageComponent<ItemStackWrapper> {
|
||||
record StoredStack(ItemStack stack, UUID id) {};
|
||||
|
||||
List<StoredStack> getItems();
|
||||
|
@ -11,7 +11,7 @@ import net.minecraft.world.item.Items;
|
||||
import net.minecraftforge.registries.RegistryManager;
|
||||
import ru.dbotthepony.mc.otm.storage.IStorageListener;
|
||||
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 javax.annotation.Nonnull;
|
||||
@ -173,7 +173,7 @@ public class MatteryDrive implements IMatteryDrive {
|
||||
items_by_id.put(state.id(), state);
|
||||
|
||||
for (var listener : listeners2) {
|
||||
listener.addObject(new ItemStackStack(state.stack()), state.id(), this);
|
||||
listener.addObject(new ItemStackWrapper(state.stack()), state.id(), this);
|
||||
}
|
||||
|
||||
markDirty();
|
||||
@ -185,9 +185,9 @@ public class MatteryDrive implements IMatteryDrive {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStackStack insertObject(ItemStackStack obj, boolean simulate) {
|
||||
public ItemStackWrapper insertObject(ItemStackWrapper obj, boolean simulate) {
|
||||
var get = insertItem(obj.stack(), simulate);
|
||||
return get.isEmpty() ? ItemStackStack.EMPTY : new ItemStackStack(get);
|
||||
return get.isEmpty() ? ItemStackWrapper.EMPTY : new ItemStackWrapper(get);
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@ -322,49 +322,49 @@ public class MatteryDrive implements IMatteryDrive {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<ItemStackStack> storageIdentity() {
|
||||
return ItemStackStack.class;
|
||||
public Class<ItemStackWrapper> storageIdentity() {
|
||||
return ItemStackWrapper.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStackStack getStoredObject(UUID id) {
|
||||
public ItemStackWrapper getStoredObject(UUID id) {
|
||||
var get = getItem(id);
|
||||
return get.isEmpty() ? ItemStackStack.EMPTY : new ItemStackStack(get);
|
||||
return get.isEmpty() ? ItemStackWrapper.EMPTY : new ItemStackWrapper(get);
|
||||
}
|
||||
|
||||
@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);
|
||||
return get.isEmpty() ? ItemStackStack.EMPTY : new ItemStackStack(get);
|
||||
return get.isEmpty() ? ItemStackWrapper.EMPTY : new ItemStackWrapper(get);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<IStorageTuple<ItemStackStack>> getStorageObjects() {
|
||||
public List<IStorageTuple<ItemStackWrapper>> getStorageObjects() {
|
||||
int amount = 0;
|
||||
|
||||
for (var listing : items.values())
|
||||
amount += listing.size();
|
||||
|
||||
var list = new ArrayList<IStorageTuple<ItemStackStack>>(amount);
|
||||
var list = new ArrayList<IStorageTuple<ItemStackWrapper>>(amount);
|
||||
|
||||
for (var listing : items.values()) {
|
||||
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;
|
||||
}
|
||||
|
||||
protected final HashSet<IStorageListener<ItemStackStack>> listeners2 = new HashSet<>();
|
||||
protected final HashSet<IStorageListener<ItemStackWrapper>> listeners2 = new HashSet<>();
|
||||
|
||||
@Override
|
||||
public boolean addListener(IStorageListener<ItemStackStack> listener) {
|
||||
public boolean addListener(IStorageListener<ItemStackWrapper> listener) {
|
||||
return listeners2.add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean removeListener(IStorageListener<ItemStackStack> listener) {
|
||||
public boolean removeListener(IStorageListener<ItemStackWrapper> listener) {
|
||||
return listeners2.remove(listener);
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import ru.dbotthepony.mc.otm.Registry;
|
||||
import ru.dbotthepony.mc.otm.block.entity.BlockEntityItemMonitor;
|
||||
import ru.dbotthepony.mc.otm.menu.data.INetworkedItemViewSupplier;
|
||||
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;
|
||||
|
||||
@ -28,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(ItemStackStack.class));
|
||||
view.setComponent(tile.cell.getStorageGrid().getVirtualComponent(ItemStackWrapper.class));
|
||||
}
|
||||
|
||||
addBatterySlot();
|
||||
|
@ -29,7 +29,7 @@ import static net.minecraft.client.gui.screens.Screen.hasShiftDown;
|
||||
|
||||
@MethodsReturnNonnullByDefault
|
||||
@ParametersAreNonnullByDefault
|
||||
public class NetworkedItemView implements IStorageListener<ItemStackStack> {
|
||||
public class NetworkedItemView implements IStorageListener<ItemStackWrapper> {
|
||||
public final boolean remote;
|
||||
public final MatteryMenu menu;
|
||||
public final Player ply;
|
||||
@ -47,7 +47,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
|
||||
|
||||
private List<NetworkedItem> view_cache;
|
||||
|
||||
protected IStorageComponent<ItemStackStack> provider;
|
||||
protected IStorageComponent<ItemStackWrapper> provider;
|
||||
|
||||
public NetworkedItemView(Player ply, MatteryMenu menu, boolean 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));
|
||||
}
|
||||
|
||||
public void setComponent(@Nullable IStorageComponent<ItemStackStack> provider) {
|
||||
public void setComponent(@Nullable IStorageComponent<ItemStackWrapper> provider) {
|
||||
if (provider == this.provider)
|
||||
return;
|
||||
|
||||
@ -94,7 +94,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
@ -238,7 +238,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
|
||||
int amount = calculateIOAmount(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());
|
||||
doneIOAmount(amount - leftover.stack().getCount());
|
||||
|
||||
@ -248,7 +248,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
|
||||
var copy = carried.copy();
|
||||
copy.setCount(amount);
|
||||
|
||||
var leftover = provider.insertObject(new ItemStackStack(copy), false);
|
||||
var leftover = provider.insertObject(new ItemStackWrapper(copy), false);
|
||||
doneIOAmount(amount - leftover.stack().getCount());
|
||||
|
||||
leftover.setCount(carried.getCount() - amount + leftover.getCountInt());
|
||||
@ -261,7 +261,7 @@ public class NetworkedItemView implements IStorageListener<ItemStackStack> {
|
||||
var copy = menu.getCarried().copy();
|
||||
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);
|
||||
doneIOAmount(1);
|
||||
MatteryNetworking.send((ServerPlayer) ply, new SetCarriedPacket(menu.getCarried()));
|
||||
|
@ -9,12 +9,12 @@ import java.util.Optional;
|
||||
|
||||
@MethodsReturnNonnullByDefault
|
||||
@ParametersAreNonnullByDefault
|
||||
public record ItemStackStack(ItemStack stack) implements IStorageStack {
|
||||
public static final ItemStackStack EMPTY = new ItemStackStack(ItemStack.EMPTY);
|
||||
public record ItemStackWrapper(ItemStack stack) implements IStorageStack {
|
||||
public static final ItemStackWrapper EMPTY = new ItemStackWrapper(ItemStack.EMPTY);
|
||||
|
||||
@Override
|
||||
public IStorageStack copy() {
|
||||
return new ItemStackStack(stack.copy());
|
||||
return new ItemStackWrapper(stack.copy());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -55,7 +55,7 @@ public record ItemStackStack(ItemStack stack) implements IStorageStack {
|
||||
if (other == this)
|
||||
return true;
|
||||
|
||||
if (other instanceof ItemStackStack obj)
|
||||
if (other instanceof ItemStackWrapper obj)
|
||||
return ItemStack.isSameItemSameTags(stack, obj.stack);
|
||||
|
||||
return false;
|
@ -1,8 +1,15 @@
|
||||
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.Objects;
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
@MethodsReturnNonnullByDefault
|
||||
public class StorageObjectRegistry {
|
||||
private static final HashMap<Class<? extends IStorageStack>, StorageObjectTuple<? extends IStorageStack>> REGISTRY = new HashMap<>();
|
||||
|
||||
@ -15,10 +22,12 @@ public class StorageObjectRegistry {
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Nullable
|
||||
public static <T extends IStorageStack> StorageObjectTuple<T> get(Class<T> identity) {
|
||||
return (StorageObjectTuple<T>) REGISTRY.get(identity);
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
public static <T extends IStorageStack> StorageObjectTuple<T> getOrError(Class<T> identity) {
|
||||
return Objects.requireNonNull(get(identity), "No storage mapping present for " + identity.toString());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user