Jump to content

Recommended Posts

Posted
1 minute ago, xXJamie_Xx said:

 

I have changed the file names to "blocktowncentre.json", I have noticed that the texture now shows when the block is placed in the world but not in the players inventory. The latest log file or console do not show any errors.

Are you sure there are no errors? Post the latest log and updated file structure.

  • Replies 58
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted
1 hour ago, diesieben07 said:

This is pointless, the game is not even trying to load the model or there would be a message in the log.

 

@xXJamie_Xx Show where you register your models.

Well I have ModBlocks.java:

package init;

import com.xXJamie_Xx.myTweaks.blocks.BlocktownCentre;

import items.ItemObsidianingot;
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.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class ModBlocks {

	
	
	public static Block townCentre;
	
	public static void init() {
		townCentre = new BlocktownCentre(); 
	}
	
	public static void register() {
		registerBlock(townCentre);
	}
	
	private static void registerBlock(Block block) {
		GameRegistry.register(townCentre);
		ItemBlock item = new ItemBlock(block);
		item.setRegistryName(block.getRegistryName());
		GameRegistry.register(item);
	}
	
	public static void registerRenders() {
		registerRender(townCentre);
	}
	
	private static void registerRender(Block block) {
		ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), "inventory"));
	}
}

 

Posted (edited)
1 hour ago, diesieben07 said:

You cannot use the ModelLoader class from common code like that, since it is client-only. You must use it from your client-proxy or other client-only classes only, or you will crash a server.

Oh ok, its just that another user suggested I used it in replace of another piece of code I was using previously. (no offence to that user)

BTW, how would I implement that code into the client-proxy and then refer to it in my ModBlocks file.

Edited by xXJamie_Xx
Posted
Just now, xXJamie_Xx said:

Oh ok, its just that another user suggested I used it in replace of another piece of code I was using previously. (no offence to that user)

The same would go for your previous code - modelling/rendering code is almost all client-side only and would crash a dedicated server.

Posted
1 hour ago, Jay Avery said:

The same would go for your previous code - modelling/rendering code is almost all client-side only and would crash a dedicated server.

I actually do see how that would make sense now. A server wouldn't do the rendering, the client would.

Posted

@diesieben07 @Jay Avery Here is my client-proxy file at the moment:

package com.xXJamie_Xx.myTweaks.proxy;

import init.ModBlocks;
import init.ModItems;

public class ClientProxy implements CommonProxy{

	@Override
	public void init() {
		ModItems.registerRenders();
		ModBlocks.registerRenders();
	}

}

 

Posted
1 hour ago, diesieben07 said:

ModelLoader must be used in preInit.

I've used this code:

	public void preInit() {
		ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), "inventory"));
	}

But its giving me an error saying that "block" cannot be resolved.

Posted

That's because you don't have a block variable there.

 

You can use the same call to ModBlocks.registeRenders() that you were using. Just call it in your proxy's preInit instead of init.

Posted
2 minutes ago, diesieben07 said:

No, you cannot.

Moving that method call will fix the current rendering problem, it just won't fix the sided code issue. It's okay to learn one step at a time.

Posted
1 hour ago, Jay Avery said:

Moving that method call will fix the current rendering problem, it just won't fix the sided code issue. It's okay to learn one step at a time.

So I moved it to the preInit. Now what? I still have an error.

Posted
12 hours ago, Jay Avery said:

What is the error now? We aren't looking at your environment, you need to give every detail of what you change and what happens, every time, if you want more help.

Sorry! The error I have is with the code I'm using.

	public void preInit() {
		ModItems.registerRenders();
		ModBlocks.registerRenders();
		ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), "inventory"));
	}

But, on the longest line, it's saying that "block" cannot be resolved & also cannot be resolved to a variable.

Posted
1 hour ago, Kokkie said:

Change block to ModBlocks.yourblock.

Also, how would I go about, doing the same with items?

 

(btw, the texture still does not work in my hand or in my inventory)

Posted (edited)
1 hour ago, Kokkie said:

For items, do


ModelLoader.setCustomModelResourceLocation(ModItems.youritem, 0, new ModelResourceLocation(ModItems.youritem.getRegistryName(), "inventory"));

 

After moving my ModelLoader code, the texture for my old item that used to work, now doesn't work. Do I need to reference this in my ModBlocks.java and ModItems.java files?

 

Latest Log: https://pastebin.com/yaQSSftv

Edited by xXJamie_Xx

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.

Announcements




  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • that happens every time I enter a new dimension.
    • This is the last line before the crash: [ebwizardry]: Synchronising spell emitters for PixelTraveler But I have no idea what this means
    • What in particular? I barely used that mod this time around, and it's never been a problem in the past.
    • Im trying to build my mod using shade since i use the luaj library however i keep getting this error Reason: Task ':reobfJar' uses this output of task ':shadowJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. So i try adding reobfJar.dependsOn shadowJar  Could not get unknown property 'reobfJar' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. my gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'com.github.johnrengelman.shadow' version '7.1.2' id 'org.spongepowered.mixin' version '0.7.+' } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) //jarJar.enable() println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' arg "-mixin.config=derp.mixin.json" mods { "${mod_id}" { source sourceSets.main } } } client { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', mod_id } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { workingDirectory project.file('run-data') args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { flatDir { dirs './libs' } maven { url = "https://jitpack.io" } } configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" implementation 'org.luaj:luaj-jse-3.0.2' implementation fg.deobf("com.github.Virtuoel:Pehkui:${pehkui_version}") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' minecraftLibrary 'luaj:luaj-jse:3.0.2' shade 'luaj:luaj-jse:3.0.2' } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", "TweakOrder" : 0, "MixinConfigs" : "derp.mixin.json" ]) } rename 'mixin.refmap.json', 'derp.mixin-refmap.json' } shadowJar { archiveClassifier = '' configurations = [project.configurations.shade] finalizedBy 'reobfShadowJar' } assemble.dependsOn shadowJar reobf { re shadowJar {} } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://${project.projectDir}/mcmodsrepo" } } } my entire project:https://github.com/kevin051606/DERP-Mod/tree/Derp-1.0-1.20
  • Topics

×
×
  • Create New...

Important Information

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