Releases: geode-sdk/geode
Second beta release of v1.0.0
This beta release brings one new major API change along with various bug fixes & improvements.
As before, if you encounter any issues using Geode (installation, documentation, usage, etc.), please do let us know through Github issues or through our Discord server. Along with this, if you have any complaints about Geode, please direct those at us too.
Changelog
- Switched to a new custom-built JSON library to replace
nlohmann::jsonfor compile-time improvements; if you were using the old JSON library, you can add & link tonlohmann::jsonin your own project, or update to use the new API. (deab672) - Fix resources not being downloaded automatically by using a fallback to latest release (a418828)
- Add a new clear instruction popup in case downloading still fails (30dc9ad)
- String ID hooks now have higher priority, so they should always be applied regardless of if you call
NodeIDs::provideForor not (though it can still be called to absolutely ensure the IDs are there!) (b6a6e4d) - Various internal bugfixes & improvements (ceb02e9, a90b3e1, b00ab40, c644b43)
Bindings
- Add
DrawGridLayer::loadTimeMarkers(d06840d)
Docs
- We now have a fresh new look for our docs, along with automated documentation for all our classes & GD bindings! You can find them at https://docs.geode-sdk.org :)
First beta release of v1.0.0
Introducing a major redesign of many parts of the framework, including a new hooking framework, a string ID & layout system for nodes, improvement of many existing features, and much more.
The purpose of this release is to make sure the framework is production-ready, and to catch bugs / missing features before the full release of v1.0.0 while we are working on documentation (we've got a new site!). Once the full release of v1.0.0 hits, the API will be stabilized - from there on out, we will be following semver, and you can be quite confident that the mods you write now will work in the future, without needing to update them every few weeks.
If you encounter any issues using Geode (installation, documentation, usage, etc.), please do let us know through Github issues or through our Discord server.
v0.6.1
Additions
- Add
geode::cocos::switchToSceneutility for easily switching to a layer with the default fade transition - Add
Mod::getPackagePathas a replacement forMod::getPath - Add
geode/configdirectory as a standardized place for mods to add their config files - Add
Mod::getConfigDirfor getting a mods' config directory - Add open config directory button to mods with a config directory
- Add open save directory button to mods' settings popup
- Add more bindings
Changes
- Removed deprecation from
Result(it still will be replaced in v1.0.0, we just got tired of the warnings) JsonChecker<nlohmann::json>andJsonChecker<nlohmann::ordered_json>are now defined in-source as exported symbols to speed up compilation times
Fixes
- Fonts are now displayed properly on Medium / Low quality (geode-sdk/cli@8d73d04)
v0.6.0
This minor release brings a few new features and changes.
Additions
- Added
Loader::addTexturePathandLoader::removeTexturePathto work with additional resource paths- Mods that work with Cocos2d search paths directly should convert to using the above functions
- New header
Geode/ui/LayerBG.hppwithcreateLayerBGfunction for creating the blue gradient background GD layers have - Added
NewResultclass, which will eventually replace the oldResult - Add
deprecateandnodiscardattributes to the oldResultclass - Many more bindings on Mac and Windows
- Add IDs to
LevelSearchLayer(thank you @Jollycistaken, #57)
Changes
- Mod resource loading has been reworked again, with the intent of adding support for texture pack loaders
- All Cocos2d include paths have been changed to be relative
cocos2dxfolder has been removed, cocos2d is now directly insideGeode/cocos- Loader resources updating will no longer check for plist file differences due to problems with CLI on Mac
- Cocos2d selectors (like
SEL_MenuHandler) no longer requireusing namespace cocos2d
Fixes
- More codegen optimizations, Geode mods should now compile faster
v0.5.0
This minor release brings some new utilities and reworks how adding mod resources are handled. On top of this, I have been informed I was doing semver incorrectly. We will be trying to do it better from now on.
Changelog
- Added
CCFileUtils::get - Fix crashes related to setting IDs in
MenuLayer - Remove
Loader::updateModResourcePathsandLoader::updateResourcePaths. The minimum mod target version is still v0.4.0 however, as you should never have been using these functions. - Rework how mod resources are added
- Deprecate
geode::utils::vectorandgeode::utils::containernamespaces and replace them withgeode::utils::ranges - Finally added a license to Geode! The framework is now licensed under BSL v1.0.
v0.4.8
This patch release should fix issues with loader resources.
Changelog
- Loader again verifies if resources are missing / corrupt on startup
- Resource download text is no longer a popup on top of the title but instead just replaces the loading text
- Add delegates to
EditLevelLayer
v0.4.7
v0.4.6
This patch release brings a new feature: automatic resource fixing! If Geode is missing resources, they are automatically downloaded on startup.
Additions
- Automatically checks & downloads loader resources if they are missing / corrupt on startup
- CMake rework;
GeodeFile.cmakenow checks and verifies CLI version - Add optional
DONT_INSTALLparameter tocreate_geode_file - Add
package_geode_resources_nowcommand for packaging resources at configure time and creating a header with their calculated hashes - Test mods are now no longer automatically installed
Fixes
- Fix
getSceneDelegate - Change
CCArrayExtto useRef
v0.4.5
This release brings a lot of internal reworkings and fixes related to the mods index and headers. Bindings and modify are both now split, meaning that you can include specific bindings with #include <Geode/binding/ClassName.hpp> and specific modifies with #include <Geode/modify/ClassName.hpp>.
Additions
- Add new overloads to
fileutils and deprecate ones that don't useghc::filesystem::path - Add
JsonChecker::atandJsonChecker::arrayfor dealing with arrays - Add
geode::utils::web::fetchBytesfor fetching a byte array synchronously - Add
geode::utils::web::AsyncWebRequestfor creating thread-safe asynchronous web requests - Add
Loader::updateModResourcePathsfor adding a mods' resources to search paths. Not recommended to be called manually - Add an overload to
geode::createQuickPopupfor specifying popup width ModInfo::createFromFilenow checks forabout.mdand other special files in the same directory- More addresses
Changes
- Remove automatic mod updating for now, however automatic update checking for mods is still there
- Rework bindings and codegen to improve compile times, now individual bindings can be included with
<Geode/binding/{ClassName}.hpp> - Modify has also been separated, you can now include individual modifiers with
<Geode/modify/{ClassName}.hpp> - Various other fixes to improve compile times
Fixes
- Fix mod resources not being loaded when installed from Index
- Fix crashes related to downloading mods
- Fix
Loader::queueInGDThreadsometimes leaving out functions - Fix crashes related to logging
- Index mods now show their
about.mdfiles - Various other fixes & improvements
Internal
- Index reworked
- Fix issues with
VERSIONfile - Add
GEODE_DEBUGmacro for enablinglog::debugto actually print stuff - Show crashlog on crash when
GEODE_DEBUGis enabled