Commit Graph

196 Commits

Author SHA1 Message Date
b765e406c7 change BNF (but not implementation of BNF) for parsing, to handle layers, and also change minimum key in layer tree to be 1 2025-08-09 11:10:34 +01:00
d3ace298d3 remove 'squares' field from app type, and refactor most functions in common-update.sml to use layer tree instead of squares vector 2025-08-09 10:19:26 +01:00
ab888f8410 update 'changeCanvasWidth/Height' functions to use layer tree 2025-08-09 10:11:37 +01:00
21624aee0d change 'move-mode.sml' to use layer tree everywhere instead of squares 2025-08-09 09:57:19 +01:00
6a39f43916 remove some dead code 2025-08-09 09:39:59 +01:00
852b2cf1f1 remove 'undo' and 'redo' fields from app_type, because I won't be adding that functionality for the forseeable future 2025-08-09 09:35:52 +01:00
58439d8df8 progress moving away from 'squares' field to layer tree 2025-08-09 09:32:34 +01:00
34c29bcbba add functions to add and remove pixels from layer-tree 2025-08-09 09:13:03 +01:00
e634bb25d7 add grid module, and change some functions in layer-tree.sml to use it instead of having grid-logic in there 2025-08-09 08:43:51 +01:00
6cd2b85d8b change integer layer field when 'l' is pressed 2025-08-09 08:36:14 +01:00
8715879ceb add layerTree field to app type 2025-08-09 08:22:28 +01:00
8d855be27a add layer field to app type, as preparation for switching to layer tree 2025-08-09 08:15:11 +01:00
8e475a3abe add functionality to change grid size for layer tree 2025-08-09 08:04:22 +01:00
318ca4fdf1 begin coding layer tree so that we have toggleable layers 2025-08-09 07:48:49 +01:00
cb9e66f349 add functionality to resize window in move mode 2025-08-09 07:17:48 +01:00
fa2a5c878c add ability to select cursor colour 2025-08-09 07:04:03 +01:00
7a3fc728f6 fix bugs moving image up/down in move mode 2025-08-09 00:22:25 +01:00
f46ca01d42 add ability to move from normal mode to move mode, and from move mode back to normal mode 2025-08-09 00:13:02 +01:00
50bdd31d59 progress with move mode 2025-08-08 23:56:24 +01:00
f1cd3fbf85 begin coding functionality to move squares 2025-08-08 23:39:29 +01:00
0445595990 when generating collision string, map 'squares' vector to a new vector which treats all visible (non-transparent) colours the same. This allows us to ignore colour differences when generating the collision string, which is good because the colour of a pixel doesn't make a difference to collision detection. 2025-07-30 07:27:55 +01:00
eedaf0450f fix bugs with generating export strings from quad tree (have to add 1 to ex and ey indiscriminately, except if we are not in the canvas width/height dimensions) 2025-07-29 15:55:38 +01:00
d392ad2c79 100NvimTree_1 done with functionality to export collisions 2025-07-13 15:45:09 +01:00
7e96203f92 done adding export-collision functionality, including collision message, in functional core. Next: add imperative shell scaffolding 2025-07-13 15:33:32 +01:00
de16e816b4 add scale parameter for collisions, so that we can easily use collisions when object is larger than normal/native 2025-07-13 15:14:19 +01:00
d98b815516 done generating collision string 2025-07-13 15:02:13 +01:00
69494c368e done fixing errors in output from CollosionTrin.toExportString (I forgot to increment 'ey' if 'y' = 'ey') 2025-07-13 14:03:52 +01:00
a60d13c5ef improvements to generated export string (matches more closely to expected result) 2025-07-13 04:03:44 +01:00
0e141174b2 progress fixing bugs in generated export string 2025-07-13 01:40:57 +01:00
31bc8485f3 add function in imperative shell to save export string, and fix errors in generating export string from functional core 2025-07-12 19:34:52 +01:00
dbb1676fbe done coding functionality to create a string suitable for exporting 2025-07-12 19:16:36 +01:00
a97f838a64 finished coding export string, I think/hope 2025-07-12 19:08:36 +01:00
9a748c8e0d done converting coordinates to triangles for exporting (but I still need header and footer for that) 2025-07-12 19:00:24 +01:00
1fb6b43ac3 progress coding function to create an export string 2025-07-12 18:52:30 +01:00
d0c12d4a87 fix bugs in parse-grid.sml update functions: exit loopX and loopY if coordinate is not in range of grid 2025-07-12 13:50:20 +01:00
b58100ca7e done implementing load-squares functionality 2025-07-12 07:17:52 +01:00
dcf6bc074d fix lexer/parser bugs, add code in file-thread.sml to handle loading/saving of files (but loading is not completely finished yet) 2025-07-12 07:03:09 +01:00
eb0b8d31b2 save grid to custom format 2025-07-12 06:03:59 +01:00
04bb7a18c0 add function to quad tree to turn items into strings (for later saving to file) 2025-07-12 03:38:20 +01:00
bb5e3e8ef3 begin parser to load from file 2025-07-12 02:02:21 +01:00
22173a0cdb add functionality to delete pixel 2025-07-11 23:55:12 +01:00
973a1610ce add functionality to delete pixel 2025-07-11 23:47:28 +01:00
86369db055 add functionality for changing height of canvas 2025-07-11 22:57:20 +01:00
a448fcf469 fix bugs relating to resizing canvas width 2025-07-11 22:20:29 +01:00
e3729a1ce5 add scaffolding in imperative shell to help update canvas width and height 2025-07-11 17:45:16 +01:00
08ed5cc3d5 progress updating canvas width at runtime 2025-07-11 17:41:47 +01:00
e760b158ac change how modal num works so that it is only clipped to 255 if setting a new colour/alpha value 2025-07-11 17:30:57 +01:00
ac69e95a0c add function to help change size of canvas 2025-07-11 17:21:50 +01:00
5cd909430d a bit of refactoring, moving code to update 'squares' vector in app-with.sml to its own function (to make it reuseable) 2025-07-11 17:03:48 +01:00
c898d83d6e add undo and redo fields (but we are not acting on them) 2025-07-11 16:54:07 +01:00