Releases: geode-sdk/geode
Releases · geode-sdk/geode
Event system changes
- Add
SpacerNode
for layouts (b44b5d3) - Add the
Dispatch
system for using events without linking to optional dependencies (b44b5d3) - Add
EventFilter::getCallback
and makeEventListener::getFilter
return a reference (ed8d230, 0460fef) - Add
CCNode::getEventListenerCount
(3dd6d55) - Add IDs to
CustomSongWidget
(530551e) - Rework event listeners to have them not all be placed in the same queue aswell as fixing issues with dangling pointers (993cd6f, 6ba9148, b9b8c29, 69ddb75, ...)
- Make
SentAsyncWebRequest
dllexported, allowing mods to use async web requests (5924901) - Fix issues with
WeakRef
(cf69fa3) - Fix being able to recursively click on developer names to open the list of their created mods (fac032f)
Thank you to Fleeym for contributing to this release!
Minor Fixes
- Fix crash when installing mods (2efe772)
- FMOD is now linked on MacOS (f662251)
GEODE_DEBUG
on longer needs to be defined forlog::debug
to work (ab2abcd)- Make Geode changelog visible in-game (75580a0)
- Make the changelog only be loaded once the changelog button is pressed in ModInfoPopup (75580a0)
- Fix the scrollbar not working for the changelog in ModInfoPopup (75580a0)
- Fix visual issues with scrollbars (75580a0)
Many Changes & Improvements
v1.0.0 is just around the corner, they said. This will be the last beta release, they said.
Changes
- New
geode::prelude
namespace to replace the oldUSE_GEODE_NAMESPACE()
macro (5af15fb) - Add
CCNode::removeChildByID
(5f3c658) - Add
CCNode::hasAncestor
(38575ac) - Add
CCScene::get
andCCScheduler::get
(38575ac) - Add
geode::cocos::getMousePos
(306fde7) - Add
GEODE_DONT_INSTALL_MODS
option to CMake (7ca9959) - Add logging
std::vector
withlog::
functions (7305445) - Add
EventListener::getFilter
(5cdfbc3) - Add
AttributeSetEvent
for detecting when attributes are added to nodes (69bd0d9) - Add
CCNode::addEventListener
(along with other related functions) as convenience methods for adding event listeners that target nodes (35f7f86) - Add
WeakRef
as a weak pointer alternative toRef
(see the docs for a tutorial) (e92541a, 0e46362) - Add option to ignore invisible children to
Layout
(152f90c) CCNode
attributes now usejson::Value
overstd::any
for ABI compatability (7963469)- Implement file picker on Mac (d7b0e09)
- Define
CCNode::retainCount
inline (57947a9, 72448e1) Layout
now inherits fromCCObject
, allowing you to share layouts across multiple nodes (81472c9)- Update TulipHook version (3d339ef)
- Make sure mod load/enable/etc. events are only ever posted in the GD thread (93fd396)
Mod::getResourcesDir
now returnsgeode/unzipped/{mod.id}/resources/{mod.id}
in conjunction with CLI v2.1.0 (22a6745)- Give a name to
ccTouchType
(e2e1da0) - Fix
Scrollbar
being funky sometimes (585a9de, 83b0850) - Fix mod resources not being loaded if the mod is enabled at runtime (9fb5051)
- Fix
EditLevelLayer
description update button ID & layout (21ee689) - Fix hooking functions with unpredictable calling conventions (94138f3, 33a2883)
- Fix
setup_geode_mod
not linking to Geode if CLI calls are disabled (4318a8d) - Fix code editors showing a ton of warnings with
$modify
(cf1371f) - Fix top sprite sizes of
CircleButtonSprite
andEditorButtonSprite
(0a37b01, eabb68b) - Fix
Mod::enableHook
error message (162979c) - Lots of bindings on both Windows & Mac (50+ commits related to bindings)
Fix versioning
Final Beta Release
This should fr ong be the final beta release of Geode, as we have nothing left to add or change, only bugs to fix.
Changelog
v1.0.0-beta.8
Still hoping this to be one of the last beta releases. Soon I will speak the truth.
Changes
- Add support for Geode CLI v2.0.0 (which has not been released yet) (088ac7b, deadb58)
- Logging no longer causes a crash on invalid formats, but instead just warns (6aba7cf)
file::pickFile
now uses the last item in the default path as the default filename to save/open (5c9ee08)- Fix
EditorPauseLayer
crashing constantly due to some members being accidentally set tonullptr
(33a91d6)
1.0.0-beta.7
This release mainly fixes the crash at opening on MacOS and some artifacts from the new layout system.
Changelog
- Add
Mod::getResourcesDir
for getting the mod resources directory (0055032) - Deprecate
file::listFiles
forfile::readDirectory
(9f60091) - Fix getting virtual function addresses for CCFileUtils (c183a35)
- Rename
BasedButtonSprite
sprite names to be more expressive (4d2daec) - Fix
typeinfo_cast
causing a crash if passed anullptr
on MacOS (d024dbb) - Fix settings not getting broadcasted (7089194)
- Make
Loader::getLoadedMod
andLoader::isModLoaded
also check if mod is enabled (3222097) - Display Geode commit hash in the bottom right of the mod info layer (1dfa907)
- Fix
EditorPauseLayer
info labels on the top left being too big (f5983a2)
1.0.0-beta.6
This release brings an overhaul of the layouts system, making it finally production-ready, aswell as applying layouts to many common layers.
Changelog
- Reworked layouts from the ground up - see the docs page for more information about how the new system works (#137)
- Update the IDs for a bunch of layers, aswell as adding some predefined layouts (3f64b98, ef9e741, a78bc0c, cb1a6f1, ea037a9, f7ddf0a, ...)
- Add IDs & layouts to
EditorPauseLayer
(12d88ae) - Add
CCNode::insertBefore
andCCNode::insertAfter
for adding children before/after existing ones (eb10eca, 4613af6) - Add
CCSize::aspect
convenience method - Add
Mod::getResourcesDir
for getting a mod's runtime resources directory (where[mod.json].resources.files
are placed) (0055032) - Add
Mod::addCustomSetting
for convenience in registering custom settings (7089194) - Add
file::readDirectory
as a sanely named alternative tofile::listFiles
(9f60091) - Move
GEODE_DLL
to the structs themselves inJsonValidation
(06bc6fd) - Versions now support tag numbers & version tags are now used in comparisons. This change does not affect old betas, which still internally report their version as just
v1.0.0-beta
, but starting with this beta the version is correctly reported asv1.0.0-beta.6
and correctly compared against other versions (bbbf332) Loader::getLoadedMod
andLoader::isModLoaded
now only return if the mod is also enabled (3222097)- Geode's internal mod representation is now included in the loader's loaded mods list (4261e99)
- Fix settings value changes not being broadcast. This causes an API break relating to custom settings;
SettingValue
now requires the owner mod ID in its constructor (7089194) - Fix some warnings (9c9706b, f7bfa21)
- Fix
CCNode::swapChildIndices
(ba0851e) - Fix
typeinfo_cast
causing a crash if passed anullptr
(f4a3258) - Fix
ranges::reverse
causing UB (ffd50eb) - Other fixes & improvements (cb00c21)
Bindings
- Add
CCEGLView::getDisplaySize
on Windows (5a1545e) - Add
GameManager::getFontTexture
on Mac (fb11ea3) - Add
m_collidedSlope
,m_isCheckpointQueued
,m_hasHitRing
,m_objectSnappedTo
,m_checkpoint
,m_hasHitPortal
,m_isOnSlope
,m_wasOnSlope
toPlayerObject
(fb11ea3, 14d0ead) - Add
CCCircleWave::m_color
(3be7ae8) - Add
GameLevelManager::downloadLevel
on Windows (3be7ae8) - Add
GameLevelManager::hasDownloadedLevel
on Windows (3be7ae8) - Add
GameLevelManager::getSavedLevel
on Windows (3be7ae8) - Add
GameLevelManager::saveLevel
on Windows (fcfbd01) - Add
LevelInfoLayer::downloadLevel
on Windows (fcfbd01) - Add
GameSoundManager::get
(3be7ae8) - Add
MenuLayer::create
(3be7ae8) - Add
EditorPauseLayer::updateSongButton
andEditorPauseLayer::onSong
on Windows & Mac (262c15d) - Give proper names to
EditorPauseLayer::m_guidelinesOffButton
andEditorPauseLayer::m_guidelinesOnButton
(262c15d) - Fix
GameManager::resolutionForKey
return type (5a1545e)
Another beta release of v1.0.0
This version includes mostly bug fixes. Mods which used the ModInfo interface directly should break due to a binary change
Changelog
Fifth beta release of v1.0.0
Changelog
- add some bindings
- fix macOS libzstd crash