[解決]光源ブロックの作成について

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.39773)

[解決]光源ブロックの作成について

投稿記事by f04041 » 2012年5月21日(月) 15:22

光源ブロックを作成しようとしソースを作成、エラーが出なかったのでそのままMODの形にした所以下の写真の様な状態(ブロックは光っているが周囲のブロックが照らされない)になりました。
どこがいけないのか分からないため御教授願えませんでしょうか。
後、色の乗算機能を利用したつもりなのですが適用されていないようだという事、MLPropを利用したかったのですがソースに入れるとエラーが出てしまう事の二つの事象についても御教授願えると助かります。
どうかよろしくお願いします。

mod_gmelon.java
コード: 全て選択
package net.minecraft.src;


public class mod_gmelon extends BaseMod
{
   
     public String getVersion() {
         return "1.2.5";
}
     
     public static Block gmelon;
     
     public void load() {
         
        gmelon = new BlockGmelon(202).setHardness(0F).setResistance(6000.0F).setLightValue(15.0F).setBlockName("gmelon");
        ModLoader.registerBlock(gmelon);
        gmelon.blockIndexInTexture = 136;
        ModLoader.addName(gmelon, "Glittermelon");
       
       
        ModLoader.addRecipe(new ItemStack(gmelon, 1),
        new Object[]{"XXX","XXX","XXX",
           Character.valueOf('X'),Item.speckledMelon     
        });

        ModLoader.addRecipe(new ItemStack(gmelon, 1),
        new Object[]{"X","Y",
           Character.valueOf('X'),Item.ingotGold,Character.valueOf('Y'),Block.melon
        });

        ModLoader.addRecipe(new ItemStack(Item.speckledMelon, 9),
        new Object[]{"X",
           Character.valueOf('X'),mod_gmelon.gmelon
        });

     }
}


BlockGmelon.java
コード: 全て選択
package net.minecraft.src;

import java.util.Random;

public class BlockGmelon extends Block
{
    protected BlockGmelon(int par1)
    {
        super(par1, Material.circuits);
    }


   /**
     * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
     */
    public int getBlockTextureFromSideAndMetadata(int par1, int par2)
    {
        return par1 != 1 && par1 != 0 ? 136 : 137;
    }

    /**
     * Returns the block texture based on the side being looked at.  Args: side
     */
    public int getBlockTextureFromSide(int par1)
    {
        return par1 != 1 && par1 != 0 ? 136 : 137;
    }

    public int idDropped(int i, int j,Random random)
    {
        return this.blockID;
    }
    public int quantityDropped(Random random)
    {
        return 1;
    }

 public int getRenderColor(int i)
        {
            return 0xffd700;
        }

}
添付ファイル
2012-05-21_15.13.47.png
mod_gmelon.zip
(2.64 KiB) ダウンロード数: 2 回
最後に編集したユーザー f04041 [ 2012年5月22日(火) 12:09 ], 累計 1 回
MOD作成再開し始めました。
f04041'sMODs
私のMODに関する急ぎの質問はトピックよりもtwitterの方が対応速いです多分。
アバター
f04041
ID:5ecb5cd0
石炭掘り
 
記事: 243
登録日時: 2011年8月07日(日) 22:39

  • (PostNo.39845)

Re: 光源ブロックの作成について

投稿記事by 邑希鎧斗 » 2012年5月21日(月) 19:03

MLPropを使用した時のソースはないのでしょうか?
MLPropクラスがMLPropを使用出来るようになってないのか記述が悪いのかは実際にエラーの出てるソースが無いと判断付きません。

他のブロックに光量計算がされないのは光源レベルが1より大きく無いと効果が無いのと
ブロックの置き方によってはマイクラのバグで光源が1扱いになります。

暗い部屋の床に置いた状態で再テストしてください。
気まぐれで作りたいと思ったMOD作ってます。
詳細は下記にて
邑希商会MOD事業部
アバター
邑希鎧斗
ID:261888df
レッドストーン掘り
 
記事: 528
登録日時: 2011年8月24日(水) 14:12

  • (PostNo.39998)

Re: 光源ブロックの作成について

投稿記事by f04041 » 2012年5月22日(火) 08:33

邑希鎧斗 さんが書きました:MLPropを使用した時のソースはないのでしょうか?
MLPropクラスがMLPropを使用出来るようになってないのか記述が悪いのかは実際にエラーの出てるソースが無いと判断付きません。

他のブロックに光量計算がされないのは光源レベルが1より大きく無いと効果が無いのと
ブロックの置き方によってはマイクラのバグで光源が1扱いになります。

暗い部屋の床に置いた状態で再テストしてください。


