Commit graph

298 commits

Author SHA1 Message Date
ConfiG
2b1dc178a4
add any (*) to ComparableVersionInfo 2023-08-09 21:58:44 +03:00
ConfiG
82e128bb57
add utils::string::join 2023-08-07 01:47:14 +03:00
qimiko
041a98ee4d
implement loader for android
compilation still won't work, pending implementations for gdstl/codegen/tuliphook. the first two should be mostly done already. may also be good to get FileWatcher, crashlog, and the file picker implemented but they aren't necessary

the libcurl.a and libssl.a files were built using
https://github.com/ibaoger/libcurl-android. they are placed in the link/android folder because putting them in the link folder confused the macOS build.

once built, the geode binary should be loaded after nativeSetApkPath is ran (otherwise the directory setup crashes). in the future it would be nice if the internal mod also did save data path redirection, as base GD is incapable of doing this

Co-authored-by: mat <26722564+matcool@users.noreply.github.com>
2023-06-05 17:42:22 -07:00
HJfod
5dfff3693f add default case for version comparisons 2023-06-04 17:23:31 +03:00
HJfod
d0c2394a1e fix GEODE_UNWRAP macros not using fully qualified names 2023-06-04 17:23:13 +03:00
altalk23
1323debea7 remove file::current_path, add less and more version compares 2023-05-01 16:06:06 +03:00
altalk23
e3bda2a544 Fix resources because of broken working directory 2023-05-01 12:11:32 +03:00
HJfod
a45032ae2c Merge branch 'main' of https://github.com/geode-sdk/geode into main 2023-04-27 18:51:08 +03:00
HJfod
e7ab46cfdb add logging for gd::string and fix version comparisons being inverted 2023-04-27 18:50:45 +03:00
altalk23
f7edc81df4 fix macos includes for file.hpp 2023-04-27 10:41:07 +03:00
hjfod
50ff15c356 add public file watching api 2023-04-27 09:22:56 +03:00
hjfod
1c699c3b04 fix file::writeToJson 2023-04-24 08:59:38 +03:00
HJfod
2dbad94e52 add utils for loading and saving structs as json files 2023-04-22 21:37:57 +03:00
HJfod
cf69fa3b2f fix WeakRef 2023-04-07 20:07:16 +03:00
alk
5924901d2d
Make SentAsyncWebRequest dllexported 2023-04-05 21:01:32 +03:00
HJfod
e92541a655 add WeakRef 2023-03-30 22:07:57 +03:00
HJfod
a5e33668aa add filter to EventListenerNode 2023-03-23 19:14:09 +02:00
HJfod
11299df20c remove uses of RT_ADD + more bindings 2023-03-22 21:49:29 +02:00
HJfod
09341840f8 more bindings 2023-03-15 22:36:13 +02:00
matcool
306fde70d0
add util geode::cocos::getMousePos 2023-03-11 11:40:03 -03:00
mat
174136ce0b
Make CCDictionaryExt::operator= return type not const 2023-03-10 09:22:48 -03:00
dogotrigger
8310485fc0 Fix CCDictionary's = operator
that was easy and working fix
2023-03-10 09:19:24 -03:00
hjfod
b88eda0fde Merge branch 'main' of https://github.com/geode-sdk/geode 2023-03-08 08:38:25 +02:00
alk
1b2c7606b6
Fix recursive comparison in VersionTag 2023-03-07 11:56:36 +03:00
hjfod
ebfa7b2af4 fix loader min mod version 2023-03-07 08:50:20 +02:00
HJfod
0f19f09a32 fix version comparisons 2023-03-06 20:59:30 +02:00
HJfod
ad98823438 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2023-03-06 19:53:01 +02:00
HJfod
2e485d88a9 add CurrencyRewardLayer::create and its related enums 2023-03-06 19:52:49 +02:00
altalk23
c89df7b992 rename monostate ctors to zero ctors & make it platform independent 2023-03-06 00:52:39 +03:00
hjfod
4a15afc7a7 add EditorUI::sliderChanged + Result::ok + bump version 2023-02-27 18:36:36 +02:00
HJfod
5c9ee08922 fix file open dialog default path not having a way to specify filename 2023-02-26 20:37:13 +02:00
matcool
c183a3566f
fix addresser for CCFileUtils 2023-02-25 15:25:12 -03:00
HJfod
9f60091fbb add file::readDirectory as a sane alternative to file::listFiles 2023-02-25 11:21:43 +02:00
HJfod
75be0b6502
Merge pull request #137 from geode-sdk/better-layouts
Better layouts
2023-02-23 22:34:14 +02:00
hjfod
bbbf3324eb versions now support tag numbers + tags are now used in comparisons 2023-02-22 12:19:17 +02:00
altalk23
5dfef0c352 revert friend create for getting address 2023-02-21 10:41:11 +03:00
HJfod
511938fe1c Merge branch 'main' into better-layouts 2023-02-19 19:58:47 +02:00
matcool
37361269ec move Addresser::followThunkFunction to source 2023-02-14 18:28:13 -03:00
HJfod
ffd50eb0f1 fix ranges::reverse + add break line option to AxisLayoutOptions
also EditorPauseLayer ids but didn't finish the layouts yet
2023-02-14 21:54:45 +02:00
HJfod
cb1a6f15ee update a lot of ids 2023-02-12 13:01:12 +02:00
HJfod
06bc6fda91 move GEODE_DLL to the structs themselves in JsonValidation 2023-02-10 17:09:05 +02:00
matcool
65f2cbb286
follow thunk functions for non virtuals 2023-02-09 13:54:30 -03:00
camila314
0cfb064631 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2023-02-09 09:45:11 -06:00
camila314
41aef57758 make >= default prevent issues 2023-02-09 09:45:06 -06:00
altalk23
04dd151f0e minifunction replacing compiles 2023-02-08 18:25:07 +03:00
altalk23
4bf6344def Merge branch 'main' of https://github.com/geode-sdk/geode 2023-02-08 16:44:23 +03:00
altalk23
4f259c6e3a forward filesystem 2023-02-08 16:42:34 +03:00
HJfod
049ff650e4 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2023-01-31 21:20:05 +02:00
HJfod
f32aaa8b12 add better support for dependencies
- create_geode_file now redirects to a new function called setup_geode_mod
 - setup_geode_mod auto-links loader
 - setup_geode_mod invokes CLI (if v1.4.0+) to automatically check your dependencies and install them + link their headers and libs to your project
 - fix Result::expect not working on non-copiable types
 - add in-memory functions for file::Zip and file::Unzip
 - ComparableVersionInfo now always returns false if major versions dont match
