Add EmptyEnergyStorage (#9487)

This commit is contained in:
Technici4n authored and LexManos committed 2023-07-14 11:40:16 -07:00
1 parent d947d35eb1
commit ea7f755a11
1 file changed
+58
@@ -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:
* <pre>{@code
* ItemStack stack = ...;
* IEnergyStorage storage = stack.getCapability(ForgeCapabilities.ENERGY).orElse(EmptyEnergyStorage.INSTANCE);
* // Use storage without checking whether it's present.
* }</pre>
*/
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;
}
}