https://linen.dev logo
ホームドアインジケータ
# forum
u
ご質問失礼します 自分のサーバーで車両が停止位置許容範囲に入ると光るホームドアインジケータを導入してるのですが、その仕組みがtestforコマンドをクロック回路で疑似的に常時実行してtestforの範囲に入るとレッドストーン信号が出てそれがインジケータにつながっている、というものなのですが、これだと斜めの駅などでうまく対応できないことがあるのと、クロック回路なのでサーバーの負荷が増えて困っています。 なにか打開策はないでしょうか、ご回答よろしくお願いします
h
KaizPatch+ATSA環境なら、停車検知+コンパレータでいけそう
いちどTestforでエンティティを取ってるのが良くない気がする、RTMの処理はATSAでやればRTM側で完結してRS出力取って来れるはずなので
u
それなら範囲が広くならないですかね?できれば1ブロック単位で理想は少数点で検知範囲を指定したいのですが
h
たしかにATSAの停車検知は確か車両中心のTileEntityか何かでやるので範囲広いかも
俺はむしろ、「RTMから処理を出してるから重いんじゃね。。。?」って考え IFTTTブロックで台車Entityが直上の座標範囲に入るかとかでやった方が良さそう(走査もスクリプト書けば1秒ごととかにできそうだし) コードすぐ書けないのでChatGPTあたり組み合わせてやると早いかもです(最近俺はもっぱら要件伝えてGPT-4o)
u
ありがとうございます!試してみます
台車検知だけならRTM純正の列車検知機でもできそうなきがするんですけど、何か違いはあるんでしょうか?
u
やつは精度が悪いです
具体的には、列車検知器は「車両Entity(つまりKaizPatch等が走査する車両中心Entity)」に対して、直上にあるかどうかを走査しています が、コード構造がどうやら「チェックイン、チェックアウト」のようで、Tick落ち等で車両Entityの離脱が分からないと、RS出力やSignalを保持する「バグ」のような特徴があります
u
ありがとうございます
ならIFTTTの台車検知しか無理ですかね、
u
そもそも俺からすれば、信号然り「Signal情報をワイヤーを通して流す」ことすら不安定になる要因と考えており RTM純正のSignalシステム自体が、極めて脆弱性の高いシステムだと考えています ゆえ、あえてIFTTTブロック等の直接制御を用いることで、IFTTT自身の座標をスクリプトで取得し、上に来た台車を2次元範囲で検知するのが望ましいかなあと
いっそRTM前提のMODを開発するって手もありますヨ❗️ それは時間的にも技術的にも長くなってしまうので、今のところはIFTTT+スクリプトか、ATSA+IFTTTが落ち着くところかなあと
つーか確かIFTTTでスクリプトじゃなく条件で台車検知できたよな
台車検知なら停車検知よりは幅狭くできるはず
u
ちょっと試してみますありがとうございます
GPTに台車検知を聞いてみたところこのような回答が返ってきたんですけど書き方はこれであってるんですかね
function doThat(event) { // デバッグ用ログ(必要なければ削除) print("doThat 呼び出し"); // 車両取得 var ent = event.vehicle; if (ent != null) { // 検知ポイント var tx = 3700.0, ty = 28.0, tz = 9119.0; var dx = ent.posX - tx; var dy = ent.posY - ty; var dz = ent.posZ - tz; var distSq = dx*dx + dy*dy + dz*dz; // 半径1ブロック以内で検知 if (distSq <= 1.0) { event.setRedstonePower(15); print("→ 範囲内検知!RS=15"); } else { event.setRedstonePower(0); } } else { // 車両いなければOFF event.setRedstonePower(0); } }
u
ワーどうだろ ChatGPTがRTM知ってるとは思えんしなあ
jsの書式はあってそう、メソッドは書き換えなきゃかも 教えてエロい人
5 Views