Skip to content

Commit

Permalink
Merge 1de03fb into release
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] authored Dec 3, 2022
2 parents d6fb437 + 1de03fb commit 51e22b3
Show file tree
Hide file tree
Showing 98 changed files with 3,770 additions and 1,953 deletions.
3 changes: 3 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
coverage:
range: "0...100"
status:
patch:
default:
informational: true
project:
default:
informational: true
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,35 @@
# Changelog

## Tiger 0.6

- [x] Template syntax now uses Handlebars instead of Liquid
- [x] Exported textures are now power-of-2 squares
- [x] Hitbox names appear in workbench when there is enough space
- [x] Upgraded from Heroicons 1.0 to 2.0
- [x] Keyframe durations can snap to nearby keyframes
- [x] Keyframe durations can snap to multiples of n milliseconds
- [x] Added button to open sheet folder in explorer
- [x] Added context menu entry to open frame in explorer
- [x] Added context menu entries to paste animations/keyframes/hitboxes
- [x] Can press Home/End to snap to first/last keyframe in sequence
- [x] After deleting keyframes, another keyframe is automatically selected
- [x] Added shadow around application window
- [x] Can clear selection by clicking in the dead zone of animations, hitboxes or frames panels
- [x] Can change active direction by clicking in deadzone of timeline
- [x] Can jump to end of sequence by double clicking in deadzone of timeline
- [x] Performance improvements to animation playback and drag operations
- [x] Performance improvements to Export operations
- [x] Cut, Copy and Paste menu entries are now disabled when there is no applicable selection
- [x] List of recent documents is now limited to ten documents
- [x] Fixed a bug where context menus could overflow offscreen
- [x] Fixed a bug where resize handles on hitboxes with odd-numbered dimensions were slightly misaligned
- [x] Fixed a bug where in the list of recently opened files, files with identical names would highlight in unison
- [x] Fixed a bug where disabled menu actions could be interacted with
- [x] Fixed a bug where app window could be restored/maximized by double clicking inside menus
- [x] Fixed a bug where hitboxes panel could grow when there are long hitbox names
- [x] Fixed a bug where animations keyframes or sheet frames could incorrectly appear as selected
- [x] Fixed minor bugs related to using the Undo command immediately after opening a spritesheet

## Tiger 0.5

- [x] Document template format
Expand Down
44 changes: 22 additions & 22 deletions ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,19 @@
# Roadmap

## Tiger 0.6

- [ ] Draw hitbox names in workbench
- [ ] Playback speed controls
- [ ] Time snapping / quantizing of animation frames
- [ ] Fix bug where when zoomed in a lot, resize handles on hitboxes are not correctly centered
- [ ] Add button to open sheet folder in explorer
- [ ] Add context menu entry to open frame in explorer
- [ ] Evaluate https://github.com/ChevyRay/crunch-rs
- [ ] Evaluate https://github.com/Keats/tera

## Tiger 0.7

- [ ] Tooltips everywhere
- [ ] Export perf improvements
- [ ] Can press F2 to rename animations or hitboxes
- [ ] Workbench zoom keeps screen center (mouse cursor when applicable) invariant (not origin)
- [ ] Timeline zoom keeps current position invariant
- [ ] Can zoom workbench with mousewheel
- [ ] Can zoom timeline with mousewheel
- [ ] Can scroll timeline with mousewheel
- [ ] Backend keeps track of frames pane scroll position in undo stack
- [ ] Backend keeps track of animations pane scroll position in undo stack
- [ ] Backend keeps track of timeline scroll position in undo stack
- [ ] Frame, hitbox and animation panes auto-scroll when browsing with keyboard controls
- [ ] Frame, hitbox and animation panes have their scroll position in undo stack
- [ ] Timeline scrolling follows playback
- [ ] Timeline scroll position in undo stack
- [ ] Timeline scrolling follows frame selection (or double click?)

## Tiger 0.8

Expand All @@ -30,24 +23,30 @@
- [ ] Automatically add extensions to exported files
- [ ] Default paths for NFD dialogs
- [ ] Reach satisfying test coverage
- [ ] Export complete notification

## Tiger 0.9

- [ ] Timeline scrolling follows playback
- [ ] Timeline scrolling follows frame selection (or double click?)
- [ ] Fix jank spacing in exported metadata files
- [ ] Export complete notification
- [ ] Unit test UI
- [ ] Document keyboard shortcuts
- [ ] Can preview export image and metadata output
- [ ] More template file examples in documentation
- [ ] Documentation about use of file paths in .tiger files
- [ ] Auto-updates
- [ ] Splash screen
- [ ] Add a a help menu with links to issues/discussions/documentation
- [ ] Add About dialog with version number / license info
- [ ] Can open log from help menu
- [ ] .tiger file association

## Tiger 1.0

