BloodMagic/src/main/java/WayofTime/bloodmagic/tile/TileAltar.java

190 lines
4.6 KiB
Java
Raw Normal View History

package WayofTime.bloodmagic.tile;
2017-08-15 21:30:48 -07:00
import WayofTime.bloodmagic.altar.BloodAltar;
import WayofTime.bloodmagic.api.altar.EnumAltarTier;
import WayofTime.bloodmagic.api.altar.IBloodAltar;
2015-11-03 10:34:11 -05:00
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
2015-11-29 10:49:13 -08:00
import net.minecraft.util.ITickable;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
2017-08-15 21:30:48 -07:00
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class TileAltar extends TileInventory implements IBloodAltar, ITickable {
private BloodAltar bloodAltar;
2017-08-15 21:30:48 -07:00
public TileAltar() {
super(1, "altar");
this.bloodAltar = new BloodAltar(this);
2015-11-03 10:34:11 -05:00
}
@Override
2017-08-15 21:30:48 -07:00
public void deserialize(NBTTagCompound tagCompound) {
super.deserialize(tagCompound);
2015-11-03 10:34:11 -05:00
NBTTagCompound altarTag = tagCompound.getCompoundTag("bloodAltar");
this.bloodAltar.readFromNBT(altarTag);
}
2015-11-02 21:30:28 -05:00
@Override
2017-08-15 21:30:48 -07:00
public NBTTagCompound serialize(NBTTagCompound tagCompound) {
super.serialize(tagCompound);
2015-11-03 08:09:16 -08:00
NBTTagCompound altarTag = new NBTTagCompound();
this.bloodAltar.writeToNBT(altarTag);
tagCompound.setTag("bloodAltar", altarTag);
return tagCompound;
2015-11-03 10:34:11 -05:00
}
@Override
2017-08-15 21:30:48 -07:00
public void update() {
bloodAltar.update();
2015-11-11 10:45:46 -08:00
}
2015-11-27 20:15:19 -05:00
@Override
2017-08-15 21:30:48 -07:00
public void sacrificialDaggerCall(int amount, boolean isSacrifice) {
bloodAltar.sacrificialDaggerCall(amount, isSacrifice);
2015-11-02 21:30:28 -05:00
}
2015-11-03 10:34:11 -05:00
@Override
2017-08-15 21:30:48 -07:00
public boolean isItemValidForSlot(int slot, ItemStack itemstack) {
2015-11-03 10:34:11 -05:00
return slot == 0;
}
@Override
2017-08-15 21:30:48 -07:00
public int getCapacity() {
return bloodAltar.getCapacity();
}
@Override
2017-08-15 21:30:48 -07:00
public int getCurrentBlood() {
return bloodAltar.getCurrentBlood();
}
@Override
2017-08-15 21:30:48 -07:00
public EnumAltarTier getTier() {
return bloodAltar.getTier();
}
@Override
2017-08-15 21:30:48 -07:00
public int getProgress() {
return bloodAltar.getProgress();
}
@Override
2017-08-15 21:30:48 -07:00
public float getSacrificeMultiplier() {
return bloodAltar.getSacrificeMultiplier();
}
@Override
2017-08-15 21:30:48 -07:00
public float getSelfSacrificeMultiplier() {
return bloodAltar.getSelfSacrificeMultiplier();
}
@Override
2017-08-15 21:30:48 -07:00
public float getOrbMultiplier() {
return bloodAltar.getOrbMultiplier();
}
@Override
2017-08-15 21:30:48 -07:00
public float getDislocationMultiplier() {
return bloodAltar.getDislocationMultiplier();
}
2015-12-27 19:38:12 -05:00
@Override
2017-08-15 21:30:48 -07:00
public float getConsumptionMultiplier() {
2015-12-27 19:38:12 -05:00
return bloodAltar.getConsumptionMultiplier();
}
@Override
2017-08-15 21:30:48 -07:00
public float getConsumptionRate() {
2015-12-27 19:38:12 -05:00
return bloodAltar.getConsumptionRate();
}
@Override
2017-08-15 21:30:48 -07:00
public int getLiquidRequired() {
2015-12-27 19:38:12 -05:00
return bloodAltar.getLiquidRequired();
}
@Override
2017-08-15 21:30:48 -07:00
public int getBufferCapacity() {
return bloodAltar.getBufferCapacity();
}
@Override
2017-08-15 21:30:48 -07:00
public void startCycle() {
bloodAltar.startCycle();
}
@Override
2017-08-15 21:30:48 -07:00
public void checkTier() {
bloodAltar.checkTier();
}
@Override
2017-08-15 21:30:48 -07:00
public void requestPauseAfterCrafting(int cooldown) {
bloodAltar.requestPauseAfterCrafting(cooldown);
}
@Override
2017-08-15 21:30:48 -07:00
public boolean isActive() {
return bloodAltar.isActive();
}
@Override
2017-08-15 21:30:48 -07:00
public int fillMainTank(int amount) {
return bloodAltar.fillMainTank(amount);
}
@Override
2017-08-15 21:30:48 -07:00
public void setActive() {
bloodAltar.setActive();
}
@Override
2017-08-15 21:30:48 -07:00
public int getChargingRate() {
return bloodAltar.getChargingRate();
}
@Override
2017-08-15 21:30:48 -07:00
public int getTotalCharge() {
return bloodAltar.getTotalCharge();
}
@Override
2017-08-15 21:30:48 -07:00
public int getChargingFrequency() {
return bloodAltar.getChargingFrequency();
}
2017-08-15 21:30:48 -07:00
public EnumAltarTier getCurrentTierDisplayed() {
return bloodAltar.getCurrentTierDisplayed();
}
2017-08-15 21:30:48 -07:00
public boolean setCurrentTierDisplayed(EnumAltarTier altarTier) {
return bloodAltar.setCurrentTierDisplayed(altarTier);
}
@Override
2017-08-15 21:30:48 -07:00
public boolean hasCapability(@Nonnull Capability<?> capability, @Nullable EnumFacing facing) {
if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) {
return true;
}
return super.hasCapability(capability, facing);
}
@SuppressWarnings("unchecked")
@Override
2017-08-15 21:30:48 -07:00
public <T> T getCapability(@Nonnull Capability<T> capability, @Nullable EnumFacing facing) {
if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) {
return (T) bloodAltar;
}
return super.getCapability(capability, facing);
}
2015-11-07 11:51:41 -05:00
}