Commit graph

142 commits

Author SHA1 Message Date
mat
b9a09f73d5 update json library, changes namespace to matjson
very breaking change! though not annoying to upgrade. this change was
done because matjson is not really meant to be a "do everything" json
library, so taking up the very common `json` identifier was troublesome.
2024-01-03 18:04:43 -03:00
altalk23
aab6533bc4 fix output name 2023-12-23 16:15:55 +03:00
matcool
24bbc65f19 refactor gd::string 2023-12-22 18:09:58 -03:00
matcool
9aaf0e23bf make it so GEODE_DONT_BUILD_TEST_MODS still build member test 2023-12-22 01:43:52 -03:00
matcool
e7e5ee7f26 add some opengl functions here, for now 2023-09-17 15:01:34 -03:00
altalk23
5856f5fde0 Trying to fix hashes by enforcing LF 2023-09-16 11:38:11 +03:00
camila314
dd167972c7 fix for apple silicon 2023-08-21 22:20:20 -05:00
ConfiG
3d2e447333
add epic super secret api that nobody should use 2023-08-13 21:52:31 +03:00
altalk23
e489681c38 begone openssl 3 2023-08-04 21:22:09 +03:00
altalk23
b0d72b0c79 Merge branch 'main' of https://github.com/geode-sdk/geode 2023-08-03 23:39:31 +03:00
altalk23
ea5a5f0076 fix macos installer and the action 2023-08-03 23:39:17 +03:00
matcool
bbf2608ac2
Switch libraries for sha3 256, move implementation to source file
The previous library we used (picosha3) returned a wrong hash for one
particular file. Though this was quite rare (we only found 1 such file),
it was a bug with the library regardless.
The current sha3 library now comes from
https://github.com/stbrumme/hash-library
2023-08-03 17:24:04 -03:00
ConfiG
aa74bb0ecb
fix ci 2023-08-02 18:27:38 +03:00
ConfiG
363d27395c
fix some warnings 2023-08-02 18:04:37 +03:00
ConfiG
2b1becc233
silence warnings from dependencies 2023-08-02 17:34:36 +03:00
ConfiG
25bafae278
try to use ninja on win actions 2023-08-02 02:06:20 +03:00
ConfiG
8f5559f531
refactor actions
- add ability to automatically create a draft release
 - change windows to windows-latest
 - unify "Unzip CLI" and "Add CLI to Path"
 - remove out folder
 - prevent unnecessary files from generating on windows
 - leave resources in platform-specific artifacts
 - unify "Package MacOS" and "Package Windows"
 - use steps outputs instead of env variables for storing version/hash
2023-08-01 21:57:01 +03:00
ConfiG
3c1529caa6
split main.cpp per platform 2023-06-09 18:29:19 +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
matcool
a2b8f2721a
make json library exported 2023-05-24 16:17:58 -03:00
matcool
0f1d81326a
remove minhook and commented out dobby
we seriously were including minhook this whole time?? its literally
unused btw
2023-05-19 12:49:36 -03:00
altalk23
0f6b173a11 handle the ui for major and minor versions 2023-05-01 18:41:18 +03:00
altalk23
d7ccfdef3e revert mod.json resource and move markdowns 2023-05-01 13:06:46 +03:00
altalk23
95f046b98e add markdowns and mod.json as resources 2023-05-01 11:36:11 +03:00
hjfod
75580a01ae changelog stuff
- make changelog visible in-game
 - fix issues with the changelog in ModInfoPopup & scrollbar
