atomicscience/src/main/java/atomicscience/hecheng/TElectromagnet.java
2022-10-21 19:53:56 +02:00

62 lines
2.1 KiB
Java

package atomicscience.hecheng;
import atomicscience.AtomicScience;
import atomicscience.api.ITemperature;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
import universalelectricity.core.vector.Vector3;
import universalelectricity.prefab.tile.TileEntityAdvanced;
public class TElectromagnet extends TileEntityAdvanced implements ITemperature {
public static final int MAX_TEMP = 5000;
private float temperature = 0.0F;
@Override
public void updateEntity() {
super.updateEntity();
if(!this.worldObj.isRemote && this.temperature > 0.0F) {
if(this.temperature > 100.0F) {
for(int i = 0; i < 6; ++i) {
Vector3 offsetPos = new Vector3(this);
offsetPos.modifyPositionFromSide(ForgeDirection.getOrientation(i));
Block blockID = this.worldObj.getBlock(offsetPos.intX(), offsetPos.intY(), offsetPos.intZ());
if(blockID != Blocks.water && blockID != Blocks.flowing_water) {
if(blockID == Blocks.grass) {
offsetPos.setBlock(this.worldObj, AtomicScience.blockRadioactive);
}
} else if(super.ticks % (long)((int)Math.max(40.0F - this.temperature / 5000.0F * 40.0F, 2.0F)) == 0L) {
AtomicScience.boilWater(this.worldObj, offsetPos, 2, 20);
}
}
}
this.temperature = Math.max(Math.min(this.temperature - 0.8F, 5000.0F), 0.0F);
}
}
@Override
public void readFromNBT(NBTTagCompound nbt) {
super.readFromNBT(nbt);
this.temperature = nbt.getFloat("temperature");
}
@Override
public void writeToNBT(NBTTagCompound par1NBTTagCompound) {
super.writeToNBT(par1NBTTagCompound);
par1NBTTagCompound.setFloat("temperature", this.temperature);
}
@Override
public float getTemperature() {
return this.temperature;
}
@Override
public void setTemperature(float celsius) {
this.temperature = celsius;
}
}