package com.hbm.tileentity.machine; import com.hbm.lib.Library; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; public class TileEntityMachineFENSU extends TileEntityMachineBattery { public float prevRotation = 0F; public float rotation = 0F; @Override public void updateEntity() { this.maxPower = Long.MAX_VALUE; if(!worldObj.isRemote) { short mode = (short) this.getRelevantMode(); if(mode == 1 || mode == 2) { age++; if(age >= 20) { age = 0; } if(age == 9 || age == 19) ffgeuaInit(); } power = Library.chargeTEFromItems(slots, 0, power, maxPower); power = Library.chargeItemsFromTE(slots, 1, power, maxPower); NBTTagCompound nbt = new NBTTagCompound(); nbt.setLong("power", power); nbt.setLong("maxPower", maxPower); nbt.setShort("redLow", redLow); nbt.setShort("redHigh", redHigh); this.networkPack(nbt, 250); } else { this.prevRotation = this.rotation; this.rotation += this.getSpeed(); if(rotation >= 360) { rotation -= 360; prevRotation -= 360; } } } @Override public long getPowerRemainingScaled(long i) { double powerScaled = (double)power / (double)maxPower; return (long)(i * powerScaled); } public float getSpeed() { return (float) Math.pow(Math.log(power * 0.75 + 1) * 0.05F, 5); } @Override public AxisAlignedBB getRenderBoundingBox() { return TileEntity.INFINITE_EXTENT_AABB; } @Override @SideOnly(Side.CLIENT) public double getMaxRenderDistanceSquared() { return 65536.0D; } }