Java 类net.minecraft.block.BlockLeaves 实例源码

项目:MeeCreeps    文件:ChopTreeActionWorker.java   
protected void findLeaves(BlockPos pos, World world) {
    int offs = 4;
    for (int x = -offs; x <= offs; x++) {
        for (int y = -offs; y <= offs; y++) {
            for (int z = -offs; z <= offs; z++) {
                BlockPos p = pos.add(x, y, z);
                IBlockState st = world.getBlockState(p);
                if (st.getBlock().isLeaves(st, world, p)) {
                    if (st.getValue(BlockLeaves.DECAYABLE)) {
                        leavesToTick.put(p, 500);
                    }
                }
            }
        }
    }
}
项目:Backmemed    文件:RenderEnv.java   
public boolean isSmartLeaves()
{
    if (this.smartLeaves == -1)
    {
        if (Config.isTreesSmart() && this.blockState.getBlock() instanceof BlockLeaves)
        {
            this.smartLeaves = 1;
        }
        else
        {
            this.smartLeaves = 0;
        }
    }

    return this.smartLeaves == 1;
}
项目:vintagecraft    文件:ButterflySpawner.java   
boolean nearSurface(World world, int posX, int posY, int posZ) {
    if (!world.isAirBlock(new BlockPos(posX, posY, posZ))) return false;

    int tries = 5;

    while (tries-- > 0) {
        Block block = world.getBlockState(new BlockPos(posX, --posY, posZ)).getBlock();

        if (block == Blocks.snow ||
            block == Blocks.ice ||
    block instanceof BlockTopSoil || 
    block instanceof BlockSubSoil ||
    block instanceof BlockLeaves ||
    block instanceof BlockTallGrassVC || 
    BlocksVC.rock.containsBlock(block) || 
    BlocksVC.gravel.containsBlock(block) || 
    BlocksVC.sand.containsBlock(block)
) {
            return true;
        }
    }

    return false;
 }
项目:PneumaticCraft    文件:EntityVortex.java   
@Override
public void onUpdate(){
    oldMotionX = motionX;
    oldMotionY = motionY;
    oldMotionZ = motionZ;
    super.onUpdate();
    //blowOtherEntities();
    motionX *= 0.95D;// equal to the potion effect friction. 0.95F
    motionY *= 0.95D;
    motionZ *= 0.95D;
    if(motionX * motionX + motionY * motionY + motionZ * motionZ < 0.1D) {
        setDead();
    }
    if(!worldObj.isRemote) {
        int blockX = (int)Math.floor(posX);
        int blockY = (int)Math.floor(posY);
        int blockZ = (int)Math.floor(posZ);
        for(int i = 0; i < 7; i++) { // to 7 so the middle block will also trigger (with UNKNOWN direction)
            Block block = worldObj.getBlock(blockX + ForgeDirection.getOrientation(i).offsetX, blockY + ForgeDirection.getOrientation(i).offsetY, blockZ + ForgeDirection.getOrientation(i).offsetZ);
            if(block instanceof IPlantable || block instanceof BlockLeaves) {
                worldObj.func_147480_a(blockX + ForgeDirection.getOrientation(i).offsetX, blockY + ForgeDirection.getOrientation(i).offsetY, blockZ + ForgeDirection.getOrientation(i).offsetZ, true);
            }
        }
    }

}
项目:pnc-repressurized    文件:EntityVortex.java   
private boolean tryCutPlants(BlockPos pos) {
    Block block = world.getBlockState(pos).getBlock();
    if (block instanceof IPlantable || block instanceof BlockLeaves) {
        world.destroyBlock(pos, true);
        return true;
    }
    return false;
}
项目:pnc-repressurized    文件:EntityVortex.java   
@Override
protected void onImpact(RayTraceResult objectPosition) {
    if (objectPosition.entityHit != null) {
        Entity entity = objectPosition.entityHit;
        entity.motionX += motionX;
        entity.motionY += motionY;
        entity.motionZ += motionZ;
        if (!entity.world.isRemote && entity instanceof IShearable) {
            IShearable shearable = (IShearable) entity;
            BlockPos pos = new BlockPos(posX, posY, posZ);
            if (shearable.isShearable(ItemStack.EMPTY, world, pos)) {
                List<ItemStack> drops = shearable.onSheared(ItemStack.EMPTY, world, pos, 0);
                for (ItemStack stack : drops) {
                    PneumaticCraftUtils.dropItemOnGround(stack, world, entity.posX, entity.posY, entity.posZ);
                }
            }
        }
    } else {
        Block block = world.getBlockState(objectPosition.getBlockPos()).getBlock();
        if (block instanceof IPlantable || block instanceof BlockLeaves) {
            motionX = oldMotionX;
            motionY = oldMotionY;
            motionZ = oldMotionZ;
        } else {
            setDead();
        }
    }
    hitCounter++;
    if (hitCounter > 20) setDead();
}
项目:DecompiledMinecraft    文件:WorldGenBigTree.java   
/**
 * Generates the leaves surrounding an individual entry in the leafNodes list.
 */
