diff --git a/src/main/java/net/minecraftforge/energy/EmptyEnergyStorage.java b/src/main/java/net/minecraftforge/energy/EmptyEnergyStorage.java new file mode 100644 index 0000000000..60f8b123e0 --- /dev/null +++ b/src/main/java/net/minecraftforge/energy/EmptyEnergyStorage.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) Forge Development LLC and contributors + * SPDX-License-Identifier: LGPL-2.1-only + */ + +package net.minecraftforge.energy; + +/** + * Implementation of {@link IEnergyStorage} that cannot store, receive, or provide energy. + * Use the {@link #INSTANCE}, don't instantiate. Example: + *
{@code
+ * ItemStack stack = ...;
+ * IEnergyStorage storage = stack.getCapability(ForgeCapabilities.ENERGY).orElse(EmptyEnergyStorage.INSTANCE);
+ * // Use storage without checking whether it's present.
+ * }
+ */
+public class EmptyEnergyStorage implements IEnergyStorage
+{
+ public static final EmptyEnergyStorage INSTANCE = new EmptyEnergyStorage();
+
+ protected EmptyEnergyStorage() {}
+
+ @Override
+ public int receiveEnergy(int maxReceive, boolean simulate)
+ {
+ return 0;
+ }
+
+ @Override
+ public int extractEnergy(int maxExtract, boolean simulate)
+ {
+ return 0;
+ }
+
+ @Override
+ public int getEnergyStored()
+ {
+ return 0;
+ }
+
+ @Override
+ public int getMaxEnergyStored()
+ {
+ return 0;
+ }
+
+ @Override
+ public boolean canExtract()
+ {
+ return false;
+ }
+
+ @Override
+ public boolean canReceive()
+ {
+ return false;
+ }
+}