From e29979b1f68a40aa14681f00436601323f03fd32 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 3 Jul 2016 20:20:12 +0200 Subject: [PATCH] TESLA support for controllers --- CHANGELOG.md | 1 + build.gradle | 6 ++- .../tile/controller/TileController.java | 42 ++++++++++++++++--- 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index adbe854c8..79f3e6686 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ **Features** - Added a debug storage disk - Added tooltip to solderer progress bar that shows progress percentage +- Added support for the Tesla energy system - Tweaked grid GUI ### 0.8.3 diff --git a/build.gradle b/build.gradle index 854c48168..04b70b3a2 100755 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ group = "refinedstorage" archivesBaseName = "refinedstorage" minecraft { - version = "1.10-12.18.0.1992-1.10.0" + version = "1.10-12.18.0.2000-1.10.0" runDir = "run" useDepAts = true mappings = "snapshot_20160518" @@ -27,10 +27,14 @@ repositories { maven { url "http://dvs1.progwml6.com/files/maven" } + maven { + url "http://maven.epoxide.xyz" + } } dependencies { deobfCompile "mezz.jei:jei_1.10:3.7.+" + compile "net.darkhax.tesla:Tesla:1.9.4-1.1.0.24" } processResources { diff --git a/src/main/java/refinedstorage/tile/controller/TileController.java b/src/main/java/refinedstorage/tile/controller/TileController.java index 35fa53e40..1791519a8 100755 --- a/src/main/java/refinedstorage/tile/controller/TileController.java +++ b/src/main/java/refinedstorage/tile/controller/TileController.java @@ -3,6 +3,9 @@ package refinedstorage.tile.controller; import cofh.api.energy.EnergyStorage; import cofh.api.energy.IEnergyReceiver; import io.netty.buffer.ByteBuf; +import net.darkhax.tesla.api.ITeslaConsumer; +import net.darkhax.tesla.api.ITeslaHolder; +import net.darkhax.tesla.capability.TeslaCapabilities; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -12,6 +15,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; +import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants; import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.items.ItemHandlerHelper; @@ -48,7 +52,7 @@ import refinedstorage.tile.config.RedstoneMode; import java.util.*; -public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, ISynchronizedContainer, IRedstoneModeConfig { +public class TileController extends TileBase implements INetworkMaster, IEnergyReceiver, ITeslaHolder, ITeslaConsumer, ISynchronizedContainer, IRedstoneModeConfig { public static final String NBT_ENERGY = "Energy"; public static final String NBT_ENERGY_CAPACITY = "EnergyCapacity"; @@ -62,14 +66,11 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR private Comparator sizeComparator = new Comparator() { @Override public int compare(IStorage left, IStorage right) { - int leftStored = left.getStored(); - int rightStored = right.getStored(); - - if (leftStored == rightStored) { + if (left.getStored() == right.getStored()) { return 0; } - return (leftStored > rightStored) ? -1 : 1; + return (left.getStored() > right.getStored()) ? -1 : 1; } }; @@ -687,4 +688,33 @@ public class TileController extends TileBase implements INetworkMaster, IEnergyR public Class getContainer() { return ContainerController.class; } + + @Override + public T getCapability(Capability capability, EnumFacing facing) { + if (capability == TeslaCapabilities.CAPABILITY_HOLDER || capability == TeslaCapabilities.CAPABILITY_CONSUMER) { + return (T) this; + } + + return super.getCapability(capability, facing); + } + + @Override + public boolean hasCapability(Capability capability, EnumFacing facing) { + return capability == TeslaCapabilities.CAPABILITY_HOLDER || capability == TeslaCapabilities.CAPABILITY_CONSUMER || super.hasCapability(capability, facing); + } + + @Override + public long getStoredPower() { + return energy.getEnergyStored(); + } + + @Override + public long getCapacity() { + return energy.getMaxEnergyStored(); + } + + @Override + public long givePower(long power, boolean simulated) { + return energy.receiveEnergy((int) power, simulated); + } }