Add geode

This commit is contained in:
Lncvrt committed 2025-01-05 13:56:22 -07:00
1 parent ceba3130ab
commit 9c61b0a7fd
421 files changed
+30990

No files matched your search

@@ -0,0 +1,43 @@
# Menu Shaders
Replaces the background of the main menu with a customizable shader.
This is a port of mat's [Menu Shaders](https://github.com/matcool/small-gd-mods/blob/3e1783c7e281cbbccd53f9c4ceb697d5a6f839dd/src/menu-shaders.cpp) mod.
## Usage
To change the shader, create a texture pack with a file called menu-shader.fsh.
For a few already made shaders, check out this ~~Twitter~~ X [thread](https://twitter.com/mateus44_/status/1412108556921344006?s=20).
This mod also supports some Shadertoy shaders, to use them:
1. Find a shader you want to use on [Shadertoy](https://shadertoy.com)
2. Copy/paste the code on the right into your menu-shader.fsh
3. If you see the default GD background and errors from Menu Shaders in the console, that likely means that the shader you want to use is incompatible.
## Advanced Usage
### New shader locations
You can also replace shaders in `cgytrus.menu-shaders/any-frag.glsl` and `any-vert.glsl`
for the fragment and vertex shaders respectively,
where `any` can be replaced with either `main`, `level-select`, `creator`, `level-browser`,
`edit-level`, `play-level`, `search`, `garage`, `leaderboards`,
`gauntlets`, `gauntlet` or `treasure-room` to override the shader only for the respective menu.
Shadertoy compatibility is disabled in these shaders.
### Sprites
You can use sprites from resources (including custom ones) by adding a comment starting with `//@`
followed by sprite names separated by commas.
Each sprite in the list will add a `sampler2d` uniform called `sprite0`,
where `0` is the index of the sprite in the list.
### Nodes
You can get information about nodes in the scene by adding a comment starting with `//#`
followed by node IDs separated by commas.
Each node in the list will add a few uniforms, where `0` is the index of the sprite in the list:
- `vec2 node0Pos` - node position in cocos points in world space
- `float node0Rot` - node rotation in degrees in world space
- `vec2 node0Scale` - node scale in world space
- `vec2 node0Size` - node content size in cocos points in world space
- `bool node0Visible` - node visibility (whether it's drawn or not)