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 が必要なのにリポジトリには入っていないからです。