国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
亳州市| 庆安县| 临朐县| 仁怀市| 文山县| 丰都县| 烟台市| 威海市| 洛隆县| 汝南县| 榆树市| 鄂温| 望谟县| 恩施市| 友谊县| 旅游| 东莞市| 安福县| 莎车县| 罗山县| 福贡县| 台南县| 石首市| 阿瓦提县| 冷水江市| 南皮县| 广东省| 陆川县| 黎城县| 凌云县| 宜兰市| 上饶市| 镇远县| 平谷区| 启东市| 建平县| 广水市| 兴义市| 神农架林区| 蛟河市| 马关县|