public void Prepare()
    {
        if (prepared)
        {
            return;
        }
        else
        {
            prepared = true;
        }
        vegetationShaderWindPropertyID = Shader.PropertyToID("_Windpower");
        if (!GameMaster.loading)
        {
            windVector    = Random.insideUnitCircle;
            newWindVector = windVector;
        }

        Shader.SetGlobalFloat(vegetationShaderWindPropertyID, 1);
        sun = FindObjectOfType <Light>();
        if (sun == null)
        {
            sun      = new GameObject("sun").AddComponent <Light>();
            sun.type = LightType.Directional;
        }
        sunTransform = sun.transform;
        decorations  = new List <Transform>();

        skyboxMaterial = RenderSettings.skybox;
        gm             = GameMaster.realMaster;
        globalMap      = gm.globalMap;
        SetEnvironment(Environment.defaultEnvironment);
        if (gm.gameMode != GameMode.Editor)
        {
            RefreshVisual();
            RecalculateCelestialDecorations();
        }
        else
        {
        }
        islandStability = DEFAULT_ISLAND_STABILITY;
        globalMap?.LinkEnvironmentMaster(this);
        if (GameMaster.realMaster.IsInTestMode)
        {
            AnnouncementCanvasController.MakeAnnouncement("environment master loaded");
        }
    }