Skip to content

Commit 342cbca

Browse files
committed
Add dynamic tint support for indigo
Fixes #274
1 parent 9c23ee6 commit 342cbca

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/AltModelBlockRendererImpl.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import it.unimi.dsi.fastutil.ints.IntArrayList;
2323
import it.unimi.dsi.fastutil.ints.IntList;
2424
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
25+
import net.neoforged.neoforge.client.extensions.common.IClientBlockExtensions;
2526
import org.joml.Vector3f;
2627
import org.jspecify.annotations.Nullable;
2728

@@ -187,8 +188,8 @@ private void tintQuad(MutableQuadView quad) {
187188
}
188189

189190
private void configureTintCache(final BlockState blockState,
190-
final BlockAndTintGetter level,
191-
final BlockPos pos) {
191+
final BlockAndTintGetter level,
192+
final BlockPos pos) {
192193
List<BlockTintSource> tintSources = blockColors.getTintSources(blockState);
193194
int tintSourceCount = tintSources.size();
194195

@@ -219,6 +220,15 @@ private int computeTintColor(final BlockAndTintGetter level, final BlockState st
219220
tintSourcesInitialized = true;
220221
}
221222

223+
if (this.tintSources.isEmpty()) {
224+
IClientBlockExtensions.of(state).collectDynamicTintValues(state, level, pos, this.computedTintValues);
225+
if (!this.computedTintValues.isEmpty()) {
226+
for (int i = 0; i < this.computedTintValues.size(); ++i) {
227+
this.tintSources.add(null);
228+
}
229+
}
230+
}
231+
222232
if (tintIndex >= tintSources.size()) {
223233
return -1;
224234
} else {

0 commit comments

Comments
 (0)