Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Mergening #13

Merged
merged 301 commits into from
Dec 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
301 commits
Select commit Hold shift + click to select a range
52b8208
ThreadedTessellator -> RenderBlocks instance Tessellator
mitchej123 Nov 17, 2023
7b4141d
One inject with multiple methods instead of two injects
mitchej123 Nov 17, 2023
6c292ab
Add AF's Tessellator#reset mixin
makamys Nov 17, 2023
06328cc
Thread Saftey
mitchej123 Nov 17, 2023
ef29216
Small fixes
mitchej123 Nov 17, 2023
ca1ea0b
Overwrite some more rendering methods to ensure they're not used
mitchej123 Nov 18, 2023
bd42a0a
Overwrite some more rendering methods to ensure they're not used
mitchej123 Nov 18, 2023
8655b23
Implement IBlockAccess on WorldSlice
mitchej123 Nov 18, 2023
b267df4
Make WorldSlice use its copied values instead of using the world
mitchej123 Nov 18, 2023
24d2c25
Finish making WorldSlice thread safe
mitchej123 Nov 18, 2023
d15de6d
Cache worldHeight instead of asking the provider every time
mitchej123 Nov 18, 2023
2418abc
Debug Screen updates
mitchej123 Nov 18, 2023
868e338
Disable Culling for now (until it works)
mitchej123 Nov 18, 2023
4d0b0f2
Tessellator Updates
mitchej123 Nov 18, 2023
c0f0684
Misc cleanup
mitchej123 Nov 18, 2023
d830236
Disable multidraw
embeddedt Nov 19, 2023
8fb5d6a
Misc cleanup, maybe better growBuffer?
mitchej123 Nov 20, 2023
7d501d2
Fixing splash screen and GUI issues by excluding SplashProgress from …
Cardinalstars Nov 21, 2023
9881357
Update docs
mitchej123 Nov 21, 2023
55e0ffb
Fixing a one line in SodiumWorldRenderer that allows the game setting…
Cardinalstars Nov 22, 2023
c876404
TileEntites now render
mitchej123 Nov 22, 2023
d225227
Update deps
ah-OOG-ah Nov 22, 2023
d3a8e2a
Less silly transparency
mitchej123 Nov 22, 2023
05530f3
Removing clamp implementation because I missed the one in mathhelper
Cardinalstars Nov 22, 2023
9c7fded
misc cleanup
mitchej123 Nov 22, 2023
3ef5934
Initial sodium entity smooth lighting
ah-OOG-ah Nov 22, 2023
6ed1ed9
Fix entity smooth lighting
ah-OOG-ah Nov 22, 2023
92a58b4
Better grow buffer
mitchej123 Nov 23, 2023
fcb57bb
Update README.MD
mitchej123 Nov 23, 2023
4e289a2
Fix lerp uses and use render layers properly (#17)
ah-OOG-ah Nov 23, 2023
4c26322
Rewind buffers when copying
embeddedt Nov 23, 2023
d5aa42f
Fix multidraw
embeddedt Nov 23, 2023
0d484cc
Force cutout on all non-translucent blocks
embeddedt Nov 23, 2023
29b4d11
Revert "Disable multidraw"
embeddedt Nov 23, 2023
7cf1e82
Let vanilla handle render pass state
embeddedt Nov 23, 2023
0cbe90f
Things
embeddedt Nov 23, 2023
1e739c9
Rewrite render layer check to use Forge 1.7 hook
embeddedt Nov 23, 2023
b9d34ec
Fix skylight handling
embeddedt Nov 23, 2023
74de832
Fix flickering
embeddedt Nov 23, 2023
ec8074b
Clone TEs correctly
embeddedt Nov 23, 2023
671fcde
Fixing entityDistMulti (I think)
Cardinalstars Nov 23, 2023
ad24e63
Use lwjgl3ify 1.5.3
mitchej123 Nov 23, 2023
024b34b
Fix TEs rendering on the wrong pass
embeddedt Nov 23, 2023
ffb77b0
Buff max render distance to 32
embeddedt Nov 23, 2023
73503ec
Fix fog
embeddedt Nov 23, 2023
7cb7bf7
Fix render distance changes being ignored
embeddedt Nov 23, 2023
3618256
Implement entity culling
embeddedt Nov 23, 2023
d2e2b5f
Block face culling
embeddedt Nov 24, 2023
f4477d1
Re-enable occlusion culling
embeddedt Nov 24, 2023
0d27fde
Fix x/z coordinate mixup when indexing biome arrays
makamys Nov 24, 2023
3f6fa1b
Make a copy of biome data
makamys Nov 24, 2023
edaa3ea
Make CompatMemoryUtil#memReallocDirect preserve buffer position
makamys Nov 24, 2023
a97eecf
Use biome data of neighboring chunk sections
makamys Nov 24, 2023
7bd5ba3
Re-enable fog culling
embeddedt Nov 24, 2023
ad63b95
Tile entity culling
embeddedt Nov 24, 2023
19ff8ee
Remove some unneeded Sodium code
embeddedt Nov 24, 2023
e8d6441
Massive code cleanup
embeddedt Nov 24, 2023
0625f15
Fix BS + AbstractMethodError (#18)
ah-OOG-ah Nov 24, 2023
761ef3a
Add back flip check
mitchej123 Nov 24, 2023
0b2a1c1
Bump hodgepodge dep
mitchej123 Nov 24, 2023
58c209e
Bump hodgepodge dep
mitchej123 Nov 24, 2023
4fc02d6
Add AngelicaConfig
mitchej123 Nov 24, 2023
dc503d3
Bump lwjgl3ify & Update README credits
mitchej123 Nov 24, 2023
34db4c0
A few (minor) README adjustments (#19)
Radk6 Nov 24, 2023
ad69d26
Iris work
mitchej123 Nov 24, 2023
4b3d5df
rm archaicfix's occlusion renderer and threaded updates
mitchej123 Nov 24, 2023
d7c7f31
Implemented Sodium's GUI and a couple of setting fixes (#20)
Asek3 Nov 25, 2023
c3ead30
Re-enable DirectMemoryAccess
mitchej123 Nov 25, 2023
836337f
Remove MixinWorldRenderer
embeddedt Nov 25, 2023
dee5497
Add NEID (mixin pr) support
Caedis Nov 25, 2023
3099931
Fix wildcard imports
mitchej123 Nov 25, 2023
a29a91c
Iris.MODNAME
mitchej123 Nov 25, 2023
ca29fd4
Only shadow runtime module of antlr4
makamys Nov 25, 2023
98e8d13
More blockstate removal + basic Sodium FluidRenderer (#21)
ah-OOG-ah Nov 25, 2023
b26db41
Update NotFine
jss2a98aj Nov 25, 2023
395afde
Make LongHashMap actually perform like a hash map
embeddedt Nov 25, 2023
ef7839e
Options GUI Fixes and some option implementations (#22)
Asek3 Nov 25, 2023
a172471
Fix incorrect TE map population
embeddedt Nov 25, 2023
a3b628b
Add optional assertMainThread behind `-Dangelica.assertMainThread=true`
mitchej123 Nov 25, 2023
7ee195a
Add back air optimization, but only apply to vanilla air
embeddedt Nov 25, 2023
931dd8a
Implement more options (#23)
Asek3 Nov 25, 2023
005757a
Combine free regions in GlBufferArena
embeddedt Nov 6, 2023
768cac0
Clear global block entity list when initializing renderer
embeddedt Nov 10, 2023
3aed1a0
Use Set for globalBlockEntities
embeddedt Nov 14, 2023
13ff905
Render invalid TEs but suppress errors
embeddedt Nov 26, 2023
15f7666
Fix defaultBlendFunc calling uncached method
embeddedt Nov 26, 2023
92b5641
Fix incorrect variable name
embeddedt Nov 26, 2023
458e6fc
Redirect glColor3f
embeddedt Nov 26, 2023
deecb0a
AF, CompileStubs, and SplashProgress
mitchej123 Nov 26, 2023
146d805
Rewrite Tessellator hacks - now using a ThreadLocal instead of only p…
embeddedt Nov 26, 2023
f4e4236
Reenable AF mixins, switch to cached debug var, disable incompatible …
mitchej123 Nov 26, 2023
213493f
Remove AF deps and a late mixin that was missed
mitchej123 Nov 26, 2023
e6b0035
Remove compile stubs and compat mixins
mitchej123 Nov 26, 2023
9c64c9d
Add Iris Sodium Compat impl
mitchej123 Nov 26, 2023
d49b31c
Iris work
mitchej123 Nov 26, 2023
6a03b31
Start applying Iris -> Sodium Mixins
mitchej123 Nov 26, 2023
539dea5
Make NotFine menu open if holding shift
jss2a98aj Nov 26, 2023
1fdd1b3
Fixed Tessellators in production env
Asek3 Nov 26, 2023
5e8c4a6
Finish Sodium Fluid Renderer (#24)
ah-OOG-ah Nov 26, 2023
3305256
Fix face culling not taking third person camera offset into account
makamys Nov 26, 2023
46574ed
rewrite ACTEntityRenderer to stop transforming ALL the classes
Alexdoru Nov 26, 2023
6400bf8
rewrite ACTEntityRenderer to stop transforming ALL the classes - forg…
Alexdoru Nov 26, 2023
45e6135
use ClassConstantPoolParser in TessellatorTransformer to speed up sea…
Alexdoru Nov 27, 2023
a3b1661
use ClassConstantPoolParser in GLStateManagerTransformer to speed up …
Alexdoru Nov 27, 2023
4ebc230
rewrite GLStateManagerTransformer and TessellatorTransformer
Alexdoru Nov 27, 2023
34edbd2
merge GLStateManagerTransfor and TessellatorTransformer into one Tran…
Alexdoru Nov 27, 2023
bc9c741
Fixed smooth lighting rendering
Cardinalstars Nov 27, 2023
2eb0785
Iris block_id Mixins & BlockStateIdMap initial impl for 1.7.10
mitchej123 Nov 27, 2023
d04765b
Fix running with lwjgl debug flag & Cleanup old ShadersMod transformers
mitchej123 Nov 27, 2023
527b1fb
Clean up chunk load/unload tracking, fix chunks rendering without nei…
embeddedt Nov 27, 2023
bc44f71
Fix occlusion culler not re-running after important uploads
embeddedt Nov 27, 2023
106e694
Add chunks to queues without going through occlusion culler
embeddedt Nov 27, 2023
33f35be
Correct air checking
Asek3 Nov 27, 2023
183a553
fix obfuscation in RedirectorTransformer
Alexdoru Nov 27, 2023
d6fa442
Extremely primitive synchronization approach for ISBRH
embeddedt Nov 27, 2023
f73f036
add flag -Dangelica.dumpClass to dump the classes transformed by the …
Alexdoru Nov 27, 2023
d8cf17e
rename some GLStateManager stuff
Alexdoru Nov 27, 2023
7131714
check current blend state in GLStateManager before calling GL method
Alexdoru Nov 28, 2023
90bfac5
directly redirect certain glEnable/Disable calls to the appropriate m…
Alexdoru Nov 28, 2023
d366b43
add GL11.GL_LIGHTING to GLStateManager redirects
Alexdoru Nov 28, 2023
187c314
Fix silly
mitchej123 Nov 28, 2023
22657c9
Use factory for Spdium menu createElement outputs
jss2a98aj Nov 28, 2023
b44f8c5
Remove some unused imports (oops)
jss2a98aj Nov 28, 2023
e68907b
Splash Screen Compat
mitchej123 Nov 28, 2023
6125ad8
add GL12.GL_RESCALE_NORMAL to GLStateManager redirects
Alexdoru Nov 28, 2023
da946b3
move getMixins method to Mixins enum
Alexdoru Nov 28, 2023
abf2f36
More glColor variants found in mods
mitchej123 Nov 29, 2023
cd34781
glBlendFuncSeparateEXT
mitchej123 Nov 29, 2023
fb3198e
Separate remaining NamedState enums
jss2a98aj Nov 29, 2023
0f493c7
NotFine but it loads Sodium pages
jss2a98aj Nov 29, 2023
f57021d
Hook up NotFine optimizations
jss2a98aj Nov 29, 2023
25b136d
Hook up some NotFine features
jss2a98aj Nov 29, 2023
53f39ff
Don't use MODE_GUI_BACKGROUND twice
jss2a98aj Nov 29, 2023
96dcd74
Don't enable NotFine features by default until Sodium & Iris are full…
mitchej123 Nov 29, 2023
31cbdd0
Transform byte values into floats for caching
mitchej123 Nov 29, 2023
aac5bc9
Partially neuter GlStateTracker to avoid pipeline stalls
embeddedt Nov 29, 2023
969995b
Add grass quality
embeddedt Nov 30, 2023
fa624c7
copy over hud caching code from hodgepodge
Alexdoru Nov 29, 2023
808500f
backport glstatemanager mixin
Alexdoru Nov 29, 2023
71871c2
fix hud caching integration point in GLStateManager
Alexdoru Nov 29, 2023
b3e5827
allow methods redirected by RedirectorTransformer to have a separate …
Alexdoru Nov 30, 2023
841e281
redirect all OpenGlHelper.glBlendFunc and other blend fonction call t…
Alexdoru Nov 30, 2023
a54d23a
disable HUD caching, add TODO
Alexdoru Nov 30, 2023
74618a5
add config for HUDCaching
Alexdoru Nov 30, 2023
4166c92
Track thread that currently owns the GL Context in addition to the ma…
mitchej123 Nov 30, 2023
2e1c43d
First pass over FontRenderer, 1300->1400 FPS on my GPU when showing F3
eigenraven Nov 25, 2023
bea2850
Add JVM flag to bypass GL state caching
embeddedt Nov 30, 2023
9a64360
Make block bounds fields thread-safe
embeddedt Dec 1, 2023
023c1d0
Put FontRenderer behind a config
mitchej123 Dec 1, 2023
0002f2b
State Tracker Enhancements
mitchej123 Dec 1, 2023
1123b6d
ayfkm
mitchej123 Dec 1, 2023
6dd3078
Fix double initialization that occasionally caused a race condition
makamys Dec 1, 2023
7e6a9ad
Don't shadow jetbrains annotations
makamys Dec 1, 2023
815012a
Fix checkstyle violation
makamys Dec 1, 2023
6a88b52
Dirty bits
mitchej123 Dec 2, 2023
971728a
Iris Mixins - MixinSodiumWorldRenderer
mitchej123 Dec 2, 2023
0d40af2
Iris Mixins - MixinChunkRenderManager & MixinGameRendererContext
mitchej123 Dec 2, 2023
4da0aa8
Add basic dependency info
mitchej123 Dec 2, 2023
6dca8ca
Only when iris is enabled
mitchej123 Dec 2, 2023
52f33a1
Fix FontRenderer+SplashScreen combo
eigenraven Dec 2, 2023
8241847
HUDCaching tweaks
mitchej123 Dec 2, 2023
e64d5ed
Jabba Compat, and reset tesselator state even if the chunk render thr…
mitchej123 Dec 3, 2023
7da6e05
Initial Xaero's World Map + Minimap Support
Caedis Dec 3, 2023
f69e965
Enable missed notfine late mixins
mitchej123 Dec 3, 2023
acdde9f
Add another onTexImage2D overload.
mitchej123 Dec 3, 2023
daeb9c2
Disable Fastcraft & Optifine if present
mitchej123 Dec 3, 2023
104ba4b
Non working Iris WIP
mitchej123 Dec 4, 2023
ede3a44
Iris Progress
mitchej123 Dec 5, 2023
01ce743
It "runs", but doesn't do much
mitchej123 Dec 6, 2023
6187b7c
Wire up more Iris mixins, informing pipeline stages. Still not rende…
mitchej123 Dec 6, 2023
d740458
Deprecate everything in compat.mojang
mitchej123 Dec 6, 2023
5a20e7a
Don't try to transform the server
mitchej123 Dec 6, 2023
86fc246
Avoid running biome generator on client in singleplayer
embeddedt Dec 6, 2023
254616f
Call world biome retrieval methods instead of copying array directly …
mist475 Dec 6, 2023
dbd8ef7
Misc cleanup
mitchej123 Dec 7, 2023
4b3e142
No more running client things on the server
mitchej123 Dec 7, 2023
3d03dc8
Add Iris Keybinds, remove some deprecated compat
mitchej123 Dec 7, 2023
df0d237
More code cleanup
mitchej123 Dec 7, 2023
fe14d19
Remove some deprecated code, and remove some deprecations that don't …
mitchej123 Dec 7, 2023
8c04be7
Shaders now do something!
mitchej123 Dec 7, 2023
bf51422
formatting
mitchej123 Dec 7, 2023
1853672
Initialize MatrixStack with model-view matrix
makamys Dec 7, 2023
2028557
Less silly, and add sun angle mixin
mitchej123 Dec 7, 2023
4e3f782
Shadow Pass work
mitchej123 Dec 8, 2023
35632df
Actually use the ShadowRenderer Model View when running the shadow pa…
mitchej123 Dec 8, 2023
900cf65
initial asm neid compat
Caedis Dec 8, 2023
e58bc1f
fully implement
Caedis Dec 8, 2023
9323772
clean up
Caedis Dec 8, 2023
ee8d801
Enable Sodium SmoothLightPipeline & Iris useSeparateAo
mitchej123 Dec 9, 2023
6e41694
Avoid repeatedly copying biome data on each Y level (#27)
mist475 Dec 9, 2023
8a1e941
Remove temporary exception
mitchej123 Dec 9, 2023
5403fe0
Celestial Rotation fixes
mitchej123 Dec 9, 2023
7018f82
Fix some uniforms, get rid of most accidently continued usages of Sha…
mitchej123 Dec 9, 2023
34eb21f
More uniforms and last of ShaderMod usage
mitchej123 Dec 9, 2023
5e030ce
Fix a few missing DEG <> RAD...
mitchej123 Dec 9, 2023
bf16066
Don't need that....
mitchej123 Dec 9, 2023
04d85c1
Update README
mitchej123 Dec 10, 2023
aade6b3
More credits
mitchej123 Dec 10, 2023
2e3270e
proper attribution
mitchej123 Dec 10, 2023
7ea4c4d
typo readme + change credits fro HUD Caching
Alexdoru Dec 10, 2023
bf71bb4
Restore correctly quoted typo
mitchej123 Dec 10, 2023
37bd06b
Water progress
mitchej123 Dec 10, 2023
4e6ae74
Uniforms audit
mitchej123 Dec 10, 2023
e1e9d66
Lightmap workaround
mitchej123 Dec 10, 2023
adcda9e
PBR compiling, stuck on Normal and Specular textures being added in
Cardinalstars Dec 11, 2023
de9338b
Try only creating the keybinds when being registered...
mitchej123 Dec 10, 2023
49477cd
Update README.MD
mitchej123 Dec 12, 2023
486270b
Update README.MD
mitchej123 Dec 12, 2023
3bab88f
Shaderpack selection "works"; ShaderOptions TODO
mitchej123 Dec 14, 2023
06f921c
Hud caching angelica (#28)
Cardinalstars Dec 14, 2023
b055874
Iris shaderpack keybind works
mitchej123 Dec 14, 2023
3f41689
Small mis-translation fixed
Cardinalstars Dec 14, 2023
0ec86fa
TopButton almost works correctly
mitchej123 Dec 15, 2023
4ac36fa
Fix mistranslation of blit... not sure what the 256, 256 was; but it …
mitchej123 Dec 15, 2023
5cfe9e9
Shader Options GUI work - Not fully wired up
mitchej123 Dec 15, 2023
0027e77
Shader Options almost working
mitchej123 Dec 15, 2023
fedbafc
Entity shadows seem to be working
mitchej123 Dec 16, 2023
0795c82
Add missing mixin
mitchej123 Dec 16, 2023
f93bf51
Move glint fix to Mixin
ah-OOG-ah Dec 16, 2023
f2aa411
Rework mouse handling for ShaderPackConfig
mitchej123 Dec 17, 2023
0b748fe
No star imports
mitchej123 Dec 17, 2023
74c56f5
No remap
mitchej123 Dec 17, 2023
14bb8d0
Stop centering shader options vertically
mitchej123 Dec 17, 2023
4fa8801
Angelica pbr (#31)
Cardinalstars Dec 17, 2023
a9aba9c
Only use Sodium light pipeline if useSeparateAo is on
embeddedt Dec 17, 2023
9510b78
Fix region sorting for translucency
embeddedt Dec 17, 2023
105ddd0
Cleanup some PBR todos
mitchej123 Dec 17, 2023
8347947
Open Shaderpack now works on Linux
mitchej123 Dec 17, 2023
ca6ddb3
RM Shadersmod
mitchej123 Dec 17, 2023
e962de0
Move around compat into code expected to be removed, and code expecte…
mitchej123 Dec 17, 2023
4ca9aa2
yeet
mitchej123 Dec 17, 2023
dcd4dc1
yeet more
mitchej123 Dec 17, 2023
39509de
Move NEI to devOnlyNonPublishable
ah-OOG-ah Dec 18, 2023
573ee46
Initial iris scrollbar clicking
Caedis Dec 18, 2023
25a041d
Punt unsupported ISBRHs to the main thread
embeddedt Dec 19, 2023
1869b22
Delete the ISBRH lock, shouldn't be needed anymore
embeddedt Dec 19, 2023
c5cd94f
Render GT blocks on main thread
embeddedt Dec 19, 2023
00b583f
misc
mitchej123 Dec 23, 2023
1bccf44
Yeet stuff, enable some features by default
mitchej123 Dec 23, 2023
553735a
RM
mitchej123 Dec 24, 2023
fbbd642
Require CCC 1.2.0+
mitchej123 Dec 24, 2023
c012480
Depend on CCC 1.2
mitchej123 Dec 24, 2023
3473b30
devOnlyNonPublishable
mitchej123 Dec 24, 2023
cae6672
Fix TESRs not being tracked for blocks rendered on main thread
embeddedt Dec 24, 2023
8c8ed87
Cut down number of runtime dependencies, enable CoreTweaks in dev by …
embeddedt Dec 24, 2023
fa55c68
Turn off mixin debug by default
embeddedt Dec 24, 2023
96d94fa
Temporarily patch build.gradle to reduce configure times
embeddedt Dec 24, 2023
2c0c9a8
Add modern F3 background
embeddedt Dec 24, 2023
edff367
Pull over some hodgepodge mixins
mitchej123 Dec 24, 2023
deacdd3
Update Readme
mitchej123 Dec 25, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
56 changes: 40 additions & 16 deletions README.MD
Original file line number Diff line number Diff line change
@@ -1,19 +1,43 @@
# Angelica
the little angle that supports shaders while saving your fps from a certain death - boubou
* The little Angle [sic] that supports shaders while saving your fps from a certain death -boubou
* Is it obtuse, or accute? -Caedis
* It's a cute angle -mitchej123

Not yet in an usable state
**Alpha Quality - Here there be Dragons**

Original build instructions obtained via minecraftforums archeology:
```
Developing environment
- Extract forge src to forge folder. Run "gradlew setupDecompWorkspace setupDevWorkspace" until it succeeded, then "gradlew build", then "gradlew eclipse".
- Delete everything in src\main folder inside forge folder.
- Extract smc-2.3.18-mc1.7.10-src.7z to src\main folder.
- Read patch file shadersmod-mcf.patch
- Find %userprofile%\.gradle\caches\minecraft\net\minecraftforge\forge\*\forgeSrc-*-sources.jar and extract it somewhere.
-- Select files that need to be patched and copy them to src\main with correct folder structure.
- Apply patch shadersmod-mcf.patch
- In eclipse, add java_dev folder as another source folder.
- In eclipse, exclude InitNames in src folder from build path. Use InitNames in java_dev folder instead.
- Find %userprofile%\.gradle\caches\modules-2\files-2.1\net.minecraftforge\forge\*\*\forge-*-userdev.jar and extract conf\*.csv and conf\*.srg in it to forge\conf and rename packaged.srg to joined.srg.
```
# Known (temporary) Incompatibilities
* Forge Relocation - Currently non Thread Safe; safe if not in use
* ProjectRed Frames - Currently non Thread Safe; safe if not in use
* EndlessIDs - Future compat planned
* RPLE - Future compat planned

# Permanent Incompatibilities
* Optifine [Disabled, won't fix]
* Fastcraft [Disable, won't fix]
* ArchaicFix 0.6.2 and below - Use 0.7.0 or above
* Hodgepodge 2.4.2 and below - Use 2.4.3 or above
* CodeChickenCore/Lib <1.2.0 - Threading issues, use 1.2.0+

# Credits
* ShadersMod
* Original ShadersMods: karyonix, sonic ether, id_miner, daxnitro
* eigenraven, Caedis, glowredman, and mitchej123 for the conversion of ASM to Mixin
* eigenraven and vlaetansky for getting the original ShadersMod compiling again
* ArchaicFix
* Includes graphic enhancements from [ArchaicFix](https://github.com/embeddedt/ArchaicFix/tree/4afb943751883b27a1f0aa7c5ba71698bc897e95) by embeddedt under the [LGPL](https://github.com/embeddedt/ArchaicFix/blob/main/LICENSE.md)
* NotFine
* Includes modified version of [NotFine](https://github.com/jss2a98aj/NotFine/tree/a2652e24b5654f437fb7138f6d1f5e947a7d7125) by jss2a98aj under the LGPL
* Iris Shaders
* The [Iris](https://github.com/IrisShaders/Iris) Team: coderbot, IMS212, Justsnoopy30, FoundationGames
* Asek3 for the Iris Forge port [Oculus](https://github.com/Asek3/Oculus/tree/839ce8eca8cf0c4f6b7a1322b906e5c99125ca69)
* Backported code under the LGPL
* Sodium
* JellySquid & the CaffeineMC team, for making Sodium in the first place
* Embeddedt for [Embeddium](https://github.com/embeddedt/embeddium/tree/dc59ca357c25beefd6288f0d1d40b4cd8e670ab8) under the [LGPL 3.0](https://github.com/embeddedt/embeddium/blob/16.x/forge/LICENSE)
* Neodymium
* Makamys for [Neodymium](https://github.com/makamys/Neodymium) - Various Tessellator -> Quad functionality taken under the LGPL 3
* HUDCaching
* Created by [Moulberry](https://github.com/Moulberry/MCHUDCaching), backported from [Patcher](https://github.com/Sk1erLLC/Patcher) mod by Alexdoru under the CC-BY-SA-NC 4.0 license
* Angelica
* mitchej123, Omni, Makamys, Embeddedt, NanoLive, Caedis, Cardinalstar, Alexdoru, Eigenraven, mist475, Clepto for helping get Angelica up and running!
* IMS, jss2a98aj, || dbp ||, roadhog360 for advice and moral support
14 changes: 5 additions & 9 deletions addon.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@

configurations {
compileStubs
}

sourceSets {
compileStubsStubs
compileStubs {
compileClasspath += configurations.compileStubs
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xmaxerrs" << "2000"
}
}
}
89 changes: 56 additions & 33 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//version: 1692122114
//version: 1699290261
/*
DO NOT CHANGE THIS FILE!
Also, you may replace this file at any time if there is an update available.
Expand Down Expand Up @@ -89,6 +89,23 @@ def out = services.get(StyledTextOutputFactory).create('an-output')
def projectJavaVersion = JavaLanguageVersion.of(8)

boolean disableSpotless = project.hasProperty("disableSpotless") ? project.disableSpotless.toBoolean() : false
boolean disableCheckstyle = project.hasProperty("disableCheckstyle") ? project.disableCheckstyle.toBoolean() : false

final String CHECKSTYLE_CONFIG = """
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="TreeWalker">
<!-- Use CHECKSTYLE:OFF and CHECKSTYLE:ON comments to suppress checkstyle lints in a block -->
<module name="SuppressionCommentFilter"/>
<module name="AvoidStarImport">
<!-- Allow static wildcard imports for cases like Opcodes and LWJGL classes, these don't get created accidentally by the IDE -->
<property name="allowStaticMemberImports" value="true"/>
</module>
</module>
</module>
"""

checkPropertyExists("modName")
checkPropertyExists("modId")
Expand Down Expand Up @@ -140,6 +157,17 @@ if (!disableSpotless) {
apply from: Blowdryer.file('spotless.gradle')
}

if (!disableCheckstyle) {
apply plugin: 'checkstyle'
tasks.named("checkstylePatchedMc") { enabled = false }
tasks.named("checkstyleMcLauncher") { enabled = false }
tasks.named("checkstyleIdeVirtualMain") { enabled = false }
tasks.named("checkstyleInjectedTags") { enabled = false }
checkstyle {
config = resources.text.fromString(CHECKSTYLE_CONFIG)
}
}

String javaSourceDir = "src/main/java/"
String scalaSourceDir = "src/main/scala/"
String kotlinSourceDir = "src/main/kotlin/"
Expand Down Expand Up @@ -274,7 +302,7 @@ if (apiPackage) {
}

if (accessTransformersFile) {
for (atFile in accessTransformersFile.split(",")) {
for (atFile in accessTransformersFile.split(" ")) {
String targetFile = "src/main/resources/META-INF/" + atFile.trim()
if (!getFile(targetFile).exists()) {
throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile)
Expand Down Expand Up @@ -600,15 +628,10 @@ repositories {
}
maven {
name = "ic2"
url = "https://maven.ic2.player.to/"
metadataSources {
mavenPom()
artifact()
url = getURL("https://maven2.ic2.player.to/", "https://maven.ic2.player.to/")
content {
includeGroup "net.industrial-craft"
}
}
maven {
name = "ic2-mirror"
url = "https://maven2.ic2.player.to/"
metadataSources {
mavenPom()
artifact()
Expand All @@ -623,7 +646,7 @@ repositories {

def mixinProviderGroup = "io.github.legacymoddingmc"
def mixinProviderModule = "unimixins"
def mixinProviderVersion = "0.1.7.1"
def mixinProviderVersion = "0.1.13"
def mixinProviderSpecNoClassifer = "${mixinProviderGroup}:${mixinProviderModule}:${mixinProviderVersion}"
def mixinProviderSpec = "${mixinProviderSpecNoClassifer}:dev"
ext.mixinProviderSpec = mixinProviderSpec
Expand Down Expand Up @@ -770,23 +793,14 @@ ext.java17PatchDependenciesCfg = configurations.create("java17PatchDependencies"
}

dependencies {
def lwjgl3ifyVersion = '1.4.0'
def asmVersion = '9.4'
def lwjgl3ifyVersion = '1.5.4'
if (modId != 'lwjgl3ify') {
java17Dependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}")
}
if (modId != 'hodgepodge') {
java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.2.26')
java17Dependencies('com.github.GTNewHorizons:Hodgepodge:2.4.3')
}

java17PatchDependencies('net.minecraft:launchwrapper:1.17.2') {transitive = false}
java17PatchDependencies("org.ow2.asm:asm:${asmVersion}")
java17PatchDependencies("org.ow2.asm:asm-commons:${asmVersion}")
java17PatchDependencies("org.ow2.asm:asm-tree:${asmVersion}")
java17PatchDependencies("org.ow2.asm:asm-analysis:${asmVersion}")
java17PatchDependencies("org.ow2.asm:asm-util:${asmVersion}")
java17PatchDependencies('org.ow2.asm:asm-deprecated:7.1')
java17PatchDependencies("org.apache.commons:commons-lang3:3.12.0")
java17PatchDependencies("com.github.GTNewHorizons:lwjgl3ify:${lwjgl3ifyVersion}:forgePatches") {transitive = false}
}

Expand Down Expand Up @@ -958,22 +972,13 @@ if (usesShadowedDependencies.toBoolean()) {
configurations.apiElements.outgoing.artifacts.clear()
configurations.runtimeElements.outgoing.artifact(tasks.named("shadowJar", ShadowJar))
configurations.apiElements.outgoing.artifact(tasks.named("shadowJar", ShadowJar))
tasks.named("jar", Jar) {
enabled = false
finalizedBy(tasks.shadowJar)
}
tasks.named("reobfJar", ReobfuscatedJar) {
inputJar.set(tasks.named("shadowJar", ShadowJar).flatMap({it.archiveFile}))
}
AdhocComponentWithVariants javaComponent = (AdhocComponentWithVariants) project.components.findByName("java")
javaComponent.withVariantsFromConfiguration(configurations.shadowRuntimeElements) {
skip()
}
for (runTask in ["runClient", "runServer", "runClient17", "runServer17"]) {
tasks.named(runTask).configure {
dependsOn("shadowJar")
}
}
}
ext.publishableDevJar = usesShadowedDependencies.toBoolean() ? tasks.shadowJar : tasks.jar
ext.publishableObfJar = tasks.reobfJar
Expand Down Expand Up @@ -1173,9 +1178,8 @@ publishing {
version = System.getenv("RELEASE_VERSION") ?: identifiedVersion
}
}

repositories {
if (usesMavenPublishing.toBoolean()) {
if (usesMavenPublishing.toBoolean() && System.getenv("MAVEN_USER") != null) {
maven {
url = mavenPublishUrl
allowInsecureProtocol = mavenPublishUrl.startsWith("http://") // Mostly for the GTNH maven
Expand Down Expand Up @@ -1576,6 +1580,25 @@ def getSecondaryArtifacts() {
return secondaryArtifacts
}

def getURL(String main, String fallback) {
return pingURL(main, 10000) ? main : fallback
}

// credit: https://stackoverflow.com/a/3584332
def pingURL(String url, int timeout) {
url = url.replaceFirst("^https", "http") // Otherwise an exception may be thrown on invalid SSL certificates.
try {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection()
connection.setConnectTimeout(timeout)
connection.setReadTimeout(timeout)
connection.setRequestMethod("HEAD")
int responseCode = connection.getResponseCode()
return 200 <= responseCode && responseCode <= 399
} catch (IOException ignored) {
return false
}
}

// For easier scripting of things that require variables defined earlier in the buildscript
if (file('addon.late.gradle.kts').exists()) {
apply from: 'addon.late.gradle.kts'
Expand Down
79 changes: 73 additions & 6 deletions dependencies.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,77 @@
/*
* Add your dependencies here. Supported configurations:
* - api("group:name:version:classifier"): if you use the types from this dependency in the public API of this mod
* Available at runtime and compiletime for mods depending on this mod
* - implementation("g:n:v:c"): if you need this for internal implementation details of the mod, but none of it is visible via the public API
* Available at runtime but not compiletime for mods depending on this mod
* - compileOnly("g:n:v:c"): if the mod you're building doesn't need this dependency during runtime at all, e.g. for optional mods
* Not available at all for mods depending on this mod, only visible at compiletime for this mod
* - compileOnlyApi("g:n:v:c"): like compileOnly, but also visible at compiletime for mods depending on this mod
* Available at compiletime but not runtime for mods depending on this mod
* - runtimeOnlyNonPublishable("g:n:v:c"): if you want to include a mod in this mod's runClient/runServer runs, but not publish it as a dependency
* Not available at all for mods depending on this mod, only visible at runtime for this mod
* - devOnlyNonPublishable("g:n:v:c"): a combination of runtimeOnlyNonPublishable and compileOnly for dependencies present at both compiletime and runtime,
* but not published as Maven dependencies - useful for RFG-deobfuscated dependencies or local testing
* - runtimeOnly("g:n:v:c"): if you don't need this at compile time, but want it to be present at runtime
* Available at runtime for mods depending on this mod
* - annotationProcessor("g:n:v:c"): mostly for java compiler plugins, if you know you need this, use it, otherwise don't worry
* - testCONFIG("g:n:v:c") - replace CONFIG by one of the above (except api), same as above but for the test sources instead of main
*
* - shadowImplementation("g:n:v:c"): effectively the same as API, but the dependency is included in your jar under a renamed package name
* Requires you to enable usesShadowedDependencies in gradle.properties
*
* - compile("g:n:v:c"): deprecated, replace with "api" (works like the old "compile") or "implementation" (can be more efficient)
*
* You can exclude transitive dependencies (dependencies of the chosen dependency) by appending { transitive = false } if needed,
* but use this sparingly as it can break using your mod as another mod's dependency if you're not careful.
*
* To depend on obfuscated jars you can use `devOnlyNonPublishable(rfg.deobf("dep:spec:1.2.3"))` to fetch an obfuscated jar from maven,
* or `devOnlyNonPublishable(rfg.deobf(project.files("libs/my-mod-jar.jar")))` to use a file.
*
* Gradle names for some of the configuration can be misleading, compileOnlyApi and runtimeOnly both get published as dependencies in Maven, but compileOnly does not.
* The buildscript adds runtimeOnlyNonPublishable to also have a runtime dependency that's not published.
*
* For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph
*/

dependencies {
compileOnly(sourceSets.compileStubs.output)
compileStubs(sourceSets.compileStubsStubs.output)

compileOnly("com.github.GTNewHorizons:ProjectRed:4.7.12-GTNH:dev")
compileOnly(files("dependencies/SmartRender-1.7.10-2.1-dev.jar"))
compileOnly("com.github.GTNewHorizons:Hodgepodge:2.4.3")

compileOnly("org.projectlombok:lombok:1.18.22") {transitive = false }
annotationProcessor("org.projectlombok:lombok:1.18.22")

// Iris Shaders
compileOnly('org.jetbrains:annotations:24.0.1')
shadowImplementation("it.unimi.dsi:fastutil:8.2.1") // Apache 2.0
shadowImplementation("org.joml:joml:1.10.5") // MIT
shadowImplementation("org.anarres:jcpp:1.4.14") // Apache 2.0
implementation("io.github.douira:glsl-transformer:1.0.0")
shadowImplementation("io.github.douira:glsl-transformer:1.0.0") { // glsl-transformer Noncommercial License 1.0.0
exclude module: "antlr4" // we only want to shadow the runtime module
}
compileOnly "org.apache.ant:ant:1.8.2"

// Because who doesn't want NEI
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.4.9-GTNH:dev')
compileOnly('com.github.GTNewHorizons:CodeChickenCore:1.2.0:dev')

// Notfine Deps
compileOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev")
runtimeOnly("com.github.GTNewHorizons:Baubles:1.0.1.16:dev")
compileOnly("com.github.GTNewHorizons:twilightforest:2.5.1:dev") {transitive = false }
compileOnly(rfg.deobf('curse.maven:witchery-69673:2234410'))


compileOnly(rfg.deobf("curse.maven:extrautils-225561:2264383"))
compileOnly(rfg.deobf("curse.maven:dynamiclights-227874:2337326"))

compileOnly("com.github.GTNewHorizons:NotEnoughIds:1.5.3:dev") // Mixin Version
compileOnly("com.github.GTNewHorizons:NotEnoughIds-Legacy:1.4.7:dev") // ASM Version

compileOnly("com.github.GTNewHorizons:Jabba:1.3.1:dev")
// HMMMMM
compileOnly(rfg.deobf("curse.maven:journeymap-32274:2367915"))

runtimeOnly(deobf("https://github.com/makamys/CoreTweaks/releases/download/0.3.3.2/CoreTweaks-1.7.10-0.3.3.2+nomixin.jar"))

runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.3.55-GTNH:dev")
}
9 changes: 5 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,12 @@ apiPackage =
# Specify the configuration file for Forge's access transformers here. It must be placed into /src/main/resources/META-INF/
# There can be multiple files in a comma-separated list.
# Example value: mymodid_at.cfg,nei_at.cfg
accessTransformersFile = angelica_at.cfg
accessTransformersFile = angelica_at.cfg notfine_at.cfg archaicfix_at.cfg

# Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled!
usesMixins = true
# Adds some debug arguments like verbose output and export
usesMixinDebug = true
usesMixinDebug = false
# Specify the location of your implementation of IMixinConfigPlugin. Leave it empty otherwise.
mixinPlugin =
# Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail!
Expand All @@ -85,7 +85,7 @@ forceEnableMixins = false

# If enabled, you may use 'shadowCompile' for dependencies. They will be integrated in your jar. It is your
# responsibility check the licence and request permission for distribution, if required.
usesShadowedDependencies = false
usesShadowedDependencies = true
# If disabled, won't remove unused classes from shaded dependencies. Some libraries use reflection to access
# their own classes, making the minimization unreliable.
minimizeShadowedDependencies = true
Expand Down Expand Up @@ -136,7 +136,8 @@ curseForgeRelations =
# Uncomment this to disable spotless checks
# This should only be uncommented to keep it easier to sync with upstream/other forks.
# That is, if there is no other active fork/upstream, NEVER change this.
# disableSpotless = true
# Disabling to make easier to sync if some of the additional mods get any changes upstream
disableSpotless = true

# Override the IDEA build type. Valid value is "" (leave blank, do not override), "idea" (force use native IDEA build), "gradle"
# (force use delegated build).
Expand Down
10 changes: 9 additions & 1 deletion repositories.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
// Add any additional repositories for your dependencies here

repositories {

maven {
name = 'covers1624 maven'
url = 'https://nexus.covers1624.net/repository/maven-hosted/'
metadataSources {
mavenPom()
artifact()
}
}
mavenLocal()
}
Loading