// Path: src/com/ganggarrison/gmdec/DeferredReferenceCreatorNotifier.java
// public class DeferredReferenceCreatorNotifier {
// 	private Set<DeferredReferenceCreator> drcSet = new HashSet<DeferredReferenceCreator>();
// 
// 	public void addDeferredReferenceCreator(DeferredReferenceCreator drc) {
// 		drcSet.add(drc);
// 	}
// 
// 	public void createReferences(GmFile gmf) {
// 		for (DeferredReferenceCreator drc : drcSet) {
// 			drc.createReferences(gmf);
// 		}
// 	}
// }
// 
// Path: src/com/ganggarrison/gmdec/ResourceTreeEntry.java
// public class ResourceTreeEntry {
// 	public String name;
// 	public String filename;
// 	public Type type;
// 
// 	public ResourceTreeEntry(String name, String filename, Type type) {
// 		this.name = name;
// 		this.filename = filename;
// 		this.type = type;
// 	}
// 
// 	public ResourceTreeEntry() {
// 	}
// 
// 	public String getFilename() {
// 		String result;
// 		if (filename != null && !filename.isEmpty()) {
// 			result = filename;
// 		} else {
// 			result = name;
// 		}
// 		if (FileTools.isGoodFilename(result)) {
// 			return result;
// 		} else {
// 			throw new IllegalStateException("Bad filename in resource list: " + result);
// 		}
// 	}
// 
// 	public static enum Type {
// 		RESOURCE, GROUP
// 	}
// }
// 
// Path: src/com/ganggarrison/gmdec/xml/FontXmlFormat.java
// public class FontXmlFormat extends XmlFormat<Font> {
// 
// 	@Override
// 	public void write(Font font, XmlWriter writer) {
// 		writer.startElement("font");
// 		{
// 			writeIdAttribute(font, writer);
// 			writer.putElement("fontName", font.get(PFont.FONT_NAME));
// 			writer.putElement("bold", font.get(PFont.BOLD));
// 			writer.putElement("italic", font.get(PFont.ITALIC));
// 			writer.putElement("rangeMin", font.get(PFont.RANGE_MIN));
// 			writer.putElement("rangeMax", font.get(PFont.RANGE_MAX));
// 			writer.putElement("size", font.get(PFont.SIZE));
// 			if (GmkSplitter.targetVersion >= 810) {
// 				writer.putElement("charset", font.get(PFont.CHARSET));
// 				writer.putElement("antialias", font.get(PFont.ANTIALIAS));
// 			}
// 		}
// 		writer.endElement();
// 	}
// 
// 	@Override
// 	public Font read(XmlReader reader, DeferredReferenceCreatorNotifier notifier) {
// 		Font font = new Font();
// 		reader.enterElement("font");
// 		{
// 			readIdAttribute(font, reader);
// 			font.put(PFont.FONT_NAME, reader.getStringElement("fontName"));
// 			font.put(PFont.BOLD, reader.getBoolElement("bold"));
// 			font.put(PFont.ITALIC, reader.getBoolElement("italic"));
// 			font.put(PFont.RANGE_MIN, reader.getIntElement("rangeMin"));
// 			font.put(PFont.RANGE_MAX, reader.getIntElement("rangeMax"));
// 			font.put(PFont.SIZE, reader.getIntElement("size"));
// 			if (reader.hasNextElement()) {
// 				font.put(PFont.CHARSET, reader.getIntElement("charset"));
// 				font.put(PFont.ANTIALIAS, reader.getIntElement("antialias"));
// 				if (GmkSplitter.targetVersion < 810) {
// 					GmkSplitter.issueVersionWarning("Font/Charset and Antialias");
// 				}
// 			}
// 		}
// 		reader.leaveElement();
// 		return font;
// 	}
// }


import java.io.File;
import java.io.IOException;
import org.lateralgm.file.GmFile;
import org.lateralgm.resources.Font;
import com.ganggarrison.gmdec.DeferredReferenceCreatorNotifier;
import com.ganggarrison.gmdec.ResourceTreeEntry;
import com.ganggarrison.gmdec.xml.FontXmlFormat;

/*
 * Copyright (C) 2010 Medo <smaxein@googlemail.com>
 * 
 * This file is part of GmkSplitter.
 * GmkSplitter is free software and comes with ABSOLUTELY NO WARRANTY.
 * See LICENSE for details.
 */
package com.ganggarrison.gmdec.files;




