85 lines
2.6 KiB
Java
85 lines
2.6 KiB
Java
package WayofTime.bloodmagic.block;
|
|
|
|
import WayofTime.bloodmagic.BloodMagic;
|
|
import WayofTime.bloodmagic.api.Constants;
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.block.material.Material;
|
|
import net.minecraft.block.state.IBlockState;
|
|
import net.minecraft.entity.Entity;
|
|
import net.minecraft.util.*;
|
|
import net.minecraft.world.World;
|
|
import net.minecraftforge.fml.relauncher.Side;
|
|
import net.minecraftforge.fml.relauncher.SideOnly;
|
|
|
|
import java.util.List;
|
|
import java.util.Random;
|
|
|
|
public class BlockBloodLight extends Block {
|
|
|
|
public BlockBloodLight() {
|
|
super(Material.cloth);
|
|
|
|
setUnlocalizedName(Constants.Mod.MODID + ".bloodLight");
|
|
setCreativeTab(BloodMagic.tabBloodMagic);
|
|
}
|
|
|
|
@Override
|
|
public boolean isOpaqueCube() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public EnumWorldBlockLayer getBlockLayer()
|
|
{
|
|
return EnumWorldBlockLayer.CUTOUT;
|
|
}
|
|
|
|
@Override
|
|
public boolean isFullCube()
|
|
{
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public int getLightValue() {
|
|
return 15;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public boolean addDestroyEffects(World world, BlockPos pos, net.minecraft.client.particle.EffectRenderer effectRenderer) {
|
|
if (world.getBlockState(pos).getBlock() == this) {
|
|
Random random = new Random();
|
|
float f = 1.0F;
|
|
float f1 = f * 0.6F + 0.4F;
|
|
float f2 = f * f * 0.7F - 0.5F;
|
|
float f3 = f * f * 0.6F - 0.7F;
|
|
effectRenderer.spawnEffectParticle(EnumParticleTypes.REDSTONE.getParticleID(), pos.getX() + 0.5D + random.nextGaussian() / 8, pos.getY() + 0.5D, pos.getZ() + 0.5D + random.nextGaussian() / 8, f1, f2, f3);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
@SideOnly(Side.CLIENT)
|
|
public void randomDisplayTick(World worldIn, BlockPos pos, IBlockState state, Random rand) {
|
|
if (rand.nextInt(3) != 0) {
|
|
float f = 1.0F;
|
|
float f1 = f * 0.6F + 0.4F;
|
|
float f2 = f * f * 0.7F - 0.5F;
|
|
float f3 = f * f * 0.6F - 0.7F;
|
|
worldIn.spawnParticle(EnumParticleTypes.REDSTONE, pos.getX() + 0.5D + rand.nextGaussian() / 8, pos.getY() + 0.5D, pos.getZ() + 0.5D + rand.nextGaussian() / 8, f1, f2, f3);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void addCollisionBoxesToList(World worldIn, BlockPos pos, IBlockState state, AxisAlignedBB mask, List list, Entity collidingEntity) {
|
|
this.setBlockBounds(0.35F, 0.35F, 0.35F, 0.65F, 0.65F, 0.65F);
|
|
}
|
|
|
|
@Override
|
|
public int quantityDropped(Random par1Random) {
|
|
return 0;
|
|
}
|
|
}
|