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.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) {
|
||||||
|
@ -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();
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
|
@ -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()));
|
||||||
|
@ -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;
|
@ -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());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user