mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
103 lines
2.7 KiB
Java
103 lines
2.7 KiB
Java
package com.hbm.blocks.generic;
|
|
|
|
import java.util.Random;
|
|
|
|
import api.hbm.fluid.IFluidStandardSender;
|
|
import com.hbm.blocks.IBlockMultiPass;
|
|
import com.hbm.blocks.ModBlocks;
|
|
import com.hbm.inventory.fluid.FluidType;
|
|
import com.hbm.inventory.fluid.Fluids;
|
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
|
import com.hbm.lib.RefStrings;
|
|
import com.hbm.render.block.RenderBlockMultipass;
|
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
|
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
import net.minecraft.block.BlockContainer;
|
|
import net.minecraft.block.material.Material;
|
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.IIcon;
|
|
import net.minecraft.world.World;
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
|
|
|
public class BlockFissure extends BlockContainer implements IBlockMultiPass {
|
|
|
|
private IIcon overlay;
|
|
|
|
public BlockFissure() {
|
|
super(Material.rock);
|
|
this.setBlockTextureName("bedrock");
|
|
this.setBlockUnbreakable();
|
|
this.setResistance(1_000_000);
|
|
this.setTickRandomly(true);
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public void registerBlockIcons(IIconRegister reg) {
|
|
|
|
this.blockIcon = reg.registerIcon("bedrock");
|
|
this.overlay = reg.registerIcon(RefStrings.MODID + ":molten_overlay");
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public IIcon getIcon(int side, int meta) {
|
|
|
|
if(RenderBlockMultipass.currentPass == 0)
|
|
return Blocks.bedrock.getIcon(0, 0);
|
|
|
|
return this.overlay;
|
|
}
|
|
|
|
@Override
|
|
public void updateTick(World world, int x, int y, int z, Random rand) {
|
|
if(world.getBlock(x, y + 1, z).isReplaceable(world, x, y + 1, z)) world.setBlock(x, y + 1, z, ModBlocks.volcanic_lava_block);
|
|
}
|
|
|
|
@Override
|
|
public boolean shouldRenderItemMulti() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public int getPasses() {
|
|
return 2;
|
|
}
|
|
|
|
@Override
|
|
public int getRenderType(){
|
|
return IBlockMultiPass.getRenderType();
|
|
}
|
|
|
|
@Override
|
|
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
|
return new TileEntityFissure();
|
|
}
|
|
|
|
public static class TileEntityFissure extends TileEntityLoadedBase implements IFluidStandardSender {
|
|
|
|
public FluidTank lava = new FluidTank(Fluids.LAVA, 1_000);
|
|
|
|
@Override
|
|
public void updateEntity() {
|
|
|
|
if(!worldObj.isRemote) {
|
|
lava.setFill(1_000);
|
|
this.sendFluid(lava, worldObj, xCoord, yCoord + 1, zCoord, ForgeDirection.UP);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean canConnect(FluidType type, ForgeDirection dir) {
|
|
return dir == ForgeDirection.DOWN && type == Fluids.LAVA;
|
|
}
|
|
|
|
@Override public FluidTank[] getAllTanks() { return new FluidTank[] {lava}; }
|
|
@Override public FluidTank[] getSendingTanks() { return new FluidTank[] {lava}; }
|
|
}
|
|
}
|