2023-01-31 14:48:34 +02:00
altalk23
5c2db47104 add concepts lib to addresser 2023-01-30 17:29:41 +03:00
altalk23
7c646c21df add special care for CCScrollView 2023-01-30 14:10:39 +03:00
altalk23
e44a4bb513 make cached instance 2023-01-30 11:36:31 +03:00
altalk23
63e9b4c5f7 fix create overloads not recognising 2023-01-30 11:07:18 +03:00
altalk23
4aa09c085b use std::enable_if for create checking 2023-01-30 11:02:32 +03:00
altalk23
68e75eafb5 fix HasCreate 2023-01-30 10:24:59 +03:00
altalk23
2f0c36f007 allow protected and private create funcs 2023-01-30 10:16:55 +03:00
altalk23
f385cc9d43 use ::create wherever you can 2023-01-30 10:06:58 +03:00
altalk23
1e9faac5aa add exception for ccset 2023-01-30 09:53:20 +03:00
matcool
deab672bc2 json rewrite, use custom lib instead of nlohmann::json
This is in attempt to make compile times better, as the old json library
was quite slow to compile due to many template instantiations and such a
large header.

macOS tests have shown build times from 610s to ~390s, about a 1.5x
speedup

Co-authored-by: camila314 <47485054+camila314@users.noreply.github.com>
2023-01-27 21:14:26 -03:00
HJfod
befcf8ecfd add icon for docs 2023-01-24 21:50:40 +02:00
HJfod
a418828394 fix resources not being downloaded by fallbacking to github api
- also add an overload to AsyncWebRequest::expect that gives you the http status code
2023-01-24 18:17:03 +02:00
HJfod
9e52089a01 whoops turns out union cast is required to make it work 2023-01-23 19:51:51 +02:00
HJfod
e65f1184e7 remove use of union_cast 2023-01-23 19:45:29 +02:00
HJfod
21e25ff382 fix thunk adjust 2023-01-23 19:31:38 +02:00
HJfod
c8e627d921 Merge branch 'main' into tulip-hook 2023-01-21 14:17:58 +02:00
HJfod
8d08ca07a0 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2023-01-21 14:17:45 +02:00
HJfod
f8737dde43 docs stuff i think 2023-01-21 14:17:33 +02:00
matcool
1a51754e65
Merge branch 'main' into tulip-hook 2023-01-19 20:18:24 -03:00
alk
018a42a258
Update MiniFunction.hpp 2023-01-18 23:40:33 +03:00
alk
50eecc2c0b
Update MiniFunction.hpp 2023-01-18 23:10:00 +03:00
alk
db109bfdf2
Fix recursive ctor in minifunction 2023-01-18 23:05:37 +03:00
altalk23
a1c7139e53 I only changed the headers and not the sources to improve compile times a bit 2023-01-15 00:45:58 +03:00
altalk23
b97bb0cc98 Merge branch 'main' into tulip-hook 2023-01-06 22:09:53 +03:00
altalk23
eb3b84113c i wasnt content with previous seedvalue impl 2022-12-31 18:02:48 +03:00
altalk23
a49f01b14f remove templates from SeedValue 2022-12-31 17:50:11 +03:00
altalk23
318ec7864f Add SeedValue utility for handling robtop's funny seed rand values 2022-12-31 17:28:05 +03:00
altalk23
45032a4511 Don't link the entirety of geode-sdk for membertest 2022-12-31 15:33:15 +03:00
altalk23
1bdc8f408c Update TulipHook and fix some really minor stuff 2022-12-14 17:17:52 +03:00
altalk23
5666c8f356 separate mod and impl 2022-12-14 14:11:19 +03:00
HJfod
afd9258995 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-13 22:42:49 +02:00
HJfod
9ffb15b616 rework settings
- Settings no longer abuse templates
 - Custom settings are now supported (finally)
 - Bumped version to v1.0.0-alpha
