Наследование: MonoBehaviour
Пример #1
0
 private void Awake()
 {
     GetComponent <ColorPicker>().CurrentColor = Color.white;
     m_InputField.onEndEdit.AddListener((s) =>
     {
         if (lockedObject)
         {
             return;
         }
         Color32 color32;
         if (HexColorField.HexToColor(s, out color32))
         {
             Color color = color32;
             onChanged.Invoke(string.Format("{0} {1} {2} {3}", color.r, color.g, color.b, color.a));
             return;
         }
         onChanged.Invoke(s);
     });
     GetComponent <ColorPicker>().onValueChanged.AddListener(color =>
     {
         if (lockedObject)
         {
             return;
         }
         onChanged.Invoke(string.Format("{0} {1} {2} {3}", color.r, color.g, color.b, color.a));
     });
 }
Пример #2
0
        void Update()
        {
            if (trackedLoopID != -1 && simulator != null && simulator.HasLoop(trackedLoopID))
            {
                HeatLoop lp = simulator.Loop(trackedLoopID);

                temperatureTextValue.text = Localizer.Format("#LOC_SystemHeat_ToolbarPanel_LoopTemperatureValue",
                                                             lp.Temperature.ToString("F0"),
                                                             lp.NominalTemperature.ToString("F0"));

                string prefix = "";
                if (lp.NetFlux == 0f)
                {
                    prefix = "";
                }
                if (lp.NetFlux > 0f)
                {
                    prefix = "+";
                }
                if (lp.NetFlux < 0f)
                {
                    prefix = "";
                }

                fluxTextValue.text = Localizer.Format("#LOC_SystemHeat_ToolbarPanel_LoopFluxValue", prefix,
                                                      lp.NetFlux.ToString("F1"));

                if (lp.Temperature >= lp.NominalTemperature)
                {
                    Color32 c;
                    HexColorField.HexToColor("fe8401", out c);
                    temperatureTextValue.color = c;
                }
                else
                {
                    Color32 c;
                    HexColorField.HexToColor("B4D455", out c);
                    temperatureTextValue.color = c;
                }

                if (lp.NetFlux > 0)
                {
                    Color32 c;
                    HexColorField.HexToColor("fe8401", out c);
                    fluxTextValue.color = c;
                }
                else
                {
                    Color32 c;
                    HexColorField.HexToColor("B4D455", out c);
                    fluxTextValue.color = c;
                }
            }
        }
Пример #3
0
    /// <summary>
    /// Get Color
    /// </summary>
    /// <returns>Return color else string</returns>
    public override object GetValue()
    {
        Color32 color32;

        if (HexColorField.HexToColor(m_InputField.text, out color32))
        {
            Color color = color32;
            return(color);
        }
        return(m_InputField.text);
    }
Пример #4
0
    /// <summary>
    /// Set color field value
    /// </summary>
    /// <param name="value">text</param>
    public override void SetValue(object value)
    {
        lockedObject = true;
        if (value.ToString().Split().Length == 4)
        {
            value = ColorEx.Parse(value.ToString()).ToRGBHex();
        }
        Color32 color32;

        if (value is string && HexColorField.HexToColor(value.ToString(), out color32))
        {
            Color color = color32;
            GetComponent <ColorPicker>().CurrentColor = color;
            lockedObject = false;
            return;
        }
        m_InputField.text = value.ToString();
        lockedObject      = false;
    }
