2022-01-16 21:21:51 +01:00

72 lines
1.8 KiB
Java

package com.hbm.util;
import com.hbm.config.VersatileConfig;
import com.hbm.interfaces.ICustomWarhead.SaltedFuel.HalfLifeType;
import com.hbm.items.machine.ItemRTGPellet;
import net.minecraft.item.ItemStack;
public class RTGUtil {
public static short getPower(ItemRTGPellet fuel, ItemStack stack) {
return VersatileConfig.scaleRTGPower() ? ItemRTGPellet.getScaledPower(fuel, stack) : fuel.getHeat();
}
public static boolean hasHeat(ItemStack[] inventory, int[] rtgSlots) {
for(int slot : rtgSlots) {
if(inventory[slot] == null)
continue;
if(inventory[slot].getItem() instanceof ItemRTGPellet)
return true;
}
return false;
}
public static int updateRTGs(ItemStack[] inventory, int[] rtgSlots) {
int newHeat = 0;
for(int slot : rtgSlots) {
if(inventory[slot] == null)
continue;
if(!(inventory[slot].getItem() instanceof ItemRTGPellet))
continue;
final ItemRTGPellet pellet = (ItemRTGPellet) inventory[slot].getItem();
newHeat += getPower(pellet, inventory[slot]);
inventory[slot] = ItemRTGPellet.handleDecay(inventory[slot], pellet);
}
return newHeat;
}
/**
* Gets the lifespan of an RTG based on half-life
* @author UFFR
* @param halfLife The half-life
* @param type Half-life units: {@link#HalfLifeType}
* @param realYears Whether or not to use 365 days per year instead of 100 to calculate time
* @return The half-life calculated into Minecraft ticks
*/
public static long getLifespan(float halfLife, HalfLifeType type, boolean realYears) {
float life = 0;
switch (type)
{
case LONG:
life = (48000 * (realYears ? 365 : 100) * 100) * halfLife;
break;
case MEDIUM:
life = (48000 * (realYears ? 365 : 100)) * halfLife;
break;
case SHORT:
life = 48000 * halfLife;
break;
}
return (long) life;
}
}