TESLA support on wireless grids.
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
package refinedstorage.item;
|
package refinedstorage.item;
|
||||||
|
|
||||||
import cofh.api.energy.ItemEnergyContainer;
|
import cofh.api.energy.ItemEnergyContainer;
|
||||||
|
import net.darkhax.tesla.api.ITeslaConsumer;
|
||||||
|
import net.darkhax.tesla.api.ITeslaHolder;
|
||||||
|
import net.darkhax.tesla.capability.TeslaCapabilities;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
@@ -15,11 +18,14 @@ import net.minecraft.util.*;
|
|||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.text.TextComponentTranslation;
|
import net.minecraft.util.text.TextComponentTranslation;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.capabilities.Capability;
|
||||||
|
import net.minecraftforge.common.capabilities.ICapabilityProvider;
|
||||||
import refinedstorage.RefinedStorage;
|
import refinedstorage.RefinedStorage;
|
||||||
import refinedstorage.RefinedStorageBlocks;
|
import refinedstorage.RefinedStorageBlocks;
|
||||||
import refinedstorage.tile.controller.TileController;
|
import refinedstorage.tile.controller.TileController;
|
||||||
import refinedstorage.tile.grid.TileGrid;
|
import refinedstorage.tile.grid.TileGrid;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ItemWirelessGrid extends ItemEnergyContainer {
|
public class ItemWirelessGrid extends ItemEnergyContainer {
|
||||||
@@ -52,6 +58,11 @@ public class ItemWirelessGrid extends ItemEnergyContainer {
|
|||||||
setCreativeTab(RefinedStorage.INSTANCE.tab);
|
setCreativeTab(RefinedStorage.INSTANCE.tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ICapabilityProvider initCapabilities(ItemStack stack, NBTTagCompound nbt) {
|
||||||
|
return new WirelessGridCapabilityProvider(stack);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isDamageable() {
|
public boolean isDamageable() {
|
||||||
return true;
|
return true;
|
||||||
@@ -208,4 +219,49 @@ public class ItemWirelessGrid extends ItemEnergyContainer {
|
|||||||
public String getUnlocalizedName(ItemStack stack) {
|
public String getUnlocalizedName(ItemStack stack) {
|
||||||
return getUnlocalizedName() + "." + stack.getItemDamage();
|
return getUnlocalizedName() + "." + stack.getItemDamage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class TeslaEnergy implements ITeslaHolder, ITeslaConsumer {
|
||||||
|
private ItemStack stack;
|
||||||
|
|
||||||
|
public TeslaEnergy(ItemStack stack) {
|
||||||
|
this.stack = stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getStoredPower() {
|
||||||
|
return getEnergyStored(stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getCapacity() {
|
||||||
|
return getMaxEnergyStored(stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long givePower(long power, boolean simulated) {
|
||||||
|
return receiveEnergy(stack, (int) power, simulated);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class WirelessGridCapabilityProvider implements ICapabilityProvider {
|
||||||
|
private ItemStack stack;
|
||||||
|
|
||||||
|
public WirelessGridCapabilityProvider(ItemStack stack) {
|
||||||
|
this.stack = stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasCapability(Capability<?> capability, @Nullable EnumFacing facing) {
|
||||||
|
return capability == TeslaCapabilities.CAPABILITY_HOLDER || capability == TeslaCapabilities.CAPABILITY_CONSUMER;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> T getCapability(Capability<T> capability, @Nullable EnumFacing facing) {
|
||||||
|
if (capability == TeslaCapabilities.CAPABILITY_HOLDER || capability == TeslaCapabilities.CAPABILITY_CONSUMER) {
|
||||||
|
return (T) new TeslaEnergy(stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user