zh_cn:tutorial:items
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
zh_cn:tutorial:items [2022/12/15 23:56] – [介绍] solidblock | zh_cn:tutorial:items [2022/12/19 08:31] – solidblock | ||
---|---|---|---|
Line 5: | Line 5: | ||
添加一个基本的物品是编写模组的第一步。你将需要创建一个 '' | 添加一个基本的物品是编写模组的第一步。你将需要创建一个 '' | ||
==== 注册物品 ==== | ==== 注册物品 ==== | ||
- | 首先,创建一个'' | + | 首先,创建一个 '' |
- | <code java [enable_line_numbers=" | + | <yarncode |
public class ExampleMod implements ModInitializer { | public class ExampleMod implements ModInitializer { | ||
// 新物品的实例 | // 新物品的实例 | ||
- | public static final Item FABRIC_ITEM | + | public static final class_1792 CUSTOM_ITEM |
[...] | [...] | ||
} | } | ||
- | </code> | + | </yarncode> |
- | 这里使用原版注册方式来注册,基本语法是'' | + | 这里使用原版注册方式来注册,基本语法是 '' |
- | <code java [enable_line_numbers=" | + | <yarncode |
public class ExampleMod implements ModInitializer { | public class ExampleMod implements ModInitializer { | ||
// 新物品的实例 | // 新物品的实例 | ||
- | public static final Item FABRIC_ITEM | + | public static final class_1792 CUSTOM_ITEM |
- | + | ||
@Override | @Override | ||
- | public void onInitialize() | + | public void onInitialize() { |
- | | + | |
- | | + | } |
- | } | + | |
} | } | ||
- | </code> | + | </yarncode> |
- | 现在新物品已添加到Minecraft中,运行'' | + | 现在新物品已添加到 Minecraft 中,运行“Minecraft Client”运行配置或者 |
{{: | {{: | ||
+ | |||
+ | 为了简便,也可以像这样简化代码: | ||
+ | < | ||
+ | public class ExampleMod implements ModInitializer { | ||
+ | |||
+ | // an instance of our new item | ||
+ | public static final class_1792 CUSTOM_ITEM = | ||
+ | class_2378.method_10230(class_7923.field_41178, | ||
+ | new class_1792(new FabricItemSettings())); | ||
+ | |||
+ | @Override | ||
+ | public void onInitialize() { | ||
+ | } | ||
+ | } | ||
+ | </ | ||
==== 添加物品纹理 ==== | ==== 添加物品纹理 ==== | ||
Line 34: | Line 48: | ||
为物品注册纹理需要物品模型.json文件和纹理图像文件。 您将需要将它们添加到资源目录中。每个的直接路径是: | 为物品注册纹理需要物品模型.json文件和纹理图像文件。 您将需要将它们添加到资源目录中。每个的直接路径是: | ||
- | 物品模型: | + | 物品模型: |
- | 物品纹理: | + | 物品纹理: |
我们将使用[[https:// | 我们将使用[[https:// | ||
如果您在第一步中正确注册了物品,则游戏将以类似于以下方式的方式抱怨缺少纹理文件: | 如果您在第一步中正确注册了物品,则游戏将以类似于以下方式的方式抱怨缺少纹理文件: | ||
- | [Server-Worker-1/ | + | [Server-Worker-1/ |
游戏能很方便地告诉你它想要的资源路径。遇事不决,日志解决。 | 游戏能很方便地告诉你它想要的资源路径。遇事不决,日志解决。 | ||
Line 46: | Line 60: | ||
<code JavaScript> | <code JavaScript> | ||
{ | { | ||
- | " | + | " |
" | " | ||
- | " | + | " |
} | } | ||
} | } | ||
</ | </ | ||
- | 物品模型会将所有属性继承自父模型,例如对工具、方块等物品十分有用的自定义手持模型('' | + | 物品模型会将所有属性继承自父模型,例如对工具、方块等物品十分有用的自定义手持模型('' |
最终纹理的结果: | 最终纹理的结果: | ||
Line 59: | Line 73: | ||
==== 创建物品类 ==== | ==== 创建物品类 ==== | ||
- | 要为物品添加自定义行为,则需要创建一个物品类。其默认的构造方法需要一个Item.Settings对象。 | + | 要为物品添加自定义行为,则需要创建一个物品类。其默认的构造方法需要一个 |
- | <code java [enable_line_numbers=" | + | <yarncode |
- | public class FabricItem | + | public class CustomItem |
- | public | + | public |
super(settings); | super(settings); | ||
} | } | ||
} | } | ||
- | </code> | + | </yarncode> |
自定义物品类的一个实际用例是使该物品在右击时播放声音: | 自定义物品类的一个实际用例是使该物品在右击时播放声音: | ||
- | <code java [enable_line_numbers=" | + | <yarncode |
- | public class FabricItem | + | public class CustomItem |
- | public | + | public |
super(settings); | super(settings); | ||
} | } | ||
- | | + | |
@Override | @Override | ||
- | public | + | public |
- | playerEntity.playSound(SoundEvents.BLOCK_WOOL_BREAK, 1.0F, 1.0F); | + | playerEntity.method_5783(class_3417.field_14983, 1.0F, 1.0F); |
- | return | + | return |
} | } | ||
} | } | ||
- | </code> | + | </yarncode> |
- | 用新物品类的实例替换旧的Item对象: | + | 用新物品类的实例替换旧的 |
- | <code java [enable_line_numbers=" | + | <yarncode |
public class ExampleMod implements ModInitializer { | public class ExampleMod implements ModInitializer { | ||
- | | + | |
- | public static final FabricItem FABRIC_ITEM | + | |
+ | public static final CustomItem CUSTOM_ITEM | ||
[...] | [...] | ||
} | } | ||
- | </code> | + | </yarncode> |
如果你正确执行了所有操作,则使用该物品现在应该会播放声音。 | 如果你正确执行了所有操作,则使用该物品现在应该会播放声音。 | ||
==== 如果我想更改物品的堆叠大小怎么办? | ==== 如果我想更改物品的堆叠大小怎么办? | ||
- | 使用'' | + | 使用 '' |
<code java [enable_line_numbers=" | <code java [enable_line_numbers=" | ||
public class ExampleMod implements ModInitializer { | public class ExampleMod implements ModInitializer { | ||
- | // | + | // 我们新物品的实例,最大堆叠大小为16 |
- | public static final FabricItem FABRIC_ITEM | + | public static final CustomItem CUSTOM_ITEM |
[...] | [...] | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ==== 让物品能作为燃料或者可堆肥 ==== | ||
+ | |||
+ | 如果需要让物品能作为燃料在熔炉中燃烧,可以使用 '' | ||
+ | <code java> | ||
+ | public class ExampleMod implements ModInitializer { | ||
+ | [...] | ||
+ | | ||
+ | @Override | ||
+ | public void onInitialize() { | ||
+ | [...] | ||
+ | FuelRegistry.INSTANCE.add(CUSTOM_ITEM, | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 类似地,你也可以使用 '' | ||
==== 下一步 ==== | ==== 下一步 ==== | ||
试着[[zh_cn: | 试着[[zh_cn: |
zh_cn/tutorial/items.txt · Last modified: 2024/04/15 01:25 by solidblock