【中文翻译】泰拉瑞亚tModLoader官方教程:Basic Recipe Guide(基本合成表指南)

您所在的位置:网站首页 terraria创建人物后崩溃 【中文翻译】泰拉瑞亚tModLoader官方教程:Basic Recipe Guide(基本合成表指南)

【中文翻译】泰拉瑞亚tModLoader官方教程:Basic Recipe Guide(基本合成表指南)

2023-10-28 18:07| 来源: 网络整理| 查看: 265

建议在学习完《基础物品指南》后再阅读本文:

合成表可以在2个地方被添加到游戏中。在Mod.AddRecipes和ModItem.AddRecipes中。你在哪里添加你的合成表是由你的组织偏好决定的,但是请注意下面代码中的 "mod "和 "this "反映了来自ModItem的代码。

合成表由原料(制作结果所消耗的物品)、瓦片(你需要准备的合成场所,如工作台、砧等)和结果(合成后获得的物品)组成。

基本合成表的结构

首先,确保你在.cs文件的顶部使用了Terraria.ModLoader包(一般的IDE(如VS、Rider)会自动导入),这样你就可以使用ModRecipe类。如果你打算使用任何原版的物品,你也需要使用Terraria.ID。

为了开始一个合成表,我们创建一个ModRecipe类的实例。

现在,我们添加不同的物品(最多可以添加14种)。

使用recipe.AddIngredient来向合成表中添加物品。

AddIngredient还有一个可选的参数来指定一个物品的数量。

前面的例子通过引用ItemID类将原版就有的物品添加到合成表中。在一个有能力的IDE(如Visual Studio)中,你会发现自动完成和智能感应非常有用,你可以通过ItemID.XXX(后面是物品的英文名)来引用泰拉瑞亚原版物品ID,当然,你也可以通过搜索引擎搜索某个物品的ID来将它添加到合成表中。 我们还可以添加由这个mod添加的mod物品。我们有几种方法可以做到这一点。选择你喜欢的任何方法:

接下来,我们可以指定制作站(最多可以指定14个)。这与物品的模式相同。下面的方法任选一种即可。

接下来,我们需要为ModRecipe设置结果,即合成完成后获得的物品。每个ModRecipe只能有一个结果。这也是与AddIngredient类似的做法。这里也有一个可选的物品数量参数。

最后,我们需要告诉tModLoader,我们的ModRecipe已经完成,并将其添加到游戏中。

例子

使用原版物品与mod物品的区别

总结:原版物品和制作站使用ItemID和TileID类,而mod物品和制作站使用ItemType和TileType方法。

水、蜂蜜、岩浆

水、蜂蜜和岩浆在技术上说不是瓦片(Tile,之后会详细说明),所以要使合成需要站在这些东西旁边,请使用以下方法之一。

请注意,水槽也能满足needWater的需求,所以不要单独添加水槽瓦片。还要注意的是,你也可以设置recipe.needSnowBiome(需要雪地生物群落),你也可以使用ModRecipe.RecipeAvailable方法(用于判断合成表是否可用)为你的合成表添加更高级的功能。(之后会详细介绍)

多个合成表

在同一个 AddRecipes 中可以有多个 ModRecipe,请确保不要重复声明你的变量名称。以下情况将导致错误:

你可以给你的变量命名为recipe1、recipe2等,但更简洁的方法是重复使用同一个变量:

完整例子

这里有2个完整的例子。

从技术上讲,制作合成表的代码可以放在Mod或ModItem中,但是大多数情况下,将配方放在ModItem类中是最好的。

ModItem.AddRecipes例子:

Mod.AddRecipes例子:

注意这里的this是指mod本身,而不是像ModItem例子中那样指代某个特定物品。

常见错误

Error CS0117 'ItemID' (or TileID) does not contain a definition for 'MyModItem'

不要使用添加原版物品的语法来添加mod物品!

Error CS0103 The name 'recipe' does not exist in the current context

ModRecipe recipe = new ModRecipe(mod);

Error CS0128 A local variable named 'recipe' is already defined in this scope

再次阅读“多个合成表”一节。

游戏中没有我的合成表!

请检查你是否重写了AddRecipes方法。

请确保你只在Mod或ModItem中重写AddRecipes。

相关参考资料

Vanilla ItemIDs:https://github.com/tModLoader/tModLoader/wiki/Vanilla-Item-IDs

Vanilla TileIDs:https://github.com/tModLoader/tModLoader/wiki/Vanilla-Tile-IDs

ModRecipe Documentation:http://tmodloader.github.io/tModLoader/html/class_terraria_1_1_mod_loader_1_1_mod_recipe.html

Mod Documentation:http://tmodloader.github.io/tModLoader/html/class_terraria_1_1_mod_loader_1_1_mod.html

基本指南未涉及的内容

ModRecipes的其他方面将在更高级的指南中涉及。

RecipeGroups   允许单一合成原料成为一个组中的一个,就像大多数涉及木材的配方可以使用Boreal Wood或Pearl Wood。("任何木材")

ModRecipe.OnCraft

ModRecipe.ConsumeItem

ModRecipe.RecipeAvailable

RecipeFinder/RecipeEditor    允许你修改和删除原版的合成表。

Cross-Mod Content    在你的合成中使用其他模组的物品或瓦片。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3