2022-12-13 22:39:45 +02:00
altalk23
63671c9618 compilation test 2022-12-13 10:35:26 +03:00
matcool
25fcc35dad
define NOMINMAX 2022-12-12 21:30:15 -03:00
matcool
2c3520f454 Add CPM.cmake, use it for external libraries
this removes submodules and external libraries in the code in favor of
importing them as CPM packages. CPM_SOURCE_CACHE is recommended as
codegen has to readd two of the same dependencies
2022-12-12 18:20:24 -03:00
mat
8342b7fc7c
fix ranges.hpp once again
i am killing someone
2022-12-12 18:07:34 -03:00
mat
f97dbd96ed
move convertible_to polyfill to ranges.hpp 2022-12-12 17:36:19 -03:00
mat
1d0a59ca38
include concepts in ranges.hpp 2022-12-12 16:43:40 -03:00
HJfod
189040ac78 thingies
- rename LayerBG.hpp to General.cpp
 - add addListBorders UI function for adding comment borders to a list
 - change VersionInfo parsing to use streams
 - remove VersionInfo::validate and instead just have VersionInfo::parse
 - remove scnlib
2022-12-12 18:44:17 +02:00
HJfod
c8e7ce0b18 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-12 15:45:43 +02:00
HJfod
4c4674da93 add suffixes to versions 2022-12-12 15:45:27 +02:00
altalk23
a47937c379 remove spinlocks & make sent async response pimpl 2022-12-12 15:40:05 +03:00
HJfod
ef55605b5b remove SafeCreate for being pointless 2022-12-12 14:11:14 +02:00
altalk23
ca61385f0d Merge branch 'main' of https://github.com/geode-sdk/geode 2022-12-12 14:42:47 +03:00
altalk23
a449225d60 Merge branch 'altalk' 2022-12-12 14:09:16 +03:00
HJfod
3897293862 add file::Zip utility for creating Zip files 2022-12-12 12:45:20 +02:00
HJfod
500e6f2d26 remove use of operator<=>
it doesn't work on mac
2022-12-11 21:01:52 +02:00
HJfod
8a1ecbe5ab try to fix mac build
- add <tuple> include to VersionInfo
2022-12-11 20:44:38 +02:00
altalk23
3a31efe113 implement pimpl for loader 2022-12-10 19:30:14 +03:00
HJfod
7397193e57 index is looking good
- mod dependencies reworked to be much less bad and actually good now
 - mod dependencies finally check the version
 - support for dynamic versions for dependencies (<=vX.X.X, ==vX.X.X, >=vX.X.X)
 - index is now ready for implementing mod installation, then we're done with this massive sausage package