void generateLeafNode(BlockPos pos)
{
    for (int i = 0; i < this.leafDistanceLimit; ++i)
    {
        this.func_181631_a(pos.up(i), this.leafSize(i), Blocks.leaves.getDefaultState().withProperty(BlockLeaves.CHECK_DECAY, Boolean.valueOf(false)));
    }
}
项目:DecompiledMinecraft    文件:ItemLeaves.java   
public ItemLeaves(BlockLeaves block)
{
    super(block);
    this.leaves = block;
    this.setMaxDamage(0);
    this.setHasSubtypes(true);
}
项目:DecompiledMinecraft    文件:WorldGenBigTree.java   
/**
 * Generates the leaves surrounding an individual entry in the leafNodes list.
 */
void generateLeafNode(BlockPos pos)
{
    for (int i = 0; i < this.leafDistanceLimit; ++i)
    {
        this.func_181631_a(pos.up(i), this.leafSize(i), Blocks.leaves.getDefaultState().withProperty(BlockLeaves.CHECK_DECAY, Boolean.valueOf(false)));
    }
}
项目:DecompiledMinecraft    文件:ItemLeaves.java   
public ItemLeaves(BlockLeaves block)
{
    super(block);
    this.leaves = block;
    this.setMaxDamage(0);
    this.setHasSubtypes(true);
}
项目:ChopDown    文件:ChopDown.java   
@Nullable
@Override
public EntityItem entityDropItem(ItemStack stack, float offsetY) {
    IBlockState state = getBlock();
    if (state != null && state.getBlock() instanceof BlockLeaves) {
        BlockLeaves leaves = (BlockLeaves) state.getBlock();
        for (ItemStack item : leaves.getDrops(worldObj, getPosition(), state, 0)) {
            super.entityDropItem(item, offsetY);
        }
        return null;
    }
    return super.entityDropItem(stack, offsetY);
}
项目:ChopDown    文件:ChopDown.java   
@Nullable
@Override
public EntityItem entityDropItem(ItemStack stack, float offsetY) {
    IBlockState state = getBlock();
    if (state != null && state.getBlock() instanceof BlockLeaves) {
        BlockLeaves leaves = (BlockLeaves) state.getBlock();
        for (ItemStack item : leaves.getDrops(world, getPosition(), state, 0)) {
            super.entityDropItem(item, offsetY);
        }
        return null;
    }
    return super.entityDropItem(stack, offsetY);
}
项目:ChopDown    文件:ChopDown.java   
@Nullable
@Override
public EntityItem entityDropItem(ItemStack stack, float offsetY) {
    IBlockState state = getBlock();
    if (state != null && state.getBlock() instanceof BlockLeaves) {
        BlockLeaves leaves = (BlockLeaves) state.getBlock();
        for (ItemStack item : leaves.getDrops(world, getPosition(), state, 0)) {
            super.entityDropItem(item, offsetY);
        }
        return null;
    }
    return super.entityDropItem(stack, offsetY);
}
项目:BaseClient    文件:WorldGenBigTree.java   
/**
 * Generates the leaves surrounding an individual entry in the leafNodes list.
 */
