当前位置: 首页>>代码示例>>Java>>正文


Java Block.isFireSource方法代码示例

本文整理汇总了Java中net.minecraft.block.Block.isFireSource方法的典型用法代码示例。如果您正苦于以下问题:Java Block.isFireSource方法的具体用法?Java Block.isFireSource怎么用?Java Block.isFireSource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在net.minecraft.block.Block的用法示例。


在下文中一共展示了Block.isFireSource方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: updateTick

import net.minecraft.block.Block; //导入方法依赖的package包/类
public void updateTick(World worldIn, BlockPos pos, IBlockState state, Random rand) {
	if (worldIn.getGameRules().getBoolean("doFireTick")) {
		if (!this.canPlaceBlockAt(worldIn, pos)) {
			worldIn.setBlockToAir(pos);
		}
		Block block = worldIn.getBlockState(pos.down()).getBlock();
		boolean flag = block.isFireSource(worldIn, pos.down(), EnumFacing.UP);
		int i = state.getValue(AGE);
		if (!flag && worldIn.isRaining() && this.canDie(worldIn, pos) && rand.nextFloat() < 0.2F + (float) i * 0.03F) {
			worldIn.setBlockToAir(pos);
		} else {
			if (i < 15) {
				state = state.withProperty(AGE, i + rand.nextInt(3) / 2);
				worldIn.setBlockState(pos, state, 4);
			}
			worldIn.scheduleUpdate(pos, this, this.tickRate(worldIn) + rand.nextInt(10));
			if (!flag) {
				if (!this.canNeighborCatchFire(worldIn, pos)) {
					if (!worldIn.getBlockState(pos.down()).isSideSolid(worldIn, pos.down(), EnumFacing.UP) || i > 3) {
						worldIn.setBlockToAir(pos);
					}
					return;
				}
				if (!this.canCatchFire(worldIn, pos.down(), EnumFacing.UP) && i == 15 && rand.nextInt(4) == 0) {
					worldIn.setBlockToAir(pos);
					return;
				}
			}
			boolean flag1 = worldIn.isBlockinHighHumidity(pos);
			int j = 0;
			if (flag1) {
				j = -50;
			}
			this.tryCatchFire(worldIn, pos.east(), 300 + j, rand, i, EnumFacing.WEST);
			this.tryCatchFire(worldIn, pos.west(), 300 + j, rand, i, EnumFacing.EAST);
			this.tryCatchFire(worldIn, pos.down(), 250 + j, rand, i, EnumFacing.UP);
			this.tryCatchFire(worldIn, pos.up(), 250 + j, rand, i, EnumFacing.DOWN);
			this.tryCatchFire(worldIn, pos.north(), 300 + j, rand, i, EnumFacing.SOUTH);
			this.tryCatchFire(worldIn, pos.south(), 300 + j, rand, i, EnumFacing.NORTH);
			for (int k = -1; k <= 1; ++k) {
				for (int l = -1; l <= 1; ++l) {
					for (int i1 = -1; i1 <= 4; ++i1) {
						if (k != 0 || i1 != 0 || l != 0) {
							int j1 = 100;
							if (i1 > 1) {
								j1 += (i1 - 1) * 100;
							}
							BlockPos blockpos = pos.add(k, i1, l);
							int k1 = this.getNeighborEncouragement(worldIn, blockpos);
							if (k1 > 0) {
								int l1 = (k1 + 40 + worldIn.getDifficulty().getDifficultyId() * 7) / (i + 30);
								if (flag1) {
									l1 /= 2;
								}
								if (l1 > 0 && rand.nextInt(j1) <= l1 && (!worldIn.isRaining() || !this.canDie(worldIn, blockpos))) {
									int i2 = i + rand.nextInt(5) / 4;
									if (i2 > 15) {
										i2 = 15;
									}
									worldIn.setBlockState(blockpos, state.withProperty(AGE, i2), 3);
								}
							}
						}
					}
				}
			}
		}
	}
}
 
开发者ID:MinecraftModDevelopmentMods,项目名称:Got-Wood,代码行数:70,代码来源:BlockSpecialFire.java


注:本文中的net.minecraft.block.Block.isFireSource方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。