- 15
- 0
Я пытаюсь создать предмет без функций, его получается зарегистрировать, но код, написанный для включения текстурок/модели, лишь меняет модель: без выделенных строк предмет в руках выглядит как блок без текстуры (чернорозовий), а со строками он становится в руке тонким как предмет, а должен еще и поменять текстуру с чернорозового квадрата на ключ. Вот как выглядят мои Джейсон, итембра и итемсрегистри:
Сори за тупой вопрос, я догадываюсь что дело в текстуре, но уже и менял формат текстуры, и добавлял .пнг к названию текстуры в бра.джсон и ещё что-то, но не фиксится.
bruh.json:
{
"parent": "item/generated",
"textures": {
"layer0": "mm:items/bruh" // айди мода mm, имя текстуры bruh.png, размер текстуры 16х16
}
}
ItemBruh:
package com.pucci.modmod;
import net.minecraft.item.Item;
public class ItemBruh extends Item {
public ItemBruh()
{
this.setRegistryName("bruh");
this.setUnlocalizedName("bruh");
}
}
ItemsRegistry:
package com.pucci.modmod;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
@ObjectHolder("mm")
@Mod.EventBusSubscriber// Автоматическая регистрация статичных обработчиков событий
public class ItemsRegistry {
/*
* Получение предмета по ключу(анотация ниже). Вы также можете использовать данную аннотацию для получения ванильных предметов
* Если вы не добавляли аннотацию над классом, то в таком случаи вам нужно прописать вместо [ICODE]key[/ICODE] -> [ICODE]*айди мода*:key[/ICODE]
*/
@ObjectHolder("bruh")
public static final Item BRUH = null;
/*
* Начиная с 1.12 регистрацию предметов/блоков/моделей и т.п. следует проводить в специальном событии.
* Событие Register<IForgeRegistryEntry> поддерживает регистрацию: Block, Item, Potion, Biome, SoundEvent,
* PotionType, Enchantment, IRecipe, VillagerProfession, EntityEntry.
* Обратите внимание! Метод является статичным, так как мы используем EventBusSubscriber
*/
@SubscribeEvent
public static void onRegistryItem(RegistryEvent.Register<Item> e) {
e.getRegistry().register(new ItemBruh());
}
@SideOnly(Side.CLIENT)
private static void registryModel(Item item) {
final ResourceLocation regName = item.getRegistryName();// Не забываем, что getRegistryName может вернуть Null!
final ModelResourceLocation mrl = new ModelResourceLocation(regName, "inventory");
ModelBakery.registerItemVariants(item, mrl);// Регистрация вариантов предмета. Это нужно если мы хотим использовать подтипы предметов/блоков(см. статью подтипы)
ModelLoader.setCustomModelResourceLocation(item, 0, mrl);// Устанавливаем вариант модели для нашего предмета. Без регистрации варианта модели, сама модель не будет установлена для предмета/блока(см. статью подтипы)
}
//метод-обработчик, регистрирующий модель предмета
@SubscribeEvent
@SideOnly(Side.CLIENT)
public static void onRegistryModel(ModelRegistryEvent e) {
ItemsRegistry.registryModel(BRUH);
}
}