Changeglog statement for 1.7.10 false?
Chaoschaot232 opened this issue ยท 3 comments
Issue description
I like the usage of MT/CT even while using 1.7.10 but using features made available from newe MC versions.
Referring to https://www.curseforge.com/minecraft/mc-mods/crafttweaker/files/2838720 it is clearly stated that the ZS Engine 1.12 is useable with this legacy build but no it isn't because the API is only 1.11.2 and now all of my scripts are worthless.
It needed after all 2 days to figure out, that in the changelog is an irritation because it can not use 1.12 ZS Engine while the API is not updates to 1.12 and for the 1.11.2 API there are no docs.
All this ends up in not be able to use cross-scripting, loading scripts from subfolder (throws out an error on /mt reload) and so on.
Steps to reproduce
Simply load the latest legacy version and try a script with 1.12 documentation stuff, like corss-scripts (scripts.subfolder.scriptname) and it will error out.
Try to use subfolder ... it will error out.
Script used
na
The crafttweaker.log file
na
Minecraft version
Other
Modloader
Forge
Modloader version
forge 10.13.4.1614 for mc1710
CraftTweaker version
3.1.0-legacy
Other relevant information
Logs are not required here becuase this is an error produced by wrongly written changelog file.
My understanding of versioning is that when you rais up any API/Core/Engine version then this should apply
to the other as well. In this case ZS Engine was updated to latest available 1.12 but API wasn't but it has to be updated
to 1.12 too in terms of developer codex (from what I have learned).
Maybe some part is my personal meaning but at last it has confused me and now I can begin from scratch as long as no backport of the API for 1.7.10 will happen (and I don't think that it will come, even if it would be nice).
The latest.log file
na
I think you're a bit confused about a few things.
You can view all the changes made to engine since the last 1.7 release and the legacy release here
CraftTweaker/ZenScript@79b0cc6...0df61e0
Updating the ZS engine is a 2 minute thing, it is not meant to break anything because it doesn't touch game code.
The ZS engine version has absolutely nothing to do with the minecraft or mod version, it is just the version that so happened to be released with the mod at the time, so we updated to the latest version that 1.12 used, but that has nothing to do with 1.12 itself.
As for the API, so for starters, the 1.12 api is incompatible with the 1.11 and below api, it is missing things such as script reloading and parts of the game changed so what may be possible on 1.12 is not necessarily possible on 1.11.
Personally we felt that it would be better to give full 1.11 functionality instead of removing /ct reload
and other features from the legacy version.
So the changelog statement is 100% true, you can enjoy new features like the continue
keyword, and everything that was added between 1.7.10 and 1.11.2 to the api.
My understanding of versioning is that when you rais up any API/Core/Engine version then this should apply
to the other as well
You have a bad understanding of versioning then.
At most, you may update things to the latest that is still compatible, which as I just pointed out, 1.12 api is not compatible.
I don't know what you want me to tell you here, to be completely blunt, you are lucky there is even a legacy version that was released for a 5 year old version of the game (at the time, currently 1.7.10 is nearly 8 years old).
We have absolutely no plans to touch anything below 1.12 (and even that is a big stretch).
So the changelog statement is 100% true, you can enjoy new features like the continue keyword, and everything that was added between 1.7.10 and 1.11.2 to the api.
Well, I wanted to use smth. like this too:
for item in loadedMods["botania"].items { recipes.remove(item); }
But it's missing the ".items" to resolve this, also Cross-Script using is not possible and even loading scripts through subfolders errors out.
Some functionality may not be possible due to what have changed between 1.7.10/1.11 and 1.12 but I think that this doesn't applies to cross-script loading functionality, class coding and so on. So it should be possible to be able to make the code pice above do work but what has to be changed is the real question.
Well, I wanted to use smth. like this too:
for item in loadedMods["botania"].items { recipes.remove(item); }
But it's missing the ".items" to resolve this,
That is part of the api that was specifically added in 1.12, which as said in the changelog, you only have up to the 1.11.2 API.
Cross-Script using is not possible
A quick look through the commits it looks as though the feature exists in the legacy version, no idea why it wouldn't working.
even loading scripts through subfolders errors out.
Loading scripts is done through the CraftTweaker API, if any changes or fixes were made to that during the 1.12 lifespan, you wouldn't have those changes or fixes in the legacy version.
I also just want to point out, the changelog states (with my emphasis added):
Updated the API to the latest 1.11.2 API
This means that any script written in 1.11.2 will (read should) work on this version, there are way too many changes to actually write them all here unfortunately.
It specifically does not say you can use the 1.12 api.
As I already said before;
We have absolutely no plans to touch anything below 1.12 (and even that is a big stretch).