public void FromJson(JSONNode jsnode)
        {
            name            = jsnode["name"];
            xCount          = jsnode["xCount"].AsInt;
            yCount          = jsnode["yCount"].AsInt;
            chunkSize       = jsnode["chunkSize"].AsInt;
            tileSize        = jsnode["tileSize"].AsInt;
            uvOffset.x      = jsnode["uvOffset.x"].AsFloat;
            uvOffset.y      = jsnode["uvOffset.y"].AsFloat;
            tilesetX        = jsnode["tilesetX"].AsInt;
            tilesetY        = jsnode["tilesetY"].AsInt;
            tilesetMaterial = Resources.Load <Material>("Terrain/Materials/" + jsnode["tilesetMaterial"]);

            tsTrans.Clear();
            foreach (var tranNode in jsnode["tsTrans"].Childs)
            {
                PATSTransition tran = new PATSTransition();
                tran.FromJson(tranNode);
                tsTrans.Add(tran);
            }

            tsTypes.Clear();
            foreach (var typeNode in jsnode["tsTypes"].Childs)
            {
                PATSType type = new PATSType();
                type.FromJson(typeNode);
                tsTypes.Add(type);
            }

            crystals.Clear();
            foreach (var crystalNode in jsnode["crystals"].Childs)
            {
                PACrystalBuilding crystalBuilding = new PACrystalBuilding();
                crystalBuilding.FromJson(crystalNode);
                AddCrystal(crystalBuilding);
            }
        }
 public void AddCrystal(PACrystalBuilding addCrystal)
 {
     crystals.Add(addCrystal);
     invalid = true;
 }