mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
94 lines
2.3 KiB
Java
94 lines
2.3 KiB
Java
package com.hbm.blocks.generic;
|
|
|
|
import com.hbm.blocks.BlockEnumMulti;
|
|
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.block.material.Material;
|
|
import net.minecraft.init.Blocks;
|
|
import net.minecraft.util.AxisAlignedBB;
|
|
import net.minecraft.world.IBlockAccess;
|
|
import net.minecraft.world.World;
|
|
import net.minecraftforge.common.EnumPlantType;
|
|
import net.minecraftforge.common.IPlantable;
|
|
import net.minecraftforge.common.util.ForgeDirection;
|
|
|
|
public class BlockNTMFlower extends BlockEnumMulti implements IPlantable {
|
|
|
|
public BlockNTMFlower() {
|
|
super(Material.plants, EnumFlowerType.class, true, true);
|
|
}
|
|
|
|
public static enum EnumFlowerType {
|
|
FOXGLOVE,
|
|
TOBACCO,
|
|
NIGHTSHADE
|
|
}
|
|
|
|
@Override
|
|
public EnumPlantType getPlantType(IBlockAccess world, int x, int y, int z) {
|
|
return EnumPlantType.Plains;
|
|
}
|
|
|
|
@Override
|
|
public Block getPlant(IBlockAccess world, int x, int y, int z) {
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public int getPlantMetadata(IBlockAccess world, int x, int y, int z) {
|
|
return world.getBlockMetadata(x, y, z);
|
|
}
|
|
|
|
@Override
|
|
public boolean canPlaceBlockAt(World world, int x, int y, int z) {
|
|
return super.canPlaceBlockAt(world, x, y, z) && this.canBlockStay(world, x, y, z);
|
|
}
|
|
|
|
protected boolean canPlaceBlockOn(Block block) {
|
|
return block == Blocks.grass || block == Blocks.dirt || block == Blocks.farmland;
|
|
}
|
|
|
|
@Override
|
|
public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
|
|
super.onNeighborBlockChange(world, x, y, z, block);
|
|
this.checkAndDropBlock(world, x, y, z);
|
|
}
|
|
|
|
protected void checkAndDropBlock(World world, int x, int y, int z) {
|
|
if(!this.canBlockStay(world, x, y, z)) {
|
|
this.dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0);
|
|
world.setBlock(x, y, z, getBlockById(0), 0, 2);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public boolean canBlockStay(World world, int x, int y, int z) {
|
|
return world.getBlock(x, y - 1, z).canSustainPlant(world, x, y - 1, z, ForgeDirection.UP, this);
|
|
}
|
|
|
|
@Override
|
|
public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public boolean isOpaqueCube() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean renderAsNormalBlock() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public int getRenderType() {
|
|
return 1;
|
|
}
|
|
|
|
@Override
|
|
public int damageDropped(int meta) {
|
|
return meta;
|
|
}
|
|
}
|