public bool ValidateFromThis(EditTool editTool) { if (editTool == null) { return(false); } return(editTool.GetType() == typeof(TEditTool)); }
private void OnEnable() { _cloudCamera = (CloudCamera)target; _editTool = (EditTool)EditorPrefs.GetInt("CloudCameraEditor._editTool"); _areNoizePowersLocked = EditorPrefs.GetBool("CloudCameraEditor._areNoizePowersLocked"); _areNoizeScalesLocked = EditorPrefs.GetBool("CloudCameraEditor._areNoizeScalesLocked"); SetupShader(ref _cloudCamera.blurFastShader, "Hidden/Clouds/BlurFast"); SetupShader(ref _cloudCamera.blurShader, "Hidden/Clouds/Blur"); SetupShader(ref _cloudCamera.blurHQShader, "Hidden/Clouds/BlurHQ"); SetupShader(ref _cloudCamera.depthBlurShader, "Hidden/Clouds/DepthBlur"); SetupShader(ref _cloudCamera.depthShader, "Hidden/Clouds/Depth"); SetupShader(ref _cloudCamera.cloudShader, "Hidden/Clouds/Clouds"); SetupShader(ref _cloudCamera.clearColorShader, "Hidden/Clouds/ClearColor"); }
//----------------------------------------------------- public void DisplayImgEditTools(Rect displayZone) { //GUI.skin = skin; GUI.BeginGroup(displayZone); float btnH = 50; // TODO rendre générique la hauteur de bouton? int toolCount = m_imgLabels.Length; for(int i=0 ; i<toolCount ; i++) { if(GUI.Button(new Rect(displayZone.width-btnH,(i*btnH),btnH,btnH), m_imgLabels[i])) { m_curTool = (EditTool) 100+10*i; // 100 = outil1, 110 = outil2, etc. if(m_curTool == EditTool.Inpaint) // L'inpainting n'a pas de sous-outil : on l'affiche directement { if(GameObject.Find("Background/backgroundImage").GetComponent("PolygonTracer") == null && GameObject.Find("Background/backgroundImage").GetComponent<GUITexture>().texture != null) { // Debug.Log("GUISubTools : Activation Polygon Inpainting"); GameObject.Find("Background/backgroundImage").AddComponent<PolygonTracer>(); // Passer le PolygonTracer en "mode Inpainting" GameObject.Find("backgroundImage").GetComponent<PolygonTracer>().SetTool(EditTool.Inpaint); Component script = GameObject.Find("MainNode").GetComponent<ObjBehavGlobal>(); GameObject.Find("MainNode").GetComponent<ObjBehavGlobal>().ToggleSceneObjectsTransparent(); } // GetComponent<GUIMain>().SetFoldRgtMenu(true); } // if inpainting /*else // Affichage du menu des sous-outils pour les outils qui en ont besoin, avec activation d'un sous-outil par défaut { GetComponent<GUISubTools>().SetDefaultInitOn(); GetComponent<GUISubTools>().SetCurTool((int) m_curTool); // Debug.Log("GUIEditTools : EditionImage, outil : "+m_curTool); // GetComponent<GUIMain>().SetDisplaySubTools(true); }*/ } } GUI.EndGroup(); }
private void _ShortCut_EditMode(Event e) { if (e.rawType == EventType.MouseUp) { if (e.button == 1) { m_bRightBtnIsDown = false; } } if (e.type == EventType.MouseDown) { if (e.button == 1) { m_bRightBtnIsDown = true; } } if (e.type == EventType.KeyUp && !m_bRightBtnIsDown) { switch (e.keyCode) { case KeyCode.W: { m_EditTool = EditTool.Move; EUtil.RepaintSceneView(); } break; case KeyCode.E: { m_EditTool = EditTool.Rotate; EUtil.RepaintSceneView(); } break; } } }
public override void OnInspectorGUI() { _lockedStyle = EditorGUIUtility.GetBuiltinSkin(EditorSkin.Inspector).GetStyle("IN LockButton"); _cloudCamera = (CloudCamera)target; Undo.RecordObject(_cloudCamera, "cloud camera"); _editTool = EditTypeToolbar(_editTool); switch (_editTool) { case EditTool.General: GeneralFoldout(); break; case EditTool.Light: LightFoldout(); break; case EditTool.Blur: BlurFoldout(); break; case EditTool.Noise: NoiseFoldout(); break; } EditorUtility.SetDirty(_cloudCamera); if (!Application.isPlaying) { // This is done to update the game view smoothly when cloud camera is selected but don't break editor's behaviour:) Repaint(); } }
private void ChangeEditMode(EditMode editMode) { if (CurrentEditMode == editMode) { return; } switch (editMode) { case EditMode.Pencil: _currentEditTool = new PencilEditTool(this); break; case EditMode.Eraser: _currentEditTool = new EraserEditTool(this); break; case EditMode.BrushPicker: break; default: throw new NotSupportedException($"Unsupported editmode \"{editMode}\""); } }
public override void OnEnter(GameState previousState) { // Generate all font sizes for zooming //for(double i = 1; i <= 4; i += 0.01) //Game.DefaultFonts.MonoBold.Measure((uint)(8 * i), ""); Menu = new TileMenu(BaseState.Map.Info.Environment, Game); Menu.SelectionChanged = (t, s) => { Layer = s.Layer; }; Menu.Rectangle.TweenTo(new Rectangle(-250, 114, Menu.Rectangle.TargetValue.Width, Menu.Rectangle.TargetValue.Height), TweenEaseType.Linear, 0); Menu.Rectangle.TweenTo(new Rectangle(48, 114, Menu.Rectangle.TargetValue.Width, Menu.Rectangle.TargetValue.Height), TweenEaseType.EaseOutQuad, previousState == null ? 0.65f : 0f); BaseState.Buttons.Add("tool-paintone", new Button { Text = "", Icon = Assets.Get <Texture2D>("editor/tile/paintone.png"), Position = new TweenedVector2(Game, new Vector2(-250, 114 + 31)), Active = true, Clicked = (btn) => { _tool = EditTool.PaintOne; }, Font = Game.DefaultFonts.Normal }); BaseState.Buttons["tool-paintone"].Position.TweenTo(new Vector2(48, 114 + 31), TweenEaseType.EaseOutQuad, previousState == null ? 0.65f : 0f); BaseState.Buttons.Add("tool-rectangle", new Button { Text = "", Icon = Assets.Get <Texture2D>("editor/tile/rectangle.png"), Position = new TweenedVector2(Game, new Vector2(-250, 114 + 31 + 32)), Active = false, Clicked = (btn) => { _tool = EditTool.PaintRectangle; }, Font = Game.DefaultFonts.Normal }); BaseState.Buttons["tool-rectangle"].Position.TweenTo(new Vector2(48, 114 + 31 + 32), TweenEaseType.EaseOutQuad, previousState == null ? 0.65f : 0f); BaseState.Buttons.Add("eraser", new Button { Text = "", Icon = Assets.Get <Texture2D>("editor/tile/eraser.png"), Position = new TweenedVector2(Game, new Vector2(-250, 114 + 31 + 32 * 2)), Active = false, CanClickActive = true, Clicked = (btn) => { _eraseMode = !_eraseMode; }, Font = Game.DefaultFonts.Normal }); BaseState.Buttons["eraser"].Position.TweenTo(new Vector2(48, 114 + 31 + 32 * 2), TweenEaseType.EaseOutQuad, previousState == null ? 0.65f : 0f); BaseState.Buttons.Add("layer-terrain", new Button { Text = "", Icon = Assets.Get <Texture2D>("editor/tile/terrain.png"), Position = new TweenedVector2(Game, new Vector2(-250, 119 + 31 + 32 * 3)), Active = true, Clicked = (btn) => { Layer = Tile.MapLayer.Terrain; }, Font = Game.DefaultFonts.Normal }); BaseState.Buttons["layer-terrain"].Position.TweenTo(new Vector2(48, 119 + 31 + 32 * 3), TweenEaseType.EaseOutQuad, previousState == null ? 0.65f : 0f); BaseState.Buttons.Add("layer-decoration", new Button { Text = "", Icon = Assets.Get <Texture2D>("editor/tile/decoration.png"), Position = new TweenedVector2(Game, new Vector2(-250, 119 + 31 + 32 * 4)), Active = false, Disabled = false, Clicked = (btn) => { Layer = Tile.MapLayer.Decoration; }, Font = Game.DefaultFonts.Normal }); BaseState.Buttons["layer-decoration"].Position.TweenTo(new Vector2(48, 119 + 31 + 32 * 4), TweenEaseType.EaseOutQuad, previousState == null ? 0.65f : 0f); BaseState.Buttons.Add("layer-npc", new Button { Text = "", Icon = Assets.Get <Texture2D>("editor/tile/npc.png"), Position = new TweenedVector2(Game, new Vector2(-250, 119 + 31 + 32 * 5)), Active = false, Disabled = false, Clicked = (btn) => { Layer = Tile.MapLayer.NPC; }, Font = Game.DefaultFonts.Normal }); BaseState.Buttons["layer-npc"].Position.TweenTo(new Vector2(48, 119 + 31 + 32 * 5), TweenEaseType.EaseOutQuad, previousState == null ? 0.65f : 0f); BaseState.Buttons.Add("layer-control", new Button { Text = "", Icon = Assets.Get <Texture2D>("editor/tile/control.png"), Position = new TweenedVector2(Game, new Vector2(-250, 119 + 31 + 32 * 6)), Active = false, Clicked = (btn) => { Layer = Tile.MapLayer.Control; }, Font = Game.DefaultFonts.Normal }); BaseState.Buttons["layer-control"].Position.TweenTo(new Vector2(48, 119 + 31 + 32 * 6), TweenEaseType.EaseOutQuad, previousState == null ? 0.65f : 0f); }
private EditTool EditTypeToolbar(EditTool selected) { string[] toolbar = new string[] { "General", "Light", "Blur", "Noise" }; return((EditTool)GUILayout.Toolbar((int)selected, toolbar)); }
private void rbCopy_CheckedChanged(object sender, EventArgs e) { editToolMode = EditTool.Copy; }
//----------------------------------------------------- public void DisplayLightTools(Rect displayZone) { //GUI.skin = skin; GUI.BeginGroup(displayZone); float btnH = 50; // TODO rendre générique la hauteur de bouton? int toolCount = m_lgtLabels.Length; for(int i=0 ; i< toolCount; i++) { if(GUI.Button(new Rect(displayZone.width-btnH,(i*btnH),btnH,btnH), m_lgtLabels[i])) { m_curTool = (EditTool) 200+10*i; // 200 = outil1, 210 = outil2, etc. if(m_curTool == EditTool.Shadows) { m_displayLightSliders = true; // outil ombrage (pas de sous-outil) // GetComponent<GUIMain>().SetFoldRgtMenu(true); } else { //GetComponent<GUISubTools>().SetCurTool((int) m_curTool); // GetComponent<GUIMain>().SetDisplaySubTools(true); } //GetComponent<GUISubTools>().SetSubTool(i); } } GUI.EndGroup(); }
//----------------------------------------------------- void Start() { m_curTool = EditTool.None; m_curMenuMode = MenuMode.ImageMode; m_displayLightSliders = false; }
//----------------------------------------------------- // Annulation d'actions en cours (pour les outils n'ayant pas de sous-outils) public void ExitTool() { if(m_curTool == EditTool.Inpaint) { // TODO Si polygone pas fini, alors message de confirmation d'annulation de polygone Component script = GameObject.Find("Background/backgroundImage").GetComponent("PolygonTracer"); if(script) ((PolygonTracer) script).abort(true); // else Debug.LogError("GUISubTools : Script \"Background/backgroundImage/PolygonTracer\" introuvable"); GameObject.Find("MainNode").GetComponent<ObjBehavGlobal>().ToggleSceneObjectsTransparent(); } else if(m_curTool == EditTool.Shadows) m_displayLightSliders = false; m_curTool = EditTool.None; }
private void eraseButton_Click(object sender, EventArgs e) { editTool = EditTool.Erase; UpdateToolButtons(); }
private void paintButton_Click(object sender, EventArgs e) { editTool = EditTool.Paint; UpdateToolButtons(); }
public override void Update(double deltaTime, double totalTime, long count) { /* TODO if(Game.Input.KeyPressed(Keys.E)) * { * _lastSelection = Menu.Selected; * Menu.Selected = 0; * } * * if(Game.Input.KeyReleased(Keys.E)) * { * Menu.Selected = _lastSelection; * _lastSelection = -1; * } */ if (Game.Input.KeyPressed(Keys.T) && !Menu.IsHovered) { MapEditorEditAttributesState state = new MapEditorEditAttributesState(); state.Layer = Layer; BaseState.CurrentState = state; return; } Menu.Disabled = !Menu.IsHovered && (_eraseMode || Game.Input.Key(Keys.E)); BaseState.Buttons["tool-paintone"].Active = _tool == EditTool.PaintOne; BaseState.Buttons["tool-rectangle"].Active = _tool == EditTool.PaintRectangle; BaseState.Buttons["eraser"].Active = _eraseMode || Game.Input.Key(Keys.E); BaseState.Buttons["layer-terrain"].Active = Layer == Tile.MapLayer.Terrain; BaseState.Buttons["layer-decoration"].Active = Layer == Tile.MapLayer.Decoration; BaseState.Buttons["layer-npc"].Active = Layer == Tile.MapLayer.NPC; BaseState.Buttons["layer-control"].Active = Layer == Tile.MapLayer.Control; if (BaseState.Buttons["tool-paintone"].Position.IsComplete) { float alpha = 1.0f; if (Menu.IsHovered) { alpha = 0.0f; } BaseState.Buttons["tool-paintone"].Alpha = MathHelper.Lerp(BaseState.Buttons["tool-paintone"].Alpha, alpha, (float)deltaTime * 25f); BaseState.Buttons["tool-rectangle"].Alpha = MathHelper.Lerp(BaseState.Buttons["tool-rectangle"].Alpha, alpha, (float)deltaTime * 25f); BaseState.Buttons["eraser"].Alpha = MathHelper.Lerp(BaseState.Buttons["eraser"].Alpha, alpha, (float)deltaTime * 25f); BaseState.Buttons["layer-terrain"].Alpha = MathHelper.Lerp(BaseState.Buttons["layer-terrain"].Alpha, alpha, (float)deltaTime * 25f); BaseState.Buttons["layer-decoration"].Alpha = MathHelper.Lerp(BaseState.Buttons["layer-decoration"].Alpha, alpha, (float)deltaTime * 25f); BaseState.Buttons["layer-npc"].Alpha = MathHelper.Lerp(BaseState.Buttons["layer-npc"].Alpha, alpha, (float)deltaTime * 25f); BaseState.Buttons["layer-control"].Alpha = MathHelper.Lerp(BaseState.Buttons["layer-control"].Alpha, alpha, (float)deltaTime * 25f); } if (!BaseState.IsPointObscured(Input.MousePosition)) { if (Input.MousePressed(MouseButton.Middle) && !Input.Mouse(MouseButton.Left)) { _tool = _tool == EditTool.PaintOne ? EditTool.PaintRectangle : EditTool.PaintOne; } if (Input.KeyPressed(Keys.R) && !_eraseMode && !Game.Input.Key(Keys.E)) { string flip = Input.Key(Keys.LeftShift) ? "flip-v" : "flip-h"; Tile tile = BaseState.Map[Menu.SelectedTile.Layer, SelectedTile.X, SelectedTile.Y]; TileMetadata meta = BaseState.Map.GetMetadata(Menu.SelectedTile.Layer, SelectedTile.X, SelectedTile.Y); int currentY = 0; // TODO: make it easier to call this function without removing menus TileAttributeEditor[] editors = tile.AttributeEditors(BaseState, ref currentY); if (editors != null) { foreach (TileAttributeEditor editor in editors) { if (editor.Name == flip) { bool enable = !(meta != null && meta.IsKeySet(flip) && meta[flip] == "True"); if (enable) { if (meta == null) { meta = new TileMetadata(); } meta[flip] = "True"; BaseState.Map.SetMetadata(Menu.SelectedTile.Layer, SelectedTile.X, SelectedTile.Y, meta); } else { meta[flip] = ""; } } editor.Dispose(); } } } switch (_tool) { case EditTool.PaintOne: if (Input.Mouse(MouseButton.Left)) { BaseState.Map[_eraseMode || Game.Input.Key(Keys.E) ? Layer : Menu.SelectedTile.Layer, SelectedTile.X, SelectedTile.Y] = _eraseMode || Game.Input.Key(Keys.E) ? Tile.Find("", Layer) : Menu.SelectedTile; } break; case EditTool.PaintRectangle: if (Input.MousePressed(MouseButton.Left)) { _startingTile = SelectedTile; } if (Input.MouseReleased(MouseButton.Left)) { for (int x = _rectangleToolRect.X; x <= _rectangleToolRect.X + _rectangleToolRect.Width; x++) { for (int y = _rectangleToolRect.Y; y <= _rectangleToolRect.Y + _rectangleToolRect.Height; y++) { BaseState.Map[_eraseMode || Game.Input.Key(Keys.E) ? Layer : Menu.SelectedTile.Layer, x, y] = _eraseMode || Game.Input.Key(Keys.E) ? Tile.Find("", Layer) : Menu.SelectedTile; } } _startingTile = new Point(-1, -1); } break; } } Menu.MaxHeight = Game.GraphicsDevice.Viewport.Bounds.Height / 2; Menu.Update(Game); }
public MapPanel() { InitializeComponent(); m_commandHistory = CommandHistory.Instance; m_singleTileCursor = new Cursor(new MemoryStream(Properties.Resources.ToolsSingleTileCursor)); m_tileBlockCursor = new Cursor(new MemoryStream(Properties.Resources.ToolsTileBlockCursor)); m_eraserCursor = new Cursor(new MemoryStream(Properties.Resources.ToolsEraserCursor)); m_dropperCursor = new Cursor(new MemoryStream(Properties.Resources.ToolsDropperCursor)); m_viewport = new xTile.Dimensions.Rectangle( xTile.Dimensions.Location.Origin, xTile.Dimensions.Size.Zero); m_autoScaleViewport = true; m_zoomIndex = 5; m_zoom = 1.0f; m_layerCompositing = LayerCompositing.DimUnselected; m_editTool = EditTool.SingleTile; m_innerPanel.Cursor = m_singleTileCursor; m_mouseInside = false; m_mouseLocation = new Location(); m_tileLayerLocation = xTile.Dimensions.Location.Origin; m_dragTileStart = xTile.Dimensions.Location.Origin; m_tileSelection = new TileSelection(); m_ctrlKeyPressed = false; m_random = new Random(); m_textureDistribution = new List<Tile>(); m_tileGuides = false; m_veilBrush = new SolidBrush(Color.FromArgb(192, SystemColors.InactiveCaption)); m_imageAttributes = new ImageAttributes(); m_colorMatrix = new ColorMatrix(); m_tileSelectionPen = new Pen(SystemColors.ActiveCaption); m_tileSelectionBrush = new SolidBrush( Color.FromArgb(128, SystemColors.ActiveCaption)); m_dashPattern = new float[] { 1.0f, 1.0f, 1.0f, 1.0f }; m_tileGuidePen = new Pen(Color.Black); m_tileGuidePen.DashPattern = m_dashPattern; m_animationTimer.Enabled = !this.DesignMode; m_dtStart = DateTime.Now; this.MouseWheel += new MouseEventHandler(OnMouseWheel); }
private void rbZoom_CheckedChanged(object sender, EventArgs e) { ReleaseMotif(); editToolMode = EditTool.Zoom; }