2023-04-03 10:43:52 +03:00
matcool
1dfa907c92
include commit hash in geode mod info popup 2023-02-26 09:49:14 -03:00
hjfod
bbbf3324eb versions now support tag numbers + tags are now used in comparisons 2023-02-22 12:19:17 +02:00
altalk23
688b8c4ac9 compile only a singe objcpp file 2023-02-09 13:25:23 +03:00
altalk23
04dd151f0e minifunction replacing compiles 2023-02-08 18:25:07 +03:00
altalk23
478f70e900 fix filesystem pch breaking the impl 2023-02-08 17:37:37 +03:00
mat
df00ad7b88
disable zstd support for minizip
this should fix some macos issues
2023-02-04 17:31:37 -03:00
HJfod
98496182f9 fix build errors 2023-01-31 21:56:50 +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
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
altalk23
dd2672f665 add OSX_DEPLOYMENT_TARGET to loader too 2023-01-28 02:59:43 +03:00
HJfod
d8fb9a948a dont add md4c and re2 if building docs 2023-01-27 14:10:44 +02:00
HJfod
30dc9ad220 add manual resource downloading instructions if automatic failed 2023-01-25 10:06:21 +02:00
HJfod
287816a17c bump version to v1.0.0-beta 2023-01-24 13:17:27 +02:00
HJfod
6839316a5d adios lilac 2023-01-23 20:30:18 +02:00
altalk23
a1be695aab replace modify checking implementation
i got distracted
2023-01-14 22:24:12 +03:00
altalk23
a15e8cb30f temporarily comment out trysavegame hook 2023-01-13 09:12:50 +03:00
altalk23
b97bb0cc98 Merge branch 'main' into tulip-hook 2023-01-06 22:09:53 +03:00
HJfod
486f5ab751 add stuff for docs genning and fix issues for it 2022-12-31 00:50:12 +02:00
altalk23
ac40e4c8fb fix tuliphook result and windows messageboxfix 2022-12-14 17:25:25 +03:00
altalk23
1bdc8f408c Update TulipHook and fix some really minor stuff 2022-12-14 17:17:52 +03:00
altalk23
641c56e7be fix merge artifacts as usual 2022-12-14 16:01:01 +03:00
altalk23
bcfe6a6914 Merge branch 'main' into tulip-hook 2022-12-14 15:38:38 +03:00
HJfod
f3fa425674 replace std::regex with re2 2022-12-14 13:50:16 +02:00
altalk23
0c506ea46c fix cvs 2022-12-13 20:44:56 +03:00
altalk23
d7b1d9ba70 fix macos tulip-hook, it works 2022-12-13 18:34:09 +03:00
altalk23
cef0f3f3bb hooks try to get enabled 2022-12-13 16:32:49 +03:00
altalk23
4f110388e4 Merge branch 'main' into tulip-hook 2022-12-13 08:37:02 +03:00
altalk23
a554f93b93 use cxx_std_XX instead of CXX_STANDARD 2022-12-13 08:36:50 +03:00
altalk23
6009eb8481 add tuliphook as cpm 2022-12-13 08:00:29 +03:00
altalk23
3dae2d0b43 Merge remote-tracking branch 'main-repo/main' into main-repo/tulip-hook 2022-12-13 08:00:06 +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
camila314
550e87377d optimize util slightly 2022-12-12 14:06:04 -06:00
camila314
c440aaa7cc Merge branch 'main' of https://github.com/geode-sdk/geode into main 2022-12-12 13:33:14 -06:00
camila314
98bae53959 LevelSettingsLayer string ids 2022-12-12 13:32:44 -06: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
altalk23
459add6022 add tulip hook first commit 2022-12-12 18:42:56 +03:00
HJfod
4c4674da93 add suffixes to versions 2022-12-12 15:45:27 +02:00
altalk23
3a31efe113 implement pimpl for loader 2022-12-10 19:30:14 +03:00
HJfod
66d12395e1 work on new index
- add PlatformID::from string
2022-12-01 22:42:49 +02: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
634fe303b2 fix mac build 2022-11-28 20:49:21 +02:00
HJfod
02efe58724 more GGCP
- move Core sources to platform folder
 - make sure source files on Mac include DefaultInclude
 - make sure sources are added in cmake
2022-11-28 20:03:30 +02:00
HJfod
d4610df914 more platform cleanup
- remove loader/platform due to being utterly redundant
 - fix CMakeLists on mac