void generateLeafNode(BlockPos pos)
{
    for (int i = 0; i < this.leafDistanceLimit; ++i)
    {
        this.func_181631_a(pos.up(i), this.leafSize(i), Blocks.leaves.getDefaultState().withProperty(BlockLeaves.CHECK_DECAY, Boolean.valueOf(false)));
    }
}
项目:BaseClient    文件:ItemLeaves.java   
public ItemLeaves(BlockLeaves block)
{
    super(block);
    this.leaves = block;
    this.setMaxDamage(0);
    this.setHasSubtypes(true);
}
项目:BaseClient    文件:WorldGenBigTree.java   
/**
 * Generates the leaves surrounding an individual entry in the leafNodes list.
 */
void generateLeafNode(BlockPos pos)
{
    for (int i = 0; i < this.leafDistanceLimit; ++i)
    {
        this.func_181631_a(pos.up(i), this.leafSize(i), Blocks.leaves.getDefaultState().withProperty(BlockLeaves.CHECK_DECAY, Boolean.valueOf(false)));
    }
}
项目:BaseClient    文件:ItemLeaves.java   
public ItemLeaves(BlockLeaves block)
{
    super(block);
    this.leaves = block;
    this.setMaxDamage(0);
    this.setHasSubtypes(true);
}
项目:Genesis    文件:GenesisBlocks.java   
@SubscribeEvent
@SideOnly(Side.CLIENT)
public static void registerModels(final ModelRegistryEvent event) {
    for (final Item item : ITEMS) {
        ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
    }
    for (final Block block : BLOCKS) {
        if (block instanceof BlockLeaves) {
            ModelLoader.setCustomStateMapper(block, new StateMap.Builder().ignore(BlockLeaves.CHECK_DECAY, BlockLeaves.DECAYABLE).build());
        }
    }
}
项目:Backmemed    文件:WorldGenBigTree.java   
/**
 * Generates the leaves surrounding an individual entry in the leafNodes list.
 */
void generateLeafNode(BlockPos pos)
{
    for (int i = 0; i < this.leafDistanceLimit; ++i)
    {
        this.crosSection(pos.up(i), this.leafSize(i), Blocks.LEAVES.getDefaultState().withProperty(BlockLeaves.CHECK_DECAY, Boolean.valueOf(false)));
    }
}
项目:Backmemed    文件:ItemLeaves.java   
public ItemLeaves(BlockLeaves block)
{
    super(block);
    this.leaves = block;
    this.setMaxDamage(0);
    this.setHasSubtypes(true);
}
项目:CustomWorldGen    文件:WorldGenBigTree.java   
/**
 * Generates the leaves surrounding an individual entry in the leafNodes list.
 */
void generateLeafNode(BlockPos pos)
{
    for (int i = 0; i < this.leafDistanceLimit; ++i)
    {
        this.crosSection(pos.up(i), this.leafSize(i), Blocks.LEAVES.getDefaultState().withProperty(BlockLeaves.CHECK_DECAY, Boolean.valueOf(false)));
    }
}
项目:CustomWorldGen    文件:ItemLeaves.java   
public ItemLeaves(BlockLeaves block)
{
    super(block);
    this.leaves = block;
    this.setMaxDamage(0);
    this.setHasSubtypes(true);
}
项目:BetterWithAddons    文件:WorldGenBigTrees.java   
/**
 * Generates the leaves surrounding an individual entry in the leafNodes list.
 */