public class FontFormat extends ResourceFormat<Font> {
	@Override

// Path: src/com/ganggarrison/gmdec/DeferredReferenceCreatorNotifier.java
// public class DeferredReferenceCreatorNotifier {
// 	private Set<DeferredReferenceCreator> drcSet = new HashSet<DeferredReferenceCreator>();
// 
// 	public void addDeferredReferenceCreator(DeferredReferenceCreator drc) {
// 		drcSet.add(drc);
// 	}
// 
// 	public void createReferences(GmFile gmf) {
// 		for (DeferredReferenceCreator drc : drcSet) {
// 			drc.createReferences(gmf);
// 		}
// 	}
// }
// 
// Path: src/com/ganggarrison/gmdec/ResourceTreeEntry.java
// public class ResourceTreeEntry {
// 	public String name;
// 	public String filename;
// 	public Type type;
// 
// 	public ResourceTreeEntry(String name, String filename, Type type) {
// 		this.name = name;
// 		this.filename = filename;
// 		this.type = type;
// 	}
// 
// 	public ResourceTreeEntry() {
// 	}
// 
// 	public String getFilename() {
// 		String result;
// 		if (filename != null && !filename.isEmpty()) {
// 			result = filename;
// 		} else {
// 			result = name;
// 		}
// 		if (FileTools.isGoodFilename(result)) {
// 			return result;
// 		} else {
// 			throw new IllegalStateException("Bad filename in resource list: " + result);
// 		}
// 	}
// 
// 	public static enum Type {
// 		RESOURCE, GROUP
// 	}
// }
// 
// Path: src/com/ganggarrison/gmdec/xml/FontXmlFormat.java
// public class FontXmlFormat extends XmlFormat<Font> {
// 
// 	@Override
// 	public void write(Font font, XmlWriter writer) {
// 		writer.startElement("font");
// 		{
// 			writeIdAttribute(font, writer);
// 			writer.putElement("fontName", font.get(PFont.FONT_NAME));
// 			writer.putElement("bold", font.get(PFont.BOLD));
// 			writer.putElement("italic", font.get(PFont.ITALIC));
// 			writer.putElement("rangeMin", font.get(PFont.RANGE_MIN));
// 			writer.putElement("rangeMax", font.get(PFont.RANGE_MAX));
// 			writer.putElement("size", font.get(PFont.SIZE));
// 			if (GmkSplitter.targetVersion >= 810) {
// 				writer.putElement("charset", font.get(PFont.CHARSET));
// 				writer.putElement("antialias", font.get(PFont.ANTIALIAS));
// 			}
// 		}
// 		writer.endElement();
// 	}
// 
// 	@Override
// 	public Font read(XmlReader reader, DeferredReferenceCreatorNotifier notifier) {
// 		Font font = new Font();
// 		reader.enterElement("font");
// 		{
// 			readIdAttribute(font, reader);
// 			font.put(PFont.FONT_NAME, reader.getStringElement("fontName"));
// 			font.put(PFont.BOLD, reader.getBoolElement("bold"));
// 			font.put(PFont.ITALIC, reader.getBoolElement("italic"));
// 			font.put(PFont.RANGE_MIN, reader.getIntElement("rangeMin"));
// 			font.put(PFont.RANGE_MAX, reader.getIntElement("rangeMax"));
// 			font.put(PFont.SIZE, reader.getIntElement("size"));
// 			if (reader.hasNextElement()) {
// 				font.put(PFont.CHARSET, reader.getIntElement("charset"));
// 				font.put(PFont.ANTIALIAS, reader.getIntElement("antialias"));
// 				if (GmkSplitter.targetVersion < 810) {
// 					GmkSplitter.issueVersionWarning("Font/Charset and Antialias");
// 				}
// 			}
// 		}
// 		reader.leaveElement();
// 		return font;
// 	}
// }


// Path: src/com/ganggarrison/gmdec/files/FontFormat.java
import java.io.File;
import java.io.IOException;
import org.lateralgm.file.GmFile;
import org.lateralgm.resources.Font;
import com.ganggarrison.gmdec.DeferredReferenceCreatorNotifier;
import com.ganggarrison.gmdec.ResourceTreeEntry;
import com.ganggarrison.gmdec.xml.FontXmlFormat;

/*
 * Copyright (C) 2010 Medo <smaxein@googlemail.com>
 * 
 * This file is part of GmkSplitter.
 * GmkSplitter is free software and comes with ABSOLUTELY NO WARRANTY.
 * See LICENSE for details.
 */
package com.ganggarrison.gmdec.files;




public class FontFormat extends ResourceFormat<Font> {
	@Override

	public Font read(File path, ResourceTreeEntry entry, DeferredReferenceCreatorNotifier drcn) throws IOException {
