Beispiel #1
0
        public static LightCreator InitFromExistingLight(World.WorldLightEntry worldLight)
        {
            var dlg = new LightCreator();
            var pos = worldLight.Position;
            dlg.numericUpDown1.Value = (decimal)(pos.X - Utils.Metrics.MidPoint);
            dlg.numericUpDown2.Value = (decimal)(pos.Z - Utils.Metrics.MidPoint);
            dlg.numericUpDown3.Value = (decimal)pos.Y;
            dlg.numericUpDown4.Value = (decimal)worldLight.InnerRadius;
            dlg.numericUpDown5.Value = (decimal)worldLight.OuterRadius;

            // ToList is used to make sure a copy of the list is created to prevent the existing tables from being changed.
            dlg.lightColorSelector1.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.GlobalDiffuse).ToList(), worldLight.GetColorLine(World.ColorTableValues.GlobalDiffuse).ToList());
            dlg.lightColorSelector2.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.GlobalAmbient).ToList(), worldLight.GetColorLine(World.ColorTableValues.GlobalAmbient).ToList());
            dlg.lightColorSelector3.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.Fog).ToList(), worldLight.GetColorLine(World.ColorTableValues.Fog).ToList());
            dlg.lightColorSelector4.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.Color0).ToList(), worldLight.GetColorLine(World.ColorTableValues.Color0).ToList());
            dlg.lightColorSelector5.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.Color1).ToList(), worldLight.GetColorLine(World.ColorTableValues.Color1).ToList());
            dlg.lightColorSelector6.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.Color2).ToList(), worldLight.GetColorLine(World.ColorTableValues.Color2).ToList());
            dlg.lightColorSelector7.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.Color3).ToList(), worldLight.GetColorLine(World.ColorTableValues.Color3).ToList());
            dlg.lightColorSelector8.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.Color4).ToList(), worldLight.GetColorLine(World.ColorTableValues.Color4).ToList());
            dlg.lightColorSelector9.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.SunColor).ToList(), worldLight.GetColorLine(World.ColorTableValues.SunColor).ToList());
            dlg.lightColorSelector10.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.SunHaloColor).ToList(), worldLight.GetColorLine(World.ColorTableValues.SunHaloColor).ToList());
            dlg.lightColorSelector11.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.WaterDark).ToList(), worldLight.GetColorLine(World.ColorTableValues.WaterDark).ToList());
            dlg.lightColorSelector12.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.WaterLight).ToList(), worldLight.GetColorLine(World.ColorTableValues.WaterLight).ToList());
            dlg.lightColorSelector13.InitFromWorldLight(worldLight.GetTimeLine(World.ColorTableValues.Shadow).ToList(), worldLight.GetColorLine(World.ColorTableValues.Shadow).ToList());

            dlg.mLightEntry = worldLight;
            dlg.numericUpDown6.Value = (decimal)worldLight.LightParams.glow;
            dlg.comboBox1.SelectedIndex = (int)worldLight.LightParams.cloudID;
            dlg.checkBox1.Checked = worldLight.LightParams.HighlightSky > 0;

            var skyb = worldLight.LightParams.skyboxID;
            if (DBC.DBCStores.LightSkyBox.ContainsKey(skyb))
            {
                dlg.textBox1.Text = DBC.DBCStores.LightSkyBox[skyb].Path;
                dlg.textBox1.Tag = DBC.DBCStores.LightSkyBox[skyb].ID;
            }
            else
            {
                dlg.textBox1.Text = "(none)";
                dlg.textBox1.Tag = (uint)0;
            }

            dlg.numericUpDown7.Value = (decimal)worldLight.LightParams.waterShallowAlpha;
            dlg.numericUpDown8.Value = (decimal)worldLight.LightParams.waterDeepAlpha;
            dlg.numericUpDown9.Value = (decimal)worldLight.LightParams.oceanShallowAlpha;
            dlg.numericUpDown10.Value = (decimal)worldLight.LightParams.oceanDeepAlpha;
            return dlg;
        }