11package com .glodblock .github .client .model ;
22
3+ import appeng .items .misc .ItemEncodedPattern ;
34import com .glodblock .github .FluidCraft ;
45import com .glodblock .github .util .Ae2ReflectClient ;
56import com .glodblock .github .util .NameConst ;
7+ import net .minecraft .client .Minecraft ;
68import net .minecraft .client .renderer .block .model .IBakedModel ;
9+ import net .minecraft .client .renderer .color .IItemColor ;
710import net .minecraft .client .renderer .texture .TextureAtlasSprite ;
811import net .minecraft .client .renderer .vertex .VertexFormat ;
912import net .minecraft .client .resources .IResourceManager ;
13+ import net .minecraft .item .ItemStack ;
1014import net .minecraft .util .ResourceLocation ;
1115import net .minecraftforge .client .model .ICustomModelLoader ;
1216import net .minecraftforge .client .model .IModel ;
1317import net .minecraftforge .client .model .ModelLoaderRegistry ;
1418import net .minecraftforge .client .model .PerspectiveMapWrapper ;
1519import net .minecraftforge .common .model .IModelState ;
20+ import org .lwjgl .input .Keyboard ;
1621
1722import javax .annotation .Nonnull ;
1823import java .util .Collection ;
@@ -29,6 +34,19 @@ public Collection<ResourceLocation> getDependencies() {
2934 return Collections .singletonList (BASE_MODEL );
3035 }
3136
37+ public static final IItemColor PATTERN_ITEM_COLOR_HANDLER = (stack , tintIndex ) -> {
38+ ItemEncodedPattern iep = (ItemEncodedPattern ) stack .getItem ();
39+ ItemStack output = iep .getOutput (stack );
40+ if (!output .isEmpty () && isShiftKeyDown ()) {
41+ return Minecraft .getMinecraft ().getItemColors ().colorMultiplier (output , tintIndex );
42+ }
43+ return 0xFFFFFF ;
44+ };
45+
46+ private static boolean isShiftKeyDown () {
47+ return Keyboard .isKeyDown (Keyboard .KEY_LSHIFT ) || Keyboard .isKeyDown (Keyboard .KEY_RSHIFT );
48+ }
49+
3250 // adapted from ae2's ItemEncodedPatternModel#bake
3351 @ Override
3452 @ Nonnull
0 commit comments