/** get ancestor with give blockType, starting from itself */ public CourseComponent getAncestor(EnumSet<BlockType> types) { if (types.contains(type)) return this; IBlock ancestor = parent; if (ancestor == null) return null; do { if (types.contains(ancestor.getType())) return (CourseComponent) ancestor; } while ((ancestor = ancestor.getParent()) != null); return null; }
/** * get the ancestor based on level, level = 0, means itself. if level is out of the boundary, just * return the toppest one * * @param level * @return it will never return null. */ public CourseComponent getAncestor(int level) { if (parent == null || level == 0) return this; IBlock root = parent; while (level != 0 && root.getParent() != null) { root = root.getParent(); level--; } return (CourseComponent) root; }
protected int getRedstonePower(World world, BlockPos pos, IBlockState state) { int var4 = super.getRedstonePower(world, pos, state); EnumDirection var5 = state.getValue(DIRECTION); BlockPos var6 = pos.offset(var5); IBlock var7 = world.getBlockState(var6).getBlock(); if (var7.hasComparatorInputOverride()) { var4 = var7.getComparatorInputOverride(world, var6); } else if (var4 < 15 && var7.isNormalCube()) { var6 = var6.offset(var5); var7 = world.getBlockState(var6).getBlock(); if (var7.hasComparatorInputOverride()) { var4 = var7.getComparatorInputOverride(world, var6); } else if (var7.getMaterial() == Material.air) { EntityItemFrame var8 = this.func_176461_a(world, var5, var6); if (var8 != null) { var4 = var8.func_174866_q(); } } } return var4; }
private void removeBlockMeta(IBlock b) { b.getBlock().removeMetadata(IBlock.blockmeta, InterfacesPlugin.INSTANCE); }