void generateLeafNode(BlockPos pos)
{
    for (int i = 0; i < this.leafDistanceLimit; ++i)
    {
        this.crosSection(pos.up(i), this.leafSize(i), leaves.withProperty(BlockLeaves.CHECK_DECAY, Boolean.valueOf(false)));
    }
}
项目:InspiringWorld    文件:EnderTreeNormalGen.java   
public EnderTreeNormalGen(boolean notify) {
    super(notify);
    this.minTreeHeight = 4;
    this.metaWood = Blocks.LOG.getDefaultState().withProperty(BlockOldLog.VARIANT, BlockPlanks.EnumType.OAK);
    this.oakLeaves = Blocks.LEAVES.getDefaultState().withProperty(BlockOldLeaf.VARIANT,
        BlockPlanks.EnumType.OAK).withProperty(BlockLeaves.CHECK_DECAY, false);
    this.enderLeaves = IWTechBlocks.BLOCK_ENDER_LEAVES.getDefaultState();
}
项目:DynamicSurroundings    文件:FootstepsRegistry.java   
private void seedMap() {
    // Iterate through the blockmap looking for known pattern types.
    // Though they probably should all be registered with Forge
    // dictionary it's not a requirement.
    final Iterator<Block> itr = Block.REGISTRY.iterator();
    while (itr.hasNext()) {
        final Block block = itr.next();
        final String blockName = MCHelper.nameOf(block);
        if (block instanceof BlockCrops) {
            final BlockCrops crop = (BlockCrops) block;
            if (crop.getMaxAge() == 3) {
                this.registerBlocks("#beets", blockName);
            } else if (blockName.equals("minecraft:wheat")) {
                this.registerBlocks("#wheat", blockName);
            } else if (crop.getMaxAge() == 7) {
                this.registerBlocks("#crop", blockName);
            }
        } else if (block instanceof BlockSapling) {
            this.registerBlocks("#sapling", blockName);
        } else if (block instanceof BlockReed) {
            this.registerBlocks("#reed", blockName);
        } else if (block instanceof BlockFence) {
            this.registerBlocks("#fence", blockName);
        } else if (block instanceof BlockFlower || block instanceof BlockMushroom) {
            this.registerBlocks("NOT_EMITTER", blockName);
        } else if (block instanceof BlockLog || block instanceof BlockPlanks) {
            this.registerBlocks("wood", blockName);
        } else if (block instanceof BlockDoor) {
            this.registerBlocks("bluntwood", blockName);
        } else if (block instanceof BlockLeaves) {
            this.registerBlocks("leaves", blockName);
        } else if (block instanceof BlockOre) {
            this.registerBlocks("ore", blockName);
        } else if (block instanceof BlockIce) {
            this.registerBlocks("ice", blockName);
        }
    }
}
项目:geomastery    文件:FallingTreeBlock.java   
@Override
protected boolean canFallThrough(BlockPos pos) {

    IBlockState state = this.world.getBlockState(pos);
    Block block = state.getBlock();
    return block.isReplaceable(this.world, pos) ||
            block instanceof BlockLeaves;
}
项目:PrimitiveCraft    文件:EventDrops.java   
@SubscribeEvent
public void blockDestroyed(HarvestDropsEvent event)
{
    int rand = event.world.rand.nextInt(4);
    if(event.harvester != null)
    {
        if(event.block instanceof BlockLeaves && rand == 0)
        {
            ArrayList<ItemStack> drops = event.drops;
            drops.add(new ItemStack(ModItems.twig));
        }
    }
}
项目:vintagetg    文件:DynTreeGen.java   
boolean canPlace(IBlockState blockstate, IBlockState blockatpos) {
    // Logs override any leaves
    // branchy leaves override leaves
    return 
        blockatpos.getBlock() == Blocks.air || blockatpos.getBlock() == Blocks.vine 
        || blockatpos.getBlock() == Blocks.tallgrass
        || (blockstate == log && (blockatpos.getBlock() instanceof BlockLeaves))
    ;

}
项目:NaturalTrees    文件:BlockBranch.java   
@Override
public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ)
{
    boolean hasLeaves = state.getValue(HAS_LEAVES);

    ItemStack stack = playerIn.getHeldItem(hand);
    if (stack != null && stack.stackSize > 0 && stack.getItem().getToolClasses(stack).contains("sword"))
    {
        if (hasLeaves)
        {
            worldIn.setBlockState(pos, state.withProperty(HAS_LEAVES, false));
            // TODO: pretend break leaf block
            // BlockLeaves.dropBlockAsItem
        }
    }

    if (canHaveLeaves(worldIn, pos, state))
    {
        if (stack != null && stack.stackSize > 0 && stack.getItem() instanceof ItemBlock)
        {
            ItemBlock ib = (ItemBlock) stack.getItem();
            if (ib.getBlock() instanceof BlockLeaves && !stack.hasTagCompound())
            {
                stack.stackSize--;
                worldIn.setBlockState(pos, state.withProperty(HAS_LEAVES, true));
                return true;
            }
        }
    }
    return false;
}
项目:HeavyMeddle    文件:HeavyMeddleMod.java   
/**
 * Recursively adds neighboring log blocks from the current position, up to the maximum
 * girth, height, and block count provided in the configuration.
 * @param block
 * @param world
 * @param startPos
 * @param currentPos
 * @param player
 * @param currentTree
 * @return Whether or not any leaf blocks were found next to the tree.
 */
