Как исправить "загрузку модели для блочного варианта" #normal "исключение" в кузнице Minecraft? - PullRequest
0 голосов
/ 03 января 2019

После успешного создания предмета, имеющего текстуру, в последние часы я пытаюсь заставить текстуру работать для блоков (интерпретируя мое сообщение об ошибке, это загрузка модели, с которой я борюсь)

Я следовал за кубикамиучебник (https://cubicoder.wordpress.com/2018/06/20/basic-block/) для прогресса на данный момент.Поскольку его решение по созданию блоков выдает ошибку, я проверил другие учебники.Хотя мой журнал ошибок настаивает на том, что проблема заключается в загрузке модели (в частности, загрузке варианта #normal), эта часть точно такая же, как в каждом учебном пособии, которое я смог найти.
Что еще может быть триггером для такогоисключение?

Мой полный код проекта можно найти здесь: https://github.com/harlekintiger/modding
Это просто базовая настройка, один элемент и этот сломанный блок.


Наиболее важными частями являются следующие:

"basic_block.json", расположенный в "resources / assets / MODID / blockstate":

{
   "forge_marker": 1,
   "defaults": {
      "model": "firstforgemod:basic_block"
   },
      "variants": {
         "normal": [{}],
         "inventory": [{}]
   }
}

"basic_block.json "находится в" ресурсах / активах / MODID / models / block ":

{
   "parent": "block/cube_all",
   "textures": {
      "all": "firstforgemod:blocks/basic_block"
   }
}

Класс фактического блока:

public class BlockBasic extends Block{

    public BlockBasic(Material material, String unlocalizedName, String registryName){
        this(material, SoundType.STONE, unlocalizedName, registryName);
    }

    public BlockBasic(Material material, SoundType sound, String unlocalizedName, String registryName){
        super(material);
        setUnlocalizedName(FirstForgeMod.MODID + "." + unlocalizedName);
        setRegistryName(registryName);
        setCreativeTab(FirstForgeMod.TUTORIAL_TAB);
        setSoundType(sound);
    }
}

Класс для сбора блоков:

@ObjectHolder(FirstForgeMod.MODID)
public class TutorialBlocks {

    public static final Block BASIC_BLOCK = null;
}

Класс ModelRegistryHandler: (по-моему, здесь чего-то не хватает)

@EventBusSubscriber(Side.CLIENT)
public class ModelRegistryHandler {

    @SubscribeEvent
    public static void registerModels(ModelRegistryEvent event){
        registerModel(TutorialItems.BASIC_ITEM);
        registerModel(Item.getItemFromBlock(TutorialBlocks.BASIC_BLOCK));
    }

    private static void registerModel(Item item) {
        ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
    }
}

Класс RegistryHandler:

@EventBusSubscriber
public class RegistryHandler {

    @SubscribeEvent
    public static void registerBlocks(Register<Block> event){
        final Block[] blocks ={
            new BlockBasic(Material.ROCK, "blockBasic", "basic_block")
        };

        event.getRegistry().registerAll(blocks);
    }

    @SubscribeEvent
    public  static  void registerItems(Register<Item> event){
        final Item[] items = {
                new ItemBasic("itemBasic", "basic_item")
        };

        final Item[] itemBlocks = {
                new ItemBlock(TutorialBlocks.BASIC_BLOCK).setRegistryName(TutorialBlocks.BASIC_BLOCK.getRegistryName())
        };

        event.getRegistry().registerAll(items);
        event.getRegistry().registerAll(itemBlocks);
    }
}

Файл журнала запуска Minecraft (ссообщение об ошибке) и закрытие:
https://pastebin.com/Ff7NuFSk


Что я получаю: Игра запускается, и в игре можно разместить блок, но он полностью не закреплен (отсутствует текстурный текст) в обоихмир и инвентарь.

1 Ответ

0 голосов
/ 06 января 2019
Caused by: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 14 column 2 path $

Это ваша основная ошибка.

https://github.com/harlekintiger/modding/blob/master/src/main/resources/assets/firstforgemod/blockstates/basic_block.json#L14

JSON - это формат данных, он не допускает комментарии (любого типа) в любом месте файла.

...