Failed attempt to create a FluidStack for an unregistered Fluid

Версия Minecraft
1.12.2
API
Forge
46
1
2
Создаю жидкость, но кидает ошибку в консоли. Как исправить?
Failed attempt to create a FluidStack for an unregistered Fluid
 
Решение
Ну вот смотри, я и подвёл тебя к самостоятельному решению. Посмотри очерёдность. У тебя сначала регистрация блоков, а потом регистрация жидкостей. Ошибка у тебя из-за того что не получается сформировать стак на незарегистрированную жидкость. А стак у тебя идёт от блока. Какие мысли из этого следуют?

VeniVidiVici

Санта Барбарис
327
15
198
Смотрю вот в твой метод инициализации, как-то неправильно ты регистрируешь, сказал бы я возможно, если бы ты прикрепил хоть какой-то код (тут можно посмотреть на мою аватарку, чтобы уловить посыл).
 
46
1
2
@VeniVidiVici Регистрация:
Java:
    public static final Fluid WITCH_HERBAL_SOLUTION = new FluidWitchHerbalSolution("witch_herbal_solution", new ResourceLocation(OverseasCraftMod.MODID+":blocks/whs_still"), new ResourceLocation(OverseasCraftMod.MODID+":blocks/whs_flow"), new ResourceLocation(OverseasCraftMod.MODID+":blocks/whs_overlay"));

    public static void registerFluids(){
        registerFluid(WITCH_HERBAL_SOLUTION);
    }

    public static void registerFluid(Fluid fluid){
        FluidRegistry.registerFluid(fluid);
        FluidRegistry.addBucketForFluid(fluid);
    }
Java:
public static void registerCustomMeshesAndStates(){
        ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(BlocksRegister.witch_herbal_solution), new ItemMeshDefinition()
        {
            @Override
            public ModelResourceLocation getModelLocation(ItemStack stack)
            {
                return new ModelResourceLocation(OverseasCraftMod.MODID + ":witch_herbal_solution", "fluid");
            }
        });

        ModelLoader.setCustomStateMapper(BlocksRegister.witch_herbal_solution, new StateMapperBase()
        {
            @Override
            protected ModelResourceLocation getModelResourceLocation(IBlockState state)
            {
                return new ModelResourceLocation(OverseasCraftMod.MODID + ":witch_herbal_solution", "fluid");
            }
        });
    }
Java:
public class BlocksRegister {
    public static Block witch_herbal_solution = new BlockWitchHerbalSolution("witch_herbal_solution", FluidRegister.WITCH_HERBAL_SOLUTION, Material.WATER);

    public static void registerBlocks() {
        setRegister(witch_herbal_solution);
    }

    @SideOnly(Side.CLIENT)
    public static void registerBlocksRender() {
        setRender(witch_herbal_solution);
    }

    private static void setRegister(Block block) {

        ForgeRegistries.BLOCKS.register(block);
        ForgeRegistries.ITEMS.register(new ItemBlock(block).setRegistryName(block.getRegistryName()));

    }

    @SideOnly(Side.CLIENT)
    private static void setRender(Block block) {

        Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), "inventory"));

    }
}
Java:
public class BlockWitchHerbalSolution extends BlockFluidClassic {
    public BlockWitchHerbalSolution(String name, Fluid fluid, Material material) {
        super(fluid, material);
        setUnlocalizedName(name);
        setRegistryName(name);
    }

    @Override
    public EnumBlockRenderType getRenderType(IBlockState state) {
        return EnumBlockRenderType.MODEL;
    }
}
Java:
public class FluidWitchHerbalSolution extends Fluid {
    public FluidWitchHerbalSolution(String name, ResourceLocation still, ResourceLocation flow, ResourceLocation overlay) {
        super(name, still, flow, overlay);
        this.setUnlocalizedName(name);
    }
}
Это весь код
 
46
1
2
@VeniVidiVici
Java:
    @EventHandler
    public void preInit(FMLPreInitializationEvent event)
    {
        logger = event.getModLog();
        ItemsRegister.register();
        BlocksRegister.registerBlocks();
        WeaponRegister.register();
        FluidRegister.registerFluids();
        TileEntityHandler.registerTileEntities();
        RecipeHandler.registerSmelting();
        EntityRegister.registerEntities();
        RenderHandler.registerEntityRenders();
        RenderHandler.registerCustomMeshesAndStates();
        MinecraftForge.EVENT_BUS.register(new EventsForge());
    }
 

VeniVidiVici

Санта Барбарис
327
15
198
Ну вот смотри, я и подвёл тебя к самостоятельному решению. Посмотри очерёдность. У тебя сначала регистрация блоков, а потом регистрация жидкостей. Ошибка у тебя из-за того что не получается сформировать стак на незарегистрированную жидкость. А стак у тебя идёт от блока. Какие мысли из этого следуют?
 
Сверху