表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
PR
24/25

おまけ3 レッサープログラマブルロジスティクスで書かれた、並列処理ライブラリの一部とか。

world.machine_insert(string: machine_uuid, string: input_uuid, table: recipe)


 指定されたストレージから、指定した機械へ、1対1で指定レシピの搬入を試みる。

 搬入が出来た場合、trueを返し、搬入が出来なかったり、素材が足りないと、falseを返す。

 素材が足りなかったら、搬入は行われない。


world.machine_pull(string: machine_uuid, string: output_uuid)


 指定された機械から、成果物の回収を試み、成功した場合はtrueを返しストレージに返される。

 失敗した場合は、falseを返す。





local _module = {}


_module["machines"] = {}


function _module.register_machine(uuid, machine_name)

if not _module["machines"][machine_name] then

_module["machines"][machine_name] = {}

end

table.insert(_module["machines"][machine_name], uuid)

end


function _module.parallel_machine_insert(machine_name, input_uuid, recipe)

if not _module["machines"][machine_name] then

return

end

for _, value in ipairs(_module["machines"][machine_name]) do

while world.machine_insert(value, input_uuid, recipe) do

end

end

end


function _module.parallel_machine_pull(machine_name, output_uuid)

if not _module["machines"][machine_name] then

return

end

for _, value in ipairs(_module["machines"][machine_name]) do

world.machine_pull(value, output_uuid)

end

end


return _module

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