public override void PreClose()
 {
     if (AcceptColor == false)
     {
         PlanColorManager.ChangeColor(NumColor, HexColorBefore);
     }
 }
Пример #2
0
        public override void DefsLoaded()
        {
            LoadPlanDesDefs();
            ModSettings = ModSettings.CreateModSettings(Settings);
            PlanColorManager.Load(Settings);

            SettingsChanged();

            DesignationCategoryDef desCatDef = DefDatabase <DesignationCategoryDef> .GetNamed("Planning");

            if (desCatDef == null)
            {
                throw new Exception("Planning designation category not found");
            }

            FieldInfo designatorsFi = typeof(DesignationCategoryDef).GetField("resolvedDesignators", BindingFlags.NonPublic | BindingFlags.Instance);
            var       designators   = designatorsFi.GetValue(desCatDef) as List <Designator>;

            for (int i = 0; i < PlanColorManager.NumPlans; i++)
            {
                designators.Add(new SelectColorDesignator(i));
            }
        }
        public override void DoWindowContents(Rect inRect)
        {
            var beforeColor = Color.Color;

            var colorSb = new Rect(0, 0, 10, 10)
            {
                center = new Vector2(256 * S, 256 - 256 * V)
            };

            if (GUI.RepeatButton(new Rect(0, 0, 256, 256), ""))
            {
                Color.S = (Event.current.mousePosition.x - inRect.x) / 256f;
                Color.V = 1f - (Event.current.mousePosition.y - inRect.y) / 256f;
            }
            Widgets.DrawBoxSolid(new Rect(0, 0, 256, 256), Color.ObjColorH);
            GUI.DrawTexture(new Rect(0, 0, 256, 256), Resources.ColorPickerOverlay);
            GUI.DrawTexture(colorSb, Resources.ColorPickerSelect);

            GUI.DrawTexture(new Rect(275, 0, 19, 256), Resources.HsvSlider);

            var newSlider = GUI.VerticalSlider(new Rect(264f, 0f, 11, 256f), Slider, 1, 0);

            Widgets.DrawBoxSolid(new Rect(305, 0, 76, 76), Color.Color);

            var textHex = Widgets.TextField(new Rect(305f, 91f, 76f, 23f), InputColorHex);

            var defaultColorClicked = Widgets.ButtonText(new Rect(305f, 128f, 76f, 50f), "MorePlanning.DefaultColor".Translate());
            var okClicked           = Widgets.ButtonText(new Rect(305f, 234f, 76f, 23f), "MorePlanning.Ok".Translate());

            if (Math.Abs(newSlider - Slider) > 0.01)
            {
                Color.H = newSlider;
                Slider  = newSlider;
            }

            var colorHexChanged = false;

            if (textHex != InputColorHex)
            {
                Color.HexColor  = "#" + textHex;
                InputColorHex   = textHex;
                colorHexChanged = true;
            }

            if (defaultColorClicked)
            {
                Color.HexColor = "#" + PlanColorManager.DefaultColors[NumColor];
            }

            if (okClicked)
            {
                AcceptColor = true;
                Close();
            }

            if (!beforeColor.Equals(Color.Color))
            {
                Slider = Color.H;
                S      = Color.S;
                V      = Color.V;
                if (colorHexChanged == false)
                {
                    InputColorHex = Color.HexColor;
                }
                PlanColorManager.ChangeColor(NumColor, Color.HexColor);
            }
        }