サニシェルによる汚染水除菌システム


Oxygen Not Includedにハマっている。これについて、主にTwitterでハッシュタグを用いて備忘録を残していたのだが、Twilogが使えなくなったため別の記録方法が必要になったのでnoteに記していくことにする。

概要

ポークシェルの変種であるサニシェルは、自身が漬かっている液体に病原菌が含まれていると、定期的に「洗浄」動作に入り、病原菌を減らしていく。
これを活用して、トイレの排水に含まれる食中毒菌を除菌して、無菌の汚染水とするシステムを構築した。
なお、言うまでもなく、塩素消毒室を作成する方が、永続的な人手もかからず、電力消費もずっと小さい。使うスペースも小さく済む。要するに完全なる道楽で、特に優れている点はない。
あえて言うなら、卵の殻と魚肉が手に入ることはサニシェルのメリットだが、はっきり言って両方パクーで十分なはず。撫でる手間もいらない。

「洗浄」の仕様

サニシェルの「洗浄」動作の仕様は次の通り。いや持続時間とかちゃんと調べてなくてすまない。

・サニシェル成体は、自身が漬かっている液体に病原菌が含まれていると、「洗浄」動作に入る。幼体は行わない。
・動作は10秒程度?持続する。1匹の1回の「洗浄」で、ざっくり2万germsくらいは除菌している。
・除菌は自身の下半身の1マスに直接行う。体内に液体を吸収するなどはしない。
・持続時間の完了か、除菌の完了によって「洗浄」は終了する。次の「洗浄」までには、ある程度のクールタイムがある。
・「洗浄」機能は、窮屈や不機嫌などのデバフによって性能が変化しない。卵が近くにある「護衛中」でもしっかりやってくれる。

体内にストレージを持つなどしないところと、デバフの影響を受けないところがうれしい。

実装

全体図
F6配管レイヤー
ShiftF2自動化レイヤー

全体は大きく4つの部屋に分かれている。

繁殖槽

毛づくろい端末のある部屋から下の水槽まで。この広さで3匹まで窮屈にならない。多すぎても人手がかかるので、これで十分。この繁殖力で、16人分の下水を、十分な余裕をもって除菌しきれている。
ポークシェル種は、350kg/tile以上の水に漬かっているとき、サニシェルの産卵率が上昇する。逆に、たとえサニシェル自身であっても、水に漬かっていないとポークシェル原種の産卵率が上昇する。
一方で、350kg/tileという数字は、水没判定の閾値でもある。よって、生活の大部分を水中で過ごしつつ、毛づくろいも可能な構成とした。
高確率で生まれるサニシェルの卵を掃除機で回収して孵化槽に送り込んでいる。コンベア回路が面倒なので、低確率で生まれるポークシェル原種も、いったん孵化槽に送っている。
1つ失敗があり、給餌器を置くスペースを取り忘れた。現在は定期的に格納庫に人力で片付けを利用して餌を持ってこさせている。

孵化槽

孵卵器がある部屋。AdvancedNote式の省電力化回路を組み込んである。
繁殖槽で生まれた卵は、この部屋に落ちる。孵卵器は、2台あれば3匹分の産卵をほぼ常時孵化促進できる。
この部屋の動物解放ポイントは、0匹設定で余剰縄かけON。生まれたサニシェルは、繫殖槽が足りていなければそちらで、足りていれば次の保育園で解放される。ポークシェル原種は、別の場所のボイラー室に送られて蒸し焼きにされる。ゴメンね!

保育園

孵化槽の左にある、幅1マスの部屋と、左上の空気式ドアがたくさんある部分。
サニシェル幼体は2マスの高さを飛び越えられないため、この1マスから動かずに成体になるまで待機することになる。どうせ幼体には洗浄能力がないので問題ない。保育園とは名ばかりの放置プレイだ。
成体になると、2マスを飛び越えて左上の部屋に入れるようになる。この部屋はCritterDropperの回路が組み立てられており、サニシェルは下の浄水槽に落ちていく。

浄水槽

サニシェルたちが餓死するまで馬車馬のように働く地獄。
ここの回路は、変異検出の回路を除いて、自分で考えたものなので詳細を記しておく。回路図は複雑だが、おおまかには以下のようになっている。

①左下の病原菌センサーが、除菌完了を検知、メモリスイッチのSETポートをたたいてポンプが起動、排水開始。
②バッファ回路によってしばらくポンプが起動。排水完了後、RESETポートをたたいてポンプが停止。
③ポンプの停止を変異検出回路で検知、バッファ回路によって、しばらく排水口を開けた後、閉じる。

上に明記していない回路について補足。
・病原菌センサーの下につながったフィルター回路
これは、菌がなくなった瞬間にはポンプを作動させず、しばらく無菌を維持出来たら除菌完了と判断してポンプを作動させるために入れている。
これがないと、たまたまサニシェルが病原菌センサーのマスに固まって除菌を完了したとき、右の2マスはまだ除菌が完了できていない可能性がある。また、新しく菌付き汚染水を投入した直後にサニシェルが除菌を完了してしまうと、排水口が開きながらポンプも作動することになってしまう。
5秒で十分だが、長いほど安全。

・病原菌センサーの左のフィルター回路
これは、一度菌付き汚染水がなくなってしまった場合の再起動用回路となっている。
この回路の仕様上、一度菌付き汚染水が完全になくなって、供給も途絶えてしまった場合、その後再び菌付き汚染水を供給しようとしても投入口が閉じたままになってしまう。そこで、100秒間無菌状態が維持された場合は、浄水施設に汚染水がないと判断し、投入口を解放する。100秒もいらないかも。

・除菌完了した水の出口にある病原菌センサーと液体遮断器
念のため、菌付きの水が排水されてしまった場合に備えて、菌付き水を検知して液体貯蔵庫にストックし、再度浄水槽に注水させる配管・回路。

その他

汚染水のまま除菌をしているので、一度に投入する菌付き水は、1回の「洗浄」動作で除菌が完了できる量にするのが望ましい。大量投入をしてもいずれは無菌化可能だが、「洗浄」のクールタイム中には菌が増えるのでもったいない。
菌付き水を投入する秒数を決めている左上のバッファ回路は、おおむねサニシェル成体の数の0.6倍程度の秒数を指定しておくと、高効率で除菌ができる。繁殖槽3匹の今回の場合だと、10秒くらい。
ポンプの排水時間を決めている右下のバッファ回路は、左上のバッファ回路より4秒程度長く設定する。除菌した水を確実に排水しきってからポンプを止めるため。

まとめ

100サイクル以上安定して、16人分の下水の除菌を、下水の「生産」より早く行うことができた。ただし、冒頭に書いた通り、はっきり言って誰得の施設となった。
まあ、システム構築の練習記録として、残しておくことにする。

いいなと思ったら応援しよう!