21/11/2019 done:
* added right click menus
* implemented adding and removing NPCs
* you can now rollback any modified entity in the "Local Changes" window
* generalized template/direct edit code to be able to reuse it for other windows
21/11/2019 done:
* added right click menus
* implemented adding and removing NPCs
* you can now rollback any modified entity in the "Local Changes" window
* generalized template/direct edit code to be able to reuse it for other windows
22/11/2019 done:
* implement templates for goods and recipes
* prepare auto-backup system in case of database corruption -> added a "save to file" button for now
to do:
* load actual quests from the game files
* prepare a mock of the quest editor
Reading quest data is actually tricky and will take me some time, so I defer all work on quests. We won't need any custom quests for the initial server release anyway.
24/11/2019 done:
* list all NPCs of given type
* same for goods and recipes
to do:
* try to integrate it with the forum (uploading all changes)
2/12/2019:
* Took me a whole week, but the forum integration is finally done.
You can now upload your changes to the server, start a new project, work on something else, save it, then go back to the original project. There's a brief description of what a project is on the project creation page.
Publishing and removing projects is disabled for now - I need to test it a little bit more.
3/12/2019 done:
* start a user guide
I'm not yet sure how the guide should look like, but I'll start by describing it on the front page of http://pwmirage.com
edit:
Now there's also http://pwmirage.com/editor/guide/
6/12/2019 done:
* experiment on faster icon loading (this is way faster now)
* try to add forum navigation bar (topbar) to the editor
7/12/2019 done:
* merge forum navigation bar with the editor's one
* put biggest images on google drive and add a loading screen for them (with progress bars, etc)
08/12/2019 done:
* implement project publishing
As of now, a project can be published only once. In future it will be possible to publish "updates" as well.
Approved content is visible here:
There's just a json file attached for now, but soon there'll be a link to a full editor view that really presents those changes.
09/12/2019 done:
It is now possible to publish a project again, which will create a reply in the original thread
Just like the original post, an update needs to be approved by an administrator before it's visible to everyone
10/12/2019 done:
* add a mode for browsing only modified objects
* optimize marker rendering, allow rendering all NPCs at once (this is disabled by default for now, can be enabled in topmenu's View->Always show markers)
* in published project threads include links to the map viewer instead of the raw data file
* implement a read-only mode meant for browsing public projects
In read-only mode you can still make changes, but those won't be saved anywhere - most importantly, they won't affect your current, loaded project.
11/12/2019 done
* store biggest images in the browser cache so they don't have to be downloaded every time (this is a tremendous boost in loading speed)
* improve the read-only mode -> when browsing a project, add a link to the forum thread, mention the author, turn on some view settings by default
to do:
* prepare a mock of the item editor (at least for the very basic Material items)
12/12/2019 done:
* generalize some entity management code and make it a generic library (db.js) -> this stands as code cleanup
to do:
* allow lazy-loading item icons to speed up initialization even more
* add item editor (just for the very basic Material items for now)
13/12/2019 done:
* allow lazy-loading item icons to speed up initialization even more
There will be a lot additional data required for the item editor, so rather than putting it all in a single file and having each user download it (as it was done so far), I developed a server app to provide data for any single, specific item.
to do:
* add item editor (just for the very basic Material items for now)
14/12/2019 done:
* item editor itself is done
now we need to add proper buttons to other windows to be able to actually edit something
we also need an icon chooser -> for now i'll just allow "cloning" existing items, which will copy over their icon
very very nice
I have to admit I'm not programming in javascript on daily basis and last time I read something about it was 2010-ish.
I was using old coding practices together with new javascript APIs and in the end the code didn't look too good.
In particular, I was using callbacks for all asynchronous actions (that's basically most of the downloading/processing stuff).
This kicks me in the ass now that I'm developing this item editor, as item loading needs to be asynchronous as well and I need to move around a lot of code.
I did some reading and I'm slowly refactoring everything to newer javascript that can handle such cases much better.
I'm starting with refactoring only the code that needs changes, but to keep the codebase consistent, eventually all of the code will need to be refactored.
As for the personal backlog, here's the list of files to be updated:
* main.js
* map.js
* window.js
* window_db_common.js
* window_find_npcs.js
* window_npc.js
* window_item_finder.js
* window_tpl_finder.js
* window_changes.js
* item.js
done:
* download.js
* log.js
* navbar.js
* db_load.js
* project.js
* db.js
* window_rclick_menu.js
15+16/12/2019 done:
* Item editor finally works -> you can now edit and clone all basic Materials (type:Mat) in the goods window.
* "Templates" had to be slightly redesigned to work for items. To be honest, they used to be a bit confusing and the new interface should be nicer
As for the templates, you can no longer switch between "edit individually" and "edit a template". You now always edit a template - if you create a new npc, it starts with a new, unnamed template. In future, there will be also a "New object" entry on the template list window.
18/12/2019 done:
* hook item editor to the recipes window
to do:
* continue on writing the guide -> describe templates, PW npc structure
19/12/2019 done:
* played a lot with the editor to ensure everything's working after the refactor
* started moving project management inside the editor -> having all the functionality there will eventually allow us to auto-save projects, keep backups, etc
20/12/2019 done:
* you can now list/edit/create/save/push projects from within the editor
I'll make the changes public after I'm done updating the guide.