BloodMagic/src/main/java/WayofTime/bloodmagic/block/BlockLifeEssence.java

84 lines
2.5 KiB
Java
Raw Normal View History

package WayofTime.bloodmagic.block;
2016-03-18 13:16:38 -04:00
import java.awt.Color;
import lombok.Getter;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.ResourceLocation;
2016-03-18 13:16:38 -04:00
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fluids.BlockFluidClassic;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
2016-03-18 13:16:38 -04:00
import WayofTime.bloodmagic.api.BloodMagicAPI;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.util.helper.TextHelper;
2015-10-29 22:22:08 -07:00
public class BlockLifeEssence extends BlockFluidClassic
{
2015-10-29 22:22:08 -07:00
@Getter
private static Fluid lifeEssence = new FluidLifeEssence();
public BlockLifeEssence()
{
2016-04-24 10:06:28 -07:00
super(lifeEssence, Material.WATER);
setUnlocalizedName(Constants.Mod.MODID + ".fluid.lifeEssence");
2016-06-05 12:31:35 -07:00
getLifeEssence().setBlock(this);
BloodMagicAPI.setLifeEssence(getLifeEssence());
}
// TODO - Remove after Forge fixes
// Fix for BlockFluidBase not overriding this
@Override
public IBlockState getStateFromMeta(int meta)
{
return getBlockState().getBaseState().withProperty(LEVEL, meta);
}
@Override
public boolean canDisplace(IBlockAccess world, BlockPos blockPos)
{
2016-03-18 13:16:38 -04:00
return !world.getBlockState(blockPos).getBlock().getMaterial(world.getBlockState(blockPos)).isLiquid() && super.canDisplace(world, blockPos);
}
@Override
public boolean displaceIfPossible(World world, BlockPos blockPos)
{
2016-03-18 13:16:38 -04:00
return !world.getBlockState(blockPos).getBlock().getMaterial(world.getBlockState(blockPos)).isLiquid() && super.displaceIfPossible(world, blockPos);
}
@Override
public BlockRenderLayer getBlockLayer()
{
return BlockRenderLayer.SOLID;
}
public static class FluidLifeEssence extends Fluid
{
public FluidLifeEssence()
{
super("lifeEssence", new ResourceLocation(Constants.Mod.DOMAIN + "blocks/lifeEssenceStill"), new ResourceLocation(Constants.Mod.DOMAIN + "blocks/lifeEssenceFlowing"));
setDensity(2000);
setViscosity(2000);
}
@Override
public int getColor()
{
return Color.RED.getRGB();
}
@Override
public String getLocalizedName(FluidStack fluidStack)
{
2016-01-07 15:52:02 -08:00
return TextHelper.localize("tile.BloodMagic.fluid.lifeEssence.name");
}
}
}