ロジック初心者が行くロジック制作#1

皆さんどうもいつも通りの人です。
元旦ですね。
コタツにこもってmindustryをしましょう!!
ロジックを作りましょう!!
というふざけた前置きはさておき、
今回から不定期でロジック初心者が行くロジック制作をやっていくことにしました。
分かっている範囲で作り、挑戦し、解説する流れです。
初心者とは言いましたが軽くプログラミングは触っているレベルです。
…大体コピペですけど…
さて今回作るのはこちらのロジック。
発電機の稼働停止を防止するロジック
ですね。
ちょっとよく何言ってるかよく分からないという人のために解説しますと
前線などで電力を使い過ぎて気づいたら電力がマイナスになっていた…
誰しもが一度は経験したことでしょう。(たぶん)
するとインパクトリアクターに冷却水が作られなくて止まっていたり…
トリウムリアクターが爆発してたり…と
復旧は意外とめんどくさかったり…
しかも資源がジリ貧だった場合は生産も止まってますし、復旧すらもできません。
そんなときのために、役に立つロジックを作りましょう!!
ダイオード?あれややこしすぎるから今回はロジックでやる。
イメージ
制作にあたりどのような条件で反応するのかをまとめます。
1.電力が減り始めたら発電側から前線側への送電を停止する
2.前線側から発電側には常時送電できるようにする。
の二つがメインになります。
制作
1.電力が減り始めたら発電側から前線側への送電を停止する
問題はどうやって減っているかを検出するかです。
出力が発電量よりも大きい…?
これはダメなんです。
通常時、発電側と前線側は同じ電力のため、難しいです。
それにマイナスになっているのは電力が枯渇しかけているときだけとも限りませんし。
(例:ウェーブの敵で電力が負になっているが、倒し終わったら通常に戻る)
ならば貯蔵量の一定の割合以下だったら接続を切ればいいのでは…?
検証を繰り返した結果、
ノードにつないだ際に接続ノード先の貯蔵量を調べるにはセンサーで
@PowerNetCapacity
を使うと返り値が貯蔵量になり、
@PowerNetStored
の返り値が現在の貯蔵量らしいです。
(返り値=特定のデータを要求した際に帰ってくる値。今回の場合だと貯蔵量を要求している。)
割合を求めるなら@PowerNetStored / @PowerNetCapacity
で割り出せますよね。
満タン時は値は1、
スッカラカン時は値は0です。
今回は貯蔵量が全体の6%を下った際に送電を止めましょう。
2.送電を止める
ここが意外と難関でした。
ややこしいです、ホントにもう。
送電を停止させるために試行錯誤しました。
ノードを活動停止させようとしたり
バッテリーを止めて送電させようとしたり…
最終的にまとまったのはダイオードを停止させる方法です。
ダイオードは矢印側の電力が少なかったら元側から電力を送るブロックです。
これを二個逆向きにつなぎます。
すると電力を左右で同じぐらいにすることができます。
あとは任意のダイオードを停止させるとその向きに送電はされなくなります。
3.ロジック組む
あとはロジックを組むだけです。
向きに注意してください。
左側に発電機のノードとつないで、
右側に前線側のノードとつないでください。
くれぐれもバッテリーは消さないように…
以上で完成です、お疲れ様でした!!
完成品のDLはコチラから。
ロジックの解説はコチラから
ナイス記事