2022-12-09 00:28:05 +02:00
HJfod
28b413d636 make VersionInfo constexpr 2022-12-08 22:04:02 +02:00
HJfod
311eb2e356 work
- fix file::listFiles
 - temporarily make loader mod min version very low to work with index
 - index now properly updates
2022-12-08 13:35:02 +02:00
HJfod
e0d7dbf15b index is now download correctly + that is reported in the UI 2022-12-07 21:21:50 +02:00
HJfod
996acf15aa Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-07 12:37:10 +02:00
HJfod
956ad1d6d5 many changes for updating Index
- events now follow a public const member pattern instead of getters
 - more file utils
 - ModInfoLayer split into LocalModInfoPopup and IndexItemInfoPopup to reduce uses of ugly variant
 - same with ModCell
 - lots of restructuring related to UI anyway
 - Index also got tons of redesigning
 - much more i've forgotten
 - this commit compiles, surprisingly enough, but it's not usable as installing mods through index was removed
 - remove duplicate LevelSearchLayer ids
2022-12-06 21:22:03 +02:00
HJfod
08934132d8 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-04 18:41:14 +02:00
altalk23
20a2dc9f07 fix events and cleanup 2022-12-04 19:39:40 +03:00
alk
b21cb64fdf
Update Result.hpp 2022-12-03 17:41:51 +03:00
altalk23
67d26ac6a7 fully fix result impl 2022-12-03 14:35:28 +03:00
altalk23
9838f51f07 Merge branch 'altalk' of https://github.com/altalk23/geode into altalk 2022-12-02 18:41:08 +03:00
altalk23
0803f83355 completely replace result impl - TODO: fix unzip 2022-12-02 18:40:51 +03:00
HJfod
a11c526066 fix file::createDirectory + fix Notification warning 2022-12-01 22:44:44 +02:00
HJfod
a8cc48f35a Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-01 22:43:11 +02:00
HJfod
66d12395e1 work on new index
- add PlatformID::from string
2022-12-01 22:42:49 +02:00
ConfiG
33ccfdfd35
fix wrong usage of create_directory(ies) api 2022-12-01 17:11:44 +03:00
HJfod
8126175eaa remove geodeRoot 2022-11-30 18:37:15 +02:00
HJfod
2c78b8e620 cleanup
- add CCArray::firstObject and CCArray::removeFirstObject
 - add minizip zip headers and sources (going to add file::Zip class soon)
 - redesign Notifications to be simpler
 - rework Result to not have dual implementations
 - Result::expect now has one default named argument for formatting the error in
2022-11-30 17:07:05 +02:00
HJfod
c113e97844 Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-11-30 13:15:03 +02:00
alk
298593ada8
remove the bandaid 2022-11-30 14:13:20 +03:00
alk
ed4f4e4bf7
Update addresser.hpp with a bandaid 2022-11-30 14:12:23 +03:00
HJfod
f18353c2af cleanup
- rewrote Loader to have a public loading API
 - moved logging away from Loader
 - moved texture path handling away from Loader into CCFileUtils, added new functions there for that
 - bumped version to v0.7.0
 - moved ModInfo to its own header
 - added early loading support through mod.json instead of loader stuff
 - wrote a custom Unzip implementation (essentially same as ZipUtils except with a much more simple and clean API)
 - renamed `src/load` to `src/loader`
 - other stuff i prolly forgor
