Jump to content

Recommended Posts

Posted (edited)

So I am currently developing mod that contains a block that needs to display/use the same texture as the block the player right clicks with. So in this situation, this block will "mimic" the look of another block. Here's where it might get even more complicated, though, is that I also need to modify the texture to be slightly transparent and have a blue hue. I don't expect support with those, but any help would be appreciated.

I was reading this post about how to do it with a TileEntity, and I used the ironchest mod for examples on how to do that. However, it uses a method "getBlockTexture" and "getIcon" which, as far as I know, haven't existed for a long time. I've read some more up-to-date articles using the same method. I don't believe this method works in 1.13. Can someone describe to me how blocks render/display their texture, and if it's even possible to do what I want to do?

Edit: I also read this post, but the same issue persists.

Edited by FireController1847

I am on my journey of making a remake of matmos, as explained here.

Posted
6 hours ago, FireController1847 said:

So I am currently developing mod that contains a block that needs to display/use the same texture as the block the player right clicks with. So in this situation, this block will "mimic" the look of another block. Here's where it might get even more complicated, though, is that I also need to modify the texture to be slightly transparent and have a blue hue. I don't expect support with those, but any help would be appreciated.

If you didn’t need it to be slightly transparent I would recommend using the approach from MBE04. Since you need this I recommend that you render your block in the RenderWorldLastEvent and cache the render data for performance. I have some example code that does this at https://gist.github.com/Cadiboo/753607e41ca4e2ca9e0ce3b928bab5ef and an implementation of something very similar at https://github.com/Cadiboo/NoCubes/blob/92faa9231738ed14483338ea0f854935156bc30a/src/main/java/io/github/cadiboo/nocubes/client/gui/toast/BlockStateToast.java

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)

Posted
1 hour ago, desht said:

However, this PR just got merged: https://github.com/MinecraftForge/MinecraftForge/pull/5564, which is great.

That PR is perfect, except for the fact that it also doesn't allow transparency + tinting (It might actually if you override canRenderInLayer in your block and return true for TRANSLUCENT and also add the tint to the raw model data if thats possible, but this would be pretty hard to do and would require doing stuff relatively low level)

  • Like 1

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)

Posted

If you use my approach all you’ll need to do is update the data each time one of your blocks changes (you can store this as separate data in chunks) and add a blend function right before the GLStateManager translate call. You could also adapt the code to use a TESR (not a FastTESR, because you need GL access) if you wanted

  • Like 1

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)

Posted (edited)

Okay, I think I understand the states & modeldata, but what I don't quite understand is how to override the block's IBakedModel with my own model. In the example that, admittedly, @desht said wouldn't work, they get the quads and such from the state (which is depreciated, what do I replace that with??), and then use those quads in their custom model. However, I don't understand how to make my custom IBakedModel override my block's model. Is there a specific registry that I'd need to replace/register it under?

Also, if someone could help me out by telling me how to disable this crap that'd be awesome:
 

[21:22:39.771] [Server thread/DEBUG] [ne.mi.re.ForgeRegistry/REGISTRYDUMP]: Registry Name: minecraft:enchantments
	Entry: 0, minecraft:protection, net.minecraft.enchantment.EnchantmentProtection@783b3aa0
	Entry: 1, minecraft:fire_protection, net.minecraft.enchantment.EnchantmentProtection@2ec85a25
	Entry: 2, minecraft:feather_falling, net.minecraft.enchantment.EnchantmentProtection@4c176ff1
	Entry: 3, minecraft:blast_protection, net.minecraft.enchantment.EnchantmentProtection@27c53c32
	Entry: 4, minecraft:projectile_protection, net.minecraft.enchantment.EnchantmentProtection@68aec50
	Entry: 5, minecraft:respiration, net.minecraft.enchantment.EnchantmentOxygen@1d60059f
	Entry: 6, minecraft:aqua_affinity, net.minecraft.enchantment.EnchantmentWaterWorker@427308f8

 

Edited by FireController1847

I am on my journey of making a remake of matmos, as explained here.

Posted

Okay, after some experimentation, I have determined that I am an idiot and that I have been doing events entirely wrong and I even knew it from the beginning. Disregard my last statement, I was able to get the block model to override. Back to experimentation...

I am on my journey of making a remake of matmos, as explained here.

Posted
3 hours ago, FireController1847 said:

Also, if someone could help me out by telling me how to disable this crap that'd be awesome:

Change the logging level in your build.gradle then refresh your Gradle Project

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)

Posted

Overriding your block model will get you most of the way, but it cannot do the blending (translucency for rendering blocks with non-translucent textures) that you want. 

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)

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.