net.minecraft.util.math.BlockPos.up()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(11.9k)|赞(0)|评价(0)|浏览(133)

本文整理了Java中net.minecraft.util.math.BlockPos.up()方法的一些代码示例,展示了BlockPos.up()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BlockPos.up()方法的具体详情如下:
包路径:net.minecraft.util.math.BlockPos
类名称:BlockPos
方法名:up

BlockPos.up介绍

暂无

代码示例

代码示例来源:origin: Vazkii/Botania

@Override
public boolean canGrow(@Nonnull World world, @Nonnull BlockPos pos, @Nonnull IBlockState state, boolean fuckifiknow) {
  return world.isAirBlock(pos.up());
}

代码示例来源:origin: Vazkii/Botania

@Override
public ISparkEntity getAttachedSpark() {
  List sparks = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos.up(), pos.up().add(1, 1, 1)), Predicates.instanceOf(ISparkEntity.class));
  if(sparks.size() == 1) {
    Entity e = (Entity) sparks.get(0);
    return (ISparkEntity) e;
  }
  return null;
}

代码示例来源:origin: Vazkii/Botania

@Override
public ISparkEntity getAttachedSpark() {
  List<Entity> sparks = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos.up(), pos.up().add(1, 1, 1)), Predicates.instanceOf(ISparkEntity.class));
  if(sparks.size() == 1) {
    Entity e = sparks.get(0);
    return (ISparkEntity) e;
  }
  return null;
}

代码示例来源:origin: Vazkii/Botania

/**
 * Gets the spark attached to the block in the coords passed in. Note that the coords passed
 * in are for the block that the spark will be on, not the coords of the spark itself.
 */
public static ICorporeaSpark getSparkForBlock(World world, BlockPos pos) {
  List<Entity> sparks = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos.up(), pos.add(1, 2, 1)), Predicates.instanceOf(ICorporeaSpark.class));
  return sparks.isEmpty() ? null : (ICorporeaSpark) sparks.get(0);
}

代码示例来源:origin: Vazkii/Botania

public static MultiblockSet makeMultiblockSet() {
  Multiblock mb = new Multiblock();
  for(BlockPos o : OBSIDIAN_LOCATIONS)
    mb.addComponent(o.up(), Blocks.OBSIDIAN.getDefaultState());
  for(BlockPos p : PYLON_LOCATIONS.get(EnumFacing.Axis.X)) {
    mb.addComponent(p.up(), ModBlocks.pylon.getDefaultState());
    mb.addComponent(new FlowerComponent(p, ModBlocks.flower));
  }
  for(BlockPos f : FLOWER_LOCATIONS)
    mb.addComponent(new FlowerComponent(f.up(), ModBlocks.flower));
  mb.addComponent(BlockPos.ORIGIN.up(), Blocks.LAPIS_BLOCK.getDefaultState());
  return mb.makeSet();
}

代码示例来源:origin: Vazkii/Botania

@Override
public void updateTick(World world, BlockPos pos, IBlockState state, Random rand) {
  if(!world.isRemote && state.getBlock() == this && world.getLight(pos.up()) >= 9) {
    AltGrassVariant variant = state.getValue(BotaniaStateProps.ALTGRASS_VARIANT);
    for(int l = 0; l < 4; ++l) {
      BlockPos pos1 = pos.add(rand.nextInt(3) - 1, rand.nextInt(5) - 3, rand.nextInt(3) - 1);
      world.getBlockState(pos1.up()).getBlock();
      if(world.getBlockState(pos1).getBlock() == Blocks.DIRT && world.getBlockState(pos1).getValue(BlockDirt.VARIANT) == BlockDirt.DirtType.DIRT && world.getLight(pos1.up()) >= 4 && world.getBlockLightOpacity(pos1.up()) <= 2)
        world.setBlockState(pos1, getDefaultState().withProperty(BotaniaStateProps.ALTGRASS_VARIANT, variant), 1 | 2);
    }
  }
}

代码示例来源:origin: Vazkii/Botania

