最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)論 (共 條)

使用qq登录你需要登录后才可以评论。
沁阳市| 山阴县| 青河县| 宁陕县| 靖宇县| 兰考县| 红安县| 桃源县| 杭锦旗| 菏泽市| 新沂市| 永昌县| 剑阁县| 贞丰县| 山阴县| 迁西县| 拉孜县| 辽中县| 南华县| 舞钢市| 海城市| 呼图壁县| 九龙坡区| 津市市| 吴江市| 出国| 深泽县| 彰化县| 阿荣旗| 贡嘎县| 加查县| 东宁县| 海阳市| 五指山市| 思茅市| 炉霍县| 合阳县| 宁蒗| 大姚县| 平谷区| 嘉黎县|