2022-11-30 00:48:06 +02:00
HJfod
516393ae99 merge utils to be in fewer better-named files 2022-11-28 19:09:39 +02:00
HJfod
63749320a3 remove old Result + move everything over to new Result 2022-11-28 17:42:19 +02:00
HJfod
b9287cebde rework IPC
- replies are now handled by returning from the listener callback
 - can now handle multiple IPC connections at once
 - make Loader::s_unloading actually thread-safe
2022-11-23 15:53:38 +02:00
HJfod
7a047e2a08 update IPC to use json 2022-11-23 00:35:08 +02:00
HJfod
182ced8e17 Merge branch 'main' into layout 2022-11-22 17:24:03 +02:00
HJfod
f5b5a64557 new events stuff
- add preliminary IPC stuff
 - preliminary IPC implementation on Windows (will evolve still)
 - more ids
 - move InternalLoader platform definitions to their own files
 - fix ranges::map not resizing the output
2022-11-22 17:21:00 +02:00
camila314
5e3ec38359 tee-hee forgot something again 2022-11-18 23:19:23 -06:00
camila314
c12fde309e oops silly me forgot something 2022-11-18 23:18:37 -06:00
camila314
4ff33d0985 fix bad impl 2022-11-18 23:15:01 -06:00
camila314
06d69b1db5 findFirstChildRecursive put inside utils because its very useful 2022-11-18 23:04:14 -06:00
HJfod
61c0f1b274 Merge branch 'main' into layout 2022-11-12 12:03:15 +02:00
altalk23
32196f3545 add gjgamelevel::getcurrent and levelsettingsobject::get 2022-11-09 21:07:20 +03:00
HJfod
d20a77aeb1 add ostream operator<< for VersionInfo 2022-11-09 17:45:59 +02:00
HJfod
6d67033eb6 minor changes
- make index always use latest version of mod in index
 - more bindings
 - implement rest of setting types for getBuiltInSettingValue
2022-11-09 17:32:44 +02:00
HJfod
2a81ed1ac1 fix CCArrayExt crashing on a nullptr array 2022-11-08 14:23:40 +02:00
altalk23
727304a276 implement http headers to webasyncrequest and make index conditional request 2022-11-03 23:46:01 +03:00
HJfod
fa1eee5b69 fix merge 2022-11-02 13:44:45 +02:00
HJfod
c8fa701762 Merge branch 'main' into layout 2022-11-02 12:57:03 +02:00
altalk23
11e81e3d64 formatted includes 2022-10-30 21:59:20 +03:00
HJfod
b252c69b8b add more getters + ranges utils 2022-10-27 15:12:31 +03:00
HJfod
e37dd6dc55 add default constructor to VersionInfo finally 2022-10-26 19:52:44 +03:00
HJfod
ec8da8da87 add geode::cocos::reloadTextures utility 2022-10-26 17:56:52 +03:00
HJfod
8340387fc9 fix CCArrayExt crashing on a nullptr array 2022-10-26 16:20:39 +03:00
HJfod
cae4728ac0 texture loading stuff
- add Loader::waitForModsToBeLoaded to ensure mods are loaded at startup before loading screen
 - add Mod::saveData and Mod::loadData (these have to reworked wholly in v1.0.0 to be more reasonable)
 - add ranges::indexOf
 - fix ranges::move
 - add CCFileUtils::removeAllPaths on mac
 - make sure custom resources are loaded before GD
2022-10-25 21:49:50 +03:00
HJfod
c7cc2d4563 fix texture path adding order 2022-10-24 22:46:39 +03:00
HJfod
de64b87ede savedata stuff
* add event-based alternatives to the exported mod entry functions
 * add $on macro for listening to those alternatives
 * add automatically saved values API in the same vain as the settings API to mod
 * add ranges::find and ranges::move
2022-10-24 11:43:17 +03:00
HJfod
27224db75f fix ListView + GEODE_UNWRAP 2022-10-23 19:44:54 +03:00
HJfod
17014b6302 add geode::cocos::switchToScene utility 2022-10-23 17:54:42 +03:00
alk
5a8bc843dc
Update JsonValidation.hpp to add missing GEODE_DLL 2022-10-23 16:39:33 +03:00
alk
a1c9063767
Merge pull request #60 from geode-sdk/altalk
add json validation to source
2022-10-23 16:27:50 +03:00