分かりました。やり直してみます。ありがとうございました。
MOD作成再開し始めました。
f04041'sMODs
私のMODに関する急ぎの質問はトピックよりもtwitterの方が対応速いです多分。
アバター
f04041
ID:5ecb5cd0
石炭掘り
 
記事: 243
登録日時: 2011年8月07日(日) 22:39

  • (PostNo.40004)

Re: 光源ブロックの作成について

投稿記事by f04041 » 2012年5月22日(火) 10:24

修正した所、光源とMLPropに関しては直りました。ですが色の乗算機能がやはり機能しません。昨日ツイッターの方でメソッドが違うという指摘をいただいたのですが教えていただいたメソッドを利用しても変化がありませんでした。どなたかどこが間違っているか分かる方いらっしゃらないでしょうか。
mod_gmelon.java
コード: 全て選択
package net.minecraft.src;

public class mod_gmelon extends BaseMod
{
    public String getVersion()
    {
        return "1.2.5";
    }

    public static Block gmelon;
    @MLProp(name = "gmelon", info = "Gmelon Item ID")
    public static int gmelonId = 202;
    public void load()
    {
        gmelon = new BlockGmelon(gmelonId).setHardness(0F).setResistance(6000.0F).setLightValue(1.0F).setBlockName("gmelon");
        ModLoader.registerBlock(gmelon);
        gmelon.blockIndexInTexture = 136;
        ModLoader.addName(gmelon, "Glittermelon");
        ModLoader.addRecipe(new ItemStack(gmelon, 1),
                new Object[] {"XXX", "XXX", "XXX",
                        'X', Item.speckledMelon
                             });
        ModLoader.addRecipe(new ItemStack(gmelon, 1),
                new Object[] {"X", "Y",
                        'X', Item.ingotGold, 'Y', Block.melon
                             });
        ModLoader.addRecipe(new ItemStack(Item.speckledMelon, 9),
                new Object[] {"X",
                        'X', mod_gmelon.gmelon
                             });
        }   
}


BlockGmelon.java
コード: 全て選択
package net.minecraft.src;

import java.util.Random;

public class BlockGmelon extends Block
{
    protected BlockGmelon(int par1)
    {
        super(par1, Material.wood);
    }

    /**
     * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata
     */
    public int getBlockTextureFromSideAndMetadata(int par1, int par2)
    {
        return par1 != 1 && par1 != 0 ? 136 : 137;
    }

    /**
     * Returns the block texture based on the side being looked at.  Args: side
     */
    public int getBlockTextureFromSide(int par1)
    {
        return par1 != 1 && par1 != 0 ? 136 : 137;
    }

    public int idDropped(int i, int j, Random random)
    {
        return this.blockID;
    }
    public int quantityDropped(Random random)
    {
        return 1;
    }

    public int colorMultiplier(int i)
    {
        return 0xffd700;
    }
}
MOD作成再開し始めました。
f04041'sMODs
私のMODに関する急ぎの質問はトピックよりもtwitterの方が対応速いです多分。
アバター
f04041
ID:5ecb5cd0
石炭掘り
 
記事: 243
登録日時: 2011年8月07日(日) 22:39

  • (PostNo.40006)

Re: 光源ブロックの作成について

投稿記事by 御津凪 » 2012年5月22日(火) 10:34

f04041 さんが書きました:
コード: 全て選択
    public int colorMultiplier(int i)
    {
        return 0xffd700;
    }

ではなく、
コード: 全て選択
    public int colorMultiplier(IBlockAccess par1IBlockAccess, int par2, int par3, int par4)
    {
        return 0xffd700;
    }

では?

あと、オーバーライドする関数には @Override を付けたほうが実装ミスを防げますよ。
質問に答え、MODを制作し、身内系鯖主でそのワールドを使ってニコニコで東方鉱工芸動画を投稿してる人。
因みに名前は「みつなぎ」と読みます。
Modding近況 : マルチであだ名をつける MOD を最新対応させるための時間が... - 私の製作したMOD達はこちらからどうぞ
リアル近況 : 時間の割り振りで色々と厳しい
アバター
御津凪
ID:149c9510
石炭掘り
 
記事: 191
登録日時: 2012年1月05日(木) 01:01
お住まい: 北の国

  • (PostNo.40014)

Re: 光源ブロックの作成について

投稿記事by f04041 » 2012年5月22日(火) 11:06

御津凪 さんが書きました:


おお、助かりました。ありがとうございます。
@overrideなのですが使用の仕方がいまいち解らない為手をつけていないんですよね;
ともあれありがとうございました!
MOD作成再開し始めました。
f04041'sMODs
私のMODに関する急ぎの質問はトピックよりもtwitterの方が対応速いです多分。
アバター
f04041
ID:5ecb5cd0
石炭掘り
 
記事: 243
登録日時: 2011年8月07日(日) 22:39


Return to 質問:開発・制作関連

x