Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

A difference that I am confused on (1.7.10 to 1.17.x)


Naiakoa
 Share

Recommended Posts

So to keep this short, I am currently on updating my mod (after endless testing inhouse) to 1.17 before I fully release it as my team decided on, we have hit a bit of a snag and a bit stumped when it comes to calling rendered entities. As most obj are loaded simply via .json file how would one call it through in code to give the obj some movements and animation? For the first obj we are using we had it rotate by extending TileEntity overriding renderTileEntityAt, going through all BlockEntity we are unsure what the equivalent would be, any suggestions of what would be recommended for the mod to use this chunk of code? In short the specific object just rotates in place as it is a key temporary block to give players a specific buff/boost to fight some of the bosses in the mod if the players have a bit of a struggle during the combat. Also if a complete full documentation of something that lists X is now used as Z would be nice to have if existed. Thanks in advanced!

 

    @Override
    public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float tick) {

        yRotationAngle += tick * speed;
        speed = 5F;
        Ticks = tick * speed;

        if (tileEntity instanceof TileHarkar) {
            TileHarkar tileHarkar = (TileHarkar) tileEntity;

            /*                yRotationAngle ++ tick*speed;*/

            GL11.glPushMatrix();

            // Scale, Translate, Rotate
            GL11.glScalef(1.0F, 1.0F, 1.0F);
            GL11.glTranslatef((float) x + 0.5F, (float) y + 0.5F, (float) z + 0.5F);
            GL11.glRotatef(yRotationAngle, 0F, 0.01F, 0F);

            // Bind texture
            this.bindTexture(Textures.Model_Harkar);
            FMLClientHandler.instance().getClient().renderEngine.bindTexture(Textures.Model_Harkar);

            // Render
            modelHarkar.renderPart("Platonic");

            GL11.glPopMatrix();

        }
    }

 

A modder uses search for solutions, a coder asks for help only after looking into the main source of the game modding. A master java programmer has solutions and is helpful. Be friendly to others, they will be friendly to you (depending on how their day goes ;) )

Link to comment
Share on other sites

4 hours ago, Naiakoa said:

Also if a complete full documentation of something that lists X is now used as Z would be nice to have if existed. Thanks in advanced!

One exists from the more recent 1.16 names to 1.17 via the bot on the Forge discord server.

But oh boy, you're coming from 1.7

You may as well throw everything you have in the trash and start from scratch as if you never modded before, relearning all the basics.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Yea, figured that out as much so far with a lot of things. So far that is the most thing I am stumped on as most obj files that was rendered in the past had some kind of movement GL effect to it. I might be on the forums trying to figure out other things I might end up being stumped on at this rate.

A modder uses search for solutions, a coder asks for help only after looking into the main source of the game modding. A master java programmer has solutions and is helpful. Be friendly to others, they will be friendly to you (depending on how their day goes ;) )

Link to comment
Share on other sites

Its probably still possible, but animated stuff is not something I've ever messed with. Vanilla chests still work however they work, which might be worth seeing how it is coded. I know the TE Animation Forge thing...exists, but I don't know that it is complete or documented.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

I will check out how chests work and see if I can figure a couple things from that, meanwhile ignore the fact I just table flipped on setBlock doing one thing, but not with blockpos.offset wow this change from 1.7 to 1.17 is making me feel dumb Lol

Edit: yup nope lack of sleep derp for that Lol Oh well

Edited by Naiakoa
RIP sleep

A modder uses search for solutions, a coder asks for help only after looking into the main source of the game modding. A master java programmer has solutions and is helpful. Be friendly to others, they will be friendly to you (depending on how their day goes ;) )

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
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.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • The issue Updating from 1.16.5 to 1.17.1, a problem with the availability of the Kotlin stdlib at runtime emerged. Up until now, the following build script setup worked without issue (same thing, just different versions specified): Getting the Kotlin Gradle plugin and applying it buildscript { repositories { maven { url = 'https://maven.minecraftforge.net' } mavenCentral() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // Kotlin version: 1.6.0 } } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'kotlin' // Some other things java.toolchain.languageVersion = JavaLanguageVersion.of(16) // This is new Including the Standard Library as a dependency (actually unnecessary) dependencies { minecraft "net.minecraftforge:forge:1.17.1-37.0.126" // Used to call for a Forge version for 1.16.5 implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" // This being jdk8 is not an issue // JEI would be here too } Packaging the Standard Library into the jar jar { dependsOn(classes) duplicatesStrategy(DuplicatesStrategy.INCLUDE) // Manifest here configurations { kotlinstdlib } dependencies { kotlinstdlib "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" } from { configurations.kotlinstdlib.collect() { it.isDirectory() ? it : zipTree(it) } } } Setting the Kotlin JVM target version to 16 (used to be 1.8) def kotlinCompilerArgs = ["-Xopt-in=kotlin.RequiresOptIn", "-Xjvm-default=all"] compileKotlin { kotlinOptions { jvmTarget = "16" freeCompilerArgs += kotlinCompilerArgs } } compileTestKotlin { kotlinOptions { jvmTarget = "16" freeCompilerArgs += kotlinCompilerArgs } } This still compiles the project correctly, running it however throws the following exception as soon as the mod annotated class gets loaded (when a Logger instance is requested to be more specific, probably does a null check under the hood - because Kotlin): java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics This class is part of the kotlin-stdlib-1.6.0.jar file. (Not kotlin-stdlib-jdk8-1.6.0.jar) It shows up under "External Libraries", but appears to be missing at runtime for the workspace. Running 'build' outputs a jar that gets loaded correctly though, so the problem only appears when running in IDE using 'runClient'. JEI does seem to get loaded though, only the Kotlin Standard Library does not. Versions Gradle - 7.2 ForgeGradle - 5.1.X Java for building: 11 (1.8 when testing on a different computer) Java for compiling and running: 16 Kotlin: 1.6.0 Minecraft: 1.17.1 Forge: 37.0.126 (Currently latest) IDE is IntelliJ What I already tried Using kotlin-stdlib instead of kotlin-stdlib-jdk8 Setting the Java version to 16 for the 1.16.5 version of the project (worked, but not the goal) Using a different PC (different caches, same output) Running the 'clean' task Using 'api, 'compileOnly' and 'runtimeOnly' in the dependencies block instead of 'implementation'. Applying the Kotlin plugin using the plugins block Creating a raw Kotlin project with JVM 16 target (not Forge; worked) Creating a raw Forge mod project using the Forge MDK, adding the Kotlin plugin to it, and converting the ExampleMod class to Kotlin (failed with same output) Removing the implementation line for the Standard Library in both the 1.16.5 version and the 1.17.1 (the 1.17.1 version failed, the 1.16.5 version ran successfully, which means that this line does not have any effect) This abomination compileOnly "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" runtimeOnly fg.deobf("org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version") runtimeOnly fg.deobf("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version") runtimeOnly fg.deobf("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version") runtimeOnly fg.deobf("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version") Combinations of the things mentioned above. My guess As this problem only appears with a difference in the build script of the mappings and Forge version, the only thing I guess would be left is Forge having an issue itself. I do not know how Forge loads mods and libraries in the development environment, I have checked what System.getenv("CLASSPATH") outputs using a breakpoint, and it returned null. It is remapping and including JEI correctly though, so it confuses me why the Kotlin Standard Library would not be present. This makes me a bit unsure whether it is Forge's fault, but again, the only real change I did for the build script was changing the mappings and Forge version (and adding the Java 16 line, but I have already checked doing that for 1.16.5). It is also not an incompatibility between Java versions because building a mod jar and running Minecraft Forge 1.17.1 with it normally (outside of IDE) works. Are there any workarounds/fixes for this? Of course, any help much appreciated!
    • can you run a 1.16 example mod on that setup? for 1.17 (which you are trying to start), you will need a parallel setup with java 16.
    • As always I'd return to conclude my inquiries, if successful. To solve my issue, I just had to create a custom screen, extend any "furnace" type screen to access the recipe book functions(AbstractFurnaceScreen actually turned out to be quite a hassle, so I moved on using FurnaceScreen). To implement the recipe book button into my "ContainerScreenCampfire", I just mimicked and adjusted the client code found in AbstractFurnaceScreen, and then I had to do the following code, to close the screen, and press the right mouse button to simulate returning to the original campfire screen, instead of the furnace screen: What's left to do is importing all the client particle, and server side burn time logic functions etc., from my original campfire. But this should be pretty straight forward.
    • Look at the stacktrace. Probably because you set its underlying field to null.
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.