ActuallyAdditions/src/main/java/ellpeck/actuallyadditions/tile/TileEntityHeatCollector.java

47 lines
1.8 KiB
Java
Raw Normal View History

2015-03-31 20:37:55 +02:00
package ellpeck.actuallyadditions.tile;
import ellpeck.actuallyadditions.config.ConfigValues;
2015-04-19 01:50:02 +02:00
import ellpeck.actuallyadditions.util.WorldUtil;
2015-03-31 20:37:55 +02:00
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChunkCoordinates;
import java.util.ArrayList;
import java.util.Random;
public class TileEntityHeatCollector extends TileEntityBase{
private int randomChance = ConfigValues.heatCollectorRandomChance;
private int blocksNeeded = ConfigValues.heatCollectorBlocksNeeded;
@Override
public void updateEntity(){
if(!worldObj.isRemote){
ArrayList<Integer> blocksAround = new ArrayList<Integer>();
for(int i = 1; i <= 5; i++){
2015-04-19 01:50:02 +02:00
ChunkCoordinates coords = WorldUtil.getCoordsFromSide(i, xCoord, yCoord, zCoord);
2015-03-31 20:37:55 +02:00
if(coords != null){
Block block = worldObj.getBlock(coords.posX, coords.posY, coords.posZ);
if(block != null && block.getMaterial() == Material.lava && worldObj.getBlockMetadata(coords.posX, coords.posY, coords.posZ) == 0){
blocksAround.add(i);
}
}
}
if(blocksAround.size() >= blocksNeeded){
2015-04-19 01:50:02 +02:00
TileEntity tileAbove = WorldUtil.getTileEntityFromSide(0, worldObj, xCoord, yCoord, zCoord);
2015-03-31 20:37:55 +02:00
TileEntityFurnaceSolar.givePowerTo(tileAbove);
Random rand = new Random();
if(rand.nextInt(randomChance) == 0){
int randomSide = blocksAround.get(rand.nextInt(blocksAround.size()));
2015-04-19 01:50:02 +02:00
WorldUtil.breakBlockAtSide(randomSide, worldObj, xCoord, yCoord, zCoord);
2015-03-31 20:37:55 +02:00
}
}
}
}
}