Beispiel #1
0
        /// <inheritoc/>
        protected internal override void Initialize(int layoutIndex)
        {
            guiField            = new GUITextureField(GUITextureFieldType.Texture, new GUIContent(title));
            guiField.OnChanged += OnFieldValueChanged;

            layout.AddElement(layoutIndex, guiField);
        }
Beispiel #2
0
 void OnDisable()
 {
     _gui                  = null;
     _guiTexture           = null;
     _guiMaxColors         = null;
     _guiConvert           = null;
     _guiPalette           = null;
     _guiPalettizedTexture = null;
     _guiSave              = null;
 }
        void OnDisable()
        {
            SavePaletteIfDirty();
            StorePrefs();

            Undo.undoRedoPerformed -= UndoRedoPerformed;
            _gui            = null;
            _guiTexture     = null;
            _guiColorFields = null;
            _guiEditMode    = null;
            _guiHue         = null;
            _guiSaturation  = null;
            _guiLuminance   = null;
        }
Beispiel #4
0
        void OnEnable()
        {
            _gui = new GUIVertical();
            GUIScrollView scroll = _gui.Add(new GUIScrollView()) as GUIScrollView;

            _guiTexture   = scroll.Add(new GUITextureField(new GUIContent("Texture"), TextureChanged)) as GUITextureField;
            _guiMaxColors = scroll.Add(new GUIIntSlider(new GUIContent("Max Colors"), 32, 2, 32)) as GUIIntSlider;
            _guiConvert   = scroll.Add(new GUIButton(new GUIContent("Convert"), ConvertClicked)) as GUIButton;
            scroll.Add(new GUISpace());
            _guiPalette           = scroll.Add(new GUITextureField(new GUIContent("Palette"), null)) as GUITextureField;
            _guiPalettizedTexture = scroll.Add(new GUITextureField(new GUIContent("Palettized Texture"), null)) as GUITextureField;
            _guiSave = scroll.Add(new GUIButton(new GUIContent("Save Palette & Texture"), SaveClicked)) as GUIButton;

            _guiPalette.isEnabled           = false;
            _guiPalettizedTexture.isEnabled = false;
            _guiSave.isEnabled    = false;
            _guiConvert.isEnabled = false;
        }
        private void RebuildGUI(Texture2D texture)
        {
            StorePrefs();

            _gui = new GUIVertical();
            GUIScrollView scroll = _gui.Add(new GUIScrollView()) as GUIScrollView;

            _guiTexture = scroll.Add(new GUITextureField(new GUIContent("Palette Texture"),
                                                         PaletteTextureChanged,
                                                         PaletteTextureWillChange)) as GUITextureField;
            _guiTexture.texture = texture;

            if (texture == null)
            {
                return;
            }

            if (IsTextureReadWrite(texture))
            {
                _guiEditMode = scroll.Add(new GUIEnumPopup(new GUIContent("Edit Mode",
                                                                          "Palette edit operations affect either the single color or all colors in row/column/palette."),
                                                           PaletteEditMode.Single)) as GUIEnumPopup;

                scroll.Add(new GUIIntSlider(new GUIContent("Shades", "Number of shades per color in palette"),
                                            texture.height, 2, 16, ShadeCountChanged));
                _guiColorFields = new List <GUIColorField>();

                // Adding 15 accounts for horizontal scrollbar if needed.
                // Need a non-hardcoded-hacky way of getting this info...
                float         maxHeight     = texture.height * 20.0f + 15.0f;
                GUIScrollView paletteScroll = scroll.Add(new GUIScrollView(GUILayout.MaxHeight(maxHeight))) as GUIScrollView;
                for (int y = texture.height - 1; y >= 0; y--)
                {
                    GUIHorizontal horizontal = paletteScroll.Add(new GUIHorizontal()) as GUIHorizontal;
                    for (int x = 0; x < texture.width; x++)
                    {
                        GUIColorField color = horizontal.Add(new GUIColorField(null, ColorChanged)) as GUIColorField;
                        color.color       = texture.GetPixel(x, y);
                        color.tag         = y * texture.width + x;
                        color.controlName = PaletteControlName + color.tag;
                        _guiColorFields.Add(color);
                    }
                }

                scroll.Add(new GUISpace());
                _guiHue = scroll.Add(new GUISlider(new GUIContent("Hue Offset",
                                                                  "Amount to offset hue when generating shades"), 0.0f, -1.0f, 1.0f)) as GUISlider;
                _guiSaturation = scroll.Add(new GUISlider(new GUIContent("Saturation Offset",
                                                                         "Amount to offset saturation when generating shades"), 0.0f, -1.0f, 1.0f)) as GUISlider;
                _guiLuminance = scroll.Add(new GUISlider(new GUIContent("Luminance Offset",
                                                                        "Amount to offset luminance when generating shades"), 0.0f, -1.0f, 1.0f)) as GUISlider;
                scroll.Add(new GUIButton(new GUIContent("Generate Shades", "Generate shades from root colors"), GenerateShadesClicked));

                LoadPrefs();
            }
            else
            {
                HandleTextureNotReadWrite();
            }

            Repaint();
        }
        void CreateGUI()
        {
            int      padding = 4;
            GUIStyle style   = new GUIStyle();

            style.padding = new RectOffset(padding, padding, padding, padding);

            _gui = new GUIVertical();

            GUIHorizontal toolLayout = new GUIHorizontal(style);

            toolLayout.Add(new GUIButton(Localize.GUI(null, "Toggle properties panel",
                                                      "Assets/kode80/Clouds/Editor/gui/button_properties.png"),
                                         TogglePropertiesPanel));
            toolLayout.Add(new GUISpace());
            toolLayout.Add(new GUIButton(Localize.GUI(null, "Create a new coverage map",
                                                      "Assets/kode80/Clouds/Editor/gui/button_new.png"),
                                         NewCoverageMapAction));
            toolLayout.Add(new GUIButton(Localize.GUI(null, "Save the current coverage map",
                                                      "Assets/kode80/Clouds/Editor/gui/button_save.png"),
                                         SaveCoverageMapAction));
            toolLayout.Add(new GUIButton(Localize.GUI(null, "Save the current coverage map as a new file",
                                                      "Assets/kode80/Clouds/Editor/gui/button_saveas.png"),
                                         SaveCoverageMapAsAction));
            toolLayout.Add(new GUISpace());
            toolLayout.Add(new GUIButton(Localize.GUI(null, "Export cubemap from current camera",
                                                      "Assets/kode80/Clouds/Editor/gui/button_cubemap.png"),
                                         ExportCubemapAction));

            toolLayout.Add(new GUISpace(true));
            GUIContent[] toolbarContent = new GUIContent[] {
                Localize.GUI(null, null, "Assets/kode80/Clouds/Editor/gui/button_camera.png"),
                Localize.GUI(null, null, "Assets/kode80/Clouds/Editor/gui/button_coverage.png"),
                Localize.GUI(null, null, "Assets/kode80/Clouds/Editor/gui/button_type.png")
            };
            _guiToolbar = toolLayout.Add(new GUIToolbar(toolbarContent, ChangeModeAction)) as GUIToolbar;
            toolLayout.Add(new GUISpace(true));
            toolLayout.Add(new GUIButton(Localize.GUI(null, "Clear the current coverage map",
                                                      "Assets/kode80/Clouds/Editor/gui/button_clearmap.png"),
                                         ClearCoverageMapAction));

            GUIFoldout helpFoldout = CreateHelpFoldout();

            GUIFoldout editorFoldout = new GUIFoldout(Localize.GUI("Editor Properties"));

            editorFoldout.Add(new GUIToggle(Localize.GUI("Continuous Update",
                                                         "If disabled, the editor will only render on changes"),
                                            ContinuousUpdateToggleAction));

            if (_cameraComponents.Length > 0)
            {
                _guiCameraFoldout = new GUIFoldout(Localize.GUI("Editor Camera"));
                foreach (MonoBehaviour component in _cameraComponents)
                {
                    GUIToggle toggle = new GUIToggle(new GUIContent(component.GetType().Name), CameraComponentToggled);
                    toggle.isToggled = component.enabled;
                    _guiCameraFoldout.Add(toggle);
                }
            }

            GUIFoldout brushFoldout = new GUIFoldout(Localize.GUI("Brush Properties"));

            _guiBrushBlendValues = brushFoldout.Add(new GUIToggle(Localize.GUI("Blend Values", "Blend values when painting or set to a specific value"),
                                                                  UpdateBrushPropertiesAction)) as GUIToggle;
            _guiBrushOpacity = brushFoldout.Add(new GUISlider(Localize.GUI("Opacity", "Brush opacity"),
                                                              0.2f, 0.0f, 1.0f,
                                                              UpdateBrushPropertiesAction)) as GUISlider;
            _guiBrushSize = brushFoldout.Add(new GUIIntSlider(Localize.GUI("Size", "Brush size"), 2, 2,
                                                              (int)EditorState.MaxCursorRadius,
                                                              UpdateBrushPropertiesAction)) as GUIIntSlider;
            _guiBrushTexture = brushFoldout.Add(new GUITextureField(Localize.GUI("Brush", "Brush texture"),
                                                                    UpdateBrushPropertiesAction)) as GUITextureField;

            GUIFoldout sunFoldout = new GUIFoldout(Localize.GUI("Sun Properties"));

            _guiSunRotation = sunFoldout.Add(new GUIVector3Field(Localize.GUI("Rotation", "Sun's rotation"),
                                                                 UpdateSunPropertiesAction)) as GUIVector3Field;
            _guiSunColor = sunFoldout.Add(new GUIColorField(Localize.GUI("Color", "Sun's color"),
                                                            UpdateSunPropertiesAction)) as GUIColorField;

            GUIFoldout cloudsFoldout = new GUIFoldout(Localize.GUI("Clouds Properties"));

            GUIHorizontal subLayout = new GUIHorizontal();

            subLayout.Add(new GUISpace());
            subLayout.Add(new GUIButton(Localize.GUI("Load Settings",
                                                     "Load key render settings from asset"),
                                        LoadRenderSettingsAction));
            subLayout.Add(new GUIButton(Localize.GUI("Save Settings",
                                                     "Save key render settings to asset"),
                                        SaveRenderSettingsAction));

            cloudsFoldout.Add(subLayout);
            cloudsFoldout.Add(new GUISpace());
            cloudsFoldout.Add(new GUIDefaultInspector(_clouds));

            GUIScrollView scrollView = new GUIScrollView();

            scrollView.Add(helpFoldout);
            scrollView.Add(editorFoldout);
            if (_cameraComponents.Length > 0)
            {
                scrollView.Add(_guiCameraFoldout);
            }
            scrollView.Add(brushFoldout);
            scrollView.Add(sunFoldout);
            scrollView.Add(cloudsFoldout);

            _guiPropertiesPanel = new GUIVertical(GUILayout.MaxWidth(320.0f));
            _guiPropertiesPanel.Add(scrollView);

            _guiScenePlaceholder = new GUIVertical(GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
            _guiScenePlaceholder.shouldStoreLastRect = true;

            GUIHorizontal lowerLayout = new GUIHorizontal();

            lowerLayout.Add(_guiPropertiesPanel);
            lowerLayout.Add(_guiScenePlaceholder);

            _gui.Add(toolLayout);
            _gui.Add(lowerLayout);

            // Update properties
            _guiBrushBlendValues.isToggled = _editorState.cursorBlendValues;
            _guiBrushOpacity.value         = _editorState.cursorOpacity;
            _guiBrushSize.value            = (int)_editorState.cursorRadius * 2;
            _guiBrushTexture.texture       = _editorState.brushTexture;
            _guiSunColor.color             = _clouds.sunLight.color;
            _guiSunRotation.vector         = _clouds.sunLight.transform.eulerAngles;
        }