Skip to content

Commit 4a2b45f

Browse files
1.21.11
1 parent 1109c46 commit 4a2b45f

File tree

12 files changed

+93
-81
lines changed

12 files changed

+93
-81
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ buildscript {
2020
}
2121

2222
plugins {
23-
id("fabric-loom") version("1.11.+")
23+
id("fabric-loom") version("1.14-SNAPSHOT")
2424
id("org.ajoberstar.grgit") version("+")
2525
id("org.quiltmc.gradle.licenser") version("+")
2626
id("com.modrinth.minotaur") version("+")

gradle.properties

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
# Fabric Properties
1010
# Get new versions at https://fabricmc.net/develop and https://lambdaurora.dev/tools/import_quilt.html
11-
minecraft_version=25w42a
11+
minecraft_version=1.21.11
1212
quilt_mappings=1.21+build.18
1313
parchment_mappings=1.21:2024.07.28
1414
loader_version=0.17.3
@@ -21,11 +21,11 @@
2121
archives_base_name = Glowtone
2222

2323
# Dependencies
24-
fabric_api_version=0.135.2+1.21.11
24+
fabric_api_version=0.139.4+1.21.11
2525

2626
# External Mods
27-
modmenu_version=15.0.0-beta.3
28-
cloth_config_version=19.0.147
27+
modmenu_version=17.0.0-alpha.1
28+
cloth_config_version=20.0.149
2929
# Optimization
30-
sodium_version=mc1.21.6-0.6.13-fabric
31-
run_sodium=false
30+
sodium_version=mc1.21.11-0.8.0-fabric
31+
run_sodium=true

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

src/main/java/net/frozenblock/glowtone/GlowtoneConstants.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@
1717

1818
package net.frozenblock.glowtone;
1919

20-
import net.minecraft.resources.ResourceLocation;
20+
import net.minecraft.resources.Identifier;
2121
import org.jetbrains.annotations.ApiStatus;
2222
import org.jetbrains.annotations.Contract;
23-
import org.jetbrains.annotations.NotNull;
2423

2524
@ApiStatus.Internal
2625
public final class GlowtoneConstants {
@@ -31,17 +30,14 @@ public final class GlowtoneConstants {
3130
public static boolean GLOWTONE_SHADING = false;
3231

3332
@Contract("_ -> new")
34-
@NotNull
35-
public static ResourceLocation id(String path) {
36-
return ResourceLocation.fromNamespaceAndPath(GlowtoneConstants.MOD_ID, path);
33+
public static Identifier id(String path) {
34+
return Identifier.fromNamespaceAndPath(GlowtoneConstants.MOD_ID, path);
3735
}
3836

39-
@NotNull
4037
public static String string(String path) {
4138
return id(path).toString();
4239
}
4340

44-
@NotNull
4541
public static String safeString(String path) {
4642
return id(path).toString().replace(":", "_");
4743
}

src/main/java/net/frozenblock/glowtone/mixin/client/AtlasConfigMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class AtlasConfigMixin {
4242
Set<MetadataSectionType<?>> additionalMetadata;
4343

4444
@Inject(
45-
method = "<init>(Lnet/minecraft/resources/ResourceLocation;Lnet/minecraft/resources/ResourceLocation;ZLjava/util/Set;)V",
45+
method = "<init>(Lnet/minecraft/resources/Identifier;Lnet/minecraft/resources/Identifier;ZLjava/util/Set;)V",
4646
at = @At("TAIL")
4747
)
4848
private void glowtone$addEmissiveMetadataSection(CallbackInfo info) {

src/main/java/net/frozenblock/glowtone/mixin/client/FaceBakeryMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ public class FaceBakeryMixin {
4545
@Local(argsOnly = true) LocalIntRef lightEmission
4646
) {
4747
if (GlowtoneConstants.GLOWTONE_EMISSIVES) {
48-
SpriteContents contents = sprite.contents();
48+
final SpriteContents contents = sprite.contents();
4949

50-
Optional<EmissiveMetadataSection> optionalEmissiveMetadata = contents.getAdditionalMetadata(EmissiveMetadataSection.TYPE);
50+
final Optional<EmissiveMetadataSection> optionalEmissiveMetadata = contents.getAdditionalMetadata(EmissiveMetadataSection.TYPE);
5151
if (optionalEmissiveMetadata.isPresent()) {
5252
EmissiveMetadataSection emissiveMetadata = optionalEmissiveMetadata.get();
5353
shade.set(emissiveMetadata.shade().orElse(shade.get()));

src/main/java/net/frozenblock/glowtone/mixin/client/SimpleUnbakedGeometryMixin.java

Lines changed: 52 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -27,50 +27,45 @@
2727
import net.fabricmc.api.Environment;
2828
import net.frozenblock.glowtone.GlowtoneConstants;
2929
import net.minecraft.client.renderer.block.model.BakedQuad;
30-
import net.minecraft.client.renderer.block.model.BlockElement;
3130
import net.minecraft.client.renderer.block.model.BlockElementFace;
31+
import net.minecraft.client.renderer.block.model.BlockElementRotation;
3232
import net.minecraft.client.renderer.block.model.SimpleUnbakedGeometry;
3333
import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite;
3434
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
3535
import net.minecraft.client.resources.model.Material;
36+
import net.minecraft.client.resources.model.ModelBaker;
3637
import net.minecraft.client.resources.model.ModelDebugName;
3738
import net.minecraft.client.resources.model.ModelState;
3839
import net.minecraft.client.resources.model.QuadCollection;
39-
import net.minecraft.client.resources.model.SpriteGetter;
4040
import net.minecraft.core.Direction;
41-
import net.minecraft.resources.ResourceLocation;
41+
import net.minecraft.resources.Identifier;
42+
import org.joml.Vector3fc;
4243
import org.spongepowered.asm.mixin.Mixin;
43-
import org.spongepowered.asm.mixin.Shadow;
4444
import org.spongepowered.asm.mixin.injection.At;
4545

4646
@Environment(EnvType.CLIENT)
4747
@Mixin(SimpleUnbakedGeometry.class)
4848
public abstract class SimpleUnbakedGeometryMixin {
4949

50-
@Shadow
51-
private static BakedQuad bakeFace(BlockElement blockElement, BlockElementFace blockElementFace, TextureAtlasSprite textureAtlasSprite, Direction direction, ModelState modelState) {
52-
return null;
53-
}
54-
5550
@ModifyExpressionValue(
56-
method = "method_67933",
51+
method = "bake(Ljava/util/List;Lnet/minecraft/client/renderer/block/model/TextureSlots;Lnet/minecraft/client/resources/model/ModelBaker;Lnet/minecraft/client/resources/model/ModelState;Lnet/minecraft/client/resources/model/ModelDebugName;)Lnet/minecraft/client/resources/model/QuadCollection;",
5752
at = @At(
5853
value = "INVOKE",
5954
target = "Lnet/minecraft/client/resources/model/SpriteGetter;resolveSlot(Lnet/minecraft/client/renderer/block/model/TextureSlots;Ljava/lang/String;Lnet/minecraft/client/resources/model/ModelDebugName;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;"
6055
)
6156
)
6257
private static TextureAtlasSprite glowtone$findEmissiveTexture(
6358
TextureAtlasSprite original,
64-
@Local(argsOnly = true) SpriteGetter spriteGetter,
59+
@Local(argsOnly = true) ModelBaker modelBaker,
6560
@Local(argsOnly = true) ModelDebugName modelDebugName,
6661
@Share("glowtone$emissiveSprite") LocalRef<TextureAtlasSprite> emissiveSpriteRef
6762
) {
6863
if (!GlowtoneConstants.GLOWTONE_EMISSIVES) return original;
6964

70-
ResourceLocation location = original.contents().name();
71-
ResourceLocation emissiveLocation = ResourceLocation.fromNamespaceAndPath(location.getNamespace(), location.getPath() + "_glowtone_emissive");
65+
final Identifier location = original.contents().name();
66+
final Identifier emissiveLocation = Identifier.fromNamespaceAndPath(location.getNamespace(), location.getPath() + "_glowtone_emissive");
7267

73-
TextureAtlasSprite emissiveSprite = spriteGetter.get(new Material(original.atlasLocation(), emissiveLocation), modelDebugName);
68+
final TextureAtlasSprite emissiveSprite = modelBaker.sprites().get(new Material(original.atlasLocation(), emissiveLocation), modelDebugName);
7469
if (emissiveSprite != null && !emissiveSprite.contents().name().equals(MissingTextureAtlasSprite.getLocation())) {
7570
emissiveSpriteRef.set(emissiveSprite);
7671
}
@@ -79,47 +74,72 @@ private static BakedQuad bakeFace(BlockElement blockElement, BlockElementFace bl
7974
}
8075

8176
@WrapOperation(
82-
method = "method_67933",
77+
method = "bake(Ljava/util/List;Lnet/minecraft/client/renderer/block/model/TextureSlots;Lnet/minecraft/client/resources/model/ModelBaker;Lnet/minecraft/client/resources/model/ModelState;Lnet/minecraft/client/resources/model/ModelDebugName;)Lnet/minecraft/client/resources/model/QuadCollection;",
78+
at = @At(
79+
value = "INVOKE",
80+
target = "Lnet/minecraft/client/renderer/block/model/FaceBakery;bakeQuad(Lnet/minecraft/client/resources/model/ModelBaker$PartCache;Lorg/joml/Vector3fc;Lorg/joml/Vector3fc;Lnet/minecraft/client/renderer/block/model/BlockElementFace;Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraft/core/Direction;Lnet/minecraft/client/resources/model/ModelState;Lnet/minecraft/client/renderer/block/model/BlockElementRotation;ZI)Lnet/minecraft/client/renderer/block/model/BakedQuad;"
81+
)
82+
)
83+
private static BakedQuad glowtone$bakeEmissiveQuad(
84+
ModelBaker.PartCache parts,
85+
Vector3fc from,
86+
Vector3fc to,
87+
BlockElementFace face,
88+
TextureAtlasSprite sprite,
89+
Direction direction,
90+
ModelState modelState,
91+
BlockElementRotation rotation,
92+
boolean shade,
93+
int lightEmission,
94+
Operation<BakedQuad> original,
95+
@Share("glowtone$emissiveSprite") LocalRef<TextureAtlasSprite> emissiveSpriteRef,
96+
@Share("glowtone$emissiveQuad") LocalRef<BakedQuad> emissiveQuadRef
97+
) {
98+
final BakedQuad originalQuad = original.call(parts, from, to, face, sprite, direction, modelState, rotation, shade, lightEmission);
99+
100+
final TextureAtlasSprite emissiveSprite = emissiveSpriteRef.get();
101+
if (emissiveSprite == null) return originalQuad;
102+
103+
final BakedQuad emissiveQuad = original.call(parts, from, to, face, emissiveSprite, direction, modelState, rotation, shade, lightEmission);
104+
emissiveQuadRef.set(emissiveQuad);
105+
106+
return originalQuad;
107+
}
108+
109+
@WrapOperation(
110+
method = "bake(Ljava/util/List;Lnet/minecraft/client/renderer/block/model/TextureSlots;Lnet/minecraft/client/resources/model/ModelBaker;Lnet/minecraft/client/resources/model/ModelState;Lnet/minecraft/client/resources/model/ModelDebugName;)Lnet/minecraft/client/resources/model/QuadCollection;",
83111
at = @At(
84112
value = "INVOKE",
85113
target = "Lnet/minecraft/client/resources/model/QuadCollection$Builder;addUnculledFace(Lnet/minecraft/client/renderer/block/model/BakedQuad;)Lnet/minecraft/client/resources/model/QuadCollection$Builder;"
86114
)
87115
)
88116
private static QuadCollection.Builder glowtone$bakeEmissiveUnculledFace(
89117
QuadCollection.Builder instance, BakedQuad bakedQuad, Operation<QuadCollection.Builder> original,
90-
@Local(argsOnly = true) BlockElement blockElement,
91-
@Local(argsOnly = true) Direction direction,
92-
@Local(argsOnly = true) BlockElementFace blockElementFace,
93-
@Local(argsOnly = true) ModelState modelState,
94-
@Share("glowtone$emissiveSprite") LocalRef<TextureAtlasSprite> emissiveSpriteRef
118+
@Share("glowtone$emissiveQuad") LocalRef<BakedQuad> emissiveQuadRef
95119
) {
96-
QuadCollection.Builder builder = original.call(instance, bakedQuad);
120+
final QuadCollection.Builder builder = original.call(instance, bakedQuad);
97121

98-
final TextureAtlasSprite emissiveSprite = emissiveSpriteRef.get();
99-
if (emissiveSprite != null) builder.addUnculledFace(bakeFace(blockElement, blockElementFace, emissiveSprite, direction, modelState));
122+
final BakedQuad emissiveQuad = emissiveQuadRef.get();
123+
if (emissiveQuad != null) original.call(instance, emissiveQuad);
100124

101125
return builder;
102126
}
103127

104128
@WrapOperation(
105-
method = "method_67933",
129+
method = "bake(Ljava/util/List;Lnet/minecraft/client/renderer/block/model/TextureSlots;Lnet/minecraft/client/resources/model/ModelBaker;Lnet/minecraft/client/resources/model/ModelState;Lnet/minecraft/client/resources/model/ModelDebugName;)Lnet/minecraft/client/resources/model/QuadCollection;",
106130
at = @At(
107131
value = "INVOKE",
108132
target = "Lnet/minecraft/client/resources/model/QuadCollection$Builder;addCulledFace(Lnet/minecraft/core/Direction;Lnet/minecraft/client/renderer/block/model/BakedQuad;)Lnet/minecraft/client/resources/model/QuadCollection$Builder;"
109133
)
110134
)
111135
private static QuadCollection.Builder glowtone$bakeEmissiveCulledFace(
112136
QuadCollection.Builder instance, Direction rotatedDirection, BakedQuad bakedQuad, Operation<QuadCollection.Builder> original,
113-
@Local(argsOnly = true) BlockElement blockElement,
114-
@Local(argsOnly = true) Direction direction,
115-
@Local(argsOnly = true) BlockElementFace blockElementFace,
116-
@Local(argsOnly = true) ModelState modelState,
117-
@Share("glowtone$emissiveSprite") LocalRef<TextureAtlasSprite> emissiveSpriteRef
137+
@Share("glowtone$emissiveQuad") LocalRef<BakedQuad> emissiveQuadRef
118138
) {
119-
QuadCollection.Builder builder = original.call(instance, rotatedDirection, bakedQuad);
139+
final QuadCollection.Builder builder = original.call(instance, rotatedDirection, bakedQuad);
120140

121-
final TextureAtlasSprite emissiveSprite = emissiveSpriteRef.get();
122-
if (emissiveSprite != null) builder.addCulledFace(rotatedDirection, bakeFace(blockElement, blockElementFace, emissiveSprite, direction, modelState));
141+
final BakedQuad emissiveQuad = emissiveQuadRef.get();
142+
if (emissiveQuad != null) original.call(instance, rotatedDirection, emissiveQuad);
123143

124144
return builder;
125145
}

src/main/java/net/frozenblock/glowtone/mixin/client/redstone_dust_particle/DustColorTransitionParticleMixin.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,8 @@ public class DustColorTransitionParticleMixin implements GlowingDustParticleInte
4747
SpriteSet sprites,
4848
CallbackInfo info
4949
) {
50-
if (GlowtoneConstants.GLOWTONE_EMISSIVES && options instanceof GlowingDustParticleInterface glowingDustParticleInterface) {
51-
this.glowtone$lightEmission = glowingDustParticleInterface.glowtone$getLightEmission();
52-
}
50+
if (!GlowtoneConstants.GLOWTONE_EMISSIVES || !(options instanceof GlowingDustParticleInterface glowingDustParticleInterface))return;
51+
this.glowtone$lightEmission = glowingDustParticleInterface.glowtone$getLightEmission();
5352
}
5453

5554
@Unique

src/main/java/net/frozenblock/glowtone/mixin/client/redstone_dust_particle/DustParticleMixin.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,8 @@ public class DustParticleMixin implements GlowingDustParticleInterface {
4747
SpriteSet sprites,
4848
CallbackInfo info
4949
) {
50-
if (GlowtoneConstants.GLOWTONE_EMISSIVES && options instanceof GlowingDustParticleInterface glowingDustParticleInterface) {
51-
this.glowtone$lightEmission = glowingDustParticleInterface.glowtone$getLightEmission();
52-
}
50+
if (!GlowtoneConstants.GLOWTONE_EMISSIVES || !(options instanceof GlowingDustParticleInterface glowingDustParticleInterface)) return;
51+
this.glowtone$lightEmission = glowingDustParticleInterface.glowtone$getLightEmission();
5352
}
5453

5554
@Unique

src/main/java/net/frozenblock/glowtone/mixin/client/redstone_dust_particle/ParticleMixin.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ public class ParticleMixin {
3232

3333
@ModifyReturnValue(method = "getLightColor", at = @At(value = "RETURN"))
3434
public int glowtone$renderDustWithEmission(int original) {
35-
if (GlowtoneConstants.GLOWTONE_EMISSIVES && Particle.class.cast(this) instanceof GlowingDustParticleInterface glowingParticle) {
36-
final int emission = glowingParticle.glowtone$getLightEmission();
37-
if (emission == 0) return original;
38-
int j = Math.max(original & 255, emission * 16);
39-
int k = original >> 16 & 255;
40-
if (j > 240) j = 240;
35+
if (!GlowtoneConstants.GLOWTONE_EMISSIVES || !(Particle.class.cast(this) instanceof GlowingDustParticleInterface glowingParticle)) return original;
4136

42-
return j | k << 16;
43-
}
44-
return original;
37+
final int emission = glowingParticle.glowtone$getLightEmission();
38+
if (emission == 0) return original;
39+
40+
int j = Math.max(original & 255, emission * 16);
41+
int k = original >> 16 & 255;
42+
if (j > 240) j = 240;
43+
44+
return j | k << 16;
4545
}
4646
}

0 commit comments

Comments
 (0)