五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

我的世界1.19.2fabric自定義工具

2023-06-22 08:39 作者:三極客  | 我要投稿

先上個(gè)wiki鏈接 fabricmc.net/wiki/tutorial:tools

其實(shí)大多數(shù)的按照wiki就行了

先創(chuàng)建材料類(lèi)

并實(shí)現(xiàn)父類(lèi)方法

材料的父類(lèi)方法重寫(xiě)

然后寫(xiě)這一個(gè)工具類(lèi)

工具類(lèi)

注冊(cè)

public static final Item LightningRod1 = register("lightning_rod_material",(Item) new LightningRod(LightningRodMaterial.LIGHTNING_ROD_MATERIAL,new Item.Settings().group(ITEM_GROUP).maxDamage(LightningRodMaterial.LIGHTNING_ROD_MATERIAL.getDurability())));

這里的register是我自行寫(xiě)了個(gè)方法,ITEM_GROUP是我自定義的物品組可以用ItemGroup.FOOD代替,注意這里的注冊(cè)方法與wiki的不同

wiki的方法

然后放置紋理,配置文件就行了

然后在繼承ModInitializer類(lèi)的主類(lèi)中注冊(cè)

但是你會(huì)發(fā)現(xiàn)這個(gè)工具在LightningRodMaterial寫(xiě)的getAttackDamage中的攻擊傷害沒(méi)效果

并且也么有耐久,還有耐久變成負(fù)數(shù)的情況

耐久負(fù)數(shù)

在LightningRod中覆寫(xiě)postHit攻擊函數(shù)

就是public boolean postHit(ItemStack stack, LivingEntity target, LivingEntity attacker) {

}

然后寫(xiě)以下內(nèi)容(吐槽,為什么這個(gè)b編輯器沒(méi)有代碼塊功能)

@Override
? ?public boolean postHit(ItemStack stack, LivingEntity target, LivingEntity attacker) {
? ? ? ?//造成傷害,是target被攻擊者受到的傷害? ? ? ???target.damage(DamageSource.GENERIC,lightningRod.getAttackDamage());
? ? ? ?ItemStack itemStack = attacker.getStackInHand(attacker.getActiveHand()); // 創(chuàng)建用戶(hù)手頭ItemStack的一個(gè)新的ItemStack實(shí)例
// ? ? ? ?itemStack.setDamage(itemStack.getDamage()-1);
? ? ? ?PlayerEntity playerEntity = attacker.getEntityWorld().getPlayerByUuid(attacker.getUuid());//通過(guò)uuid獲取玩家
? ? ? ?if (itemStack.isDamageable()&&!playerEntity.isCreative()){//是否有耐久,是否為創(chuàng)造
? ? ? ? ? ?playerEntity.getItemCooldownManager().set(this,5);//設(shè)置攻擊冷卻
? ? ? ? ? ?itemStack.setDamage(itemStack.getDamage()+1);//設(shè)置耐久
? ? ? ? ? ?if (itemStack.getDamage()>=itemStack.getMaxDamage()){如果當(dāng)前損失耐久大于最大耐久
? ? ? ? ? ? ? ?itemStack.decrement(1);//去除這個(gè)物品
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?return true;
? ?}

整體樣子

由于PlayerEntity是LivingEntity的子類(lèi),不能強(qiáng)轉(zhuǎn),要獲取子類(lèi)方法只能另尋出路

就是PlayerEntity playerEntity=?attacker.getEntityWorld().getPlayerByUuid(attacker.getUuid());//通過(guò)uuid獲取玩家

由此可以設(shè)置他的物品冷卻時(shí)間playerEntity.getItemCooldownManager().set(this,100);

在攻擊的時(shí)候召喚閃電

World world = attacker.getWorld();
LightningEntity lightningEntity = new LightningEntity(EntityType.LIGHTNING_BOLT,world);
lightningEntity.setPosition(target.getPos());
world.spawnEntity(lightningEntity);

成功



我的世界1.19.2fabric自定義工具的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
怀柔区| 遵义市| 抚顺市| 丹凤县| 延长县| 墨竹工卡县| 乌兰浩特市| 沧源| 博客| 罗甸县| 宣汉县| 应城市| 改则县| 文昌市| 霞浦县| 祁连县| 赤壁市| 北票市| 吴旗县| 长葛市| 闻喜县| 仁怀市| 长泰县| 宁武县| 梓潼县| 高邮市| 吉林省| 大理市| 滕州市| 利辛县| 瓦房店市| 台州市| 葫芦岛市| 天台县| 海盐县| 丽水市| 崇礼县| 云和县| 西乌珠穆沁旗| 新晃| 顺昌县|