HarmonyEngine icon indicating copy to clipboard operation
HarmonyEngine copied to clipboard

Editor Entities

Open GameOverture opened this issue 5 years ago • 0 comments

Improve property tree editing

  • [x] Multiple selected property editing (both multiple items, and multiple properties)
  • [x] 'enter' key submits properly
  • [x] Highlighting vector spinbox and entering number doesn't work as intended
  • [x] Reset to default value button per property

Dope Sheet

  • [x] Copy/Paste key frames (aux dope sheet's tool btns need to set 'pContextItem')
  • [x] Dope Sheet able to select item by entire column (not just the text width)
    • [x] Collapse/Expanded items should be independent to whether they're selected or not
  • [ ] Hide/Show Copy/Cut/Paste/Delete tool buttons based on keyframe selection
  • [x] Improve Quick Tween to work with multiple TweenProperty types
    • [x] New Tween Button - Collapse Tween (Replaces tween with a regular keyframe at beginning of tween with the destination value)
  • [x] Sorting items should refresh the dope sheet
  • [x] Add & Remove keyframes using the dope sheet
    • [ ] Delete keyframe with delete button
  • [x] Insert time at frame (all tweens occuring on this frame have their durations extended, and all frames beyond this one are offset)
  • [x] Fix preview extrapolation when timeline events occur
    • [ ] Fix pausing subentities timeline events
  • [x] Switching between two entity items, the dope sheet scrolling/pan uses the last open (not preserved, when switching back and forth)
  • [x] Play Controls & preview
  • [ ] Zoom functionality
  • [x] WASD controls
  • [ ] Center on Key Frame when Undo/Redo'ing
  • [ ] Auto Initialize Checkbox functionality
  • [ ] When changing FPS, tween durations are not updated or reflected in dope sheet
  • [ ] Write input logic for QGraphicsView instead of using QGraphicsView::mousePressEvent()
    • [ ] Collapsed Keyframes should select all keyframes of that frame index when selected
    • [ ] Swap CTRL and SHIFT when selecting keyframes (Requires full mouse input re-implementation instead of built-in

Item specific support

  • [ ] Able to edit sub-entity's children properties
  • [ ] Replace Item Feature - Replace node item with existing item of same type
  • [ ] Items able to be dynamically allocated and optionally deleted in dtor (use pointers/forward declaration)
    • [ ] Able to Combine different sub-entity types into an array when dynamically allocated
  • [ ] Primitives and Shapes need to be able to change types and utilize the timeline
  • [ ] Update HyTextureQuad2d when atlas changes or image is replaced
  • [ ] When packing items into an array, if they are named similar but with numbers at the end, choose the base name for the array
  • [ ] Be able to add items that are data types like INT, FLOAT, BOOL
    • [ ] Be able to set values 'procedurally' instead of hard-coding (RAND, CONDITIONAL, WINDOW WIDTH/HEIGHT, ETC)
    • [ ] 'Procedural' values are stored as QJsonObject's when serialized. (no other 'PropertiesType' can use a QJsonObject)
    • [ ] Store boolean in 'PropertiesDef' that determines whether normal or procedural value is set
    • [ ] Runtime output 'procedural' values
  • [ ] HyAudio items and their properties

"(Shape) Edit Mode" (legacy name Vertex Edit Mode) - RED color indicates this mode

  • [x] Change to just "Edit Mode" and hotkey to 'e'
  • [x] Create red border around viewport when in this mode
  • [ ] When in "Edit Mode" and selecting another item from treeview will either: if nonshape/multiselect disable to transform mode (BLUE) OR if single shape keep "Edit Mode" but wrap/vem new shape
  • [ ] Adding new vert should select it
  • [ ] Line Chains shouldn't require holding ctrl when an end is selected
  • [ ] Implementing line loops
  • [ ] When redo/undo'ing, it should enable "Edit Mode" mode

Transform Control

  • [ ] Scaling with transform widget should not change position
  • [ ] Holding Ctrl when translating to duplicate selected
  • [ ] Draw Alignment Guides when holding Shift (Snapping)
  • [ ] Fix Scaling when things are rotated
  • [ ] When redo/undo'ing transform, it should disable VEM mode
  • [ ] Scaling invertedly causes an assert in box2d
  • [ ] When a (non-uniform?) scaling is applied to a circle shape, its selection bounds act as if there is no transform

UI Widgets

  • [x] HyPanel needs to take HyTexturedQuad2d's
  • [ ] Button
  • [ ] Checkbox
  • [ ] Progress Bar
  • [ ] Meter
  • [ ] Rack Meter
  • [ ] Container
    • [ ] Widgets
    • [ ] Spacers
    • [ ] Nested Layouts

GameOverture avatar Jan 27 '20 03:01 GameOverture