/**
   * Determines if a given position is a valid location to spread to, which
   * means that the block must be either dirt or grass (with meta 0),
   * and have a block above it which does not block grass growth.
   * @param pos The position to check.
   * @return True if the position is valid to swap, false otherwise.
   */
  public boolean isValidSwapPosition(BlockPos pos) {
    IBlockState state = world.getBlockState(pos);
    Block block = state.getBlock();
    // Valid blocks to spread to are either dirt or grass, and do not
    // have blocks which block grass growth.
    // See http://minecraft.gamepedia.com/Grass_Block
    // The major rule is that a block which reduces light
    // levels by 2 or more blocks grass growth.
    return (block == Blocks.DIRT || block == Blocks.GRASS)
        && (block != Blocks.DIRT || state.getValue(BlockDirt.VARIANT) == BlockDirt.DirtType.DIRT)
        && world.getBlockState(pos.up()).getLightOpacity(world, pos.up()) <= 1;
  }
}

代码示例来源:origin: Vazkii/Botania

@Override
public boolean acceptBlock(BlockPos pos) {
  if(pos.equals(getPos().up()))
    return false;
  Block block = world.getBlockState(pos).getBlock();
  TileEntity tile = world.getTileEntity(pos);
  return (block instanceof BlockFlower || block instanceof BlockMushroom || block instanceof BlockDoublePlant) && (tile == null || !(tile instanceof ISubTileContainer));
}

代码示例来源:origin: Vazkii/Botania

@Override
public void update() {
  boolean redstone = false;
  for(EnumFacing dir : EnumFacing.VALUES) {
    int redstoneSide = world.getRedstonePower(pos.offset(dir), dir);
    if(redstoneSide > 0)
      redstone = true;
  }
  if(!redstone) {
    TileEntity tile = world.getTileEntity(pos.up());
    if(tile instanceof TileSpreader) {
      TileSpreader spreader = (TileSpreader) tile;
      spreader.rotationX += speed * (backwards ? -1 : 1);
      if(spreader.rotationX >= 360F)
        spreader.rotationX -= 360F;
      if(!world.isRemote)
        spreader.checkForReceiver();
    }
  }
}

代码示例来源:origin: Vazkii/Botania

public static MultiblockSet makeMultiblockSet() {
  Multiblock mb = new Multiblock();
  for(BlockPos l : LIVINGWOOD_POSITIONS)
    mb.addComponent(l.up(), ModBlocks.livingwood.getDefaultState());
  for(BlockPos g : GLIMMERING_LIVINGWOOD_POSITIONS)
    mb.addComponent(g.up(), ModBlocks.livingwood.getDefaultState().withProperty(BotaniaStateProps.LIVINGWOOD_VARIANT, LivingWoodVariant.GLIMMERING));
  //		for(BlockPos p : PYLON_POSITIONS)
  //			mb.addComponent(new BlockPos(-p.getX(), p.getY() + 1, -p.getZ()), ModBlocks.pylon.getDefaultState().withProperty(BotaniaStateProps.PYLON_VARIANT, PylonVariant.NATURA));
  //		for(BlockPos p : POOL_POSITIONS)
  //			mb.addComponent(new StateInsensitiveComponent(new BlockPos(-p.getX(), p.getY() + 1, -p.getZ()), ModBlocks.pool));
  mb.addComponent(new BlockPos(0, 1, 0), ModBlocks.alfPortal.getDefaultState());
  mb.setRenderOffset(new BlockPos(0, -1, 0));
  return mb.makeSet();
}

代码示例来源:origin: Vazkii/Botania

@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);
  }
}

代码示例来源:origin: Vazkii/Botania

@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);
}

代码示例来源:origin: Vazkii/Botania