2022-11-28 19:48:55 +02:00
HJfod
72bbffa79d Great Geode cleanup project
- move all platform sources to one central folder under src/platform/name
 - don't add obj-c sources on windows or platform files from other platforms on all platforms
2022-11-28 19:45:23 +02:00
HJfod
46381e7cbc Merge branch 'main' into layout 2022-10-22 19:16:57 +03:00
HJfod
662a9e99f5 big cocos reworks
- remove cocos2dx folder
 - change all include paths in cocos2d to be relative
2022-10-17 15:46:36 +03:00
HJfod
c926f69790 Merge branch 'main' into layout 2022-10-15 18:49:07 +03:00
HJfod
150e1b509b workflow should now have cli. i think 2022-10-14 16:26:16 -03:00
HJfod
f9cda74b58 automatic resource repair
- loader checks if resources are correct at startup, if not, downloads them and replaces
 - add sha256 to hash
 - change hash to use paths instead of strings
 - cmake rework; GeodeFile.cmake now checks CLI version
 - add optional `DONT_INSTALL` argument to `create_geode_file`
 - test mods are now not installed by default
 - add package_geode_resources_now command for packaging resources at configure time and creating a header with their calculated hashes
2022-10-14 16:26:16 -03:00
altalk23
070474dd18 some header fixings and more compile time improvements 2022-10-13 14:00:41 +03:00
altalk23
cce4daf501 more compile time optimizations 2022-10-13 12:56:23 +03:00
HJfod
3f7a9ed8d3 initial layout stuff 2022-10-10 20:58:47 +03:00
altalk23
48ab98a115 macos fixes and implemented the bootstrapper without testing 2022-10-08 12:41:36 +03:00
HJfod
1b40d1a6da move fields to be a member of a new GeodeNodeMetadata class that also
supports user objects again through proxies + string IDs for nodes +
fix nightly folder in cmake + fix codegen not hooking cocos2d funcs +
add every missing virtual to GeometryDash.bro + tons of other addresses
2022-10-06 20:46:07 +03:00
HJfod
b6b138953d Merge branch 'ui' of https://github.com/geode-sdk/geode into ui 2022-10-05 15:45:31 +03:00
HJfod
b1776d1d26 move fetch from Index to exported utils + add close button as a member
to Popup and move setup to be last in init + add
GEODE_PLATFORM_SHORT_IDENTIFIER macro for the platform's identifier in
GitHub release zips + add GEODE_VERSION to cmake + move unzipTo from
Index to be an exported util in file namespace + add mod resources
directories in accordance with new CLI
2022-10-05 15:41:05 +03:00
altalk23
7cca776919 fix nightly folder 2022-10-04 17:45:08 +03:00
altalk23
d9a1fae5b0 compiles on macos, though there are still some crashes 2022-10-04 13:32:40 +03:00
HJfod
aed28fc240 rename GEODE_DONT_PACKAGE_RESOURCES to GEODE_DISABLE_CLI_CALLS in cmake
+ fix build
2022-10-03 14:01:08 +03:00
HJfod
915e2f6966 update for new cli 2022-10-03 13:51:48 +03:00
HJfod
0118945a39 bump version to v0.2.1 + change optional members in ModInfo to actually
use std::optional + JsonValidation support for std::optional
2022-09-29 22:34:28 +03:00
HJfod
5af74e9ab7 move internal mod json data to an actual json file + move platform
console from a cmake arg to an in-game setting
2022-09-28 17:38:02 +03:00
HJfod
0ab32b3e25 update json validation to no longer use exceptions and be enjoyable to
work with + preliminary settings & UI work + various other fixes and
changes
2022-09-13 00:37:25 +03:00
HJfod
e6aee53f45 now uses MinHook on Windows (😨) 2022-09-01 11:02:14 +03:00
HJfod
cdaa8ad6dc add all UI-related stuff from API, including index, nodes, actual ui,
resources, md4c; and fix up some minor formatting issues
2022-08-01 18:18:03 +03:00
HJfod
46e3a071d3 whole of geode except without history 2022-07-30 19:24:03 +03:00