OK 나는 Minecraft 개조자를 만드는 법, 그 일을하고 교육하는 방법에 대한 자습서를 수행 중이며 Java 지식을 확장하고 싶었습니다. 대학 수업을 듣고 나서 잠시. 어느 쪽이든 나는 아래의 오류를 얻지 만 나는 어떤 이슈도 보지 못했다. 이 오류가 무엇을 의미하는지 잘 모르겠다. 그리고 더 중요한 것은 자습서를 따라서 나는 내가 무엇을하고 있는지 실제로 알지 못한다. 나는 IntelliJ IDEA 2016.3.2 IDE와 Java 1.8.0_112 SDK를 사용하는 사람들에게 Forge 1.11을 사용하고 있습니다.변수 유형의 인스턴스가 없으므로 BlockBase가 BlockOre로 확인합니다.
일부 독서에 따르면 데이터 유형이 일치하지 않는다고 생각하지만 내 IDE가 까다 롭거나 Java 1.8 SDK의 것일 수 있습니다. 정말 잃어 버렸기 때문에 누군가가지도를 기꺼이 제공 할 수 있는지 알아볼 수있을 것이라고 생각했습니다.
설명 : https://shadowfacts.net/tutorials/forge-modding-111/basic-blocks/ 오류
: ModBlocks에 레지스터 (T)가 (net.maramor.tutorial.block.BlockBase) 때문에 적용 할 수 없다 : 입력 변수의 인스턴스없이 (S) ((S) 상한을 BlockBase : 하한 :)가 BlockBase가 BlockOre 추론 변수 T를 따르도록 존재는 호환 경계를 갖는 블록, BlockOre
을[BlockBase.java]
package net.maramor.tutorial.block;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemBlock;
import net.maramor.tutorial.TutorialMod;
/**
* Created by Matt on 12/28/2016.
*/
public class BlockBase extends Block
{
protected String name;
public BlockBase(Material material, String name)
{
super(material);
this.name = name;
setUnlocalizedName(name);
setRegistryName(name);
}
public void registerItemModel(ItemBlock itemBlock)
{
TutorialMod.proxy.registerItemRenderer(itemBlock,0, name);
}
@Override
public BlockBase setCreativeTab(CreativeTabs tab)
{
super.setCreativeTab(tab);
return this;
}
}
01,235,
[BlockOre.java]
package net.maramor.tutorial.block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
/**
* Created by Matt on 12/28/2016.
*/
public class BlockOre extends BlockBase
{
public BlockOre(String name)
{
super(Material.ROCK, name);
setHardness(3f);
setResistance(5f);
}
@Override
public BlockBase setCreativeTab(CreativeTabs tab)
{
super.setCreativeTab(tab);
return this;
}
}
[ModBlocks.java]
package net.maramor.tutorial.block;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.fml.common.registry.GameRegistry;
/**
* Created by Matt on 12/28/2016.
*/
public class ModBlocks
{
public static BlockOre oreCopper;
public static void init()
{
oreCopper = register(new BlockOre("ore_copper").setCreativeTab(CreativeTabs.MATERIALS));
}
private static <T extends Block> T register(T block, ItemBlock itemBlock)
{
GameRegistry.register(block);
GameRegistry.register(itemBlock);
if (block instanceof BlockBase)
{
((BlockBase)block).registerItemModel(itemBlock);
}
return block;
}
private static <T extends Block> T register(T block)
{
ItemBlock itemBlock = new ItemBlock(block);
itemBlock.setRegistryName(block.getRegistryName());
return register(block, itemBlock);
}
}
나는 이것을 뒤집었다. 새로운 질문이 있으면 대신 새로운 질문을하십시오. – Makoto