001 package net.minecraftforge.common;
002
003 import java.util.Arrays;
004 import java.util.Map;
005
006 import net.minecraft.src.NBTBase;
007 import net.minecraft.src.NBTTagCompound;
008 import net.minecraft.src.SaveHandler;
009 import net.minecraft.src.WorldInfo;
010
011 import com.google.common.eventbus.EventBus;
012 import com.google.common.eventbus.Subscribe;
013
014 import cpw.mods.fml.common.DummyModContainer;
015 import cpw.mods.fml.common.LoadController;
016 import cpw.mods.fml.common.Loader;
017 import cpw.mods.fml.common.ModMetadata;
018 import cpw.mods.fml.common.WorldAccessContainer;
019 import cpw.mods.fml.common.event.FMLPostInitializationEvent;
020 import cpw.mods.fml.common.event.FMLPreInitializationEvent;
021
022 import static net.minecraftforge.common.ForgeVersion.*;
023
024 public class ForgeDummyContainer extends DummyModContainer implements WorldAccessContainer
025 {
026 public ForgeDummyContainer()
027 {
028 super(new ModMetadata());
029 ModMetadata meta = getMetadata();
030 meta.modId = "Forge";
031 meta.name = "Minecraft Forge";
032 meta.version = String.format("%d.%d.%d.%d", majorVersion, minorVersion, revisionVersion, buildVersion);
033 meta.credits = "Made possible with help from many people";
034 meta.authorList = Arrays.asList("LexManos", "Eloraam", "Spacetoad");
035 meta.description = "Minecraft Forge is a common open source API allowing a broad range of mods " +
036 "to work cooperatively together. It allows many mods to be created without " +
037 "them editing the main Minecraft code.";
038 meta.url = "http://MinecraftForge.net";
039 meta.updateUrl = "http://MinecraftForge.net/forum/index.php/topic,5.0.html";
040 meta.screenshots = new String[0];
041 meta.logoFile = "/forge_logo.png";
042 }
043
044 @Override
045 public boolean registerBus(EventBus bus, LoadController controller)
046 {
047 bus.register(this);
048 return true;
049 }
050
051 @Subscribe
052 public void preInit(FMLPreInitializationEvent evt)
053 {
054 ForgeChunkManager.captureConfig(evt.getModConfigurationDirectory());
055 }
056 @Subscribe
057 public void postInit(FMLPostInitializationEvent evt)
058 {
059 ForgeChunkManager.loadConfiguration();
060 }
061
062 @Override
063 public NBTTagCompound getDataForWriting(SaveHandler handler, WorldInfo info)
064 {
065 NBTTagCompound forgeData = new NBTTagCompound();
066 NBTTagCompound dimData = DimensionManager.saveDimensionDataMap();
067 forgeData.setCompoundTag("DimensionData", dimData);
068 return forgeData;
069 }
070
071 @Override
072 public void readData(SaveHandler handler, WorldInfo info, Map<String, NBTBase> propertyMap, NBTTagCompound tag)
073 {
074 if (tag.hasKey("DimensionData"))
075 {
076 DimensionManager.loadDimensionDataMap(tag.hasKey("DimensionData") ? tag.getCompoundTag("DimensionData") : null);
077 }
078 }
079 }