Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tiffit.talecraft.blocks.world;
- import org.apache.logging.log4j.LogManager;
- import org.apache.logging.log4j.Logger;
- import de.longor.talecraft.TaleCraft;
- import de.longor.talecraft.TaleCraftItems;
- import de.longor.talecraft.TaleCraftTabs;
- import de.longor.talecraft.blocks.TCBlock;
- import net.minecraft.block.BlockAnvil;
- import net.minecraft.block.BlockFlower;
- import net.minecraft.block.BlockGlass;
- import net.minecraft.block.BlockGrass;
- import net.minecraft.block.ITileEntityProvider;
- import net.minecraft.block.properties.IProperty;
- import net.minecraft.block.properties.PropertyBool;
- import net.minecraft.block.properties.PropertyDirection;
- import net.minecraft.block.properties.PropertyEnum;
- import net.minecraft.block.state.BlockStateContainer;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.entity.EntityLivingBase;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.init.SoundEvents;
- import net.minecraft.item.ItemStack;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.EnumHand;
- import net.minecraft.util.IStringSerializable;
- import net.minecraft.util.SoundCategory;
- import net.minecraft.util.math.AxisAlignedBB;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.util.text.TextComponentString;
- import net.minecraft.util.text.TextComponentTranslation;
- import net.minecraft.util.text.TextFormatting;
- import net.minecraft.world.World;
- import net.minecraftforge.fml.common.FMLCommonHandler;
- import tiffit.talecraft.items.world.KeyItem;
- import tiffit.talecraft.packet.DoorPacket;
- import tiffit.talecraft.tileentity.LockedDoorTileEntity;
- import tiffit.talecraft.tileentity.LockedDoorTileEntity.DoorCorner;
- public class SpikeBlock extends TCBlock{
- public static final PropertyDirection FACING = PropertyDirection.create("facing");
- public static final PropertyBool ACTIVE = PropertyBool.create("active");
- private static final Logger LOGGER = LogManager.getLogger();
- public SpikeBlock(){
- super();
- this.setCreativeTab(TaleCraftTabs.tab_TaleCraftWorldTab);
- this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.UP).withProperty(ACTIVE, false));
- }
- public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer){
- EnumFacing enumfacing = placer.getHorizontalFacing();
- if(hitY == 0f) enumfacing = EnumFacing.UP;
- else if(hitY == 1f) enumfacing = EnumFacing.DOWN;
- try{
- return super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, meta, placer).withProperty(FACING, enumfacing).withProperty(ACTIVE, false);
- }
- catch (IllegalArgumentException var11){
- if (!worldIn.isRemote){
- LOGGER.warn(String.format("Invalid spike block data @ " + pos.toString() + " in " + worldIn.provider.getDimension()));
- if (placer instanceof EntityPlayer){
- ((EntityPlayer)placer).addChatMessage(new TextComponentString("Invalid spike block data!"));
- }
- }
- return super.onBlockPlaced(worldIn, pos, facing, hitX, hitY, hitZ, 0, placer).withProperty(FACING, EnumFacing.UP).withProperty(ACTIVE, false);
- }
- }
- @Override
- protected BlockStateContainer createBlockState() {
- return new BlockStateContainer(this, new IProperty[] { ACTIVE, FACING });
- }
- @Override
- public IBlockState getStateFromMeta(int meta) {
- int altmeta = meta;
- BlockAnvil e;
- if(meta > 6) altmeta =- 6;
- EnumFacing direction = EnumFacing.values()[altmeta];
- boolean active = meta < 6;
- return getDefaultState().withProperty(FACING, direction).withProperty(ACTIVE, active);
- }
- @Override
- public int getMetaFromState(IBlockState state) {
- EnumFacing facing = state.getValue(FACING);
- int meta = facing.ordinal();
- if(state.getValue(ACTIVE)) meta *=2;
- return meta;
- }
- @Override
- public int damageDropped(IBlockState state) {
- return getMetaFromState(state);
- }
- @Override
- public boolean isOpaqueCube(IBlockState state){
- return false;
- }
- @Override
- public boolean isFullCube(IBlockState state){
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement