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 }