Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.20.1 port #1810

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft

1.20.1 port #1810

wants to merge 7 commits into from

Conversation

slava110
Copy link

@slava110 slava110 commented Jun 24, 2024

Hi. I've started porting mod to 1.20.1 recently. Most of the stuff to make it compilable is done, but some things changed in MC a lot so I'm waiting for your opinion on some of then.
I'm currently using ArchLoom instead of ForgeGradle, but it could be changed later on if you really want. I just really hate ForgeGradle c:
P.S.: If you want, I can remake commits so it'll be clear what changes I've made from 1.16.5 version (by adding intermediate commit with unmodified 1.16.5 code on 1.20.1 branch).

Resources used

Changes to Gradle:

  • Updated gradle version
  • enabled_platforms property in gradle.properties is required if you want to include specific subprojects and create tasks.
    Format: <modloader>-<version>, example: forge-1.12.2, forge-1.20.1
  • Removed unused stuff in main buildscript

ToDo (opinion required):

Other ToDo:

- Controller class not found
I guess it doesn't exist on that version? Should be replaced with something. Or maybe dependency like Controllable could be used

- mcinterface1201.InterfaceCore.getOredictMaterials
I should just check how tag system works to fix this method

- mcinterface1201.BuilderTileEntity.tick
Doesn't override anything. BlockEntityTicker should be registered

- mcinterface1201/BuilderItem
mcinterface1201/InterfaceLoader
mcinterface1201.BuilderCreativeTab
Creative tabs changed in new MC. Should be registered using events IIRC

- JEI compat
Is completely broken

@slava110
Copy link
Author

slava110 commented Jun 25, 2024

image
If I directly replace materials with BlockTags there's not enough of them lol. Maybe predicate could be used to check if block is instance of clay, grass, etc. . What do you think?
P.s.: Also I will probably need your help with things left in ToDo if you can c:

@dldev32
Copy link

dldev32 commented Jun 26, 2024

Great work! This is the best attempt so far to port this mod to a new version. Will you continue to help with mod develop? There is only one person making the mod, and it would be nice to have someone else help with the mod.

@slava110
Copy link
Author

Great work! This is the best attempt so far to port this mod to a new version. Will you continue to help with mod develop? There is only one person making the mod, and it would be nice to have someone else help with the mod.

I probably won't. I just want to finish port and maybe add some features for the server I'm working on if server owner will need them. Also:

  1. Working on multiversion mods is hell. I would prefer working on 1.20.1 version only personally
  2. I prefer not to work on ARR-licensed mods and usually try to avoid them 🙃

@dldev32
Copy link

dldev32 commented Jun 26, 2024

Great work! This is the best attempt so far to port this mod to a new version. Will you continue to help with mod develop? There is only one person making the mod, and it would be nice to have someone else help with the mod.

I probably won't. I just want to finish port and maybe add some features for the server I'm working on if server owner will need them. Also:

  1. Working on multiversion mods is hell. I would prefer working on 1.20.1 version only personally
  2. I prefer not to work on ARR-licensed mods and usually try to avoid them 🙃

Well, good luck! I just wanted to say that there are some issues that the dev of this mod cannot solve, and it would be nice if someone else solved them. In any case, thanks for the answer!

@DonBruce64
Copy link
Owner

@slava110 try looking at the 1.18.2 branch for a lot of your issues here. I've started porting to that version and a lot of the things are likely to be similar between these two versions. The 1.18.2 branch will actually compile and boot, and you can even spawn in vehicles, though the GUI doesn't work, collision is wonky, and trying to render anything just kills the game. But, you at least can get most of the bulk of the code and methods converted.

@DonBruce64
Copy link
Owner

Also, the mod isn't techincally ARR, but it's certianly not one that permits forking. I've seen what that does to modpacked mods with what has happend to Flansmod, where there's tons of different versions, none of which combine the best work of the others.

@slava110
Copy link
Author

try looking at the 1.18.2 branch for a lot of your issues here

Yep, I totally missed that branch when I've started porting 💀. I don't think there's much I can take from it at this point, but I'll check again anyway a bit later, thanks.
Some of the stuff I've mentioned in ToDos actually differs from 1.18 though (absence of Material and addition of DamageSource registry). And not sure what to do with them rn 🤷

