Jump to content

Render a block with 3dMax model(Or .obj file)


themaw

Recommended Posts

16 minutes ago, themaw said:

 As the title said,Is there any way to import a model and render it at a block?

Yes you can use .obj files and forge has an already in place system for it, you will still need a json file for your blockstate it just needs to point to the obj file and in your preInit method call OBJLoader.add or similar.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

1 hour ago, Animefan8888 said:

Yes you can use .obj files and forge has an already in place system for it, you will still need a json file for your blockstate it just needs to point to the obj file and in your preInit method call OBJLoader.add or similar.

Ok.

Tank you so much

Link to comment
Share on other sites

You can find a lot of examples of TESRs in vanilla code.

https://mcforge.readthedocs.io/en/latest/tileentities/tesr/#fasttesr

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

12 minutes ago, Cadiboo said:

You can find a lot of examples of TESRs in vanilla code.

https://mcforge.readthedocs.io/en/latest/tileentities/tesr/#fasttesr

Tank you for your answer.

 

And if I try to get an .obj model like this:

 

IModel model = RenderHelper.getRenderObj(new ResourceLocation(Info.modid+":obj/onhookblock"));

 

and the file's path is src\main\resources\assets\mawgui\obj\onhookblock.obj

 

the console will reporte a Expection :java.lang.NullPointerException

 

the getRenderObj void is like this:

	public static IModel getRenderObj(ResourceLocation res) {
		try {
			return OBJLoader.INSTANCE.loadModel(res);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}

What's wrong in this code?

Link to comment
Share on other sites

4 hours ago, themaw said:

} catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return null; }

All of that and this among other things

4 hours ago, themaw said:

ResourceLocation(Info.modid+":obj/onhookblock")

You should use the overload that takes a namespace and path. You also haven’t provided any logs, so we can’t tell you exactly what is causing your issue (I assume it’s a FileNotFound error though)

Edited by Cadiboo

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

On 11/22/2018 at 8:51 PM, V0idWa1k3r said:

Also IModel is just a collection of info that is needed to build the IBakedModel. IModel and it's implementations contain no quads and thus can't be rendered. You need an IBakedModel instance.

Thank your for your answer.