Пример #5
0
        protected void FixedUpdate()
        {
            float nominalTemp = 0f;

            if (module.moduleName == "FusionReactor" || module.moduleName == "ModuleFusionEngine")
            {
                nominalTemp = float.Parse(module.Fields.GetValue("SystemOutletTemperature").ToString());
                datafields["heatGenerated"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_HeatGenerated", float.Parse(module.Fields.GetValue("SystemPower").ToString()).ToString("F0")));
                datafields["powerGenerated"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_PowerGenerated", float.Parse(module.Fields.GetValue("CurrentPowerProduced").ToString()).ToString("F0")));
                datafields["lifetime"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_CoreLife", module.Fields.GetValue("FuelInput")));
                datafields["temperature"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_CoreTemperature", heatModule.LoopTemperature.ToString("F0")));


                if (heatModule.LoopTemperature > nominalTemp)
                {
                    datafields["temperature"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_CoreTemperatureAlert", heatModule.LoopTemperature.ToString("F0")), Color.red);
                }
                else
                {
                    datafields["temperature"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_CoreTemperature", heatModule.LoopTemperature.ToString("F0")), new Color(0.705f, 0.83f, 0.33f));
                }


                bool isOn = false;
                bool.TryParse(module.Fields.GetValue("Enabled").ToString(), out isOn);
                if (isOn != onToggle.isOn)
                {
                    onToggle.SetIsOnWithoutNotify(isOn);
                }

                //onToggle.isOn = isOn;


                bool isCharge = false;
                bool.TryParse(module.Fields.GetValue("Charging").ToString(), out isCharge);
                chargeToggle.SetIsOnWithoutNotify(isCharge);
                //chargeToggle.isOn = isCharge;
                float chargeVal = (float)module.Fields.GetValue("CurrentCharge") / (float)module.Fields.GetValue("ChargeGoal");
                chargeSlider.value = chargeVal;
                Color32 fillColor;
                if (chargeVal < 1.0f)
                {
                    HexColorField.HexToColor("#F67A28", out fillColor);
                }
                else
                {
                    HexColorField.HexToColor("#B4D455", out fillColor);
                }

                sliderFill.color = fillColor;
            }
            if (module.moduleName == "ModuleSystemHeatFissionReactor" || module.moduleName == "ModuleSystemHeatFissionEngine")
            {
                nominalTemp = float.Parse(module.Fields.GetValue("NominalTemperature").ToString());
                datafields["heatGenerated"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_HeatGenerated", float.Parse(module.Fields.GetValue("CurrentHeatGeneration").ToString()).ToString("F0")));
                datafields["powerGenerated"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_PowerGenerated", float.Parse(module.Fields.GetValue("CurrentElectricalGeneration").ToString()).ToString("F0")));
                datafields["lifetime"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_CoreLife", module.Fields.GetValue("FuelStatus")));

                if (heatModule.LoopTemperature > nominalTemp)
                {
                    datafields["temperature"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_CoreTemperatureAlert", heatModule.LoopTemperature.ToString("F0")), Color.red);
                }
                else
                {
                    datafields["temperature"].SetValue(Localizer.Format("#LOC_SystemHeat_ReactorPanel_Field_CoreTemperature", heatModule.LoopTemperature.ToString("F0")), new Color(0.705f, 0.83f, 0.33f));
                }

                bool isOn = false;
                bool.TryParse(module.Fields.GetValue("Enabled").ToString(), out isOn);
                onToggle.isOn = isOn;
            }


            if (heatModule.LoopTemperature > nominalTemp)
            {
                warningIcon.enabled = true;
            }
            else
            {
                warningIcon.enabled = false;
            }
        }
Пример #6
0
        public static void SetupAssets(KCModHelper _helper)
        {
            _helper.Log("-----------HOOKING UP ASSETS------------");

            // Setup District UI
            GameObject District_UI_GameObject = GameObject.Instantiate(AssetsLoader.GetAsset("District") as GameObject);
            Transform  Worker_UI = GameState.inst.playingMode.GameUIParent.transform.Find("WorkerUICanvas").Find("WorkerUI");

            District_UI_GameObject.transform.SetParent(Worker_UI, false);

            // Collect Specific Children In District UI
            List <String> filter = new List <String>(new String[] {
                "District(Clone)", "Expand", "CreateSwatch", "ToggleSwatchPicker",
                "Dropdown", "Options", "Option", "ContentBar", "Picker", "Fill",
                "InputField", "BoxSlider", "Hue", "Background", "ModelPreview",
                "ToggleDeleteMode"
            });

            District_UI_Children = Utilities.CollectChildren(District_UI_GameObject.transform, null, filter);

            GameObject Option_Prefab = District_UI_Children.Find(i => i.name == "Option").gameObject;
            AssetInfo  option_Info   = new AssetInfo("Option.Prefab", Option_Prefab.GetType(), Option_Prefab);

            AssetsLoader.assets.Add(option_Info);
            _helper.Log(option_Info.ToString());


            // Mod Components
            District           district_Component           = District_UI_GameObject.AddComponent <District>();
            Expand             expand_Component             = District_UI_Children.Find(i => i.name == "Expand").gameObject.AddComponent <Expand>();
            CreateSwatch       createSwatch_Component       = District_UI_Children.Find(i => i.name == "CreateSwatch").gameObject.AddComponent <CreateSwatch>();
            ModelPreview       modelPreview_Component       = District_UI_Children.Find(i => i.name == "ModelPreview").gameObject.AddComponent <ModelPreview>();
            ToggleSwatchPicker toggleSwatchPicker_Component = District_UI_Children.Find(i => i.name == "ToggleSwatchPicker").gameObject.AddComponent <ToggleSwatchPicker>();
            ToggleDeleteMode   toggleDeleteMode_Componenet  = District_UI_Children.Find(i => i.name == "ToggleDeleteMode").gameObject.AddComponent <ToggleDeleteMode>();


            district_Component.AddSwatch(Color.white, District.SwatchType.Default);
            district_Component.AddSwatch(Color.blue, District.SwatchType.Default);
            district_Component.AddSwatch(Color.cyan, District.SwatchType.Default);
            district_Component.AddSwatch(Color.gray, District.SwatchType.Default);
            district_Component.AddSwatch(Color.green, District.SwatchType.Default);
            district_Component.AddSwatch(Color.magenta, District.SwatchType.Default);
            district_Component.AddSwatch(Color.red, District.SwatchType.Default);
            district_Component.AddSwatch(Color.yellow, District.SwatchType.Default);


            // Color Picker
            ColorPicker colorPicker_Component = District_UI_Children.Find(i => i.name == "Picker").gameObject.AddComponent <ColorPicker>();
            ColorImage  colorImage_Component  = District_UI_Children.Find(i => i.name == "Fill").gameObject.AddComponent <ColorImage>();

            colorImage_Component.picker = colorPicker_Component;
            HexColorField hexColorField_Component = District_UI_Children.Find(i => i.name == "InputField").gameObject.AddComponent <HexColorField>();

            hexColorField_Component.hsvpicker = colorPicker_Component;
            BoxSlider boxSlider_Component = District_UI_Children.Find(i => i.name == "BoxSlider").gameObject.AddComponent <BoxSlider>();

            boxSlider_Component.handleRect = boxSlider_Component.transform.Find("Handle Slide Area").Find("Handle").GetComponent <RectTransform>();
            SVBoxSlider sVBoxSlider = boxSlider_Component.gameObject.AddComponent <SVBoxSlider>();

            sVBoxSlider.picker = colorPicker_Component;
            ColorSlider colorSlider_Component = District_UI_Children.Find(i => i.name == "Hue").gameObject.AddComponent <ColorSlider>();

            colorSlider_Component.hsvpicker = colorPicker_Component;
            colorSlider_Component.type      = ColorValues.Hue;
            ColorSliderImage colorSliderImage_Component = colorSlider_Component.transform.Find("Background").gameObject.AddComponent <ColorSliderImage>();

            colorSliderImage_Component.picker    = colorPicker_Component;
            colorSliderImage_Component.type      = ColorValues.Hue;
            colorSliderImage_Component.direction = Slider.Direction.BottomToTop;

            _helper.Log("-----------ASSETS HOOKED UP------------");
        }