001 package cpw.mods.fml.common.event;
002
003 import java.io.File;
004 import java.util.Properties;
005
006 import cpw.mods.fml.common.LoaderState.ModState;
007 import cpw.mods.fml.common.FMLModContainer;
008 import cpw.mods.fml.common.ModContainer;
009 import cpw.mods.fml.common.ModMetadata;
010 import cpw.mods.fml.common.discovery.ASMDataTable;
011
012 public class FMLPreInitializationEvent extends FMLStateEvent
013 {
014 private ModMetadata modMetadata;
015 private File sourceFile;
016 private File configurationDir;
017 private File suggestedConfigFile;
018 private ASMDataTable asmData;
019 private ModContainer modContainer;
020
021 public FMLPreInitializationEvent(Object... data)
022 {
023 super(data);
024 this.asmData = (ASMDataTable)data[0];
025 this.configurationDir = (File)data[1];
026 }
027
028 @Override
029 public ModState getModState()
030 {
031 return ModState.PREINITIALIZED;
032 }
033
034 @Override
035 public void applyModContainer(ModContainer activeContainer)
036 {
037 this.modContainer = activeContainer;
038 this.modMetadata = activeContainer.getMetadata();
039 this.sourceFile = activeContainer.getSource();
040 this.suggestedConfigFile = new File(configurationDir, activeContainer.getModId()+".cfg");
041 }
042
043 public File getSourceFile()
044 {
045 return sourceFile;
046 }
047
048 public ModMetadata getModMetadata()
049 {
050 return modMetadata;
051 }
052
053 public File getModConfigurationDirectory()
054 {
055 return configurationDir;
056 }
057
058 public File getSuggestedConfigurationFile()
059 {
060 return suggestedConfigFile;
061 }
062
063 public ASMDataTable getAsmData()
064 {
065 return asmData;
066 }
067
068 public Properties getVersionProperties()
069 {
070 if (this.modContainer instanceof FMLModContainer)
071 {
072 return ((FMLModContainer)this.modContainer).searchForVersionProperties();
073 }
074
075 return null;
076 }
077 }