Minecraft 1.18.1、1.18.2模组开发 04.工具物品

2024-02-05 07:20

本文主要是介绍Minecraft 1.18.1、1.18.2模组开发 04.工具物品,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们本次在1.18.1中制作属于自己的工具物品

1.在模组包下新建一个items文件夹 -> 在文件夹中新建一个CustomItemTier.java文件(表示我们的自定义工具等级)

cr3.jpg

在原版的Minecraft中我们的工具等级大致为木头 -> 石头 -> 铁 -> 金 -> 钻石 -> 下界合金

cr0.jpg

每个工具等级的参数从左到右分别为:等级、耐久、挖掘速度、攻击力、附魔值(越大附到的平均属性越好)。
在CustomItemTier.java中编辑:
package com.joy187.re8joymod.items;import java.util.function.Supplier;import net.minecraft.util.LazyLoadedValue;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.Tier;
import net.minecraft.world.item.crafting.Ingredient;public enum CustomItemTier implements Tier{//这是我们的自定义的工具等级,可以往下续写...exampleToolTire(10, 120, 8.0F, 10.0F, 100,() -> {return Ingredient.of(Items.DIAMOND);}),PreciseAttack(3, 2, 8.0F, 10.0F, 100,() -> {return Ingredient.of(Items.DIAMOND);});private final int level;private final int uses;private final float speed;private final float damage;private final int enchantmentValue;private final LazyLoadedValue<Ingredient> repairIngredient;private CustomItemTier(int p_43332_, int p_43333_, float p_43334_, float p_43335_, int p_43336_, Supplier<Ingredient> p_43337_) {this.level = p_43332_;this.uses = p_43333_;this.speed = p_43334_;this.damage = p_43335_;this.enchantmentValue = p_43336_;this.repairIngredient = new LazyLoadedValue<>(p_43337_);}public int getUses() {return this.uses;}public float getSpeed() {return this.speed;}public float getAttackDamageBonus() {return this.damage;}public int getLevel() {return this.level;}public int getEnchantmentValue() {return this.enchantmentValue;}public Ingredient getRepairIngredient() {return this.repairIngredient.get();}//	   @javax.annotation.Nullable public net.minecraft.tags.Tag<net.minecraft.world.level.block.Block> getTag() { return net.minecraftforge.common.ForgeHooks.getTagFromVanillaTier(this); }
}

2.在items文件夹下新建一个.java文件用于制作一把剑(ItemPreAttack.java为例):

ItemPreAttack.java

package com.joy187.re8joymod.items;import com.joy187.re8joymod.Main;import net.minecraft.world.item.Item;
import net.minecraft.world.item.SwordItem;//我们要做一把剑,就继承原版的剑
public class ItemPreAttack extends SwordItem{public ItemPreAttack() {//各参数:工具等级,伤害,攻速,放在哪个物品栏super(CustomItemTier.PreciseAttack,1000000001,-2,new Item.Properties().tab(Main.TUTORIAL_TAB));}
}

3.在ItemInit中添加物品的注册信息:

    public static RegistryObject<Item> PREATTACK = register("preciseattack",()->{return new ItemPreAttack();});

4.在resources/assets/lang文件夹中的en_us.json添加物品语言信息:

	"item.re8joymod.preciseattack": "Precise Strike",
在assets/models/item中新建我们物品的模型.json文件(命名与之前ItemInit.java中的名称字符串保持一致):

preciseattack.json

{"parent": "item/handheld","textures": {"layer0": "re8joymod:item/special_strike"}
}
在textures/item中添加我们的贴图文件,名称与上面.json中layer0中的名称保持一致:

cr1.jpg

注:其他工具的做法完全类似,只不过在第二步中继承不同工具罢了(斧头:AxeItem,镐子:PickaxeItem,锄头:HoeItem,铲子:ShovelItem)

5.刷新项目,启动游戏测试

2022-02-27_16.17.59.png

我们的这把剑就成功显示了!

这篇关于Minecraft 1.18.1、1.18.2模组开发 04.工具物品的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680144

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

MySQL慢查询工具的使用小结

《MySQL慢查询工具的使用小结》使用MySQL的慢查询工具可以帮助开发者识别和优化性能不佳的SQL查询,本文就来介绍一下MySQL的慢查询工具,具有一定的参考价值,感兴趣的可以了解一下... 目录一、启用慢查询日志1.1 编辑mysql配置文件1.2 重启MySQL服务二、配置动态参数(可选)三、分析慢查

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

基于Python实现进阶版PDF合并/拆分工具

《基于Python实现进阶版PDF合并/拆分工具》在数字化时代,PDF文件已成为日常工作和学习中不可或缺的一部分,本文将详细介绍一款简单易用的PDF工具,帮助用户轻松完成PDF文件的合并与拆分操作... 目录工具概述环境准备界面说明合并PDF文件拆分PDF文件高级技巧常见问题完整源代码总结在数字化时代,PD

Python按照24个实用大方向精选的上千种工具库汇总整理

《Python按照24个实用大方向精选的上千种工具库汇总整理》本文整理了Python生态中近千个库,涵盖数据处理、图像处理、网络开发、Web框架、人工智能、科学计算、GUI工具、测试框架、环境管理等多... 目录1、数据处理文本处理特殊文本处理html/XML 解析文件处理配置文件处理文档相关日志管理日期和

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife