import net.minecraft.init.Blocks; //导入方法依赖的package包/类

@Override

public void onImpact(MovingObjectPosition target)// Server-side

{

if (target.entityHit != null) // Hit a entity

{

// Damage

target.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.shootingEntity), (float)this.damage);

target.entityHit.hurtResistantTime = 0; // No immunity frames

// Knockback

double f3 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);

if (f3 > 0.0F)

{

target.entityHit.addVelocity(

this.motionX * (double)this.knockbackStrength * 0.6000000238418579D / (double)f3,

0.1D,

this.motionZ * (double)this.knockbackStrength * 0.6000000238418579D / (double)f3

);

}

// Effect

if ( !(target.entityHit instanceof EntityEnderman) ) { target.entityHit.setFire(this.fireDuration); }

this.setDead();

}

else // Hit a block

{

Block block = this.worldObj.getBlock(target.blockX, target.blockY, target.blockZ);

// Glass breaking, once

if (Helper.tryBlockBreak(this.worldObj, this, target, 1) && this.targetsHit < 1) { this.targetsHit += 1; }

else { this.setDead(); }// else, either we didn't break that block or we already hit one entity

// Let's ignite TNT explicitly here.

if (block == Blocks.tnt)

{

this.worldObj.setBlockToAir(target.blockX, target.blockY, target.blockZ); // setBlockToAir

EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(this.worldObj,

(double)((float)target.blockX + 0.5F),

(double)((float)target.blockY + 0.5F),

(double)((float)target.blockZ + 0.5F),

this.shootingEntity);

this.worldObj.spawnEntityInWorld(entitytntprimed);// This is TNT, so begone with that block and replace it with primed TNT

this.worldObj.playSoundAtEntity(entitytntprimed, "random.fuse", 1.0F, 1.0F);

}

// else, block is not TNT

}

if (!this.isInWater()) // Only explode if we're not in water

{

boolean griefing = true;// Allowed by default

if (this.shootingEntity instanceof EntityPlayer)

{

griefing = this.dmgTerrain;// It's up to player settings to allow/forbid this

}

else

{

griefing = this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing");// Are we allowed to break things?

}

this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, (float) this.explosionSize, griefing);

// 4.0F is TNT, false is for "not flaming"

// Editchevsky: Actually, false is double-used for "don't damage terrain"

}

}

JAVA刷TNT_Java Blocks.tnt方法代码示例相关推荐

  1. cdate在java中_Java Calendar.add方法代码示例

    本文整理汇总了Java中java.util.Calendar.add方法的典型用法代码示例.如果您正苦于以下问题:Java Calendar.add方法的具体用法?Java Calendar.add怎 ...

  2. java hashmap putall_Java ConcurrentHashMap.putAll方法代码示例

    import java.util.concurrent.ConcurrentHashMap; //导入方法依赖的package包/类 /** * 生成更新Sql * @param entity * @ ...

  3. java中setattribute_Java Files.setAttribute方法代码示例

    import java.nio.file.Files; //导入方法依赖的package包/类 @Override public void setFileHiddenAttribute( String ...

  4. java default locale_Java JSON.defaultLocale方法代码示例

    import com.alibaba.fastjson.JSON; //导入方法依赖的package包/类 public void test_time() throws Exception { lon ...

  5. java sql xml_Java ResultSet.getSQLXML方法代码示例

    import java.sql.ResultSet; //导入方法依赖的package包/类 protected Object processColumn(ResultSet rs, int inde ...

  6. java get timestamp_Java Timestamp.getTime方法代码示例

    import java.sql.Timestamp; //导入方法依赖的package包/类 /** * Tests fix for BUG#5874, timezone correction goe ...

  7. java的setvisible_Java Container.setVisible方法代码示例

    import java.awt.Container; //导入方法依赖的package包/类 public static void loadOptions(final String name, fin ...

  8. java byte xml_Java XMLInputSource.setByteStream方法代码示例

    import org.apache.xerces.xni.parser.XMLInputSource; //导入方法依赖的package包/类 /** * Resolves an external p ...

  9. JAVA中rootpanel_Java JPanel.setFocusCycleRoot方法代码示例

    import javax.swing.JPanel; //导入方法依赖的package包/类 @Override public void actionPerformed(ActionEvent e) ...

最新文章

  1. PhalGo-Request
  2. 新建idea加入的一句话,键值对
  3. sqlsourcesafe mysql_mysql权限问题,看不到其它的库!
  4. android qq 登陆 简书,使用QQ第三方登录
  5. 好用的Perl包 Class::Ref
  6. python爬取的内容不是中午_大年初六中午,全国各区县哪里最冷?
  7. 227 Puzzle
  8. dnf如何快速拾取物品_极简断舍离|如何快速处理闲置物品?
  9. 南充高中计算机老师,2021四川南充教师招聘考试高中信息技术说课稿之《表格的装饰》...
  10. 操作系统中进程的同步、互斥、通信的区别,进程与线程同步知识
  11. 作曲大师2019破解版|作曲大师音乐梦想家2019破解版下载 v2019.9(附安装破解图文教程)
  12. ANYCUBIC Photon Mono 4K光固化打印机快速上手(多次试错的经验积累)
  13. 2021面试题——微信小程序面试题
  14. 2021-5月13日-今日收获
  15. pbcms 文章新增 修改 实现自动百度推送
  16. 关于XUtils的View 注入解析
  17. 【合天网安】DoraBox靶场之Xss跨站
  18. 下载IE6安装文件到本地的方法
  19. 机器人Scribit_Scribit墙壁绘图机器人:一款可以在墙上涂鸦和创作的机器人
  20. 个人对粗糙集的一些理解和简单举例

热门文章

  1. matlab 低秩矩阵分解,低秩分解的matlab代码看不懂,分解的两个矩阵在哪呀??...
  2. Arduino--蓝牙
  3. SigmaStar SSD201 操作记录
  4. Android 6.0动态权限
  5. TCP/IP详解学习笔记-基本概念
  6. 小米手机怎么获取 ROOT 权限
  7. 通过getGeneratedKeys获取记录的主键
  8. 解决Can't connect to MySQL server on 'localhost' (10048)
  9. php操作mysql的封装类_PHP封装的mysqli数据库操作类示例
  10. dnslog在mysql在linux_DNSLog在MySQL注入中的实战