turi_config.lua
turi_config.lua
コンフィグファイルですが実態はLuaのソースコードそのものです。
ここでオーバーライドする関数を記述してしまうのは暴挙なのかアリなのか。
----------------------------------------------------------- -- turi_config -- 自動釣りプログラムの設定ファイル -- @author 琴葉茜(さとうけい) ----------------------------------------------------------- local config = {} local turi = {} local hokyu = {} local save = {} ------------------------------------------------------------------------------- -- 動作設定 ここから -- 方向は、[forward / up / down / right / left / back]のどれかを使ってね ------------------------------------------------------------------------------- ----------------------------------------------------------- -- 釣り設定 ----------------------------------------------------------- ------------------------------------- -- 釣りをする方向(水ブロックの方向) turi.dir_fishing = 'forward' ------------------------------------- -- 焼ける魚をしまうチェストの方向 -- (bunruiをオーバーライドする場合はこれは使われないよ) turi.dir_store_fish = 'down' ------------------------------------- -- 焼ける魚以外をしまうチェストの方向 -- (bunruiをオーバーライドする場合はこれは使われないよ) turi.dir_store_other = 'down' ------------------------------------- -- 釣りの待ち時間 turi.wait_fishing = 25 ------------------------------------- -- 統計情報を自動読込するかどうか turi.stats_auto_load = true ------------------------------------- -- 統計情報保存時に追加モードで書き込むかどうか turi.stats_save_add = false ------------------------------------- -- 釣り結果出力ファイルのパス turi.stats_result_path = '/stats/turi.csv' ------------------------------------- -- 釣り結果出力ファイルのパス turi.stats_items_path = '/stats/turi_items.csv' ----------------------------------------------------------- -- 燃料補給設定 ----------------------------------------------------------- ------------------------------------- -- 燃料チェストの方向 hokyu.direction = 'right' ------------------------------------- -- 燃料確認間隔(秒) hokyu.wait = 60 ------------------------------------- -- 燃料補給閾値 -- Fuel levelがこの数値未満になったら補給するよ hokyu.threashold = 100 ------------------------------------- -- 燃料十分量 -- 補給時、Fuel levelがこの数値以上になったら補給を完了するよ hokyu.enough = 100 ----------------------------------------------------------- ------------------------------------- -- 釣りの最大回数 -- 指定回数釣りしたら止まるで -- nilまたはfalseを設定すると無制限に釣りを繰り返すよ config.turi_limit = 1000 ----------------------------------------------------------- -- 釣り結果を保存するファイル ----------------------------------------------------------- ------------------------------------- -- 出力頻度。釣りを何回したら出力するか save.frequency = 1 ------------------------------------- -- 釣りオブジェクトの走査間隔(秒数) save.interval = 10 ----------------------------------------------------------- -- gomi_bunrui チェスト設定 ----------------------------------------------------------- ------------------------------------- -- ゴミ箱の方向 -- 皮ブーツとか、チェストが山盛りになるやつはゴミ箱行きやで local dir_store_gomi = 'up' ------------------------------------- -- 釣果チェストの方向 -- ゴミ以外は全部こっちに入れるよ local dir_store_other = 'down' ------------------------------------------------------------------------------- -- 動作設定 ここまで ------------------------------------------------------------------------------- ----------------------------------------------------------- -- 自動釣りアイテム分類関数オーバーライド ----------------------------------------------------------- ----------------------------------------------------------- -- アイテムがゴミかどうか調べるよ -- 長時間放置が前提だから -- 皮ブーツとか釣り竿はチェストが溢れんようにゴミ扱いやで ----------------------------------------------------------- local function kore_gomika(item_detail) -- 革ブーツ・釣り竿、水入り瓶、サドルならゴミや for _i, v in ipairs { 'isLeatherBoots', 'isFishingRod', 'isWaterPotion', 'isSaddle', } do if identify[v](item_detail) then return true end end return false end ----------------------------------------------------------- -- しまっちゃおうねAPIに渡す分類コールバック関数やで -- この関数で自動釣りAPIのアイテム分類関数をオーバーライドするよ -- -- スロットを調べて、ゴミアイテムならゴミ用チェスト行きや -- ゴミでも魚でもなければ釣果用チェストにしまうで -- 魚の場合はスタックがいっぱいなら釣果用チェストにしまうよ -- -- @param slot_no [in]対象スロット番号 -- @param force [in]trueの場合はスタックいっぱいじゃなくてもしまうよ -- @return しまったらture / しまわなかったらfalse ----------------------------------------------------------- local function gomi_bunrui(slot_no, force) local item_detail = turtle.getItemDetail(slot_no) -- 対象のアイテム情報やで if not item_detail then return false end -- スロットが空ならなにもしないよ -- ゴミチェック if kore_gomika(item_detail) then print('gomibako ikiya') return dir_store_gomi -- コイツはゴミ箱行きや end if identify.isFish(item_detail) then -- 魚やろか? -- 魚の場合、スタックいっぱいやなかったら何もしないで if not force and turtle.getItemSpace(slot_no) ~= 0 then return false end end print('slot '.. slot_no ..' wo simau yo!') -- しまうで~ return dir_store_other end turi.bunrui = gomi_bunrui ----------------------------------------------------------- turi.hokyu = turtlefuel.new(hokyu) config.turi = turi config.save = save return config