summaryrefslogtreecommitdiff
path: root/lib/Tiled2.hs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* first example of a map adjustmentstuebinm2021-11-091-1/+10
| | | | | | | | | this also includes some more monad plumbing, and an option for the linter to actually write things out again. Some of the previous commit was reverted a bit since it turned out to be stupid, but overall it was suprisingly easy once I got around to it, so yay! i guess Also includes a fairly silly example of how to use it.
* yet more tiled propertiesstuebinm2021-10-301-1/+5
|
* also flipping tileset lint output structurestuebinm2021-10-301-0/+2
|
* added more keys to the Tiled formatstuebinm2021-10-301-30/+51
| | | | (apparently, some of them aren't even in the spec, just the changelog!)
* flipping the output map structurestuebinm2021-10-301-3/+6
| | | | | | | | for now, just with layers. Instead of listing by layer (and giving lints multiple times), list by lint type (and list all layers in which this lint was applicable). This is a bit wonky for now, but readability of output is much better.
* make aeson instances agree with themselvesstuebinm2021-10-301-182/+69
| | | | | | | | | | | | | | | | This cleans up all the old rubble that came from the Tiled package I originally took from hackage. It now uses generics instead of implementing all the ToJSON and FromJSON instances by hand, and (deserialize . serialise) will now actually return a (semantically) equivalent json. It'll now also reject keys that it doesn't know, which required adding some in several places which the tiled package didn't know about (or which were introduced after it was originally written, dunno). Several more Maybes are required now, to represent the difference between e.g. empty lists and on set value, which does make the code slightly weirder in other places …
* add tileset property lintingstuebinm2021-10-301-1/+1
| | | | | | this reorganised the whole linting for tilesets somewhat; it's now very similar to that linting layers, and it may be possible to abstract some of the code away ...
* rename to walintstuebinm2021-10-011-18/+17
|
* nicer json output which leaks less haskell namesstuebinm2021-09-301-3/+6
|
* very naïve handling of directoriesstuebinm2021-09-231-15/+24
|
* lint embedded tilesetsstuebinm2021-09-201-2/+2
|
* lint general map propertiesstuebinm2021-09-201-2/+2
|
* some properties require non-empty layersstuebinm2021-09-191-2/+4
|
* support for properties that aren't stringsstuebinm2021-09-191-13/+29
| | | | apparently i couldn't read or something?
* can collect dependencies!stuebinm2021-09-181-2/+2
| | | | | | | There's now a Lint type, which may be either a "true lint" (which is a Hint, which contains some message and level of severity), or a Depends, which indicates that this map depends on some ressource or other (and is otherwise treated as a special info Hint in all other cases)
* type check propertiesstuebinm2021-09-181-1/+25
| | | | | | /finally/ figured out that all properties just look like {name, value, type} so now that's abstracted away and Properties.hs doesn't look like javascript anymore
* input options, output jsonstuebinm2021-09-161-1/+1
| | | | | | | input options are mostly dummies for now, but some work (e.g. --inpath and --json). Lints can now be optionally printed as json to be reasonably machine-readable (and the json can be pretty-printed to make it human-readable again …).
* moving lots of code aroundstuebinm2021-09-161-0/+400
(also renaming things now that concepts seem a bit clearer)