Текстура блока

Не могу нацепить текстуру на блок. Вроде делаю все по гайду.
2 = скрин в blocksInit/setrender
3скрин - blockstates
4 - models/block
5 - models/items
 

Вложения

  • 2.PNG
    2.PNG
    3.9 KB · Просмотры: 27
  • 1.PNG
    1.PNG
    2.7 KB · Просмотры: 27
  • 3.PNG
    3.PNG
    2.2 KB · Просмотры: 29
  • 4.PNG
    4.PNG
    6.8 KB · Просмотры: 25
  • 5.PNG
    5.PNG
    1.6 KB · Просмотры: 25
  • 6.PNG
    6.PNG
    9.1 KB · Просмотры: 20
  • Безымянный.png
    Безымянный.png
    500.2 KB · Просмотры: 17
1,038
57
229
а почему на второй картинке написано block в скобках? откуда он?
Текстом то уже не пишется..?
 
4,045
63
645
Глубоко не копал, но первое, что бросилось в глаза:
  1. Все названия моделей, текстур, айди модов и т.д. в 1.12+ ТОЛЬКО прописными буквами!
  2. Материнскую модель ты указываешь как cube_all, а текстуры к ней прописываешь как к cube. В cube_all нет таких текстур. Есть одна текстура all.
 
1-png.6688
2.PNG3.PNG4.PNG5.PNG

Все равно не работает
 

Вложения

  • 1.PNG
    1.PNG
    2.8 KB · Просмотры: 62
917
22
332
Лучше обойтись без надстрочных символов и пробелов. Их можно установить в файле локализации, а в коде вместо пробелов используйте символ нижнего подчёркивания _
Имя ты тоже не поменял. Ты jav'у знаешь? Имя в твоём случае - это то синее в кавычках
 
Для admin_workbench нигде и нет пробелов, только имя передаваемое в конструктор имеет заглавные буквы

По гайду забыл добавить эту строчку
Добавим в ClientProxy, в метод init такой код BlocksRegister.registerRender();.
Но при её добавлении выдает ошибку1571770325694.png
 
917
22
332
Main:
package com.Rikog.CustomWorkbenches;

import com.Rikog.CustomWorkbenches.proxy.*;

import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
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 = "cw")

public class Main {

    @Instance
    public static Main instance;
    
    @SidedProxy(clientSide = "com.Rikog.CustomWorkbenches.proxy.ClientProxy", serverSide = "com.Rikog.CustomWorkbenches.proxy.CommonProxy")
    public static CommonProxy proxy;
    
    public static final CreativeTabs tabCW = new CreativeTabs("cw")
    {
        @Override
        public ItemStack getTabIconItem()
        {
            return new ItemStack(Blocks.COMMAND_BLOCK);
        }
    };
    
    @EventHandler
    public void preInit(FMLPreInitializationEvent event)
    {
        proxy.preInit(event);
    }

    @EventHandler
    public void init(FMLInitializationEvent event)
    {
        proxy.init(event);
    }

    @EventHandler
    public void postInit(FMLPostInitializationEvent event)
    {
        proxy.postInit(event);
    }
}
AdminWorkbench:
package com.Rikog.CustomWorkbenches.blocks;

import com.Rikog.CustomWorkbenches.Main;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;

public class AdminWorkbench extends Block {

    public AdminWorkbench(String name) {
        super(Material.WOOD);
        this.setCreativeTab(Main.tabCW);
        this.setRegistryName(name);
        this.setUnlocalizedName(name);
    }
}
Workbench3x3:
package com.Rikog.CustomWorkbenches.blocks;

import com.Rikog.CustomWorkbenches.Main;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;

public class Workbench3x3 extends Block {

    public Workbench3x3(String name) {
        super(Material.WOOD);
        this.setCreativeTab(Main.tabCW);
        this.setRegistryName(name);
        this.setUnlocalizedName(name);
    }
}
Workbench5x5:
package com.Rikog.CustomWorkbenches.blocks;

import com.Rikog.CustomWorkbenches.Main;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;

public class Workbench5x5 extends Block {

    public Workbench5x5(String name) {
        super(Material.WOOD);
        this.setCreativeTab(Main.tabCW);
        this.setRegistryName(name);
        this.setUnlocalizedName(name);
    }
}
Workbench7x7:
package com.Rikog.CustomWorkbenches.blocks;

import com.Rikog.CustomWorkbenches.Main;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;

public class Workbench7x7 extends Block {

    public Workbench7x7(String name) {
        super(Material.WOOD);
        this.setCreativeTab(Main.tabCW);
        this.setRegistryName(name);
        this.setUnlocalizedName(name);
    }
}
Workbench9x9:
package com.Rikog.CustomWorkbenches.blocks;

import com.Rikog.CustomWorkbenches.Main;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;

public class Workbench9x9 extends Block {

    public Workbench9x9(String name) {
        super(Material.WOOD);
        this.setCreativeTab(Main.tabCW);
        this.setRegistryName(name);
        this.setUnlocalizedName(name);
    }
}
BlocksInit:
package com.Rikog.CustomWorkbenches.init;

import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

import com.Rikog.CustomWorkbenches.blocks.*;

public class BlocksInit {
    
    public static Block admin_workbench = new AdminWorkbench("AdminWorkbench");
    public static Block workbench3x3 = new Workbench3x3("Beginner's Workbench");
    public static Block workbench5x5 = new Workbench5x5("Adepts's Workbench");
    public static Block workbench7x7 = new Workbench7x7("Expert's Workbench");
    public static Block workbench9x9 = new Workbench9x9("Masters's Workbench");

    public static void registerBlocks() {

        setRegister(admin_workbench);
        setRegister(workbench3x3);
        setRegister(workbench5x5);
        setRegister(workbench7x7);
        setRegister(workbench9x9);
    }

    @SideOnly(Side.CLIENT)
    public static void registerBlocksRender() {

        setRender(admin_workbench);
        setRender(workbench3x3);
        setRender(workbench5x5);
        setRender(workbench7x7);
        setRender(workbench9x9);

    }

    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"));

    }
}
ClientProxy:
package com.Rikog.CustomWorkbenches.proxy;

import com.Rikog.CustomWorkbenches.init.BlocksInit;

import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

public class ClientProxy extends CommonProxy{

    @Override
    public void preInit(FMLPreInitializationEvent event)
    {
        super.preInit(event);
    }

    @Override
    public void init(FMLInitializationEvent event)
    {
        super.init(event);
        BlocksInit.registerBlocksRender();
    }

    @Override
    public void postInit(FMLPostInitializationEvent event)
    {
        super.postInit(event);
    }
}
CommonProxy:
package com.Rikog.CustomWorkbenches.proxy;

import com.Rikog.CustomWorkbenches.init.BlocksInit;

import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

public class CommonProxy {
    
    public void preInit(FMLPreInitializationEvent event)
    {
        BlocksInit.registerBlocks();
    }

    public void init(FMLInitializationEvent event)
    {
        BlocksInit.registerBlocksRender();
    }

    public void postInit(FMLPostInitializationEvent event) {

    }
}
 
Сверху