public static boolean addNeighbors(Block block, World world, BlockPos startPos, BlockPos currentPos, EntityPlayer player, HashSet<BlockPos> currentTree) {

    boolean hasLeaves = false; 
    for (int z = currentPos.getZ() - 1; z <= currentPos.getZ() + 1; z++) {
        for (int x = currentPos.getX() - 1; x <= currentPos.getX() + 1; x++) {
            for (int y = 0; y <= 1; y++) {

                BlockPos newPos = new BlockPos(x, currentPos.getY() + y, z);
                if (currentTree.contains(newPos)) continue;

                IBlockState upState = world.getBlockState(newPos);
                if (upState == null) continue;              

                if (upState.getBlock() instanceof BlockLeaves) {
                    hasLeaves = true;
                }

                if (upState.getBlock() == block) {
                    if (Math.abs(x - startPos.getX()) <= maxGirth && Math.abs(z - startPos.getZ()) <= maxGirth
                            && y - startPos.getY() <= maxHeight && currentTree.size() <= maxBlocks) {
                        currentTree.add(newPos);
                        if (addNeighbors(block, world, startPos, newPos, player, currentTree))
                            hasLeaves = true;
                    }
                }
            }
        }
    }
    return hasLeaves;

}
项目:Resilience-Client-Source    文件:ItemLeaves.java   
public ItemLeaves(BlockLeaves p_i45344_1_)
{
    super(p_i45344_1_);
    this.field_150940_b = p_i45344_1_;
    this.setMaxDamage(0);
    this.setHasSubtypes(true);
}
项目:Blocksteps    文件:LogHandler.java   
public int getLeavesAndWood(IBlockAccess world, BlockPos pos, ArrayList<BlockPos> poses, ArrayList<BlockPos> tried, int triesLeft)
{
    tried.add(pos);

    for(int i = -5; i <= 5; i++)
    {
        for(int k = -5; k <= 5; k++)
        {
            BlockPos newPos = pos.add(i, 0, k);
            if(BlockLog.class.isInstance(world.getBlockState(newPos).getBlock()))
            {
                if(!poses.contains(newPos))
                {
                    poses.add(newPos);
                }
                if(!tried.contains(newPos))
                {
                    triesLeft = getLeavesAndWood(world, newPos, poses, tried, triesLeft);
                }
            }
            else if(BlockLeaves.class.isInstance(world.getBlockState(newPos).getBlock()))
            {
                if(!poses.contains(newPos))
                {
                    poses.add(newPos);
                }
            }
        }
    }
    return triesLeft - 1;
}
项目:Runes-And-Silver    文件:RuneLeaves.java   
/**
 * Returns the unlocalized name of this item. This version accepts an ItemStack so different stacks can have
 * different names based on their damage or NBT.
 */
