2025-04-23 16:39:42 +02:00

67 lines
2.3 KiB
Java

package com.hbm.blocks.machine;
import java.util.List;
import java.util.Random;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.inventory.fluid.trait.FT_Combustible.FuelGrade;
import com.hbm.tileentity.machine.TileEntityMachineDiesel;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineDiesel extends BlockMachineBase implements ITooltipProvider {
public MachineDiesel() {
super(Material.iron, 0);
this.rotatable = true;
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
return new TileEntityMachineDiesel();
}
@Override public int getRenderType(){ return -1; }
@Override public boolean isOpaqueCube() { return false; }
@Override public boolean renderAsNormalBlock() { return false; }
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
TileEntity tile = world.getTileEntity(x, y, z);
if(tile instanceof TileEntityMachineDiesel) {
TileEntityMachineDiesel diesel = (TileEntityMachineDiesel) tile;
if(diesel.hasAcceptableFuel() && diesel.tank.getFill() > 0) {
ForgeDirection dir = ForgeDirection.getOrientation(tile.getBlockMetadata());
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
world.spawnParticle("smoke", x + 0.5 - dir.offsetX * 0.6 + rot.offsetX * 0.1875, y + 0.3125, z + 0.5 - dir.offsetZ * 0.6 + rot.offsetZ * 0.1875, 0, 0, 0);
}
}
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
list.add(EnumChatFormatting.YELLOW + "Fuel efficiency:");
for(FuelGrade grade : FuelGrade.values()) {
Double efficiency = TileEntityMachineDiesel.fuelEfficiency.get(grade);
if(efficiency != null) {
int eff = (int)(efficiency * 100);
list.add(EnumChatFormatting.YELLOW + "-" + grade.getGrade() + ": " + EnumChatFormatting.RED + "" + eff + "%");
}
}
}
}