Сколько дней уже парюсь, да никак не могу разобраться OBJ моделями. Представляю чистый мод, исключительно с одним блоком, который и надо рендерить. Сообщите, если есть ошибка, старался код оформлять как в гайдах, чтобы было читабельно
Картинка: сплошной цвет, размер 256*256
Java:
package ru.developer.examplemod;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.*;
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;
import ru.developer.examplemod.proxy.CommonProxy;
@Mod(modid="examplemod")
public class mainclass {
public static String modide="examplemod";
@SidedProxy(clientSide = "ru.developer.examplemod.proxy.ClientProxy", serverSide = "ru.developer.examplemod.proxy.CommonProxy")
public static CommonProxy proxy;
@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);
}
}
Java:
package ru.developer.examplemod.proxy;
import net.minecraftforge.client.model.obj.OBJLoader;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import ru.developer.examplemod.ItemsRegister;
import ru.developer.examplemod.mainclass;
public class ClientProxy extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event)
{
super.preInit(event);
OBJLoader.INSTANCE.addDomain(mainclass.modide);
}
@Override
public void init(FMLInitializationEvent event)
{
super.init(event);
ItemsRegister.registerRender();
}
@Override
public void postInit(FMLPostInitializationEvent event)
{
super.postInit(event);
}
}
Java:
package ru.developer.examplemod.proxy;
import net.minecraftforge.client.model.obj.OBJLoader;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import ru.developer.examplemod.ItemsRegister;
import ru.developer.examplemod.mainclass;
public class ClientProxy extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event)
{
super.preInit(event);
OBJLoader.INSTANCE.addDomain(mainclass.modide);
}
@Override
public void init(FMLInitializationEvent event)
{
super.init(event);
ItemsRegister.registerRender();
}
@Override
public void postInit(FMLPostInitializationEvent event)
{
super.postInit(event);
}
}
Java:
package ru.developer.examplemod.proxy;
import net.minecraftforge.client.model.obj.OBJLoader;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import ru.developer.examplemod.ItemsRegister;
import ru.developer.examplemod.mainclass;
public class ClientProxy extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event)
{
super.preInit(event);
OBJLoader.INSTANCE.addDomain(mainclass.modide);
}
@Override
public void init(FMLInitializationEvent event)
{
super.init(event);
ItemsRegister.registerRender();
}
@Override
public void postInit(FMLPostInitializationEvent event)
{
super.postInit(event);
}
}
Java:
package ru.developer.examplemod;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import ru.developer.examplemod.blocks.ItemCube;
public class ItemsRegister
{
public static Block cube = new ItemCube("cube");
public static void register()
{
setRegister(cube);
}
@SideOnly(Side.CLIENT)
public static void registerRender()
{
setRender(cube);
}
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)
{
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), "inventory"));
}
}
Java:
{
"forge_marker": 1,
"defaults": {
"custom": { "flip-v": true },
"model": "examplemod:cube.obj"
},
"variants": {
"normal": [{}],
"inventory": [{}]
}
}
Java:
mtllib cube.mtl
o Cube_Cube.001
v -1.000000 -1.000000 1.000000
v -1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
v 1.000000 1.000000 -1.000000
v 1.000000 1.000000 1.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
usemtl cubemat
s off
f 5/1 6/2 2/3 1/4
f 6/1 7/2 3/3 2/4
f 7/1 8/2 4/3 3/4
f 8/1 5/2 1/3 4/4
f 1/1 2/2 3/3 4/4
f 8/1 7/2 6/3 5/4
Java:
newmtl cubemat
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
illum 2
map_Kd examplemod:blocks/cube
Картинка: сплошной цвет, размер 256*256
Вложения
Последнее редактирование: