2014-09-23 05:01:24 +00:00
|
|
|
package net.minecraftforge.fml.client;
|
2013-07-02 15:11:50 +00:00
|
|
|
|
2013-07-10 19:47:13 +00:00
|
|
|
import java.awt.image.BufferedImage;
|
2013-07-02 15:11:50 +00:00
|
|
|
import java.io.ByteArrayInputStream;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.InputStream;
|
2014-09-23 05:01:24 +00:00
|
|
|
|
2013-12-16 16:47:48 +00:00
|
|
|
import org.apache.logging.log4j.Level;
|
2013-07-02 15:11:50 +00:00
|
|
|
|
2013-07-10 19:47:13 +00:00
|
|
|
import javax.imageio.ImageIO;
|
|
|
|
|
2013-07-02 15:11:50 +00:00
|
|
|
import net.minecraft.client.resources.FolderResourcePack;
|
2015-05-11 03:55:11 +00:00
|
|
|
import net.minecraftforge.fml.common.FMLContainerHolder;
|
2014-09-23 05:01:24 +00:00
|
|
|
import net.minecraftforge.fml.common.FMLLog;
|
|
|
|
import net.minecraftforge.fml.common.ModContainer;
|
2013-07-02 15:11:50 +00:00
|
|
|
|
|
|
|
import com.google.common.base.Charsets;
|
|
|
|
|
2015-04-11 04:31:09 +00:00
|
|
|
public class FMLFolderResourcePack extends FolderResourcePack implements FMLContainerHolder {
|
2013-07-02 15:11:50 +00:00
|
|
|
|
|
|
|
private ModContainer container;
|
|
|
|
|
|
|
|
public FMLFolderResourcePack(ModContainer container)
|
|
|
|
{
|
|
|
|
super(container.getSource());
|
|
|
|
this.container = container;
|
|
|
|
}
|
|
|
|
|
2013-12-10 02:36:49 +00:00
|
|
|
@Override
|
2014-03-19 07:15:53 +00:00
|
|
|
protected boolean hasResourceName(String p_110593_1_)
|
2013-12-10 02:36:49 +00:00
|
|
|
{
|
2014-03-19 07:15:53 +00:00
|
|
|
return super.hasResourceName(p_110593_1_);
|
2013-12-10 02:36:49 +00:00
|
|
|
}
|
2013-07-02 15:11:50 +00:00
|
|
|
@Override
|
2014-03-19 07:15:53 +00:00
|
|
|
public String getPackName()
|
2013-07-02 15:11:50 +00:00
|
|
|
{
|
|
|
|
return "FMLFileResourcePack:"+container.getName();
|
|
|
|
}
|
|
|
|
@Override
|
2014-03-19 07:15:53 +00:00
|
|
|
protected InputStream getInputStreamByName(String resourceName) throws IOException
|
2013-07-02 15:11:50 +00:00
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
2014-03-19 07:15:53 +00:00
|
|
|
return super.getInputStreamByName(resourceName);
|
2013-07-02 15:11:50 +00:00
|
|
|
}
|
|
|
|
catch (IOException ioe)
|
|
|
|
{
|
|
|
|
if ("pack.mcmeta".equals(resourceName))
|
|
|
|
{
|
2013-12-16 16:47:48 +00:00
|
|
|
FMLLog.log(container.getName(), Level.DEBUG, "Mod %s is missing a pack.mcmeta file, substituting a dummy one", container.getName());
|
2013-07-02 15:11:50 +00:00
|
|
|
return new ByteArrayInputStream(("{\n" +
|
|
|
|
" \"pack\": {\n"+
|
|
|
|
" \"description\": \"dummy FML pack for "+container.getName()+"\",\n"+
|
|
|
|
" \"pack_format\": 1\n"+
|
|
|
|
"}\n" +
|
|
|
|
"}").getBytes(Charsets.UTF_8));
|
|
|
|
}
|
|
|
|
else throw ioe;
|
|
|
|
}
|
|
|
|
}
|
2013-07-10 19:47:13 +00:00
|
|
|
|
|
|
|
@Override
|
2014-03-19 07:15:53 +00:00
|
|
|
public BufferedImage getPackImage() throws IOException
|
2013-07-10 19:47:13 +00:00
|
|
|
{
|
2014-03-19 07:15:53 +00:00
|
|
|
return ImageIO.read(getInputStreamByName(container.getMetadata().logoFile));
|
2013-07-10 19:47:13 +00:00
|
|
|
}
|
|
|
|
|
2015-04-11 04:31:09 +00:00
|
|
|
@Override
|
|
|
|
public ModContainer getFMLContainer()
|
|
|
|
{
|
|
|
|
return container;
|
|
|
|
}
|
|
|
|
|
2013-07-02 15:11:50 +00:00
|
|
|
}
|