// Use this for initialization
    void Start()
    {
        patch = new GUIterrainPatch(64);
        DontDestroyOnLoad(transform.gameObject);
        buttonWidth = menuWidth / 2 - sideOffset - sideOffset / 2;

        planner = new GUIterrainPlanner(this);
        hint = new GUIterrainHint(this);
    }
    public GUIterrainPlanner(GUIterrainPlannerMenu tpm)
    {
        this.tpm = tpm;
        patch = tpm.patch;

        menuWidth = tpm.menuWidth;
        rightOffset = tpm.rightOffset;
        buttonHeight = tpm.buttonHeight;
        sideOffset = tpm.sideOffset;
        buttonWidth = tpm.buttonWidth;
        smallButtonHeight = buttonHeight / 2 + 5;
    }
    public TerrainGenerator(int patchSize)
    {
        //initialize(64,3);
        ds = new DiamondSquare(this, patchSize);
        rt = new RandomTerrain(this);
        this.patchSize = patchSize;
        try
        {
            GUIterrainPlannerMenu tpMenu = GameObject.Find("TerrainPlanner").GetComponent<GUIterrainPlannerMenu>();
            pm = tpMenu.patch.pm;
            gtp = tpMenu.patch;
            extraPatchCount = tpMenu.patch.extraPatchCount;
        }
        catch (Exception e)
        {
            Debug.Log("TerrainPlanner not found");
            //pm = new PatchManager(patchSize);
            gtp = new GUIterrainPatch(patchSize);
            gtp.SetDefaultPatch(DefaultTerrain.valleys);
            pm = gtp.pm;

            extraPatchCount = 0;
        }
    }