private void PickColorAt(int x, int y) { var pick_x = x; var pick_y = y; TypedMessager <byte> .Emit(MessageCodes.ColorPicked, CurrentSpritesheet.GetColorAt(pick_x, pick_y)); }
public SpriteSheetNavigator(string id, int width, int height, Rect source_rect) : base(id, width, height) { Instance = this; _current_source_rect = source_rect; EmitRectChanged(); TypedMessager <int> .On(MessageCodes.SpriteNavigatorCursorSizeChanged, SetCursorSize); }
public override void OnMouseDown(MouseButton button, int x, int y) { foreach (var(index, tool_button) in _tool_buttons) { if (!tool_button.Area.Contains(x, y)) { continue; } if (tool_button.Mode == ToolButton.ToolButtonMode.Tool) { _current_tool_index = index; } else if (tool_button.Mode == ToolButton.ToolButtonMode.Modifier) { _current_pressed_action_index = index; } TypedMessager <int> .Emit(MessageCodes.ToolTriggered, tool_button.Action); } }
public SpriteSheetEditor(string id, int width, int height) : base(id, width, height) { _canvas = Game.Instance.Canvas; _tool_action_params = new ToolActionParams() { Blitter = Game.Instance.Canvas, }; _tools = new Dictionary <int, Tool> { { (int)Tools.Pen, new PenTool() }, { (int)Tools.Select, new SelectTool() }, { (int)Tools.Fill, new FillTool() } }; SetCurrentTool(Tools.Pen); SetBrushSize(CurrentTool.BrushSize); _sprite_source_rect = Rect.Empty; _overlay_surface = Assets.CreatePixmap(Width, Height); _select_surface = Assets.CreatePixmap(Width, Height); _tool_action_params.Overlay = _overlay_surface; TypedMessager <Rect> .On(MessageCodes.SelectionRectResize, OnSelectRectChanged); TypedMessager <Rect> .On(MessageCodes.SelectionRectMoved, OnSelectionRectMoved); TypedMessager <Rect> .On(MessageCodes.SourceRectChanged, OnNavigatorSourceRectChanged); TypedMessager <byte> .On(MessageCodes.ColorSelected, SetPaintColor); TypedMessager <int> .On(MessageCodes.SpriteSheetEditorBrushSizeChanged, SetBrushSize); Messager.On(MessageCodes.SelectionStartedMoving, OnSelectionRectStartedMoving); _dashed_rect = new DashedRect(); }
public SpriteEditor(string id, int width, int height) : base(id, width, height) { TileSize = Game.Instance.TileSize; var pixmap_surface_size = TileSize * AppLayout.Data.EditorPixmapSizeMultiplier; _sprite_sheet = Assets.CreateSpriteSheet(pixmap_surface_size, pixmap_surface_size); var horizontal_container = new Container("hor_container", width, height); var left_vertical_container = new Container("left_vert_container", 0, 0); var right_vertical_container = new Container("right_vert_container", 0, 0); horizontal_container.Add(left_vertical_container); horizontal_container.Add(right_vertical_container); _sprite_id_label = new Label("sprite_id_label", $"#000", 1); var sprite_editor_size = TileSize * AppLayout.Data.EditorSizeMultiplier; _sprite_sheet_editor = new SpriteSheetEditor("sprite_sheet_editor", sprite_editor_size, sprite_editor_size); _tool_box = new ToolSelector("tool_selector"); var spritesheet_navigator_size = TileSize * AppLayout.Data.NavigatorSizeMultiplier; _sprite_sheet_navigator = new SpriteSheetNavigator("sprite_sheet_nav", spritesheet_navigator_size, spritesheet_navigator_size, new Rect(0, 0, TileSize, TileSize)); _color_picker = new ColorPicker("color_picker"); _source_rect_size_mult_slider = new SelectorSlider("source_rect_size_slider", AppLayout.Data.SelectorThumbSize, new[] { 1, 2, 4, 8 }); _brush_size_slider = new SelectorSlider("brush_size_slider", AppLayout.Data.SelectorThumbSize, new[] { 1, 2, 4 }); _sprite_sheet_editor.SetSpriteSheet(_sprite_sheet); _sprite_sheet_navigator.SetSpriteSheet(_sprite_sheet); _sprite_sheet_editor.SetPaintColor(_color_picker.CurrentColor); left_vertical_container.Add(_brush_size_slider); left_vertical_container.Add(_sprite_id_label); left_vertical_container.Add(_sprite_sheet_editor); left_vertical_container.Add(_tool_box); left_vertical_container.Add(_color_picker); right_vertical_container.Add(_source_rect_size_mult_slider); right_vertical_container.Add(_sprite_sheet_navigator); Add(horizontal_container); horizontal_container.Layout(Orientation.Horizontal, ContainerAlignment.Stretch, ContainerAlignment.Stretch, 10, 10); left_vertical_container.Layout(Orientation.Vertical, ContainerAlignment.Center, ContainerAlignment.Center, 0, 10); right_vertical_container.Layout(Orientation.Vertical, ContainerAlignment.Center, ContainerAlignment.Center, 0, 10); TypedMessager <byte> .On(MessageCodes.ColorPicked, OnColorPick); _source_rect_size_mult_slider.OnChange += (int value) => { TypedMessager <int> .Emit(MessageCodes.SpriteNavigatorCursorSizeChanged, value); }; _brush_size_slider.OnChange += (int value) => { TypedMessager <int> .Emit(MessageCodes.SpriteSheetEditorBrushSizeChanged, value); }; TypedMessager <int> .On(MessageCodes.ToolTriggered, OnToolActionTriggered); TypedMessager <int> .On(MessageCodes.SpriteIdChanged, OnSpriteIdChanged); }
public void SetColor(byte color) { CurrentColor = color; TypedMessager <byte> .Emit(MessageCodes.ColorSelected, color); }
private void UpdateSpriteIdFromSourceRect() { CurrentSpriteId = (_current_source_rect.X + _current_source_rect.Y * (CurrentSpritesheet.Width / SpriteEditor.TileSize)) / SpriteEditor.TileSize; TypedMessager <int> .Emit(MessageCodes.SpriteIdChanged, CurrentSpriteId); }
private void EmitRectChanged() { TypedMessager <Rect> .Emit(MessageCodes.SourceRectChanged, _current_source_rect); }