@Override public int getMetaFromState(IBlockState state) { switch (state.getValue(BotaniaStateProps.PAVEMENT_COLOR)) { case GREEN: return 5; case YELLOW: return 4; case RED: return 3; case BLUE: return 2; case BLACK: return 1; case WHITE: default: return 0; } }
@Override public int getMetaFromState(IBlockState state) { switch (state.getValue(BotaniaStateProps.CARDINALS)) { case NORTH: return 0; case WEST: return 3; case EAST: return 1; case SOUTH: default: return 2; // wai vazkii senpai } }
@Override public LexiconEntry getEntry(World world, BlockPos pos, EntityPlayer player, ItemStack lexicon) { PylonVariant variant = world.getBlockState(pos).getValue(BotaniaStateProps.PYLON_VARIANT); return variant == PylonVariant.MANA ? LexiconData.pylon : variant == PylonVariant.NATURA ? LexiconData.alfhomancyIntro : LexiconData.gaiaRitual; }
@Override public LexiconEntry getEntry(World world, BlockPos pos, EntityPlayer player, ItemStack lexicon) { StorageVariant variant = world.getBlockState(pos).getValue(BotaniaStateProps.STORAGE_VARIANT); return variant == StorageVariant.MANASTEEL ? LexiconData.pool : LexiconData.terrasteel; }
@Nonnull @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos) { if(state.getValue(BotaniaStateProps.CARDINALS).getAxis() == EnumFacing.Axis.X) { return X_AABB; } else { return Z_AABB; } }
@Override public LexiconEntry getEntry(World world, BlockPos pos, EntityPlayer player, ItemStack lexicon) { boolean isDefaultVariant = world.getBlockState(pos).getValue(BotaniaStateProps.LIVINGROCK_VARIANT) == LivingRockVariant.DEFAULT; return isDefaultVariant ? LexiconData.pureDaisy : LexiconData.decorativeBlocks; }
@Override public int getMetaFromState( final IBlockState state ) { return state.getValue( AXIS_ORIENTATION ).ordinal(); }
@Override public int getMetaFromState( final IBlockState state ) { return state.getValue( FACING ).ordinal(); }
@Nonnull @Override public TileEntity createTileEntity(@Nonnull World world, @Nonnull IBlockState state) { return state.getValue(BotaniaStateProps.CRATE_VARIANT) == CrateVariant.OPEN ? new TileOpenCrate() : new TileCraftCrate(); }
@Override public void addCollisionBoxToList(IBlockState state, @Nonnull World world, @Nonnull BlockPos pos, @Nonnull AxisAlignedBB par5AxisAlignedBB, @Nonnull List<AxisAlignedBB> stacks, Entity par7Entity, boolean isActualState) { PlatformVariant variant = state.getValue(BotaniaStateProps.PLATFORM_VARIANT); if(variant == PlatformVariant.INFRANGIBLE || variant == PlatformVariant.ABSTRUSE && par7Entity != null && par7Entity.posY > pos.getY() + 0.9 && (!(par7Entity instanceof EntityPlayer) || !par7Entity.isSneaking())) super.addCollisionBoxToList(state, world, pos, par5AxisAlignedBB, stacks, par7Entity, isActualState); }
@Override public float getBlockHardness(IBlockState state, World world, BlockPos pos) { PlatformVariant variant = world.getBlockState(pos).getValue(BotaniaStateProps.PLATFORM_VARIANT); return variant == PlatformVariant.INFRANGIBLE ? -1F : super.getBlockHardness(state, world, pos); }
@SideOnly(Side.CLIENT) @Override public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rand) { int hex = state.getValue(BotaniaStateProps.COLOR).getColorValue(); int r = (hex & 0xFF0000) >> 16; int g = (hex & 0xFF00) >> 8; int b = hex & 0xFF; if(rand.nextDouble() < ConfigHandler.flowerParticleFrequency) Botania.proxy.sparkleFX(pos.getX() + 0.3 + rand.nextFloat() * 0.5, pos.getY() + 0.5 + rand.nextFloat() * 0.5, pos.getZ() + 0.3 + rand.nextFloat() * 0.5, r / 255F, g / 255F, b / 255F, rand.nextFloat(), 5); }
@Override public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) { boolean power = world.getRedstonePowerFromNeighbors(pos) > 0 || world.getRedstonePowerFromNeighbors(pos.up()) > 0; boolean powered = state.getValue(BotaniaStateProps.POWERED); if(!world.isRemote) { if(power && !powered) world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, true), 1 | 2); else if(!power && powered) world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, false), 1 | 2); } }
private AxisAlignedBB getPortalAABB() { AxisAlignedBB aabb = new AxisAlignedBB(pos.add(-1, 1, 0), pos.add(2, 4, 1)); if(world.getBlockState(getPos()).getValue(BotaniaStateProps.ALFPORTAL_STATE) == AlfPortalState.ON_X) aabb = new AxisAlignedBB(pos.add(0, 1, -1), pos.add(1, 4, 2)); return aabb; }
@Override public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) { boolean power = world.getRedstonePowerFromNeighbors(pos) > 0|| world.getRedstonePowerFromNeighbors(pos.up()) > 0; boolean powered = state.getValue(BotaniaStateProps.POWERED); if(power && !powered) { pickUpEntities(world, pos); world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, true), 4); } else if(!power && powered) world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, false), 4); }
@Override public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) { boolean power = world.getRedstonePowerFromNeighbors(pos) > 0 || world.getRedstonePowerFromNeighbors(pos.up()) > 0; boolean powered = state.getValue(BotaniaStateProps.POWERED); if(power && !powered) { ((TileRedStringDispenser) world.getTileEntity(pos)).tickDispenser(); world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, true), 4); } else if(!power && powered) world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, false), 4); }
@Override public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) { boolean power = world.getRedstonePowerFromNeighbors(pos) > 0 || world.getRedstonePowerFromNeighbors(pos.up()) > 0; boolean powered = state.getValue(BotaniaStateProps.POWERED); if(power && !powered) { ((TileCorporeaFunnel) world.getTileEntity(pos)).doRequest(); world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, true), 4); } else if(!power && powered) world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, false), 4); }
@Override public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) { boolean power = world.getRedstonePowerFromNeighbors(pos) > 0 || world.getRedstonePowerFromNeighbors(pos.up()) > 0; boolean powered = state.getValue(BotaniaStateProps.POWERED); if(power && !powered) { ((TileSparkChanger) world.getTileEntity(pos)).doSwap(); world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, true), 4); } else if(!power && powered) world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, false), 4); }
@Override public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block, BlockPos fromPos) { boolean power = world.getRedstonePowerFromNeighbors(pos) > 0 || world.getRedstonePowerFromNeighbors(pos.up()) > 0; boolean powered = state.getValue(BotaniaStateProps.POWERED); if(power && !powered) { ((TileCorporeaRetainer) world.getTileEntity(pos)).fulfilRequest(); world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, true), 4); } else if(!power && powered) world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, false), 4); }