Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
294 commits
Select commit Hold shift + click to select a range
3a0c61c
nope.
screret Jul 19, 2025
4dd68d4
missed these from other commits
screret Jul 19, 2025
fc2e322
it's now broken in a slightly different way. and randomly the JVM cra…
screret Jul 19, 2025
7668ac6
Merge branch 'sc/fix-bloom-issues' into sc/builtin-bloom
screret Jul 23, 2025
33697e3
rename BloomEffectUtil to BloomUtil
screret Jul 23, 2025
46e2276
move BloomEffect fields to BloomUtil
screret Jul 23, 2025
b98781d
move bloom buffer maps from GTShaders to BloomUtil
screret Jul 23, 2025
363f42a
move BloomAlgorithm up a package
screret Jul 23, 2025
35a60be
clean up GTParticleManager's event listeners
screret Jul 23, 2025
901325d
spotless
screret Jul 23, 2025
5c1edbf
enable stencil on the bloom buffer
screret Jul 23, 2025
df248ab
Merge branch '1.20.1' into sc/builtin-bloom
screret Jul 25, 2025
2f87b89
clean up shaders and use better names for the uniforms
screret Jul 25, 2025
451b352
fix LWJGL sources not working
screret Jul 25, 2025
c0ff3b0
clearer config field names
screret Jul 25, 2025
50aabb4
don't clear buffers after rendering
screret Jul 25, 2025
7768e9f
remove bloom transparency sorting
screret Jul 25, 2025
49fcd77
fix fusion ring bloom
screret Jul 25, 2025
f42d6f6
remove enabling stencil buffer for no reason
screret Jul 25, 2025
7bc94a8
fix the shaders not working
screret Jul 25, 2025
74f09b4
apparently depth checking does not work, revert
screret Jul 25, 2025
535e0ec
remove the rescaling target
screret Jul 25, 2025
738caec
remove entirely unused fusion and cable bloom configs
screret Jul 25, 2025
853c5dd
Merge branch '1.20.1' into sc/builtin-bloom
screret Jan 15, 2026
2f4b437
Remove GAUSSIAN bloom option as it isn't implemented and UNREAL does …
screret Jan 15, 2026
ec8bec2
block loading mixins if there are load errors (thanks Oculus)
screret Jan 15, 2026
f90f1c2
rename GTShaders's util methods
screret Jan 19, 2026
39b3213
very minor cleanup
screret Jan 19, 2026
16bbf7a
fix renamed method reference
screret Jan 19, 2026
6378e80
very minor doc cleanups
screret Jan 19, 2026
43054ec
don't ignore `emissiveTexturesHaveBloom` config when embeddium is ins…
screret Jan 19, 2026
be67f47
fix merge mistakes
screret Jan 19, 2026
1ca9e61
remove unused mixin
screret Jan 19, 2026
651caae
implement the relative scaling logic shimmer had
screret Jan 19, 2026
4819870
more very minor cleanups
screret Jan 19, 2026
483e73d
copy depth buffer from the screen render target
screret Jan 19, 2026
4c0d319
also check depth state when filtering pixels that should have bloom
screret Jan 19, 2026
22e82c3
wait no that wont do anything if the depth buffer is copied over nvm
screret Jan 19, 2026
3c4e685
fix bloom_unreal having a badly named sampler that made the lowest re…
screret Jan 19, 2026
876d433
(TEMPORARY) make LWJGL and FastUtil be downloaded from the central ma…
screret Jan 19, 2026
47723ce
also check depth state when filtering pixels that should have bloom
screret Jan 19, 2026
a541f1b
make it smarter
screret Jan 19, 2026
fd46d60
Add a hook for running `./gradlew processResources` when F3+T is pressed
screret Jan 19, 2026
76efb07
remove the rescaling stuff because something else is also rescaling e…
screret Jan 19, 2026
20446ef
spotless + datagen
screret Jan 20, 2026
206cd3c
Merge branch '1.20.1' into sc/builtin-bloom
screret Feb 13, 2026
2e40dc8
Merge branch '1.20.1' into sc/builtin-bloom
screret Feb 15, 2026
b028f19
Merge branch '1.20.1' into sc/builtin-bloom
screret Feb 21, 2026
4209eae
spotless
screret Feb 22, 2026
e72ad89
Merge branch '1.20.1' into sc/builtin-bloom
screret Feb 26, 2026
95835c8
Merge branch '1.20.1' into sc/builtin-bloom
screret Mar 14, 2026
c6ecbe3
Merge branch '1.20.1' into sc/builtin-bloom
screret Apr 6, 2026
7468054
datagen
screret Apr 6, 2026
4acd70e
sometihng about CTM quads
screret Apr 10, 2026
b9de7ce
Merge branch '1.20.1' into sc/something-about-ctm-quads
screret Apr 17, 2026
8fa9899
"remake" the baked model replacement stuff (but not really)
screret Apr 17, 2026
9979fe3
reimplement LDLib's CTM wrapper model
screret Jun 23, 2025
9253abc
Rip out almost* all LDLib CustomBakedModel usages & replace them with…
screret Apr 17, 2026
96721b3
Move CTM things to `client.model.ctm`
screret Apr 18, 2026
e86f965
Clean up CTMBakedModel#getQuads
screret Apr 18, 2026
a15039c
Remove duplicates of vanilla blockstate properties
screret Apr 20, 2026
04c9cb0
Reuse existing code instead of copypasting the same stuff over and ov…
screret Apr 20, 2026
968b5d7
Datagen
screret Apr 20, 2026
3d21cdf
Move quad utils to `client.util.quad`
screret Apr 18, 2026
75c5a96
Rename `ModelUtils` to `ModelEventHelper` and move unrelated utility …
screret Apr 18, 2026
ee18024
Fix up the CTM reload listener in ClientProxy
screret Apr 18, 2026
2bb52f8
Add copyright headers to all the classes I copied from CTM
screret Apr 18, 2026
6fc6f14
Add a simplified version of Fabric's dynamic model API
screret Apr 18, 2026
271e51d
Move all internal asset reload listeners (including the CTM model rep…
screret Apr 18, 2026
5eff24f
Move GTQuadTransformers to `client.util.quad.transformers`
screret Apr 18, 2026
5226e48
Add GTTextureMetadata (forgot to commit this)
screret Apr 18, 2026
b327fe6
Move classes again
screret Apr 18, 2026
624ee1d
Import CCL quad transformers from AE2
screret Apr 18, 2026
a6628ea
Use the Fabric quad modification pipeline for connected textures
screret Apr 18, 2026
7c941bc
Reformat doc comments
screret Apr 18, 2026
469b346
Rename the "connection" metadata field to "connection_texture"
screret Apr 18, 2026
78a0ad7
Fix all the resource files
screret Apr 18, 2026
df0c06b
spotless
screret Apr 18, 2026
0648242
Fix errors caused by dropping commits a bit too hastily
screret Apr 18, 2026
40efad0
Fix corrupt JSON
screret Apr 18, 2026
4000a51
Make world load
screret Apr 18, 2026
18a7165
Force our reload listener to the front of the queue
screret Apr 18, 2026
aa375a3
quh.
screret Apr 18, 2026
d7326c1
Make CTMCache have a stable hash
screret Apr 19, 2026
734ac55
Fix the quads' UV layout
screret Apr 19, 2026
8cbb15c
Use thread-local variables for vectors to reduce garbage collection p…
screret Apr 19, 2026
7987e77
Remove unused bits & bobs
screret Apr 19, 2026
c2ccc3e
Fix my UV normalization being bad
screret Apr 19, 2026
70dce9e
Make Submap lookup use a 2D array as the LUT
screret Apr 19, 2026
8498f99
Clean up related util files & improve new ones' documentation(s)
screret Apr 19, 2026
2f61fe3
Fix lamp model wrapping corrupting block models
screret Apr 19, 2026
874c0b0
Bad direction offset doc
screret Apr 19, 2026
98d02c6
Revert "Bad direction offset doc"
screret Apr 19, 2026
bbf445f
it _almost_ works. It's taunting me.
screret Apr 19, 2026
b26a46b
Rename QuadUtils to CTMHelper
screret Apr 20, 2026
613de01
The 'is dynamic resources enabled' check is needed, actually
screret Apr 20, 2026
4a4b975
Add a CTM UV test block
screret Apr 20, 2026
4488f70
Remove bad offsets
screret Apr 20, 2026
f529c74
Run datagen for CTM test block
screret Apr 20, 2026
2f833bc
Fix CTM UV layouts
screret Apr 20, 2026
66271b1
Do, a copy, do it deep
screret Apr 20, 2026
66339bb
nonnull normal face, less copying
screret Apr 20, 2026
7174561
Fix the bottom face being off
screret Apr 20, 2026
42eb7d0
remove no longer correct doc comments
screret Apr 20, 2026
6041b87
Merge branch 'refs/heads/1.20.1' into sc/something-about-ctm-quads
screret Apr 21, 2026
54d8b9a
Re-enable ARGB->ABGR color translation
screret Apr 21, 2026
d3c6afa
Spotless
screret Apr 21, 2026
d323a59
Merge branch '1.20.1' into sc/builtin-bloom
screret Apr 22, 2026
768d994
Add update doc
screret Apr 24, 2026
ce6bff4
CTM layout documentation
screret Apr 24, 2026
070689c
Fix fluid area render
screret Apr 25, 2026
ed1b107
Remove unused helper methods
screret Apr 25, 2026
3833747
Merge branch 'refs/heads/sc/remove-duplicate-block-properties' into s…
screret Apr 25, 2026
8d4c158
Use SectionPos for tracking bloom chunks
screret Apr 25, 2026
7546a84
separate the one big lock try-finally into multiple smaller ones
screret Apr 25, 2026
e5cbc9c
Nullability annotations
screret Apr 25, 2026
764cdac
Formatting changes
screret Apr 25, 2026
be2f851
Oops, forgot to commit these in 8d4c158a
screret Apr 25, 2026
acbe9fb
Depend on a maven release of embeddium that has sources
screret Apr 25, 2026
879b63e
Non bloom things
screret Apr 25, 2026
f0fc814
Move bloom related mixins to mixin.client.bloom
screret Apr 25, 2026
4fd1b64
(TEST, might revert) Stop using forge event for the bloom rendering h…
screret Apr 25, 2026
b4ddab3
I forgot to commit this too...
screret Apr 25, 2026
beafe32
Cache discovered bloom textures
screret Apr 25, 2026
8008eae
Use MixinExtras expression instead of janky slices to target tripwire…
screret Apr 25, 2026
fd4f10b
Move bloom-related event listeners to their own class
screret Apr 25, 2026
0354048
Temporary thing
screret Apr 25, 2026
1fc6156
After all, why shouldn't I use a custom chunk render layer...
screret Apr 25, 2026
b57bf19
Shader formatting changes
screret Apr 26, 2026
d615bea
Use a different (nicer) tonemap for unreal type bloom
screret Apr 26, 2026
6088652
Better blend function for post shaders, they draw over existing pixel…
screret Apr 26, 2026
5e38c6c
Custom core shader for bloom (currently a copy of cutout)
screret Apr 26, 2026
b4979fa
remove non-updating BLOOM_TYPE field in GTShaders so it can be change…
screret Apr 26, 2026
439e40d
Remove dynamic-only rendering method wrapping from ModelBlockRenderer…
screret Apr 26, 2026
6a4c400
Better config comments
screret Apr 26, 2026
95278f5
Make game run
screret Apr 26, 2026
14b892d
Make bloom metadata cache synchronized
screret Apr 26, 2026
98ea51c
Don't check full availability every frame smh
screret Apr 26, 2026
d3ae8f0
Much better quad capture functionality
screret Apr 26, 2026
aa6b04f
Fix post shaders. Again.
screret Apr 26, 2026
c487acb
Go back to original Reinhard-jodie tonemapping
screret Apr 26, 2026
abb4f59
Simplify VertexConsumer aquisition
screret Apr 26, 2026
8819e41
Fix unity-like bloom. Also fix filtering breaking stuff (?)
screret Apr 26, 2026
25c8fad
Inject equals() & hashCode() impls into BakedQuad
screret Apr 27, 2026
a5e9ab1
Simplify the post effects' intermediary render targets
screret Apr 27, 2026
3d43120
Add debug printouts for duplicate quads
screret Apr 27, 2026
c2c28a9
Clean up that 'ere toString output & actually implement equals() and …
screret Apr 27, 2026
3495a61
Lock 2: Lock Harder
screret Apr 27, 2026
425d35a
Move QuadCacheEntry to the end of its parent class
screret Apr 27, 2026
4ba3a2b
IT WORKS ON EMBEDDIUM!!!!
screret Apr 27, 2026
72fab7d
Draw bloom before translucent blocks so that bit works as expected
screret Apr 27, 2026
768934f
Clean up the construct/destruct process
screret Apr 27, 2026
ec10377
Remove these useless constants
screret Apr 27, 2026
ffc4d17
Whoops forgot to commit this stuff
screret Apr 27, 2026
379e20b
spotless
screret Apr 27, 2026
bb225e5
Simplify them models again
screret Apr 27, 2026
727ae07
Simplify lamps' "lit-on-placement" behavior by referencing how vanill…
screret Apr 27, 2026
d44cc1e
Merge branch 'sc/something-about-ctm-quads' into sc/builtin-bloom
screret Apr 30, 2026
4ac892a
Merge BloomMetadataSection into GTTextureMetadata
screret Apr 30, 2026
22790c6
Rename "client.shader" config section to "client.bloom"
screret Apr 30, 2026
170caf1
merge `enableBloom` and `bloomAlgorithm` config fields
screret Apr 30, 2026
3756c96
Fix block bloom only being rendered if the emissive texture bloom con…
screret Apr 30, 2026
accac63
Implement a sort of 'safe mode' for bloom that's more stable but slower
screret Apr 30, 2026
6fd56e4
Fix crash with trying to use config before it's loaded
screret Apr 30, 2026
d409914
Conditionally load bloom mixins based on `client.bloom.safeMode` config
screret Apr 30, 2026
efd78a3
Remove all the safeMode checks in mixins
screret Apr 30, 2026
e6f9be2
I _think_ this should work the same? (DefaultTerrainRenderPassesMixin)
screret Apr 30, 2026
52c6cc1
In injections/hooks that happen before resource loading, check if blo…
screret Apr 30, 2026
77dd818
Rename `GTShaders.canUseBloomShader` to `.isBloomShaderInUse`
screret Apr 30, 2026
af6cd2a
Rename `GTShaders` to `BloomShaderManager` & move it to the bloom sub…
screret Apr 30, 2026
af4d5f2
Implement early load config for actually disabling unused mixins
screret Apr 30, 2026
ecc84ab
Forgot to unshelve this bit :3
screret May 1, 2026
776b534
Datagen
screret May 1, 2026
ce6121a
Rename all the lamp texture files to be more descriptive
screret May 1, 2026
20a521b
Explicitly disable bloom on non-emissive active textures
screret May 1, 2026
e937748
Actually commit the item model loader thing :ICANT:
screret May 1, 2026
5055ecc
Redo the block models based on the renamed textures
screret May 1, 2026
0fd706d
Fix typo
screret May 1, 2026
7135524
spotless
screret May 1, 2026
c26a545
Add renderdoc capture files to .gitignore
screret May 1, 2026
6282395
-XX:+AllowRedefinitionToAddDeleteMethods
screret May 1, 2026
f62379b
Merge branch 'sc/remove-duplicate-block-properties' into sc/builtin-b…
screret May 1, 2026
5ca6082
Add a way to explicitly disable bloom on textures even if they're emi…
screret May 1, 2026
80e2c89
spotless
screret May 1, 2026
722f01b
Fix mixin filter bug
screret May 1, 2026
9738e50
Oops. Forgot forge appends the modid automatically.
screret May 1, 2026
2ccc00a
Fix quit deadlock
screret May 1, 2026
4f9ade2
Wrong package bucko
screret May 1, 2026
75939d8
Init post shader at the same time MC does it
screret May 1, 2026
6261ea7
Fix safe mode config not being used correctly
screret May 1, 2026
50d1ad9
Apparently ConcurrentHashMap doesn't like null values.
screret May 1, 2026
5dc5953
Wrong uniform type
screret May 1, 2026
daf7b97
nnnnevermind, draw it after translucent. and check the color.
screret May 1, 2026
b7399ac
Remove early config printout
screret May 1, 2026
2df3566
Revert "nnnnevermind, draw it after translucent. and check the color."
screret May 1, 2026
f9b7e18
Fix quads with shade or ambient occlusion always having bloom
screret May 1, 2026
6e343e0
Fix bloom fragment filtering
screret May 1, 2026
f79e6fd
Merge branch '1.20.1' into sc/builtin-bloom
screret May 1, 2026
0758c32
Apply patch
screret May 1, 2026
ebc5be5
Merge branch 'sc/something-about-ctm-quads' into sc/builtin-bloom
screret May 1, 2026
f8176d1
DOH
screret May 1, 2026
0455aa2
Fix quad derotation not working as intended
screret May 1, 2026
baf1c5b
Merge branch 'sc/something-about-ctm-quads' into sc/builtin-bloom
screret May 1, 2026
be18493
Move BloomRenderTicket into a standalone class
screret May 1, 2026
6e5f95a
Use the event, Actually
screret May 1, 2026
08fec1b
fix unity bloom filter
screret May 1, 2026
6139823
Fix fusion ring bloom
screret May 1, 2026
97ddd68
Spotless, datagen
screret May 1, 2026
fd05e9b
Oops, that belonged to a different branch
screret May 1, 2026
09ad0c3
Merge branch '1.20.1' into sc/something-about-ctm-quads
screret May 2, 2026
47f6320
Merge branch 'sc/something-about-ctm-quads' into sc/builtin-bloom
screret May 2, 2026
f852321
Rename early config file
screret May 2, 2026
fef82ad
Fix bad ctm texture names in light blue lamps
screret May 2, 2026
0780baf
Fix QuadLighterMixin's target not being remapped when it should be
screret May 2, 2026
55c3bfd
Downgrade Embeddium to a release version
screret May 2, 2026
2878084
Remove unnecessary bloom availability checks
screret May 2, 2026
6329d17
Rename `BloomShaderManager.isBloomShaderInUse` to `isBloomActive` and…
screret May 2, 2026
86f25a1
Add an update listener for the config field so bloom shaders are auto…
screret May 2, 2026
1e59aee
Spotless
screret May 2, 2026
d4e1f6d
Fix bloom clearing the main render target's depth buffer
screret May 2, 2026
0b9b5b1
actually, it *is* mipped. oops.
screret May 2, 2026
f99f273
Fix compatibility with latest curseforge/modrinth release of Embeddiu…
screret May 2, 2026
5229225
Renames + interface injection
screret May 2, 2026
ff25e16
Move (most) extension interfaces to core/util/extensions
screret May 3, 2026
1a44891
Remove unused samplers from filter_bloom_color
screret May 3, 2026
d786663
Re-enable separate blend mode
screret May 3, 2026
5a5da50
More averaging (IDK yet if good)
screret May 3, 2026
f621956
Considerably more precise fragment filtering
screret May 3, 2026
f72271c
instead of copying the depth buffer, draw with blending enabled and d…
screret May 3, 2026
80c90b1
always filter fragments
screret May 3, 2026
97e194a
Simplify (vanilla) quad copying logic
screret May 3, 2026
f9bbbb1
split rendering into a separate class from special effect registratio…
screret May 6, 2026
4cc75f5
Clean uo the wacky event listener redirection
screret May 6, 2026
3c937fb
BloomAlgorithm -> BloomType
screret May 6, 2026
47d6fdb
util function for checking if bloom safe mode is enabled
screret May 6, 2026
8088cd3
Fix small bugs that caused huge issues
screret May 7, 2026
98e3f09
Fix CTM not working when embeddium isn't installed
screret May 7, 2026
5141557
Remove quad caching; it didn't really do much and has the possibility…
screret May 7, 2026
bf63e04
Add debake method to MutableQuadView
screret May 7, 2026
60b7cb4
more checks; clearer names
screret May 7, 2026
0f5ed47
client.util.quad.CTMHelper -> client.model.ctm.CTMMeshBuilder
screret May 7, 2026
2e73836
Merge branch '1.20.1' into sc/something-about-ctm-quads
screret May 7, 2026
65943ae
Rename CTMCache -> TextureConnections
screret May 7, 2026
575997c
More util methods
screret May 7, 2026
a11439a
make ConnectionCheck a static utility class; we don't allow using cus…
screret May 7, 2026
79bf7e2
Remove extra `@Nullable` IntelliJ didn't like
screret May 7, 2026
4d16858
rename functions
screret May 7, 2026
dbbfa56
Spotless
screret May 7, 2026
e71eafd
Fix light gray lamps' connections
screret May 7, 2026
a977d82
Merge branch 'sc/something-about-ctm-quads' into sc/builtin-bloom
screret May 7, 2026
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
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@ classes/
src/generated/resources/.cache/

*.patch
*.cap
*.DS_Store

3 changes: 1 addition & 2 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,7 @@ dependencies {
modCompileOnly(forge.architectury)
modCompileOnly(forge.rhino)

// Shimmer
modCompileOnly(forge.shimmer)
// Performance
modCompileOnly(forge.embeddium)
modCompileOnly(forge.oculus)
modCompileOnly(forge.modernfix)
Expand Down
15 changes: 14 additions & 1 deletion docs/content/Modpacks/Changes/v8.0.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,22 @@ A large number of machine feature interfaces have been removed, and have had the
- `IFluidRendererMulti` - Use `MultiblockFluidRendererTrait`


## Connected texture reimplementation
The mod's connected texture logic has been reimplemented in GTM proper.
Texture packs, addons, and modpacks will have to change their texture metadata files for connected texures slightly.
A few regexes for fixing all the MCMeta files is follows, run them in order:

1. Match: `"ldlib":([\s\{]*)"connection"(:\s".*?")(?:,\s.*)?`
Replace with: `"gtceu":$1"connection_texture"$2`
2. Match: `\s*\},\s*"shimmer":\s*\{(\s*"bloom":.*)`
Replace with: `,$1`
3. Match: `(\{\s*)"shimmer":(\s*\{\s*"bloom":.*)`
Replace with: `$1"gtceu":$2`


## Other Changes

- `BlastingRecipeBuilder`, `CampfireRecipeBuilder`, `SmeltingRecipeBuilder` and `SmokingRecipeBuilder` have been merged into `SimpleCookingRecipeBuilder`
- Example usage: `SimpleCookingRecipeBuilder.campfireCooking("cooking_chicken").input(new ItemStack(Items.CHICKEN)).output(new ItemStacks(Items.COOKED_CHICKEN)).cookingTime(100).experience(100).save(provider);`
- `GTFluidImpl` has been merged into `GTFluid`, use `GTFluid.Flowing` and `GTFluid.Source` instead of `GTFluidImpl.Flowing` and `GTFluidImpl.Source`.
- Item behaviors have been moved to `common/item/behavior`, and some items have been moved from `api/item` to `common/item`.
- Item behaviors have been moved to `common/item/behavior`, and some items have been moved from `api/item` to `common/item`.
63 changes: 63 additions & 0 deletions docs/content/Modpacks/Other-Topics/Connected-Textures.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
title: Creating Connected Textures
---

**Connected textures** are, as the name would imply, textures that connect with neighboring blocks.

The CTM renderer will draw the block faces by assembling 4 quadrants from the 5 available block textures.
The normal `texture.png` is the block's "unconnected" texture, and is used when CTM is disabled or the block
has nothing to connect to.
`texture.png` has the outside corner quadrants and `texture_ctm.png` contains the connections.
```
┌─────────────────┐ ┌────────────────────────────────┐
│ texture.png │ │ texture_ctm.png │
│ ╔══════╤══════╗ │ │ ──────┼────── ║ ─────┼───── ║ │
│ ║ │ ║ │ │ │ │ │║ │ ║ │
│ ║ 4/4 │ 4/5 ║ │ │ │ 0/0 │ 0/1 │║ 0/2 │ 0/3 ║ │
│ ╟──────┼──────╢ │ │ ┼──────┼──────┼╟──────┼──────╢ │
│ ║ │ ║ │ │ │ │ │║ │ ║ │
│ ║ 5/4 │ 5/5 ║ │ │ │ 1/0 │ 1/1 │║ 1/2 │ 1/3 ║ │
│ ╚══════╧══════╝ │ │ ──────┼────── ║ ─────┼───── ║ │
└─────────────────┘ │ ═══════╤═══════╝ ─────┼───── ╚ │
│ │ │ ││ │ │ │
│ │ 2/0 │ 2/1 ││ 2/2 │ 2/3 │ │
│ ┼──────┼──────┼┼──────┼──────┼ │
│ │ │ ││ │ │ │
│ │ 3/0 │ 3/1 ││ 3/2 │ 3/3 │ │
│ ═══════╧═══════╗ ─────┼───── ╔ │
└────────────────────────────────┘
```

For example, combining sections 4/4, 2/1, 5/4, and 3/1, we can generate a texture connected to the right!
```
╔══════╤═══════
║ │ │
║ 4/4 │ 2/1 │
╟──────┼──────┼
║ │ │
║ 5/4 │ 3/1 │
╚══════╧═══════
```
Combining sections 0/2, 2/3, 5/4, and 3/1, we can generate a texture in the shape of an L (connected to the right and up):
```
║ ─────┼───── ╚
║ │ │
║ 0/2 │ 2/3 │
╟──────┼──────┼
║ │ │
║ 5/4 │ 3/1 │
╚══════╧═══════
```


??? example "Example MCMeta file"
(For a texture `mypack/assets/textures/blocks/texture.png` with a ctm texture `mypack/assets/textures/blocks/texture_ctm.png`)
```json title="mypack:blocks/texture.png.mcmeta"
{
"gtceu": {
"connection_texture": "mypack:blocks/texture_ctm"
}
}
```
The CTM texture layout is [here](https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/resources/assets/gtceu/textures/block/ctm_test.png) for the unconnected texture and [here](https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/resources/assets/gtceu/textures/block/ctm_test_ctm.png) for its connections.
Its MCMeta metadata file is [this one](https://github.com/GregTechCEu/GregTech-Modern/blob/1.20.1/src/main/resources/assets/gtceu/textures/block/ctm_test.png.mcmeta).
4 changes: 2 additions & 2 deletions gradle/forge.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ xaerosMinimap = "25.3.10"

## modrinth maven ##
jade = "11.6.3"
embeddium = "0.3.31+mc1.20.1"
embeddium = "0.3.31-beta.53+mc1.20.1"
oculus = "1.20.1-1.8.0"
modernfix = "DdUByV9S" # 5.24.1+mc1.20.1

Expand Down Expand Up @@ -86,7 +86,7 @@ ftbteams = { module = "dev.ftb.mods:ftb-teams-forge", version.ref = "
ftbquests = { module = "dev.ftb.mods:ftb-quests-forge", version.ref = "ftbquests" }
ftbchunks = { module = "dev.ftb.mods:ftb-chunks-forge", version.ref = "ftbchunks" }
jade = { module = "maven.modrinth:jade", version.ref = "jade" }
embeddium = { module = "maven.modrinth:embeddium", version.ref = "embeddium" }
embeddium = { module = "org.embeddedt:embeddium-1.20.1", version.ref = "embeddium" }
oculus = { module = "maven.modrinth:oculus", version.ref = "oculus" }
modernfix = { module = "maven.modrinth:modernfix", version.ref = "modernfix" }
xaeroslib = { module = "xaero.lib:xaerolib-forge-1.20.1", version.ref = "xaerosLib" }
Expand Down
6 changes: 6 additions & 0 deletions gradle/scripts/moddevgradle.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -152,10 +152,16 @@ legacyForge {
// Enable assertions for our classes in dev environment
jvmArgument('-ea:com.gregtechceu.gtceu...')

// jvmArgument("-XX:+AllowEnhancedClassRedefinition")
jvmArgument("-XX:+AllowRedefinitionToAddDeleteMethods")

// Recommended logging level for the console
// You can set various levels here.
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
logLevel = org.slf4j.event.Level.INFO

// Disable JOML using scientific notation for its types' toString() outputs
systemProperty 'joml.format', 'false'
}
}
}
Expand Down
11 changes: 7 additions & 4 deletions gradle/scripts/repositories.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ repositories {
}
}

maven { // JEI
name = "Jared's Maven"
url = "https://maven.blamejared.com/"
exclusiveContent { // Create, Ponder, Flywheel
forRepository { maven { url = "https://maven.blamejared.com" } }
filter {
includeGroup("mezz.jei")
includeGroup("org.embeddedt")
}
}

maven { // JEI mirror, AE2
Expand All @@ -37,7 +40,7 @@ repositories {
}
exclusiveContent { // KubeJS and Rhino
forRepository { maven { url = "https://maven.latvian.dev/releases" } }
filter { includeGroup("dev.latvian.mods")}
filter { includeGroup("dev.latvian.mods") }
}
exclusiveContent { // FTB mods
forRepository { maven { url = "https://maven.ftb.dev/releases" } }
Expand Down
8 changes: 7 additions & 1 deletion injected_interfaces/interfaces.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
{
"net/minecraft/client/renderer/block/model/BakedQuad": [
"com/gregtechceu/gtceu/core/IGTBakedQuad"
"com/gregtechceu/gtceu/core/util/extensions/BakedQuadExt"
],
"com/mojang/blaze3d/vertex/VertexConsumer": [
"com/gregtechceu/gtceu/core/util/extensions/VertexConsumerExt"
],
"net/minecraftforge/client/model/lighting/QuadLighter": [
"com/gregtechceu/gtceu/core/util/extensions/QuadLighterExt"
],
"net/minecraft/world/entity/Entity": [
"com/gregtechceu/gtceu/core/IFireImmuneEntity",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "gtceu:block/ctm_test"
}
}
}
10 changes: 10 additions & 0 deletions src/generated/resources/assets/gtceu/lang/en_ud.json
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@
"block.gtceu.creative_tank": "ʞuɐ⟘ ǝʌıʇɐǝɹƆ",
"block.gtceu.creosote": "ǝʇosoǝɹƆ",
"block.gtceu.crushing_wheels": "sןǝǝɥM buıɥsnɹƆ",
"block.gtceu.ctm_test": "ʞɔoןᗺ ʇsǝ⟘ ǝɹnʇxǝ⟘ pǝʇɔǝuuoƆ",
"block.gtceu.cupronickel_coil_block": "ʞɔoןᗺ ןıoƆ ןǝʞɔıuoɹdnƆ",
"block.gtceu.cyan_borderless_lamp": "dɯɐꞀ ssǝןɹǝpɹoᗺ uɐʎƆ",
"block.gtceu.cyan_lamp": "dɯɐꞀ uɐʎƆ",
Expand Down Expand Up @@ -1762,9 +1763,13 @@
"config.gtceu.option.arcRecyclingYield": "pןǝıʎbuıןɔʎɔǝᴚɔɹɐ",
"config.gtceu.option.armorHud": "pnHɹoɯɹɐ",
"config.gtceu.option.autoRebuildResources": "sǝɔɹnosǝᴚpןınqǝᴚoʇnɐ",
"config.gtceu.option.baseBrightness": "ssǝuʇɥbıɹᗺǝsɐq",
"config.gtceu.option.batchDuration": "uoıʇɐɹnᗡɥɔʇɐq",
"config.gtceu.option.bedrockOreDistance": "ǝɔuɐʇsıᗡǝɹOʞɔoɹpǝq",
"config.gtceu.option.bedrockOreDropTagPrefix": "xıɟǝɹԀbɐ⟘doɹᗡǝɹOʞɔoɹpǝq",
"config.gtceu.option.bloom": "ɯooןq",
"config.gtceu.option.bloomType": "ǝdʎ⟘ɯooןq",
"config.gtceu.option.bloomType.load_error": "sןıɐʇǝp ɹoɟ %s ǝǝs 'ʇɔǝɟɟǝ ɯooןq ǝɥʇ ɹoɟ sɹǝpɐɥs pɐoן ʇou pןnoƆ",
"config.gtceu.option.borderColor": "ɹoןoƆɹǝpɹoq",
"config.gtceu.option.bronzeBoilerHeatSpeed": "pǝǝdSʇɐǝHɹǝןıoᗺǝzuoɹq",
"config.gtceu.option.bronzeBoilerMaxTemperature": "ǝɹnʇɐɹǝdɯǝ⟘xɐWɹǝןıoᗺǝzuoɹq",
Expand All @@ -1790,6 +1795,7 @@
"config.gtceu.option.drum": "ɯnɹp",
"config.gtceu.option.dumpAssets": "sʇǝssⱯdɯnp",
"config.gtceu.option.dumpRecipes": "sǝdıɔǝᴚdɯnp",
"config.gtceu.option.emissiveTexturesHaveBloom": "ɯooןᗺǝʌɐHsǝɹnʇxǝ⟘ǝʌıssıɯǝ",
"config.gtceu.option.enableArcRecycling": "buıןɔʎɔǝᴚɔɹⱯǝןqɐuǝ",
"config.gtceu.option.enableCleanroom": "ɯooɹuɐǝןƆǝןqɐuǝ",
"config.gtceu.option.enableExtractorRecycling": "buıןɔʎɔǝᴚɹoʇɔɐɹʇxƎǝןqɐuǝ",
Expand Down Expand Up @@ -1853,7 +1859,9 @@
"config.gtceu.option.machinesEmissiveTextures": "sǝɹnʇxǝ⟘ǝʌıssıɯƎsǝuıɥɔɐɯ",
"config.gtceu.option.machinesHaveBERsByDefault": "ʇןnɐɟǝᗡʎᗺsᴚƎᗺǝʌɐHsǝuıɥɔɐɯ",
"config.gtceu.option.maintenanceCheckRate": "ǝʇɐᴚʞɔǝɥƆǝɔuɐuǝʇuıɐɯ",
"config.gtceu.option.maxBrightness": "ssǝuʇɥbıɹᗺxɐɯ",
"config.gtceu.option.meHatchEnergyUsage": "ǝbɐs∩ʎbɹǝuƎɥɔʇɐHǝɯ",
"config.gtceu.option.minBrightness": "ssǝuʇɥbıɹᗺuıɯ",
"config.gtceu.option.minerSpeed": "pǝǝdSɹǝuıɯ",
"config.gtceu.option.minimap": "dɐɯıuıɯ",
"config.gtceu.option.nanoSaber": "ɹǝqɐSouɐu",
Expand Down Expand Up @@ -1905,6 +1913,8 @@
"config.gtceu.option.steelBoilerHeatSpeed": "pǝǝdSʇɐǝHɹǝןıoᗺןǝǝʇs",
"config.gtceu.option.steelBoilerMaxTemperature": "ǝɹnʇɐɹǝdɯǝ⟘xɐWɹǝןıoᗺןǝǝʇs",
"config.gtceu.option.steelSteamMultiblocks": "sʞɔoןqıʇןnWɯɐǝʇSןǝǝʇs",
"config.gtceu.option.step": "dǝʇs",
"config.gtceu.option.strength": "ɥʇbuǝɹʇs",
"config.gtceu.option.surfaceRockProspectRange": "ǝbuɐᴚʇɔǝdsoɹԀʞɔoᴚǝɔɐɟɹns",
"config.gtceu.option.tankItemFluidPreview": "ʍǝıʌǝɹԀpınןℲɯǝʇIʞuɐʇ",
"config.gtceu.option.temperaturesInCelsius": "snısןǝƆuIsǝɹnʇɐɹǝdɯǝʇ",
Expand Down
10 changes: 10 additions & 0 deletions src/generated/resources/assets/gtceu/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@
"block.gtceu.creative_tank": "Creative Tank",
"block.gtceu.creosote": "Creosote",
"block.gtceu.crushing_wheels": "Crushing Wheels",
"block.gtceu.ctm_test": "Connected Texture Test Block",
"block.gtceu.cupronickel_coil_block": "Cupronickel Coil Block",
"block.gtceu.cyan_borderless_lamp": "Cyan Borderless Lamp",
"block.gtceu.cyan_lamp": "Cyan Lamp",
Expand Down Expand Up @@ -1762,9 +1763,13 @@
"config.gtceu.option.arcRecyclingYield": "arcRecyclingYield",
"config.gtceu.option.armorHud": "armorHud",
"config.gtceu.option.autoRebuildResources": "autoRebuildResources",
"config.gtceu.option.baseBrightness": "baseBrightness",
"config.gtceu.option.batchDuration": "batchDuration",
"config.gtceu.option.bedrockOreDistance": "bedrockOreDistance",
"config.gtceu.option.bedrockOreDropTagPrefix": "bedrockOreDropTagPrefix",
"config.gtceu.option.bloom": "bloom",
"config.gtceu.option.bloomType": "bloomType",
"config.gtceu.option.bloomType.load_error": "Could not load shaders for the bloom effect, see %s for details",
"config.gtceu.option.borderColor": "borderColor",
"config.gtceu.option.bronzeBoilerHeatSpeed": "bronzeBoilerHeatSpeed",
"config.gtceu.option.bronzeBoilerMaxTemperature": "bronzeBoilerMaxTemperature",
Expand All @@ -1790,6 +1795,7 @@
"config.gtceu.option.drum": "drum",
"config.gtceu.option.dumpAssets": "dumpAssets",
"config.gtceu.option.dumpRecipes": "dumpRecipes",
"config.gtceu.option.emissiveTexturesHaveBloom": "emissiveTexturesHaveBloom",
"config.gtceu.option.enableArcRecycling": "enableArcRecycling",
"config.gtceu.option.enableCleanroom": "enableCleanroom",
"config.gtceu.option.enableExtractorRecycling": "enableExtractorRecycling",
Expand Down Expand Up @@ -1853,7 +1859,9 @@
"config.gtceu.option.machinesEmissiveTextures": "machinesEmissiveTextures",
"config.gtceu.option.machinesHaveBERsByDefault": "machinesHaveBERsByDefault",
"config.gtceu.option.maintenanceCheckRate": "maintenanceCheckRate",
"config.gtceu.option.maxBrightness": "maxBrightness",
"config.gtceu.option.meHatchEnergyUsage": "meHatchEnergyUsage",
"config.gtceu.option.minBrightness": "minBrightness",
"config.gtceu.option.minerSpeed": "minerSpeed",
"config.gtceu.option.minimap": "minimap",
"config.gtceu.option.nanoSaber": "nanoSaber",
Expand Down Expand Up @@ -1905,6 +1913,8 @@
"config.gtceu.option.steelBoilerHeatSpeed": "steelBoilerHeatSpeed",
"config.gtceu.option.steelBoilerMaxTemperature": "steelBoilerMaxTemperature",
"config.gtceu.option.steelSteamMultiblocks": "steelSteamMultiblocks",
"config.gtceu.option.step": "step",
"config.gtceu.option.strength": "strength",
"config.gtceu.option.surfaceRockProspectRange": "surfaceRockProspectRange",
"config.gtceu.option.tankItemFluidPreview": "tankItemFluidPreview",
"config.gtceu.option.temperaturesInCelsius": "temperaturesInCelsius",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "gtceu:block/ctm_test"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"parent": "gtceu:block/ctm_test"
}
19 changes: 8 additions & 11 deletions src/main/java/com/gregtechceu/gtceu/GTCEu.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public static boolean isDataGen() {

/**
* A friendly reminder that the server instance is populated on the server side only, so null/side check it!
*
*
* @return the current minecraft server instance
*/
public static MinecraftServer getMinecraftServer() {
Expand All @@ -108,12 +108,14 @@ public static MinecraftServer getMinecraftServer() {
* @return if the mod whose id is {@code modId} is loaded or not
*/
public static boolean isModLoaded(String modId) {
return ModList.get().isLoaded(modId);
ModList modList = ModList.get();
if (modList != null) return modList.isLoaded(modId);
else return FMLLoader.getLoadingModList().getModFileById(modId) != null;
}

/**
* For async stuff use this, otherwise use {@link GTCEu isClientSide}
*
*
* @return if the current thread is the client thread
*/
public static boolean isClientThread() {
Expand All @@ -132,7 +134,7 @@ public static boolean isClientSide() {

/**
* This check isn't the same for client and server!
*
*
* @return if it's safe to access the current instance {@link net.minecraft.world.level.Level Level} on client or if
* it's safe to access any level on server.
*/
Expand Down Expand Up @@ -175,9 +177,8 @@ public static boolean isIrisOculusLoaded() {
return isModLoaded(GTValues.MODID_IRIS) || isModLoaded(GTValues.MODID_OCULUS);
}

public static boolean isSodiumRubidiumEmbeddiumLoaded() {
return isModLoaded(GTValues.MODID_SODIUM) || isModLoaded(GTValues.MODID_RUBIDIUM) ||
isModLoaded(GTValues.MODID_EMBEDDIUM);
public static boolean isSodiumEmbeddiumLoaded() {
return isModLoaded(GTValues.MODID_SODIUM) || isModLoaded(GTValues.MODID_EMBEDDIUM);
}

public static boolean isAE2Loaded() {
Expand All @@ -188,10 +189,6 @@ public static boolean isCuriosLoaded() {
return isModLoaded(GTValues.MODID_CURIOS);
}

public static boolean isShimmerLoaded() {
return isModLoaded(GTValues.MODID_SHIMMER);
}

public static boolean isModernFixLoaded() {
return isModLoaded(GTValues.MODID_MODERNFIX);
}
Expand Down
Loading
Loading