- [ ] Review all TODO
- [ ] Re-evaluate https://github.com/1Password/typeshare to auto-generate typescript DTOs
- [ ] Tiger file format uses semver
- [ ] Remove support for pre-1.0 versions of Tiger file format
- [ ] Provide export templates for some common formats (TBD)
- [ ] Readme logo
- [ ] Branding in installer
- [ ] Github social media preview image (in repo settings)
- [ ] About dialog
- [ ] App icon (file explorer, taskbar, add/remove programers, installer, title bar)
- [ ] Itch.io or other distribution method
Expand All @@ -58,10 +57,11 @@
- [ ] Root motion
- [ ] Onion skin?
- [ ] Hitbox colors
- [ ] Interop with specific game engines (TBD)
- [ ] Import frames from single sheet image
- [ ] Import animation data from other software (Asesprite, TBD)
- [ ] Sockets (like hitbox but point)
- [ ] Events (arbitrary markers on timeline)
- [ ] Drag and drop frames from OS to content panel
- [ ] Drag and drop frames from OS to timeline panel
- [ ] Projects?
- [ ] Project files (.tiger files within a project can be moved without breaking)
42 changes: 36 additions & 6 deletions docs/exporting.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ Here is an example of a simple template file which could be used to generate XML

{% raw %}

```liquid
```handlebars
<sprite>
{% for frame in frames %}
<frame id="{{frame.index}}" x="{{frame.x}}" y="{{frame.y}}" width="{{frame.width}}" height="{{frame.height}}" />
{% endfor %}
{{ #each frames as |frame| }}
<frame id="{{ frame.index }}" x="{{ frame.x }}" y="{{ frame.y }}" width="{{ frame.width }}" height="{{ frame.height }}" />
{{ /each }}
</sprite>
```

Expand All @@ -48,12 +48,42 @@ When used, this template would generate metadata files like the following:

## Metadata Template Syntax

Tiger template files are based on the general-purpose `liquid` template format, which has its [own documentation](https://shopify.github.io/liquid). This documentation describes how to do loops, branches and basic arithmetic in your templates.
Tiger template files are based on the general-purpose `handlebars` template format, which has its [own documentation](https://handlebarsjs.com/guide/).

The spritesheet data that can be referenced in the template is described in the following tables:
### Additional helpers

In addition to standard Handlebars, additional helpers are available:

| Name | Example | Description |
| :------- | :-------------------------------------------------------- | :------------------------------------------------------------------- |
| add | `{{ add keyframe.x 5 }}` | Addition of two numbers. |
| divide | `{{ divide keyframe.duration 5 }}` | Division of two numbers. Attempting to divide by zero will return 0. |
| multiply | `{{ multiply keyframe.x -1 }}` | Multiplication of two numbers. |
| subtract | `{{ subtract keyframe.x 5 }}` | Subtraction of two numbers. |
| eq | `{{ #if eq hitbox.name "damage" }}` | Equals operator. |
| ne | `{{ #if ne hitbox.name "damage" }}` | Not-equals operator. |
| gt | `{{ #if gt frame.width 10 }}` | Greater than operator. |
| gte | `{{ #if gte frame.width 10 }}` | Greater than or equal operator. |
| lt | `{{ #if lt frame.width 10 }}` | Less than operator. |
| lte | `{{ #if lte frame.width 10 }}` | Less than or equal operator. |
| and | `{{ #if and (lte frame.width 10) (lte frame.width 10) }}` | Boolean `and` operator. |
| or | `{{ #if or (lte frame.width 10) (lte frame.width 10) }}` | Boolean `or` operator. |
| not | `{{ #if not (eq frame.x 10) }}` | Boolean `not` operator. |
| len | `{{ len keyframe.hitboxes }}` | Number of items in an array or object |

In the context of boolean operators, the following operands evaluate as `false`:

- `false` boolean
- Empty string
- Empty array
- Empty object

[String manipulation helpers](https://github.com/davidB/handlebars_misc_helpers#string-transformation) are also available.

### Global Variables

The spritesheet data that can be referenced in the template is described in the following tables:

| Field | Type | Description |
| :---------- | :------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| sheet_image | String | Path to the atlas image file containing all the fames in the spritesheet. This path is relative to the directory selected in the `Metadata Root Directory` option of the Export dialog. |
Expand Down
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 2 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,10 @@
"version": "0.0.0",
"scripts": {
"dev": "vite",
"build": "vue-tsc --noEmit && vite build",
"preview": "vite preview",
"tauri": "tauri"
"build": "vue-tsc --noEmit && vite build"
},
"dependencies": {
"@heroicons/vue": "^1.0.6",
"@heroicons/vue": "^2.0.13",
"@tauri-apps/api": "^1.0.0-rc.5",
"fast-json-patch": "^3.1.1",
"pinia": "^2.0.14",
Expand Down
Loading

0 comments on commit 51e22b3

Please sign in to comment.