But now can not even get the IModel:(

It give me a "file not found" message

Link to comment
Share on other sites

On 11/22/2018 at 6:51 PM, Cadiboo said:

All of that and this among other things

You should use the overload that takes a namespace and path. You also haven’t provided any logs, so we can’t tell you exactly what is causing your issue (I assume it’s a FileNotFound error though)

Yes.It's a "FileNotFound" error.

I still not solved this problem.

I have skipped this problem to solve other problems at present, but sooner or later this problem will be the only one left in these two days

 

My obj folder layout was in my last reply

There should actually be only one question left: where should the resourcelocation for this obj file be.

Thank you for your care

 

Link to comment
Share on other sites

Can you post your log please?

The ResourceLocation should be in this code

On 11/22/2018 at 7:01 PM, themaw said:

IModel model = RenderHelper.getRenderObj(new ResourceLocation(Info.modid+":obj/onhookblock"));

 

Edited by Cadiboo

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

On 11/24/2018 at 4:18 PM, Cadiboo said:

Can you post your log please?

The ResourceLocation should in this code

 

I'm sorry for my late reply.

Here is the log at launch:

2018-11-26 23:33:44,322 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
2018-11-26 23:33:44,338 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
[23:33:44] [main/INFO] [GradleStart]: Extra: []
[23:33:44] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/mawse/.gradle/caches/minecraft/assets, --assetIndex, 1.12, --accessToken{REDACTED}, --version, 1.12, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
[23:33:44] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[23:33:45] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[23:33:45] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
[23:33:45] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
[23:33:45] [main/INFO] [FML]: Forge Mod Loader version 14.21.1.2387 for Minecraft 1.12 loading
[23:33:45] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_121, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jre1.8.0_121
[23:33:45] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[23:33:45] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
[23:33:45] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
[23:33:45] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
[23:33:45] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[23:33:45] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[23:33:45] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[23:33:45] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[23:33:45] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[23:33:45] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
2018-11-26 23:33:45,602 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
2018-11-26 23:33:46,131 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
2018-11-26 23:33:46,134 main WARN Unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream
[23:33:46] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!
[23:33:50] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[23:33:50] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[23:33:50] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[23:33:51] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[23:33:51] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
[23:33:51] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
[23:33:51] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[23:33:54] [main/INFO]: Setting user: Player149
[23:34:01] [main/WARN]: Skipping bad option: lastServer:
[23:34:02] [main/INFO]: LWJGL Version: 2.9.4
[23:34:03] [main/INFO] [FML]: -- System Details --
Details:
	Minecraft Version: 1.12
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 1.8.0_121, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 770322848 bytes (734 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
	FML: 
	Loaded coremods (and transformers): 
	GL info: ' Vendor: 'Intel' Version: '4.5.0 - Build 24.20.100.6136' Renderer: 'Intel(R) HD Graphics 520'
[23:34:03] [main/INFO] [FML]: MinecraftForge v14.21.1.2387 Initialized
[23:34:03] [main/INFO] [FML]: Replaced 921 ore ingredients
[23:34:04] [main/INFO] [FML]: Found 0 mods from the command line. Injecting into mod discoverer
[23:34:04] [main/INFO] [FML]: Searching C:\Users\mawse\Desktop\Try\run\mods for mods
[23:34:06] [Thread-3/INFO] [FML]: Using sync timing. 200 frames of Display.update took 140626556 nanos
[23:34:07] [main/INFO] [FML]: Forge Mod Loader has identified 6 mods to load
[23:34:08] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, mawgui, chameleon] at CLIENT
[23:34:08] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, mawgui, chameleon] at SERVER
[23:34:09] [main/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:themawgui, FMLFileResourcePack:Chameleon
[23:34:09] [main/INFO] [FML]: Processing ObjectHolder annotations
[23:34:09] [main/INFO] [FML]: Found 1168 ObjectHolder annotations
[23:34:09] [main/INFO] [FML]: Identifying ItemStackHolder annotations
[23:34:09] [main/INFO] [FML]: Found 0 ItemStackHolder annotations
[23:34:09] [main/INFO] [FML]: Configured a dormant chunk cache size of 0
[23:34:09] [Forge Version Check/INFO] [ForgeVersionCheck]: [forge] Starting version check at http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json
[23:34:09] [main/INFO] [mawgui]: Checking the modlist
[23:34:09] [main/INFO]: [STDOUT]: Check Register Complete
[23:34:09] [main/INFO] [mawgui]: MAW preinit
[23:34:09] [Thread-6/INFO] [mawgui]: Start Check the url:https://github.com/mawserver/serverjson/blob/master/announcement
[23:34:09] [Thread-5/INFO] [mawgui]: Start Check the url:https://github.com/mawserver/serverjson/blob/master/the%20server%20version.update
[23:34:09] [main/INFO] [FML]: OBJLoader: Domain mawgui has been added.
[23:34:10] [main/INFO]: [STDERR]: java.lang.NullPointerException
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraftforge.client.model.obj.OBJLoader.loadModel(OBJLoader.java:80)
[23:34:10] [main/INFO]: [STDERR]: 	at mawmanager.maw.GUI.math.RenderHelper.getRenderObj(RenderHelper.java:12)
[23:34:10] [main/INFO]: [STDERR]: 	at mawmanager.maw.GUI.render.OnHookBlockSpecialRender.<init>(OnHookBlockSpecialRender.java:21)
[23:34:10] [main/INFO]: [STDERR]: 	at mawmanager.maw.GUI.render.RenderRegister.<init>(RenderRegister.java:15)
[23:34:10] [main/INFO]: [STDERR]: 	at mawmanager.maw.GUI.Client.preinit(Client.java:59)
[23:34:10] [main/INFO]: [STDERR]: 	at mawmanager.maw.GUI.Main.preinit(Main.java:64)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at java.lang.reflect.Method.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraftforge.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:630)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at java.lang.reflect.Method.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.EventBus.post(EventBus.java:217)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraftforge.fml.common.LoadController.sendEventToModContainer(LoadController.java:252)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraftforge.fml.common.LoadController.propogateStateMessage(LoadController.java:230)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at java.lang.reflect.Method.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
[23:34:10] [main/INFO]: [STDERR]: 	at com.google.common.eventbus.EventBus.post(EventBus.java:217)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraftforge.fml.common.LoadController.distributeStateMessage(LoadController.java:147)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraftforge.fml.common.Loader.preinitializeMods(Loader.java:604)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:266)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraft.client.Minecraft.init(Minecraft.java:508)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraft.client.Minecraft.run(Minecraft.java:416)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraft.client.main.Main.main(Main.java:118)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at java.lang.reflect.Method.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at java.lang.reflect.Method.invoke(Unknown Source)
[23:34:10] [main/INFO]: [STDERR]: 	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
[23:34:10] [main/INFO]: [STDERR]: 	at GradleStart.main(GradleStart.java:25)
[23:34:10] [main/INFO] [mawgui]: mawgui
[23:34:10] [main/INFO] [FML]: Applying holder lookups
[23:34:10] [main/INFO] [FML]: Holder lookups applied
[23:34:10] [main/INFO] [FML]: Applying holder lookups
[23:34:10] [main/INFO] [FML]: Holder lookups applied
[23:34:10] [main/INFO] [FML]: Applying holder lookups
[23:34:10] [main/INFO] [FML]: Holder lookups applied

 