Also, the mod isn't techincally ARR, but it's certianly not one that permits forking

Custom license is technically ARR. But anyway, forking is the thing that matters the most. Had a lot of mods that I cannot use anymore because developer is no longer active anywhere / developer doesn't want port to specific version/modloader (forge/fabric/quilt/mc version). And sometimes I cannot add specific features I want because developer doesn't want them (but that's mostly solvable with mixins nowadays). So I tend to avoid ARR mods usually.
Idk what happened to FlansMod specifically. I only know that sometimes people report issues of forked mods to original repo (even though you can have disclaimers everywhere) and that could be annoying. I don't really see issue with tons of different versions of specific mod (they usually still PR some features to original repo if developer isn't against it, no?). But you do you and I won't hate you for that or anything like that 🙂

@Kaban4ik2023
Copy link

can you make the port to 1.19.2

@slava110
Copy link
Author

slava110 commented Jul 1, 2024

can you make the port to 1.19.2

Sorry, but as I've said earlier, I'm mostly doing this so our server could be ported to 1.20.1. I'm not interested in porting to any version we won't have our server on. Might port to 1.21 but only if we'll port our server to 1.21 🤷 (and we're currently targetting specifically 1.20.1).
Maybe Don will port it to 1.19.2, 1.19.4, 1.20.4, idk, up to him

@slava110
Copy link
Author

slava110 commented Jul 7, 2024

@DonBruce64 what specific problems did you have with FG6 on 1.12.2?

//Leave FG5 at this version. Newer versions do fucky stuff with 1.12.2 builds that result in odd Gradle errors.

@DonBruce64
Copy link
Owner

DonBruce64 commented Jul 16, 2024

Sorry, but as I've said earlier, I'm mostly doing this so our server could be ported to 1.20.1. I'm not interested in porting to any version we won't have our server on. Might port to 1.21 but only if we'll port our server to 1.21 🤷 (and we're currently targetting specifically 1.20.1). Maybe Don will port it to 1.19.2, 1.19.4, 1.20.4, idk, up to him

So I won't be porting to and 1.19.x versions. They just aren't popular enough, especially with the 1.20.x and 1.21.x versions. 1.18.2 is what I'm choosing for my first port personally as there's less different in there vs a larger jump, and even then I'm still struggling with the rendering routines not having any documentation or anything. Horridly de-motivating when all you want to do is send a batch of vertex data to be rendered but there's literally 0 functions in the code that take in a buffer and a stack and queue up said rendering. Even more a PITA when the code crashes with a segfault with no stack so you don't know what you did wrong. Cherry on top is the lack of documentation anywhere for the code. Wasn't a big issue in the older OpenGL direct rendering days as it was the same code as any other direct rendering, but now it's a MC-custom batch system that I have to essentially puzzle out what it wants.

@DonBruce64
Copy link
Owner

@DonBruce64 what specific problems did you have with FG6 on 1.12.2?

IIRC, it was a Java version issue. Updating to FG6 made 1.12.2 not compile nice since I had to run Java 17 for FG6 to run. However, as of the current setup it appears that this is not an issue as I'm able to run Java 17 with FG5 and not have any issues with compiling (all my issues are related to 1.18.2 ForgeGradle specific issues with project type dependencies not loading into the editor for launch properly with one annotation, and not compiling properly with another, and the 1.18.2 latest IDE just not working period).

I'd say go for FG6 as it probably does work, just was a user error on my end when I last tried it.

@biscuitaep
Copy link

When you will release?

@slava110
Copy link
Author

When you will release?

Whenever it will be finished. This port is currently postponed because migrating worlds from 1.12.2 to 1.13+ is harder than was expected (because of Forge and Minecraft changes). And there's no reason for me to port this mod if server world will not be migrated too. If somebody wants to pick it up - go ahead

@Kaban4ik2023
Copy link

OK, will version 1.20.1 be publicly available or current for your server?

@slava110
Copy link
Author

OK, will version 1.20.1 be publicly available or current for your server?

Public. Otherwise I wouldn't have opened this PR in the first place. But it needs time and I'm dedicating time to other stuff rn

@Raiiiden
Copy link

How's the progress so far?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants