Skip to content

Instantly share code, notes, and snippets.

@RainWarrior
Created February 16, 2015 05:12
Show Gist options
  • Save RainWarrior/5f820ecc2e4e9b537425 to your computer and use it in GitHub Desktop.
Save RainWarrior/5f820ecc2e4e9b537425 to your computer and use it in GitHub Desktop.
diff --git a/src/main/java/net/minecraftforge/client/model/ModelLoader.java b/src/main/java/net/minecraftforge/client/model/ModelLoader.java
index 3f51eae..7fa28da 100644
--- a/src/main/java/net/minecraftforge/client/model/ModelLoader.java
+++ b/src/main/java/net/minecraftforge/client/model/ModelLoader.java
@@ -1,7 +1,9 @@
package net.minecraftforge.client.model;
+import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -13,6 +15,7 @@ import java.util.Set;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
+import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.BlockModelShapes;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.ItemModelMesher;
@@ -29,6 +32,7 @@ import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.vertex.VertexFormat;
import net.minecraft.client.resources.IResourceManager;
+import net.minecraft.client.resources.data.AnimationMetadataSection;
import net.minecraft.client.resources.model.BuiltInModel;
import net.minecraft.client.resources.model.ModelBakery;
import net.minecraft.client.resources.model.ModelResourceLocation;
@@ -37,7 +41,10 @@ import net.minecraft.client.resources.model.WeightedBakedModel;
import net.minecraft.item.Item;
import net.minecraft.util.IRegistry;
import net.minecraft.util.ResourceLocation;
+import net.minecraftforge.client.event.TextureStitchEvent;
+import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.FMLLog;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.GameData;
import net.minecraftforge.fml.common.registry.RegistryDelegate;
@@ -71,6 +78,7 @@ public class ModelLoader extends ModelBakery
super(manager, map, shapes);
VanillaLoader.instance.setLoader(this);
ModelLoaderRegistry.clearModelCache();
+ MinecraftForge.EVENT_BUS.register(White.instance);
}
@Override
@@ -450,6 +458,48 @@ public class ModelLoader extends ModelBakery
}
}
+ public static class White extends TextureAtlasSprite
+ {
+ public static ResourceLocation loc = new ResourceLocation("white");
+ public static White instance = new White();
+
+ protected White()
+ {
+ super(loc.toString());
+ }
+
+ @Override
+ public boolean hasCustomLoader(IResourceManager manager, ResourceLocation location)
+ {
+ return true;
+ }
+
+ @Override
+ public boolean load(IResourceManager manager, ResourceLocation location)
+ {
+ int[] rgbArray = new int[16*16];
+ Arrays.fill(rgbArray, 0xFFFFFFFF);
+ BufferedImage image = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB);
+ image.setRGB(0, 0, 16, 16, rgbArray, 0, 16);
+ BufferedImage[] images = new BufferedImage[Minecraft.getMinecraft().gameSettings.mipmapLevels + 1];
+ images[0] = image;
+ loadSprite(images, null);
+ return false;
+ }
+
+ /*@Override
+ public void loadSprite(BufferedImage[] bufferedImages, AnimationMetadataSection section)
+ {
+ super.loadSprite(bufferedImages, section);
+ }*/
+
+ @SubscribeEvent
+ public void handleStitchPre(TextureStitchEvent.Pre event)
+ {
+ event.map.setTextureEntry(White.loc.toString(), White.instance);
+ }
+ }
+
public void onPostBakeEvent(IRegistry modelRegistry)
{
for(ModelResourceLocation missing : missingVariants)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment