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