Techguns の銃の音がおかしいのを直した
Techguns という Minecraft の MOD があります。 銃や敵 mob を追加する MOD で、 1.7.10 の名作 MOD の一つです。 この MOD、プレイヤーが銃を撃つときの音が左ばかりから聞こえてきてしまう、という問題があります。 これを何とかしようとしました。
調査
まず、どうなっているのかを確認してみました。 jar を展開して、音声ファイルを聞いてみましたが、特に問題はありませんでした。 で、音を鳴らすロジックのほうに問題があるのではないか?と思い、 AI に class ファイルを解析させました。 すると、 Techguns の TGSound クラスに問題があることがわかりました。
MathUtil.Vec2 pos = MathUtil.polarOffsetXZ(
(double)this.field_147660_d,
(double)this.field_147658_f,
1.0,
(double)((EntityLivingBase)entity).field_70759_as * Math.PI / 180.0
);
座標系の取り扱いを間違えていたようです。
| 座標系 | 0°の方向 | 90°の方向 | 回転方向 |
|---|---|---|---|
| Minecraft | 南(+Z) | 西(-X) | 時計回り(負) |
| 極座標 | 東(+X) | 北(+Z) | 反時計回り(正) |
こういうことらしい。
修正
別に裏とかとってないんですが、まあ別に直せればなんだっていいので、そのまま Mixins とかいうやつでコードを差し替える MOD を作らせました。
で、これを入れてみたら直りました。すごいね。 Actions のビルドがこけてるのは、ビルド時に Techguns の jar が必要なのにリポジトリには入っていないからです。