public String getUnlocalizedName(ItemStack par1ItemStack)
{
    int i = par1ItemStack.getItemDamage();

    if (i < 0 || i >= BlockLeaves.LEAF_TYPES.length)
    {
        i = 0;
    }

    return super.getUnlocalizedName() + "." + BlockLeaves.LEAF_TYPES[i];
}
项目:enderutilities    文件:ItemBuildersWand.java   
private void placeHelperBlock(EntityPlayer player)
{
    BlockPos pos = PositionUtils.getPositionInfrontOfEntity(player);
    //player.worldObj.setBlockState(pos, Blocks.RED_MUSHROOM_BLOCK.getDefaultState(), 3);
    player.getEntityWorld().setBlockState(pos, Blocks.LEAVES.getDefaultState()
            .withProperty(BlockOldLeaf.VARIANT, BlockPlanks.EnumType.SPRUCE)
            .withProperty(BlockLeaves.CHECK_DECAY, false)
            .withProperty(BlockLeaves.DECAYABLE, true), 3);
}
项目:ExpandedRailsMod    文件:ItemLeaves.java   
public ItemLeaves(BlockLeaves block)
{
    super(block);
    this.leaves = block;
    this.setMaxDamage(0);
    this.setHasSubtypes(true);
}
项目:Dendrology    文件:MineFactoryReloadedMod.java   
@SuppressWarnings("ObjectAllocationInLoop")
@Method(modid = MOD_ID)
private static void registerLeaves()
{
    reportProgress("leaves");

    for (final BlockLeaves leavesBlock : ModBlocks.leavesBlocks())
        registerHarvestable(new MFRLeaves(leavesBlock));
}
项目:Cauldron    文件:ItemLeaves.java   
public ItemLeaves(BlockLeaves p_i45344_1_)
{
    super(p_i45344_1_);
    this.field_150940_b = p_i45344_1_;
    this.setMaxDamage(0);
    this.setHasSubtypes(true);
}
项目:Cauldron    文件:ItemLeaves.java   
public ItemLeaves(BlockLeaves p_i45344_1_)
{
    super(p_i45344_1_);
    this.field_150940_b = p_i45344_1_;
    this.setMaxDamage(0);
    this.setHasSubtypes(true);
}
项目:FysiksFun    文件:Trees.java   
/** Creates the list of which blocks correspond to different parts of trees */
public static void initTreePartClassification() {
  for (int i = 0; i < 4096; i++) {
    treeCategory[i] = TreeCategory.NOT_TREE;
    Block b = Block.blocksList[i];
    if (i == 0 || b == null) continue;
    if (b instanceof BlockLog) treeCategory[i] = TreeCategory.TRUNK_PART;
    if (b instanceof BlockLeaves || b instanceof BlockFFLeaves) treeCategory[i] = TreeCategory.LEAF_PART;
  }
  int rubWood = Util.findBlockIdFromName("blockRubWood");
  if (rubWood != 0) treeCategory[rubWood] = TreeCategory.TRUNK_PART;
}
项目:FysiksFun    文件:BlockFFLeaves.java   
public BlockFFLeaves(int id, BlockLeaves leaves) {
  super(id);
  superSpecial = leaves;

  FysiksFun.logger.log(Level.INFO, "Replacing leaves with block id " + id);
  setHardness(leaves.blockHardness);
  setStepSound(leaves.stepSound);
  String unlocalizedName = leaves.getUnlocalizedName();
  String[] parts = unlocalizedName.split("\\.");
  setUnlocalizedName(parts[1]);
}