summaryrefslogtreecommitdiff
path: root/src/main/java/ihl/processing/chemistry/SolarEvaporatorTileEntity.java
blob: 947a88a523e01b801a78d0fa7642c955570944db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package ihl.processing.chemistry;

import java.util.List;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import ic2.core.ContainerBase;
import ic2.core.IC2;
import ihl.interfaces.IFluidTankVisual;
import ihl.utils.IHLUtils;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.EnumSkyBlock;

public class SolarEvaporatorTileEntity extends EvaporatorTileEntity implements IFluidTankVisual {
    public int visibleFluidId = -1;
    public int visibleFluidAmount = 1;
    
	public SolarEvaporatorTileEntity(){
		super();
    	this.fuelSlot = null;
    	this.maxProgress = 4500;
	}
	
    @Override
    public List<String> getNetworkedFields()
    {
        List<String> ret = super.getNetworkedFields();
        ret.add("visibleFluidId");
        ret.add("visibleFluidAmount");
        return ret;
    }
	
    @Override
	public void updateEntityServer()
    {
    	super.updateEntityServer();
		if(this.fluidTank.getFluid()!=null && (visibleFluidId!=this.fluidTank.getFluid().getFluid().getID() || visibleFluidAmount!=this.fluidTank.getFluidAmount()))
		{
			visibleFluidId = this.fluidTank.getFluid().getFluid().getID();
			visibleFluidAmount = this.fluidTank.getFluidAmount();
       		IC2.network.get().updateTileEntityField(this, "visibleFluidId");
       		IC2.network.get().updateTileEntityField(this, "visibleFluidAmount");
       	}
		else if(this.fluidTank.getFluid()==null && visibleFluidId!=-1)
       	{
			visibleFluidId=-1;
       		IC2.network.get().updateTileEntityField(this, "visibleFluidId");
       	}
    }
	@Override
    public boolean isBurning()
    {
		return this.worldObj.getSkyBlockTypeBrightness(EnumSkyBlock.Sky, xCoord, yCoord, zCoord)>=15;
    }
	
    @Override
	public ContainerBase<? extends EvaporatorTileEntity> getGuiContainer(EntityPlayer entityPlayer)
    {
        return new SolarEvaporatorContainer(entityPlayer, this);
    }
    
    @Override
	@SideOnly(Side.CLIENT)
    public GuiScreen getGui(EntityPlayer entityPlayer, boolean isAdmin)
    {
        return new SolarEvaporatorGui(new SolarEvaporatorContainer(entityPlayer, this));
    }
    
	@Override
	public short getFacing()
	{
		return 3;
	}
	
	@Override
	public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side) {
		return false;
	}
	
	@Override
	public ItemStack getWrenchDrop(EntityPlayer entityPlayer) {
		return IHLUtils.getThisModItemStack("solarEvaporator");
	}

	@Override
	public int getVisibleFluidId() {
		return this.visibleFluidId;
	}

	@Override
	public int getVisibleFluidAmount() {
		return this.visibleFluidAmount;
	}

	@Override
	public float getRenderLiquidLevel()
	{
		return (float)this.visibleFluidAmount/(float)this.fluidTank.getCapacity()/2;
	}
	
	@Override
    public boolean shouldRenderInPass(int pass)
    {
        return pass==0;
    }
}