本文整理了Java中net.minecraft.util.math.BlockPos.up()
方法的一些代码示例,展示了BlockPos.up()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BlockPos.up()
方法的具体详情如下:
包路径:net.minecraft.util.math.BlockPos
类名称: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();
}
内容来源于网络,如有侵权,请联系作者删除!