001    package net.minecraft.src;
002    
003    import java.util.Collection;
004    import java.util.Iterator;
005    import java.util.TreeMap;
006    
007    public class GameRules
008    {
009        private TreeMap field_82771_a = new TreeMap();
010    
011        public GameRules()
012        {
013            this.func_82769_a("doFireTick", "true");
014            this.func_82769_a("mobGriefing", "true");
015            this.func_82769_a("keepInventory", "false");
016            this.func_82769_a("doMobSpawning", "true");
017            this.func_82769_a("doMobLoot", "true");
018            this.func_82769_a("doTileDrops", "true");
019            this.func_82769_a("commandBlockOutput", "true");
020        }
021    
022        public void func_82769_a(String par1Str, String par2Str)
023        {
024            this.field_82771_a.put(par1Str, new GameRuleValue(par2Str));
025        }
026    
027        public void func_82764_b(String par1Str, String par2Str)
028        {
029            GameRuleValue var3 = (GameRuleValue)this.field_82771_a.get(par1Str);
030    
031            if (var3 != null)
032            {
033                var3.func_82757_a(par2Str);
034            }
035            else
036            {
037                this.func_82769_a(par1Str, par2Str);
038            }
039        }
040    
041        public String func_82767_a(String par1Str)
042        {
043            GameRuleValue var2 = (GameRuleValue)this.field_82771_a.get(par1Str);
044            return var2 != null ? var2.func_82756_a() : "";
045        }
046    
047        public boolean func_82766_b(String par1Str)
048        {
049            GameRuleValue var2 = (GameRuleValue)this.field_82771_a.get(par1Str);
050            return var2 != null ? var2.func_82758_b() : false;
051        }
052    
053        public NBTTagCompound func_82770_a()
054        {
055            NBTTagCompound var1 = new NBTTagCompound("GameRules");
056            Iterator var2 = this.field_82771_a.keySet().iterator();
057    
058            while (var2.hasNext())
059            {
060                String var3 = (String)var2.next();
061                GameRuleValue var4 = (GameRuleValue)this.field_82771_a.get(var3);
062                var1.setString(var3, var4.func_82756_a());
063            }
064    
065            return var1;
066        }
067    
068        public void func_82768_a(NBTTagCompound par1NBTTagCompound)
069        {
070            Collection var2 = par1NBTTagCompound.getTags();
071            Iterator var3 = var2.iterator();
072    
073            while (var3.hasNext())
074            {
075                NBTBase var4 = (NBTBase)var3.next();
076                String var5 = var4.getName();
077                String var6 = par1NBTTagCompound.getString(var4.getName());
078                this.func_82764_b(var5, var6);
079            }
080        }
081    
082        public String[] func_82763_b()
083        {
084            return (String[])this.field_82771_a.keySet().toArray(new String[0]);
085        }
086    
087        public boolean func_82765_e(String par1Str)
088        {
089            return this.field_82771_a.containsKey(par1Str);
090        }
091    }