意外と解決は早かった。マオです。
フリーズ系のバグ2つと、動作系バグ1つを修正しました。
あまり細かくアップデート出したくないんだけど、さすがにこれは緊急性が高いと思ったので更新。
[マウスホイール機能のフリーズ]
この機能、指摘されなきゃ一生気付かなかったと思う(笑)
遮断プレートを貼り付けたブロックは特殊なブロックに置き換えられて、処理されているというのは仕様の方に書いてあるんだけど、この置き換えられる特殊なブロックは通常の方法で置かれるという事を想定していない。
プレートを使った時に、色々と処理を加えて置かれる事になっている。
で、色々な処理がスルーされちゃったので、描画する為のデータが無くて落ちたって感じみたいです。
問題は修正方法。
最悪のパターンとして、このブロックに対してスポイト機能を使ったら、全部土を返す処理にしようかと思ったんだけど、何やら閃いちゃって過去に使用した技術を使ったらうまく動いてしまった。
公式コードを弄る事になりそうな問題だったから助かったわ。
[UgoObjectを岩盤以下の位置に移動させるとフリーズ]
すっかり忘れてたパターン。
岩盤を引っぺがして下に落とすなんて、想定外です・・・。
一応、空の限界を超えた時のブロック再構成は、エラーも出さないで消滅するだけだったから、下もそうだと思ってたんだけど、高度0未満はメモリの対象外だったようです。
[高速で回転バグ]
単純に条件指定のミス。
もっと単純にしたので、もしかしたら処理速度アップした可能性もあります。
色々な人がUgoCraft使ってるようだけど、人柱版って事を忘れないでね。
そして大事なデータならバックアップも忘れずに!
悪あがき。マオです。
UgoCraft20120503を少しだけ修正しました。
一部、無駄な処理があったので、そこらへんを削った。
メインなループ部分なので、チリも積もれば何とやらで、速度アップしたと思いたい。
実はマルチでの描画は見えない部分まで描画してたのだが、今回のバージョンアップで見えない部分は描画処理しないようにしてみた。
多分、その分軽くなると思うんだけど、どうだろうか・・・。
ブロックと違って、常に表示更新されるから無駄な事やると、積み重ねが凄い事になるんだよね。
ゴールデンなウィークも今日で終わりになるし、コードを書くのも遅くなると思うので、とりあえずここで出しておく事にした。
次のアップは公式が来るのが先か、こっちのが先か・・・。
どっちにしても地獄を見るのは間違いない><
これは酷い。マオです。
今日、UgoCraftの不具合報告が来たんだけど、サーバ側の設定ファイルが反映されないという問題だった。
で、最低限の構成(ModLoaderMP、UgoCraft)で試した所、問題無く動いているので、他のModの仕業と言う事で返答しちゃったんだけど、大体の予想が付いていたので、追試として試してみたんだ。
UgoCraftには関係無いMinecraftForge(3.1.2#90)を一緒に入れてみたのね。
案の定、入れたら設定ファイルを読み込まない。
って事で、もしForgeを入れる人がいたら、注意してね。
ちなみに私はForgeが大嫌いなので、もしマルチ機能がForgeを介してしか実現できないようになったら、UgoCraftのマルチ機能はバッサリカットすると思います。
そうならないように、祈りたい所だね。
何かを作ってるとネタが増えて良いね。マオです。
コメントの方で、外国の方が○○Modの対応をしてくれないかとの話があったわけだけど、簡単に対応できるなら、既に全てのブロックが動いている事になるでしょうね。
で、よく聞くのがチェストの対応。
ぶっちゃけると、表には出す事はない実験版ってのがあるのだが、動かすだけなら簡単に動いちゃったりしている。
ただ、それはデータが動いているだけであって、見た目とかUgo objectからブロックに戻る際の複雑な処理を省いて動かしているので、特殊な事が起こると処理矛盾が起きたりする。
良い例が半ブロックと階段の回転処理だ。
取り外すのはもう簡単である。
既に対応するコードが書かれているので、許可するコードを一行加えるだけ。
しかし、戻す時はそうはいかない。
スライドは問題が少ないが、回転させた場合は向きが変わったり設置位置が変わったりと、面倒な事が起きる。
そこを、私がデータがどのように扱われているかを解析して、ブロックに戻る時に本来あるべきデータに変換してあげないといけない。
その作業をブロックの追加毎にやらなければいけないのだ。
それだけならまだマシだけど、さらにUgo object化した時の表示も、準備しなければいけない。
元ソースを改変して、何とか表示させてる状態なので、変わった事をしていると表示が出来なくなるのだ。
つまり・・・。
1.除去する時に、特殊な処理をするブロックである。
2.個別のデータを持っていて、設置後に書き換える必要があるブロックである。
3.特殊な描画が必要なブロックである。
4.設置場所の条件があるブロックである。
これが一つでもあると、作業が面倒になる。
チェストは全部引っかかってて、特に3番目の表示系は最悪。
過去のバージョンアップでチェストが開く処理さえ追加されていなければ、多分初期版で追加されてたはずなんだがなぁ(笑)
こんな感じで、簡単に出来る事と出来ない事があるのですよ。
分からない人はModを1個作ってみる事をお勧めするわ。
デバッグが足り無い気がする。マオです。
とりあえず、新バージョン上げました。
追加するブロックが階段と半ブロックとレッドストーントーチだけだと言ったな。
あれは嘘だ。
音符ブロックも追加してみた。
確か、これで演奏したいって人がいたような気がした上に、結構簡単に移動できるブロックだったのでサクっと対応できてしまったんだ・・・。
一ヶ月前の私凄いな、ちゃんとコードを書いていてくれた。
いくつか不具合も多分直ったはずだが・・・どうだろうか。
次回くらいにブロック混入のデッドロック問題を何とかしたいなぁ。
GWだから、まだ早くコードが書けたけど、これからはもっと遅くなるだろうな・・・。