The code of  mawmanager.maw.GUI.math.RenderHelper.getRenderObj(RenderHelper.java:12)



	
	public static IModel getRenderObj(ResourceLocation res) {
		try {
			return OBJLoader.INSTANCE.loadModel(res);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
			}
	}

The RenderRegister Class:

	public RenderRegister() {
		OBJLoader.INSTANCE.addDomain(Info.modid);
		
		ClientRegistry.bindTileEntitySpecialRenderer(TileEntityOnHookBlock.class,new OnHookBlockSpecialRender());
	}

The OnHookBlockSpecialRender.java

package mawmanager.maw.GUI.render;

import mawmanager.maw.GUI.Info;
import mawmanager.maw.GUI.Main;
import mawmanager.maw.GUI.math.RenderHelper;
import mawmanager.maw.GUI.tileentity.TileEntityOnHookBlock;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.BlockRendererDispatcher;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3i;
import net.minecraftforge.client.model.IModel;
import net.minecraftforge.client.model.animation.FastTESR;

public class OnHookBlockSpecialRender extends FastTESR<TileEntityOnHookBlock>{
    
		IModel model = RenderHelper.getRenderObj(new ResourceLocation(Info.modid+":obj/onhookblock.obj"));
		IBakedModel bakedmodel;
	private ResourceLocation textures = new ResourceLocation(Info.modid,"textures/model/onhookblock.png");
	
	public OnHookBlockSpecialRender() {
		
		Main.log.info(new ResourceLocation(Info.modid+":obj/onhookblock").getResourceDomain());
	}
	
	
	@Override
	public void renderTileEntityFast(TileEntityOnHookBlock te, double x, double y, double z, float partialTicks,
			int destroyStage, float partial, BufferBuilder buffer) {
		GlStateManager.pushMatrix();
        
            GlStateManager.enableCull();
            BlockPos pos = te.getPos();
            IBlockState state = te.getWorld().getBlockState(pos);
            BlockRendererDispatcher rendererDispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher();
            IBakedModel model = rendererDispatcher.getBlockModelShapes().getModelForState(state);
            Vec3i vec = new Vec3i(pos.getX(), pos.getY(), pos.getZ());
            buffer.setTranslation(x - pos.getX() , y - pos.getY(), z - pos.getZ());
            rendererDispatcher.getBlockModelRenderer().renderModel(te.getWorld(), model, state, pos, buffer, true);
            
        
        GlStateManager.popMatrix();
	
	}
	
	
	
	
	

}

 

Link to comment
Share on other sites

19 minutes ago, themaw said:

 I'm sorry for my late reply.

Where is your obj file located.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

3 hours ago, themaw said:

getRenderObj(new ResourceLocation(

You're adding an extra colon in the resource location to pass to this.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

On 11/27/2018 at 2:51 AM, Animefan8888 said:

You're adding an extra colon in the resource location to pass to this.

I've tried all sorts of path and I've been able to remove the quotes,

But still not work

Edited by themaw
Link to comment
Share on other sites

2 hours ago, themaw said:

I've tried all sorts of path and I've been able to remove the quotes,

But still not work

I've figured it out. You are loading the model too early. You need to load the model later. Either move the loading into the render method and only load it once. Or move your TESR registration code to a later initialization event.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

Now I got  a super serious problem.

The ModelRegistryEvent had never beening called.

    @SubscribeEvent
    @SideOnly(Side.CLIENT)
    public static void renderEvent(ModelRegistryEvent e) {
		Main.log.info("Rendering");
        RenderRegister.renderItems();
        RenderRegister.renderBlockItems();
    }

I had try to put this code in CommonProxy or ClientProxy,

even use the MinecraftForge.EVENTBUS.register(this);,

but the console had never display:

"Rendering"

And all the items look like ***...

Link to comment
Share on other sites

1 hour ago, diesieben07 said:
  • Do not use @SideOnly.
  • Use @EventBusSubscriber(Side.CLIENT) for subscribing to client-only events.
  • Code Style, issue 1.

Thank you so much.It works.:)

And the final question is how to set a ItemBlock to the CreativeTab?

Edited by themaw
Wrong word
Link to comment
Share on other sites

4 minutes ago, diesieben07 said:

You call Item#setCreativeTab on it, just like with any other item.

I use this void:

	public static ItemBlock createItemBlock(Block b) {
		ItemBlock b2 = new ItemBlock(b);
		b2
		.setRegistryName(b.getRegistryName())
		.setUnlocalizedName(b.getUnlocalizedName())
		.setCreativeTab(Client.tab1);
		return b2;
	}

But it do not work

Link to comment
Share on other sites

How stupid I was...

I thought it had to be a subclass of Item to register with the CreativeTab

Now I find that someone else's code registers the CreativeTab directly in the Block

Thank you for your answers

12 minutes ago, diesieben07 said:

You call Item#setCreativeTab on it, just like with any other item.

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello all! I'm currently trying to make the Biomes o' Plenty mod (1.12.2 version) compatible with my shaderpack (BSL v8.5). Even after I've already inserted a "shaders" folder with a correctly-formatted blocks.PROPERTIES file within the assets folder of the .jar, it still does not wave the textures from the mod. I definitely thought this was going to work since I noticed the 1.19.2 version of the mod laid it out exactly like that and it worked perfectly when my PC was able to run 1.19.2 Forge... ^^;;; Could there be some missing link I'm not getting at here?
    • After much experimentation I finally realised why this doesn't work and how to fix it. The critical component to understand here, is that ItemCraftedEvent is called before the crafting ingredients are purged from the crafting slots; this all happens in ResultSlot.java's onTake method: We can see here the first line fires checkTakeAchievements, this is what fires the ItemCraftedEvent (after a few method calls). Then we can see the purge behaviour. I worked around this by creating a CarverItem class, which uses hasCraftingRemainingItem and getCraftingRemainingItem to hook into ResultSlot.onTake: Now, I reconstruct my ItemCraftedEvent handler, and using some smart tags (which I omit for brevity), I handle two cases: 1. When crafting a carved item, I damage the tool used in the recipe 2. When crafting a carving tool from a repair recipe, I manually purge the input tools as with the new CarverItem class, as otherwise items would be duplicated   This has now greatly improved implementation, beyond my expectations, for the standard crafting table and the user's inventory crafting grid. A user can now click or shift-click 'carve' items, with no duplication or issues that I have spotted so far.  
    • Hi, I'm having issues launching my Forge 1.20.1 installation (47.2.0). I keep getting error code 1, and all the logs abruptly pause with the game attempting to open GL 4.6. Latest Crash: https://pastebin.com/zsP5Wipk Debug (No idea what the real name is) Log: https://pastebin.com/CzvqhNq0   Thanks for the help!
    • In the most up to date version of Allthemods 6 (v1.9.2) the stoned bee is not able to be interacted with apart from putting it into an empty bee jar. I can't breed the bee or put it into my aviary breeder. When I try to put it into the breeder it says import unsuccessful. The stoned bee is one of the most important bees for advancing in the mod so it is rather unfortunate that it is not working as intended.
    • Everytime I try to run the Forge 1.20.1 - 47.1.0 Installer, only appears an a black window and then closes. I don't appear the installing menu anymore.
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.