Я в первую очередь JS Dev, и я новичок в Java, поэтому заранее извиняюсь за недостаток свободного владения!
Я создал элемент "dirt_ingot
", зарегистрировал этот элемент (зарегистрирован, когда это было завершено для проверки), направил его в местоположение модели (также зарегистрирован). Мой файл / модель JSON работает правильно (я потратил много времени на работу с JSON), когда имя текстуры меняется на что-то другое, чтобы хотя бы подтвердить, что он делает это так далеко; "textures": { "layer0" :fm/items/dirt_ingo }
не dirt_ingot
. Затем он возвратил в консоли ошибку, из-за которой у меня не было ресурса в пакете fm.textures.items, который соответствовал этому имени, что имело смысл, поскольку я изменил имя на png, который не существует. Хотя, когда меняли обратно и указывали на правильный png, мне выдается ошибка текстуры.
Любой, кто может помочь, будет очень признателен, спасибо!
dirt_ingot.json
{
"parent": "item/generated",
"textures": {
"layer0": "fm:items/dirt_ingot"
}
}
ItemBase.java
package com.ash_haus.firstmod.items;
import com.ash_haus.firstmod.Main;
import com.ash_haus.firstmod.init.ModItems;
import com.ash_haus.firstmod.util.IHasModel;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
public class ItemBase extends Item implements IHasModel {
public ItemBase(String name) {
setUnlocalizedName(name);
setRegistryName(name);
setCreativeTab(CreativeTabs.MISC);
ModItems.ITEMS.add(this);
}
@Override
public void registerModels() {
Main.proxy.registerItemRenderer(this, 0, "inventory");
}
}
CommonProxy.java
package com.ash_haus.firstmod.proxy;
import net.minecraft.item.Item;
public class CommonProxy {
public void registerItemRenderer(Item item, int meta, String id) {
}
}
ClientProxy.java
package com.ash_haus.firstmod.proxy;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.client.model.ModelLoader;
public class ClientProxy extends CommonProxy {
public void registerItemRender(Item item, int meta, String id) {
ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(item.getRegistryName(), id));
}
}
ModItems.java
package com.ash_haus.firstmod.init;
import java.util.ArrayList;
import java.util.List;
import com.ash_haus.firstmod.items.ItemBase;
import net.minecraft.item.Item;
public class ModItems {
public static final List<Item> ITEMS = new ArrayList<Item>();
public static final Item DIRT_INGOT = new ItemBase("dirt_ingot");
}
IHasModel.java
package com.ash_haus.firstmod.util;
public interface IHasModel {
public void registerModels();
}
Main.java
package com.ash_haus.firstmod;
import com.ash_haus.firstmod.proxy.CommonProxy;
import com.ash_haus.firstmod.util.Reference;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
@Mod(modid = Reference.MOD_ID, name = Reference.NAME, version = Reference.VERSION)
public class Main {
@Instance
public static Main instance;
@SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.COMMON_PROXY_CLASS)
public static CommonProxy proxy;
@EventHandler
public static void preInit(FMLPreInitializationEvent event)
{
}
@EventHandler
public static void init(FMLInitializationEvent event)
{
}
@EventHandler
public static void postInit(FMLPostInitializationEvent event)
{
}
}
Только ошибка в консоли
com.mojang.authlib.exceptions.AuthenticationException: The client has sent too many requests within a certain amount of time
at com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService.makeRequest(YggdrasilAuthenticationService.java:79) ~[YggdrasilAuthenticationService.class:?]
at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.fillGameProfile(YggdrasilMinecraftSessionService.java:180) [YggdrasilMinecraftSessionService.class:?]
at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService$1.load(YggdrasilMinecraftSessionService.java:60) [YggdrasilMinecraftSessionService$1.class:?]
at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService$1.load(YggdrasilMinecraftSessionService.java:57) [YggdrasilMinecraftSessionService$1.class:?]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3716) [guava-21.0.jar:?]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2424) [guava-21.0.jar:?]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2298) [guava-21.0.jar:?]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2211) [guava-21.0.jar:?]
at com.google.common.cache.LocalCache.get(LocalCache.java:4154) [guava-21.0.jar:?]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4158) [guava-21.0.jar:?]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5147) [guava-21.0.jar:?]
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5153) [guava-21.0.jar:?]
at com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService.fillProfileProperties(YggdrasilMinecraftSessionService.java:170) [YggdrasilMinecraftSessionService.class:?]
at net.minecraft.client.Minecraft.getProfileProperties(Minecraft.java:3181) [Minecraft.class:?]
at net.minecraft.client.resources.SkinManager$3.run(SkinManager.java:138) [SkinManager$3.class:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_212]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_212]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_212]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_212]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_212]
Я просто хочу, чтобы текстура правильно отображалась в игре, возилась с этим часами! Еще раз спасибо за помощь!