跳到正文
烈焰甘蔗Wiki

Rice(可食用作物)

事实基准:harvestcraft-1.3.14-GTNH.jar(MC 1.7.10 / Forge 10.13.4.1614)CFR 0.152 反编译源码。

基本信息

属性 值 来源
注册名 harvestcraft:riceItem ItemRegistry.java:1921
显示名 Rice en_US.lang:311
Java 类 ItemPamSeedFood ItemRegistry.java:1098
字段 ItemRegistry.riceItem ItemRegistry.java 字段声明
创造标签 tabHarvestCraft2(HarvestCraft Crops) ItemRegistry.java:1098
条件注册 否,无条件注册 ItemRegistry.java:1921
属性 值 来源
最大堆叠 64(未覆写,Item 默认) ItemPamSeedFood 未调用 func_77625_d
耐久度 无 无 setMaxDamage 调用
可食用 是 —— 继承 ItemFood ItemPamSeedFood.java:19
饥饿值恢复 cropfoodRestore(配置项 cropfoodRestore,默认 1) ItemRegistry.java:912(配置默认值)
饱和度 config.cropsaturationRestore(默认 0.6) ItemRegistry.java:913
狼食物(isWolfFood) 恒为 false —— 构造器把它写死(ItemPamSeedFood.java:25) ItemPamSeedFood.java:25
可种植 是 —— 实现 IPlantable ItemPamSeedFood.java:20
种植出的方块 BlockRegistry.pamriceCrop | pamriceCrop ItemRegistry.java:1098
要求土壤方块 field_150458_ak ItemRegistry.java:1098

种植行为(ItemPamSeedFood.java:30-52)

  • EnumPlantType = Water(需在水面上种植)
  • 总开关:配置 enablecropitemsasseeds,默认 true(ItemRegistry.java:923);关闭后右键完全不响应。
  • 必须点击方块的顶面(par7 != 1 直接 return false)。
  • 水生分支:要求 y+1 是水且 meta 为 0、y+2 可放置,作物种在 y+2(ItemPamSeedFood.java:38-43)。

关联的种子物品

  • 种子:riceseedItem
  • 反向配方:riceseedItem 无序合成 1 个本物品(PamFoodRecipes.java:38-40 的 PamCropItems[i] → PamSeeds[i] 循环,受配置 enablecroptoseedRecipe 门控,默认 true)

获取方式(源码中登记的配方)

烤箱(Oven)

来源 配方
OvenRecipes.java:40 作为原料被加工为:ricecakeItem

磨(Quern)

来源 配方
QuernRecipes.java:23 作为原料被加工为:flourItem

作为材料被使用

下列合成台配方把本物品列为材料。分两类:经矿词典名匹配的,与把本物品以 Item 实例直接引用的。两者都是集合关系,已按 (来源, 产物) 去重。

经矿词典名匹配

来源 产物 命中的矿词典名 同一配方中的其它矿词典材料
PamFoodFishingCraftRecipes.java:18 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodFishingCraftRecipes.java:25 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodFishingCraftRecipes.java:32 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodFishingCraftRecipes.java:39 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodFishingCraftRecipes.java:46 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodFishingCraftRecipes.java:53 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodFishingCraftRecipes.java:60 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodFishingCraftRecipes.java:67 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodFishingCraftRecipes.java:74 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodFishingCraftRecipes.java:81 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodFishingCraftRecipes.java:88 sushiItem cropRice 砧板(toolCuttingboard)
PamFoodRecipes.java:100 flourItem cropRice 臼与杵(toolMortarandpestle)
PamFoodRecipes.java:255 ricesoupItem cropRice foodStock、烹饪锅(toolPot)
PamFoodRecipes.java:256 friedriceItem cropRice cropCarrot、cropOnion、listAllegg、煎锅(toolSkillet)
PamFoodRecipes.java:257 mushroomrisottoItem cropRice cropOnion、foodCheese、listAllmushroom、烤盘(toolBakeware)
PamFoodRecipes.java:258 curryItem cropRice cropChilipepper、foodCoconutmilk、foodSalt、listAllspice、深锅(toolSaucepan)
PamFoodRecipes.java:259 curryItem cropRice cropChilipepper、dustSalt、foodCoconutmilk、listAllspice、深锅(toolSaucepan)
PamFoodRecipes.java:260 curryItem cropRice cropChilipepper、foodCoconutmilk、itemSalt、listAllspice、深锅(toolSaucepan)
PamFoodRecipes.java:261 rainbowcurryItem cropRice 煎锅(toolSkillet)
PamFoodRecipes.java:264 beansandriceItem cropRice cropBean、cropOnion、listAllporkcooked、烹饪锅(toolPot)
PamFoodRecipes.java:265 beansandriceItem cropRice cropBean、cropBellpepper、listAllporkcooked、烹饪锅(toolPot)
PamFoodRecipes.java:266 beansandriceItem cropRice cropBean、cropChilipepper、listAllporkcooked、烹饪锅(toolPot)
PamFoodRecipes.java:270 beanburritoItem cropRice cropBean、foodCheese、foodTortilla、煎锅(toolSkillet)
PamFoodRecipes.java:271 stuffedpepperItem cropRice cropBellpepper、cropTomato、烤盘(toolBakeware)
PamFoodRecipes.java:272 veggiestirfryItem cropRice cropBean、cropBellpepper、cropCarrot、cropOnion、煎锅(toolSkillet)
PamFoodRecipes.java:273 veggiestirfryItem cropRice cropBellpepper、cropCarrot、cropChilipepper、cropOnion、煎锅(toolSkillet)
PamFoodRecipes.java:274 veggiestirfryItem cropRice cropBellpepper、cropCarrot、cropOnion、listAllmushroom、煎锅(toolSkillet)
PamFoodRecipes.java:275 veggiestirfryItem cropRice cropBellpepper、cropCarrot、cropOnion、listAllmushroom、煎锅(toolSkillet)
PamFoodRecipes.java:276 veggiestirfryItem cropRice cropBellpepper、cropCarrot、cropOnion、listAllmushroom、煎锅(toolSkillet)
PamFoodRecipes.java:396 chickencurryItem cropRice cropChilipepper、cropCoconut、cropGarlic、foodGroundcinnamon、foodPlainyogurt、listAllchicken、listAllspice、烹饪锅(toolPot)
PamFoodRecipes.java:401 orangechickenItem cropRice cropBroccoli、cropOrange、listAllchicken、listAllsugar、深锅(toolSaucepan)
PamFoodRecipes.java:499 sushiItem cropRice cropSeaweed、listAllfishraw、砧板(toolCuttingboard)
PamFoodRecipes.java:566 bamboosteamedriceItem cropRice cropBambooshoot、烹饪锅(toolPot)
PamFoodRecipes.java:568 cashewchickenItem cropRice cropCashew、listAllchicken、listAllpepper、深锅(toolSaucepan)
PamFoodRecipes.java:613 manjuuItem cropRice cropBean、listAllsugar、搅拌盆(toolMixingbowl)
PamFoodRecipes.java:615 generaltsochickenItem cropRice cropBroccoli、cropChilipepper、foodFlour、listAllchicken、listAllsugar、煎锅(toolSkillet)
PamFoodRecipes.java:616 californiarollItem cropRice cropAvocado、cropCucumber、cropSeaweed、listAllfishraw、砧板(toolCuttingboard)
PamFoodRecipes.java:617 futomakiItem cropRice cropCucumber、cropGinger、cropRadish、cropSeaweed、cropWintersquash、foodBoiledegg、砧板(toolCuttingboard)
PamFoodRecipes.java:704 dimsumItem cropRice cropWaterchestnut、foodDough、listAllmeat、listAllmushroom、烹饪锅(toolPot)
PamFoodRecipes.java:716 mochiItem cropRice listAllsugar、listAllwater、臼与杵(toolMortarandpestle)
PamFoodRecipes.java:742 deluxechickencurryItem cropRice foodChickencurry、foodMangochutney、foodNaan、砧板(toolCuttingboard)

矿词典(OreDictionary)

本物品注册进以下矿词典名。注意方向:注册进矿词典只代表本物品可被当作这些名字的材料使用,不代表它拥有这些名字对应的其他物品。

矿词典名 注册位置
cropRice PamFoodOreDictionaryRegistry.java:278

源码缺陷

  1. getPlantMetadata 恒返回 0(ItemPamSeedFood.java:79-81),所有 ItemPamSeedFood 作物只使用 meta 0。
  2. 构造函数签名收了 int amount, float saturation, boolean isWolfFood, … 四个语义参数,但实际只用了前两个,isWolfFood 在 :25 被替换成字面量 false —— 调用方无法通过构造参数改变它。
  3. 本物品被构造了两次(ItemRegistry.java:1097、1098),字段被后一次赋值覆盖:
    • 第 1 次(:1097)传入土壤 Blocks.field_150355_j
    • 第 2 次(:1098)传入土壤 Blocks.field_150458_ak,这一次的实例才是实际生效的(也是本条目表格里记录的那一个)
    • 两次构造的参数只有土壤不同,其余完全相同。第 1 次产生的实例是死对象,从未被注册。
    • 对水生作物而言这不影响玩法:ItemPamSeedFood.java:38-43 的水生分支完全不读 soilId,只看水方块与 meta 0。
    • ⚠️ 这正是「按调用点计数会虚高」的例子:new ItemPamSeedFood(...) 在本仓库出现 64 次,但只有 60 个不同变量。

相关条目

浏览全部模组