--- ../src-base/minecraft/net/minecraft/world/storage/WorldInfo.java +++ ../src-work/minecraft/net/minecraft/world/storage/WorldInfo.java @@ -66,6 +66,7 @@ private int field_176155_J = 15; private final Map field_186348_N = Maps.newEnumMap(DimensionType.class); private GameRules field_82577_x = new GameRules(); + private java.util.Map additionalProperties; protected WorldInfo() { @@ -335,6 +336,7 @@ nbttagcompound.func_74757_a("Snapshot", false); p_76064_1_.func_74782_a("Version", nbttagcompound); p_76064_1_.func_74768_a("DataVersion", 819); + net.minecraftforge.fml.common.FMLCommonHandler.instance().getDataFixer().writeVersionData(p_76064_1_); p_76064_1_.func_74772_a("RandomSeed", this.field_76100_a); p_76064_1_.func_74778_a("generatorName", this.field_76098_b.func_77127_a()); p_76064_1_.func_74768_a("generatorVersion", this.field_76098_b.func_77131_c()); @@ -807,6 +809,26 @@ }); } + /** + * Allow access to additional mod specific world based properties + * Used by FML to store mod list associated with a world, and maybe an id map + * Used by Forge to store the dimensions available to a world + * @param additionalProperties + */ + public void setAdditionalProperties(java.util.Map additionalProperties) + { + // one time set for this + if (this.additionalProperties == null) + { + this.additionalProperties = additionalProperties; + } + } + + public net.minecraft.nbt.NBTBase getAdditionalProperty(String additionalProperty) + { + return this.additionalProperties!=null? this.additionalProperties.get(additionalProperty) : null; + } + public NBTTagCompound func_186347_a(DimensionType p_186347_1_) { NBTTagCompound nbttagcompound = (NBTTagCompound)this.field_186348_N.get(p_186347_1_);