本文整理了Java中net.minecraft.block.Block.getStateId()
方法的一些代码示例,展示了Block.getStateId()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Block.getStateId()
方法的具体详情如下:
包路径:net.minecraft.block.Block
类名称:Block
方法名:getStateId
暂无
代码示例来源:origin: Vazkii/Botania
@Override
public boolean addLandingEffects(IBlockState state, net.minecraft.world.WorldServer world, BlockPos blockPosition, IBlockState iblockstate, EntityLivingBase entity, int numberOfParticles )
{
float f = MathHelper.ceil(entity.fallDistance - 3.0F);
double d0 = Math.min(0.2F + f / 15.0F, 10.0F);
if (d0 > 2.5D) {
d0 = 2.5D;
}
int i = (int)(150.0D * d0);
world.spawnParticle(EnumParticleTypes.BLOCK_DUST, entity.posX, entity.posY, entity.posZ, i, 0.0D, 0.0D, 0.0D, 0.15000000596046448D, Block.getStateId(ModBlocks.storage.getDefaultState().withProperty(BotaniaStateProps.STORAGE_VARIANT, StorageVariant.ELEMENTIUM)));
return true;
}
代码示例来源:origin: Vazkii/Botania
@Override
protected void onImpact(@Nonnull RayTraceResult pos) {
if(pos.getBlockPos() != null && !world.isRemote) {
List<BlockPos> coordsList = getCoordsToPut(pos.getBlockPos());
world.playEvent(2002, new BlockPos(this), 8);
for(BlockPos coords : coordsList) {
world.setBlockState(coords, Blocks.END_STONE.getDefaultState());
if(Math.random() < 0.1)
world.playEvent(2001, coords, Block.getStateId(Blocks.END_STONE.getDefaultState()));
}
setDead();
}
}
代码示例来源:origin: Vazkii/Botania
@Override
public boolean doParticles(IManaBurst burst, ItemStack stack) {
EntityThrowable entity = (EntityThrowable) burst;
ItemStack lens = burst.getSourceLens();
String id = ItemNBTHelper.getString(lens, TAG_BLOCK_NAME, "minecraft:air");
Block b = Block.getBlockFromName(id);
int meta = ItemNBTHelper.getInt(lens, TAG_META, 0);
entity.world.spawnParticle(EnumParticleTypes.BLOCK_CRACK, entity.posX, entity.posY, entity.posZ, entity.motionX, entity.motionY, entity.motionZ, Block.getStateId(b.getStateFromMeta(meta)));
return true;
}
代码示例来源:origin: Vazkii/Botania
world.setBlockToAir(currCoords);
if(ConfigHandler.blockBreakParticles)
world.playEvent(2001, currCoords, Block.getStateId(state));
代码示例来源:origin: Vazkii/Botania
@Override
public boolean onUsedByWand(EntityPlayer player, ItemStack stack, World world, BlockPos pos, EnumFacing side) {
if(player == null || world.isRemote)
return false;
if(!player.isSneaking()) {
playerPositions.put(player.getUniqueID(), new DimWithPos(world.provider.getDimension(), pos));
world.playSound(null, pos, ModSounds.ding, SoundCategory.BLOCKS, 0.5F, 1F);
} else {
spawnAsEntity(world, pos, new ItemStack(this));
world.setBlockToAir(pos);
world.playEvent(2001, pos, Block.getStateId(getDefaultState()));
}
return true;
}
代码示例来源:origin: Vazkii/Botania
@Nonnull
@Override
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float xs, float ys, float zs) {
IBlockState state = world.getBlockState(pos);
if(Item.getItemFromBlock(state.getBlock()) == Items.AIR)
return EnumActionResult.PASS;
ItemStack blockStack = new ItemStack(state.getBlock());
int[] ids = OreDictionary.getOreIDs(blockStack);
for(int i : ids) {
String name = OreDictionary.getOreName(i);
if(name.equals("grass")) {
world.playEvent(2001, pos, Block.getStateId(state));
world.setBlockState(pos, ModBlocks.enchantedSoil.getDefaultState());
player.getHeldItem(hand).shrink(1);
return EnumActionResult.SUCCESS;
}
}
return EnumActionResult.PASS;
}
代码示例来源:origin: Vazkii/Botania
@Override
protected void onImpact(RayTraceResult pos) {
if (world.isRemote)
return;
EntityLivingBase thrower = getThrower();
if(pos.entityHit != null && thrower != null && pos.entityHit != thrower && !pos.entityHit.isDead) {
if(thrower instanceof EntityPlayer)
pos.entityHit.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) thrower), Math.random() < 0.25 ? 10 : 5);
else pos.entityHit.attackEntityFrom(DamageSource.GENERIC, Math.random() < 0.25 ? 10 : 5);
}
if (pos.getBlockPos() != null) {
IBlockState state = world.getBlockState(pos.getBlockPos());
if(ConfigHandler.blockBreakParticles && !state.getBlock().isAir(state, world, pos.getBlockPos()))
world.playEvent(2001, pos.getBlockPos(), Block.getStateId(state));
}
setDead();
}
代码示例来源:origin: Vazkii/Botania
@Override
public void onBurstCollision(IManaBurst burst, World world, BlockPos pos) {
if(!burst.isFake() && !world.isRemote) {
world.playEvent(2001, pos, Block.getStateId(getDefaultState()));
world.setBlockToAir(pos);
EntityManaStorm storm = new EntityManaStorm(world);
storm.setPosition(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5);
world.spawnEntity(storm);
}
}
代码示例来源:origin: Vazkii/Botania
@Override
protected void onImpact(@Nonnull RayTraceResult var1) {
if(!world.isRemote) {
if(var1 != null) {
EnumFacing dir = var1.sideHit;
if(dir != null && dir.getAxis() != EnumFacing.Axis.Y) {
BlockPos pos = var1.getBlockPos().offset(dir);
while(pos.getY() > 0) {
IBlockState state = world.getBlockState(pos);
Block block = state.getBlock();
if(block.isAir(state, world, pos)) {
IBlockState stateSet = ModBlocks.solidVines.getDefaultState().withProperty(propMap.get(dir.getOpposite()), true);
world.setBlockState(pos, stateSet, 1 | 2);
world.playEvent(2001, pos, Block.getStateId(stateSet));
pos = pos.down();
} else break;
}
}
}
this.world.setEntityState(this, (byte)3);
setDead();
}
}
代码示例来源:origin: Vazkii/Botania
@Override
public void onAvatarUpdate(IAvatarTile tile, ItemStack stack) {
TileEntity te = (TileEntity) tile;
World world = te.getWorld();
if(!world.isRemote && tile.getCurrentMana() >= COST && tile.getElapsedFunctionalTicks() % 4 == 0 && world.rand.nextInt(8) == 0 && tile.isEnabled()) {
BlockPos pos = ((TileEntity) tile).getPos().offset(tile.getAvatarFacing());
IBlockState state = world.getBlockState(pos);
if(state.getBlock().isAir(state, world, pos)) {
world.setBlockState(pos, Blocks.DIRT.getDefaultState());
world.playEvent(2001, pos, Block.getStateId(Blocks.DIRT.getDefaultState()));
tile.recieveMana(-COST);
}
}
}
代码示例来源:origin: Vazkii/Botania
@Override
public void onUpdate() {
super.onUpdate();
if(supertile.getWorld().isRemote || redstoneSignal > 0)
return;
if(mana >= COST && ticksExisted % 2 == 0) {
BlockPos coords = getCoordsToPut();
if(coords != null) {
IBlockState state = getStoneToPut(coords);
if(state != null) {
supertile.getWorld().setBlockState(coords, state);
if(ConfigHandler.blockBreakParticles)
supertile.getWorld().playEvent(2001, coords, Block.getStateId(state));
mana -= COST;
sync();
}
}
}
}
代码示例来源:origin: Vazkii/Botania
world.addBlockEvent(getPos(), supertile.getBlockType(), RECIPE_COMPLETE_EVENT, positionAt);
if(ConfigHandler.blockBreakParticles)
supertile.getWorld().playEvent(2001, coords, Block.getStateId(recipe.getOutputState()));
代码示例来源:origin: Vazkii/Botania
IBlockState state = block.getStateFromMeta(meta);
player.world.setBlockState(coords, state, 1 | 2);
player.world.playEvent(2001, coords, Block.getStateId(state));
代码示例来源:origin: Vazkii/Botania
public static void removeBlockWithDrops(EntityPlayer player, ItemStack stack, World world, BlockPos pos,
Predicate<IBlockState> filter,
boolean dispose, boolean particles) {
if(!world.isBlockLoaded(pos))
return;
IBlockState state = world.getBlockState(pos);
Block block = state.getBlock();
if(!world.isRemote && filter.test(state)
&& !block.isAir(state, world, pos) && state.getPlayerRelativeBlockHardness(player, world, pos) > 0
&& block.canHarvestBlock(player.world, pos, player)) {
int exp = ForgeHooks.onBlockBreakEvent(world, ((EntityPlayerMP) player).interactionManager.getGameType(), (EntityPlayerMP) player, pos);
if(exp == -1)
return;
if(!player.capabilities.isCreativeMode) {
TileEntity tile = world.getTileEntity(pos);
if(block.removedByPlayer(state, world, pos, player, true)) {
block.onPlayerDestroy(world, pos, state);
if(!dispose || !ItemElementiumPick.isDisposable(block)) {
block.harvestBlock(world, player, pos, state, tile, stack);
block.dropXpOnBlockBreak(world, pos, exp);
}
}
damageItem(stack, 1, player, 80);
} else world.setBlockToAir(pos);
if(particles && ConfigHandler.blockBreakParticles && ConfigHandler.blockBreakParticlesTool)
world.playEvent(2001, pos, Block.getStateId(state));
}
}
代码示例来源:origin: Vazkii/Botania
supertile.getWorld().playEvent(2001, supertile.getPos(), Block.getStateId(state));
if(supertile.getWorld().getBlockState(supertile.getPos().down()).isSideSolid(supertile.getWorld(), supertile.getPos().down(), EnumFacing.UP))
supertile.getWorld().setBlockState(supertile.getPos(), Blocks.DEADBUSH.getDefaultState());
代码示例来源:origin: Vazkii/Botania
@Override
public boolean collideBurst(IManaBurst burst, EntityThrowable entity, RayTraceResult pos, boolean isManaBlock, boolean dead, ItemStack stack) {
if(!entity.world.isRemote && !burst.isFake() && pos.getBlockPos() != null) {
int harvestLevel = ConfigHandler.harvestLevelWeight;
BlockPos bPos = pos.getBlockPos();
Block block = entity.world.getBlockState(bPos).getBlock();
IBlockState state = entity.world.getBlockState(bPos);
int neededHarvestLevel = block.getHarvestLevel(state);
if(entity.world.isAirBlock(bPos.down()) && state.getBlockHardness(entity.world, bPos) != -1 && neededHarvestLevel <= harvestLevel && entity.world.getTileEntity(bPos) == null && block.canSilkHarvest(entity.world, bPos, state, null)) {
state = TECHNICAL_BLOCK_REMAP.getOrDefault(state, state);
EntityFallingBlock falling = new EntityFallingBlock(entity.world, bPos.getX() + 0.5, bPos.getY(), bPos.getZ() + 0.5, state);
falling.fallTime = 1;
entity.world.setBlockToAir(bPos);
((WorldServer) entity.world).spawnParticle(EnumParticleTypes.FALLING_DUST, bPos.getX() + 0.5, bPos.getY() + 0.5, bPos.getZ() + 0.5, 10, 0.45, 0.45, 0.45, 5, new int[] {Block.getStateId(state)});
entity.world.spawnEntity(falling);
}
}
return dead;
}
代码示例来源:origin: Vazkii/Botania
@Override
@SideOnly(Side.CLIENT)
public boolean addDestroyEffects(World world, BlockPos pos, net.minecraft.client.particle.ParticleManager effectRenderer)
{
if (world.getBlockState(pos).getBlock() == this) {
int i = 4;
ParticleDigging.Factory factory = new ParticleDigging.Factory();
for (int j = 0; j < i; ++j) {
for (int k = 0; k < i; ++k) {
for (int l = 0; l < i; ++l) {
double d0 = pos.getX() + (j + 0.5D) / i;
double d1 = pos.getY() + (k + 0.5D) / i;
double d2 = pos.getZ() + (l + 0.5D) / i;
effectRenderer.addEffect(factory.createParticle(-1, world, d0, d1, d2, d0 - pos.getX() - 0.5D, d1 - pos.getY() - 0.5D, d2 - pos.getZ() - 0.5D, Block.getStateId(ModBlocks.storage.getDefaultState().withProperty(BotaniaStateProps.STORAGE_VARIANT, StorageVariant.ELEMENTIUM))));
}
}
}
return true;
} else {
return false;
}
}
代码示例来源:origin: Vazkii/Botania
@Override
public void onUpdate() {
super.onUpdate();
if(supertile.getWorld().isRemote || redstoneSignal > 0)
return;
if(ticksExisted % 30 == 0 && mana >= COST) {
BlockPos pos = new BlockPos(
supertile.getPos().getX() - RANGE + supertile.getWorld().rand.nextInt(RANGE * 2 + 1),
supertile.getPos().getY() + RANGE,
supertile.getPos().getZ() - RANGE + supertile.getWorld().rand.nextInt(RANGE * 2 + 1)
);
BlockPos up = pos.up();
for(int i = 0; i < RANGE * 2; i++) {
IBlockState stateAbove = supertile.getWorld().getBlockState(up);
Block blockAbove = stateAbove.getBlock();
if((supertile.getWorld().isAirBlock(up) || blockAbove.isReplaceable(supertile.getWorld(), up)) && stateAbove.getMaterial() != Material.WATER && ModBlocks.flower.canPlaceBlockAt(supertile.getWorld(), up)) {
EnumDyeColor color = EnumDyeColor.byMetadata(supertile.getWorld().rand.nextInt(16));
IBlockState state = ModBlocks.flower.getDefaultState().withProperty(BotaniaStateProps.COLOR, color);
if(ConfigHandler.blockBreakParticles)
supertile.getWorld().playEvent(2001, up, Block.getStateId(state));
supertile.getWorld().setBlockState(up, state, 1 | 2);
mana -= COST;
sync();
break;
}
up = pos;
pos = pos.down();
}
}
}
代码示例来源:origin: Vazkii/Botania
@Override
public void onUpdate() {
super.onUpdate();
if(!supertile.getWorld().isRemote && ticksExisted % 5 == 0) {
if(mana >= COST) {
BlockPos coords = getCoordsToPut();
if(coords != null) {
supertile.getWorld().setBlockToAir(coords);
if(ConfigHandler.blockBreakParticles)
supertile.getWorld().playEvent(2001, coords, Block.getStateId(Blocks.SAND.getDefaultState()));
EntityItem item = new EntityItem(supertile.getWorld(), coords.getX() + 0.5, coords.getY() + 0.5, coords.getZ() + 0.5, new ItemStack(Items.CLAY_BALL));
supertile.getWorld().spawnEntity(item);
mana -= COST;
}
}
}
}
代码示例来源:origin: Vazkii/Botania
@Override
public void onUpdate() {
super.onUpdate();
if (supertile.getWorld().isRemote)
return;
int mana = 1800;
if(getMaxMana() - this.mana >= mana && !supertile.getWorld().isRemote && ticksExisted % 80 == 0) {
for(int i = 0; i < RANGE * 2 + 1; i++)
for(int j = 0; j < RANGE * 2 + 1; j++)
for(int k = 0; k < RANGE * 2 + 1; k++) {
BlockPos pos = supertile.getPos().add(i - RANGE, j - RANGE, k - RANGE);
IBlockState state = supertile.getWorld().getBlockState(pos);
Block block = state.getBlock();
if(block instanceof BlockCake) {
int nextSlicesEaten = state.getValue(BlockCake.BITES) + 1;
if(nextSlicesEaten > 6)
supertile.getWorld().setBlockToAir(pos);
else supertile.getWorld().setBlockState(pos, state.withProperty(BlockCake.BITES, nextSlicesEaten), 1 | 2);
supertile.getWorld().playEvent(2001, pos, Block.getStateId(state));
supertile.getWorld().playSound(null, supertile.getPos(), SoundEvents.ENTITY_GENERIC_EAT, SoundCategory.BLOCKS, 1F, 0.5F + (float) Math.random() * 0.5F);
this.mana += mana;
sync();
return;
}
}
}
}
内容来源于网络,如有侵权,请联系作者删除!