Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.jolteffect.justsolars.block.powercube;
- import com.jolteffect.justsolars.block.BlockSolarPanel;
- import com.jolteffect.justsolars.utility.EnumSolarTier;
- import net.darkhax.tesla.api.ITeslaConsumer;
- import net.darkhax.tesla.api.implementation.BaseTeslaContainer;
- import net.darkhax.tesla.capability.TeslaCapabilities;
- import net.darkhax.tesla.lib.TeslaUtils;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.nbt.NBTTagCompound;
- import net.minecraft.network.NetworkManager;
- import net.minecraft.network.play.server.SPacketUpdateTileEntity;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.ITickable;
- import net.minecraft.world.biome.BiomeDesert;
- import net.minecraftforge.common.capabilities.Capability;
- import net.minecraftforge.items.CapabilityItemHandler;
- import net.minecraftforge.items.ItemStackHandler;
- public class TileEntityPowerCube extends TileEntity implements ITickable {
- private PowerContainerPowerCube powerContainer;
- public static final int SIZE = 9;
- private ItemStackHandler itemStackHandler = new ItemStackHandler(SIZE) {
- @Override
- protected void onContentsChanged(int slot) {
- TileEntityPowerCube.this.markDirty();
- }
- };
- public TileEntityPowerCube() {
- // Initializes the container. Very straight forward.
- this.powerContainer = new PowerContainerPowerCube(1000000, 1000);
- }
- @Override
- public void readFromNBT (NBTTagCompound compound) {
- super.readFromNBT(compound);
- itemStackHandler.deserializeNBT((NBTTagCompound) compound.getTag("items"));
- this.powerContainer.setPower(compound.getLong("StoredPower"));
- }
- @Override
- public NBTTagCompound writeToNBT (NBTTagCompound compound) {
- compound.setTag("items", itemStackHandler.serializeNBT());
- compound.setLong("StoredPower", this.powerContainer.getStoredPower());
- return super.writeToNBT(compound);
- }
- @Override
- @SuppressWarnings("unchecked")
- public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
- if (capability == TeslaCapabilities.CAPABILITY_HOLDER ||
- capability == TeslaCapabilities.CAPABILITY_CONSUMER ||
- capability == TeslaCapabilities.CAPABILITY_PRODUCER)
- {
- return (T) this.powerContainer;
- }
- else if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
- {
- return (T) itemStackHandler;
- }
- return super.getCapability(capability, facing);
- }
- @Override
- public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
- if (capability == TeslaCapabilities.CAPABILITY_HOLDER ||
- capability == TeslaCapabilities.CAPABILITY_CONSUMER ||
- capability == TeslaCapabilities.CAPABILITY_PRODUCER)
- {
- return true;
- }
- else if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
- {
- return true;
- }
- return super.hasCapability(capability, facing);
- }
- @Override
- public void update() {
- // TODO Auto-generated method stub
- }
- public boolean canInteractWith(EntityPlayer playerIn) {
- // If we are too far away from this tile entity you cannot use it
- return !isInvalid() && playerIn.getDistanceSq(pos.add(0.5D, 0.5D, 0.5D)) <= 64D;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement