Factorio Mod を作成したみた。~レシピの追加:グレバ編~

Factorio Mod を作成したみた。~レシピの追加:グレバ編~

はじめに

ウルガヌス、フルゴラ辺に引き続き宿敵グレバでレシピを追加していきます。
何度でも書きますが、宿敵ですので超簡易化します。

とくに今までと新しいことはありません。
気にするところは、グレバ特有の腐敗時間の調整方法くらいでしょうか。

レシピなどの追加方法(おさらい)

Modのデータは data.lua ⇒ data-update.lua ⇒ data-final-fixes.lua の順で読み込まれ登録されていく。
final-fixesが他のModのupdateを読み込んだあとに読み込まれるので何も考えずに適応させるにはいいらしいとのこと。
フォルダ構成はこんな感じ。

-mod_name
|-locale
 |-ja
  |-mod_name.cfg
|-info.json
|-data.lua
|-data-update.lua
|-data-final-fixes.lua

data-final-fixes内に追加したいレシピを書き込んでいくことにします。

レシピの作り方(おさらいその2)

baseのデータが\\SteamLibrary\steamapps\common\Factorio\data\base\prototypes\recipe.luaに保存されています。これを参考にしましょう。もしくはここ

保存されているデータを閲覧する際は思わぬ更新に注意してください。

data:extend
({
  {
    type = "recipe",
    name = "speed-module",
    enabled = false,
    ingredients =
    {
      {type = "item", name = "advanced-circuit", amount = 5},
      {type = "item", name = "electronic-circuit", amount = 5}
    },
    energy_required = 15,
    results = {{type="item", name="speed-module", amount=1}}
  },
})

例としてスピードモジュールのレシピを持ってきました。意外と簡単。
その他のオプションはmod portal に記載があります。
これをdata-final-fixes.luaに書き込めばレシピが追加されます。

追加するレシピ

倍加レシピを追加します。
ギリギリグレバ感を残しつつレシピを追加しています。

電子基板鉄+銅線+腐敗物
埋立地石+腐敗物
特殊バイオ素材オリジナルレシピ 倍加用素材
発射に必要なものに倍加レシピを追加(14種)元素材+特殊バイオ素材

オリジナルの素材を用意しました。
鉄、銅のバクテリア+バイオ素材=特殊バイオ素材を作れるようにしました。腐敗時間24時間。
この腐敗素材とロケット発射までに必要な素材を合わせることにより、倍になるレシピとしました。
腐敗時間も長めに設定しているので、基本的に素材はあまります。

アイテムの追加方法

今回はオリジナルアイテムを追加しました。
アイテムの追加方法はレシピの追加と構文はさほど変わりません。
Baseデータのbiofluxを丸パクリしましょう。
変えた部分は、名前・画像・腐る速度です。24時間!!!!!!!!!!

data:extend({
    {
    type = "item",
    name = "special-bioflux",
    icon = "__add-original-for-bobs__/graphics/icons/special-bioflux.png",
    subgroup = "agriculture-products",
    order = "a[organic-processing]-b[bioflux]",
    inventory_move_sound = space_age_item_sounds.agriculture_inventory_move,
    pick_sound = space_age_item_sounds.agriculture_inventory_pickup,
    drop_sound = space_age_item_sounds.agriculture_inventory_move,
    fuel_category = "food",
    fuel_value = "20MJ",
    stack_size = 200,
    default_import_location = "gleba",
    spoil_ticks = 24 * hour,
    spoil_result = "bioflux",
    weight = 0.25 * kg,
    capsule_action = item_effects.bioflux_speed_and_regen
  },

})



テクノロジーの適用(おさらいその3)

グレバの到着に追加していきます。

local my_custom_recipes = {
--ここに設定したレシピをいれてく。
  "vanilla-electronic-circuit-2",
  "vanilla-advanced-circuit",
・・・・
} 

local tech = data.raw.technology[""planet-discovery-gleba"] --追加したいテクノロジー名
if tech then
    tech.effects = tech.effects or {}
    for _, recipe in pairs(my_custom_recipes) do
      table.insert(tech.effects, {
        type = "unlock-recipe",
        recipe = recipe
      })
    end
end


レシピを追加した後にループで追加すれば研究後に開放するようになります。
レシピを追加する前にやると当然設定されません。

完成版

※全惑星でレシピ追加してます。


おわりに

宿敵でも超簡単に攻略するようにできました。
惑星によってい好き嫌いが分かれると思うので、ストレスレスでやりたい方は惑星に応じた超簡易レシピ追加はありだと思います。
楽しんでなんぼ。

次回、最後はアクィロ。

コメント