hogepiyo

かつてはマイクラのModを作っていたがひざに矢を受けた

2013-01-01から1年間の記事一覧

Forge1.7.2+IDEA

1.6.4のままだとクライアントが起動しないのでクライアントの実行時引数(Program arguments)に --accessToken anythingを追加する.起動するが, どうやらChestGenHooksでIllegalAccessErrorが起きてクラッシュする. まだ早い.

IDEA+Gradleでわいわい

IDEAについて Eclipseと同じIDE(統合開発環境)で, 正式名称は「IntelliJ IDEA」. IntelliJ IDEA — The Best Java and Polyglot IDEからDLできる. Ultimate Edition(有料)とCommunity Edition(無料)がある. Eclipseと違って日本語化されていないので注意. 解…

Forge Gradleインストール手順和訳

https://github.com/MinecraftForge/MinecraftForgeのREADME.TXTにあるMod開発者向けのGradle導入方法についての和訳 原文 For Mod Devs:Download the latest Forge source distribution from http://files.minecraftforge.net and unzip it to a folder. Op…

langファイルによるローカライズについて

LanguageRegistryとさよならしよう Forge for minecraft 1.6.2から, assets/(.*)/lang/*.langファイルを自動で読み込んでくれるようになった. そのためもういちいちコード内でLanguageRegistry.addName()やloadLocalization()のようなメソッドを呼ぶ必要がな…

チュートリアル案

基礎 クラフトレシピの追加 精錬レシピの追加 テクスチャのアニメーション コンフィグの追加 Item関連 無機能Item 食糧の追加 ツールの追加 武器の追加 弓の追加 防具の追加 Itemのカスタムレンダリング ItemのNBT同期 Block関連 無機能Blockの追加 既存レン…

Minecraft 1.6 Modding, BindTextureについて

BindTextureの変更点 TileEntitySpecialRendererやRenderEngineなどで利用していたBindTextureがリソースパックへの変更により, リソース切り替えになった. 現在ネームテーブルはまだ連番であるが, 対象のメソッドは以下の通り. TileEntitySpecialRenderer#f…

開発環境と実環境の検出とか

開発環境と実環境の違い 開発環境と実環境は同じなようで違う. 1つは開発環境で操作するプレイヤーは, IDが適当(Player+数字)なことと, 実行時のクラス名, フィールド名, メソッド名が違うこと. 1.4まで 1.4までは開発環境ではdeobfuscate, すなわち難読化解…

忘れてた

1.5preに対応しただけで以降に対応するのを忘れていた。これはLoLの仕業。

minecraft 1.5 テクスチャについてちょっとまとめ

1.5のテクスチャ形式 forge側ではgetTextureFileなどはあるが, 意味がない(どこからも呼ばれない). そのため基本的にはバニラの新しいIcon形式に合わせる必要がある. テクスチャの設定 基本的にはiconIndexがIconになっただけで, getIconFromSide()などもIco…

Eclipseは神

Eclipseは神 EclipseってJavaメインのIDEで, 他の言語はエディタとして使えるくらいの認識だった. C/C++/C#ならVS2012expressでいいが, いざPythonやRubyをいじってみようと思うとWindows環境ではプロンプト+エディタみたいな形になって, あまりスマートで…

BonemealEventの利用

BonemealEventを使ったModの作成 BonemealEventは追加した苗木を木に成長させたり, 追加した作物を成長させるのに使えるEventである. 土ブロックを草ブロックにするMod @ForgeSubscribe public void dirtToGrass(BonemealEvent event) { EntityPlayer player…

ElvenTools, 自作Mod紹介

ElvenTools 9種類の弓と弓の材料を追加するMod. 追加弓 レザーロングボウ(画像左下) ベースとなるスタンダードな弓, 材料はこのModで追加される黒檀の木. 攻撃力はバニラの弓と同じだが, 耐久とエンチャント補正が高い. コンポジットロングボウ(画像下) 鉄で…

DwarvenTools, 自作Mod紹介

DwarvenTools ミスリル, エボニー鉱石の追加, それに伴うツールの追加, 地下生活に重点を置いたMod. 追加ツール 黒曜石, ラピス, レッドストーンツール ラピスはラピスブロックで, レッドストーンはレッドストーンブロック(1.4.7版はRSブロックが追加, 1.5か…

Ozen, 自作Mod紹介

Ozen Ozenは6個のブロック/アイテムを展示出来る. Ozen自体は足ありの御膳と足なしの折敷があり, 色は7色ある. SS 柵の上にのせてテーブルのように. 竹Modと組み合わせて和風に(アイテムのテクスチャも変えています). レシピ, DL レシピ -> reginn666 @ ウィ…

Toolrack, 自作Mod紹介

Toolrack 使い方 アイテムを持った状態でToolrackを右クリック. 手持ちのアイテムがToolrackに設置される. 回収する場合は, 何も持っていない状態でアイテムが設置されたToolrackを右クリックすれば回収できる. 仕様と不具合 アイテムしか飾れない エンチャ…

Lamp, 自作Mod紹介

Lamp (左から, Lantern, Glow Lantern, Gold Lantern, Diamond Lantern) Lantern Lanternはバニラの光量15より明るい範囲がxz平面で1マス多い(あまり体感しないが), スタンダードな光源. 鉄とガラスが必要になるが, たいまつの上位ブロック. Glow Lantern Gl…

MinecraftForgeEventの種類

Eventの種類 MinecraftForgeのEventには以下の3つがある. EVENT_BUS TERRAIN_GEN_BUS ORE_GEN_BUS ForgeSubscribeアノテーションを付与したメソッドでも, 適切なEVENT_BUSにregisterしないとフックをかけれらない(メソッドが呼ばれない). terraingen以外のEv…

UseHoeEventの利用

UseHoeEventを使ったModの作成 UseHoeEventはプレイヤーがクワを使ったときに呼ばれるEvent. 利用方法がだいぶ限定されている気はするが, やはりアイデア次第. ダイヤクワのみ範囲耕作になるMod 今回はForgeSubscribe以下のメソッドのみ. 前回のPlayerSleepI…

PlayerSleepInBedEventの利用

PlayerSleepInBedEventを利用した簡単なModを作成 PlayerSleepInBedEventはプレイヤーがベッドで寝ているときに割りこまれるイベント. これを使うことで「ベッドに寝てるときに」何かすることができる. ベッドで寝るとライフが回復するMod と, いうわけでさ…

拡張for文とGuavaのCollection

拡張for文 拡張for文はIteratableなものに使える便利なfor文. Moddingでよく使うList, Set, Map全て拡張for文で書ける.ListやSetはこのように for (T var : list) { // varで各要素を参照できる } Mapはちょっと違うので注意 for (Map.Entry<K, V> entry : map.ent</k,>…

PlayerInteractEventの挙動

PlayerInteractEventについて PlayerInteractEventは, EntityInteractEventと似たEventで, プレイヤーがブロックやアイテムを右クリック(左クリック)したときに割りこまれる.このEventを使って, 特定のアイテムを持った状態で元々GUIを持つブロックを右クリ…

HasResultなEvent

概要 EventのクラスにCancelable以外にEvent.HasResultアノテーションが付与されいてるEventがある. たとえば骨粉で成長促進させるためのEvent, @Cancelable @Event.HasResult public class BonemealEvent extends PlayerEvent { ... } HasResultアノテーシ…

CancelableなEvent

概要 Eventにはそのクラス自体にCancelableアノテーションが付与されているものがある. たとえば @Cancelable public class AttackEntityEvent extends PlayerEvent { ... } CancelableなEventではsetCanceled(bool)が呼べる. このsetCanceled()というのは, …

Forge Eventについて

概要 1.3以降のForgeから, 従来のHandlerの多くがEventに変更された. インタフェースを継承し, 実装するHandlerと異なり, Eventはアノテーションによって呼び出されるメソッドが指定される. Bukkit PluginのEventHandlerと同じ形式でもある. 基本的な使い方 …