【解決済み】メタデータを持つブロックのテクスチャの指定方法とレシピの追加方法について

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

【解決済み】メタデータを持つブロックのテクスチャの指定方法とレシピの追加方法について

投稿記事by igaiga » 2018年8月27日(月) 22:14

1.6.4に1.7.2で追加された色つきガラスを追加するMODを作っています。
その中でテクスチャの指定をどこのクラスでしていいのかわからないので教えて欲しいです。
またレシピの追加の仕方なのですがGameRegistry.addRecipeのプログラムを全色分書けばいいのでしょうか?

ClorGlassMOD
コード: 全て選択
package ColorGlassMOD;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

@Mod(modid="ColorGlassMOD", name="ColorGlassMOD", version="1.0")
@NetworkMod(clientSideRequired=true,serverSideRequired=true,versionBounds="1.6.4")

public class ColorGlassMOD {

   public static final String modid="ColorGlassMOD";

   public static Block blockColorGlass;
   public static int blockColorGlassID = 174;
   public static Block colorglasspane;
   public static int ColorGlasspaneID = 175;

   @EventHandler
   public void init(FMLInitializationEvent event)
   {




      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 0), "White Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 0), "ja_JP", "白色の色付きガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 0), "en_US", "White Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 1), "Orange Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 1), "ja_JP", "橙色の色付きガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 1), "en_US", "Orange Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 2), "Magenta Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 2), "ja_JP", "赤紫色の色付きガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 2), "en_US", "Magenta Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 3), "Light Blue Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 3), "ja_JP", "空色の色付きガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 3), "en_US", "Light Blue Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 4), "Yellow Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 4), "ja_JP", "黄色の色つきガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 4), "en_US", "Yellow Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 5), "Lime Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 5), "ja_JP", "黄緑色の色付きガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 5), "en_US", "Lime Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 6), "Pink Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 6), "ja_JP", "桃色の色付きガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 6), "en_US", "Pink Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 7), "Grey Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 7), "ja_JP", "灰色の色つきガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 7), "en_US", "Grey Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 8), "Light Grey Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 8), "ja_JP", "薄灰色の色付きガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 8), "en_US", "Light Grey Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 9), "Cyan Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 9), "ja_JP", "青緑色の色付きガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 9), "en_US", "Cyan Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 10), "Purple Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 10), "ja_JP", "紫いろの色付きガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 10), "en_US", "Purple Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 11), "Blue Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 11), "ja_JP", "青色の色つきガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 11), "en_US", "Blue Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 12), "Brown Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 12), "ja_JP", "茶色の色つきガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 12), "en_US", "Brown Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 13), "Green Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 13), "ja_JP", "緑色の色つきガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 13), "en_US", "Green Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 14), "Red Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 14), "ja_JP", "赤色の色つきガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 14), "en_US", "Red Stained Glass");
      LanguageRegistry.addName(new ItemStack(blockColorGlass, 1, 15), "Black Stained Glass");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 15), "ja_JP", "黒色の色つきガラス");
      LanguageRegistry.instance().addNameForObject(new ItemStack(blockColorGlass, 1, 15), "en_US", "Black Stained Glass");






   }

   @EventHandler
   public void preInit(FMLPreInitializationEvent event)
   {
      blockColorGlass = new BlockColorGlass(blockColorGlassID, Material.rock).setUnlocalizedName("ColorGlass").setCreativeTab(CreativeTabs.tabBlock);


      GameRegistry.registerBlock(blockColorGlass, ItemColorGlass.class, "ColorGlass");

   }




}


BlockColorGlass
コード: 全て選択
package ColorGlassMOD;

import java.util.List;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack;
import net.minecraft.util.Icon;


public class BlockColorGlass extends Block {

   public BlockColorGlass(int par1, Material par2Material) {
      super(par1, par2Material);


      this.setHardness(0.3F);
      this.setResistance(1.5F);
      this.setStepSound(Block.soundGlassFootstep);
   }


   @Override
   @SideOnly(Side.CLIENT)
   public Icon getIcon(int par1, int par2) {
      return super.getIcon(par1, par2);
   }

   @Override
   public int damageDropped(int par1)
   {
      return par1;
   }


   @Override
   @SideOnly(Side.CLIENT)
   public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List) {


      for (int i = 0; i < 16; i++) {
         par3List.add(new ItemStack(par1, 1, i));
      }
   }
}


ItemColorGlass
コード: 全て選択
package ColorGlassMOD;

import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;

public class ItemColorGlass extends ItemBlock{

   public ItemColorGlass(int par1) {
      super(par1);
      this.setMaxDamage(0);
      this.setHasSubtypes(true);


   }

   @Override
   public int getMetadata(int par1) {
      return par1;
   }

   @Override
   public String getUnlocalizedName(ItemStack par1ItemStack) {
      return super.getUnlocalizedName() + "_" + par1ItemStack.getItemDamage();
   }

}
最後に編集したユーザー igaiga [ 2018年11月30日(金) 21:48 ], 累計 1 回
igaiga
ID:83728066
木を殴ってる
 
記事: 13
登録日時: 2014年8月07日(木) 16:08

  • (PostNo.319649)

Re: メタデータを持つブロックのテクスチャの指定方法とレシピの追加方法について

投稿記事by elise_blacklab » 2018年8月27日(月) 22:46

1.7ならこちらの手法が使えるのではないかと思います.

https://mcmodding.jp/modding/index.php/ ... 3%E3%82%AF

レシピについては全色分登録するのが確実ですが,for文で回せば記述は短くはなります.
メイドつくってたりします.http://6docvc.net/
アバター
elise_blacklab
ID:0f87040f
掘り廃人
 
記事: 2561
登録日時: 2014年6月25日(水) 18:30

  • (PostNo.319699)

Re: メタデータを持つブロックのテクスチャの指定方法とレシピの追加方法について

投稿記事by igaiga » 2018年8月28日(火) 23:17

1.7.2ではなくて1.6.4です
テクスチャの指定は全色分のテクスチャの指定する方法を教えて欲しいです。
私の説明不足でした。すみませんでした。
レシピの方はわかりました!
igaiga
ID:83728066
木を殴ってる
 
記事: 13
登録日時: 2014年8月07日(木) 16:08

  • (PostNo.322319)

Re: 【解決済み】メタデータを持つブロックのテクスチャの指定方法とレシピの追加方法について

投稿記事by igaiga » 2018年11月30日(金) 21:50

getIconとregisterIconの関数を使って解決することができました.
igaiga
ID:83728066
木を殴ってる
 
記事: 13
登録日時: 2014年8月07日(木) 16:08


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

x