@Override
public void onBlockHarvested(World world, BlockPos pos, IBlockState state, @Nonnull EntityPlayer player) {
  if(state.getValue(HALF) == BlockDoublePlant.EnumBlockHalf.UPPER) {
    if(world.getBlockState(pos.down()).getBlock() == this) {
      if (!player.capabilities.isCreativeMode) {
        // IBlockState iblockstate = worldIn.getBlockState(pos.down());
        // BlockDoublePlant.EnumPlantType blockdoubleplant$enumplanttype = (BlockDoublePlant.EnumPlantType) iblockstate.getValue(VARIANT);
        //if (blockdoubleplant$enumplanttype != BlockDoublePlant.EnumPlantType.FERN && blockdoubleplant$enumplanttype != BlockDoublePlant.EnumPlantType.GRASS) {
        // worldIn.destroyBlock(pos.down(), true);
        //} else if (!world.isRemote) {
        //	if (player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() == Items.SHEARS) {
        //		this.onHarvest(worldIn, pos, iblockstate, player);
        //		world.setBlockToAir(pos.down());
        //	} else {
        //		world.destroyBlock(pos.down(), true);
        //	}
        //} else {
        world.setBlockToAir(pos.down());
        //}
      } else {
        world.setBlockToAir(pos.down());
      }
    }
  } else if(player.capabilities.isCreativeMode && world.getBlockState(pos.up()).getBlock() == this)
    world.setBlockState(pos.up(), Blocks.AIR.getDefaultState(), 2);
  player.addStat(StatList.getBlockStats(this));
  //super.onBlockHarvested(p_149681_1_, p_149681_2_, p_149681_3_, p_149681_4_, p_149681_5_, p_149681_6_);
}

代码示例来源:origin: Vazkii/Botania

@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);
}

代码示例来源:origin: Vazkii/Botania

@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);
}

代码示例来源:origin: Vazkii/Botania

@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);
}

代码示例来源:origin: Vazkii/Botania

@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);
}

代码示例来源:origin: Vazkii/Botania

@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) {
    TileEntity tile = world.getTileEntity(pos);
    if(tile != null && tile instanceof TileCacophonium)
      ((TileCacophonium) tile).annoyDirewolf();
    world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, true), 4);
  } else if(!power && powered)
    world.setBlockState(pos, state.withProperty(BotaniaStateProps.POWERED, false), 4);
}

代码示例来源:origin: Vazkii/Botania

public static void placeDoubleFlower(World world, BlockPos pos, EnumDyeColor color, int flags) {
  Block flower = color.getMetadata() >= 8 ? ModBlocks.doubleFlower2 : ModBlocks.doubleFlower1;
  world.setBlockState(pos, flower.getDefaultState().withProperty(color.getMetadata() >= 8 ? BotaniaStateProps.DOUBLEFLOWER_VARIANT_2 : BotaniaStateProps.DOUBLEFLOWER_VARIANT_1, color).withProperty(BlockDoublePlant.HALF, BlockDoublePlant.EnumBlockHalf.LOWER), flags);
  world.setBlockState(pos.up(), flower.getDefaultState().withProperty(color.getMetadata() >= 8 ? BotaniaStateProps.DOUBLEFLOWER_VARIANT_2 : BotaniaStateProps.DOUBLEFLOWER_VARIANT_1, color).withProperty(BlockDoublePlant.HALF, BlockDoublePlant.EnumBlockHalf.UPPER), flags);
}

代码示例来源:origin: Vazkii/Botania

public static MultiblockSet makeMultiblockSet() {
  Multiblock mb = new Multiblock();
  for(BlockPos p : PYLON_LOCATIONS)
    mb.addComponent(p.up(), ModBlocks.pylon.getDefaultState().withProperty(BotaniaStateProps.PYLON_VARIANT, PylonVariant.GAIA));
  for(int i = 0; i < 3; i++)
    for(int j = 0; j < 3; j++)
      mb.addComponent(new BeaconComponent(new BlockPos(i - 1, 0, j - 1)));
  mb.addComponent(new BeaconBeamComponent(new BlockPos(0, 1, 0)));
  mb.setRenderOffset(new BlockPos(0, -1, 0));
  return mb.makeSet();
}

相关文章