I'm currently developing a scripted level editor that takes advantage of the new Graal client's external window features. The level editor will mimic most of the functionality of the current external level editor for Windows but will have many more features that will make it more like a graphics editing program.
Unlike most of the scripted level editors that have been made so far, this one has two key features that makes it distinct from the others:
- Instead of editing the level that you are on directly, it instead will use my scripted File Browser to open and save ".nw" files either on your computer or on the server (where you have rights to).
- The entire editor runs much smoother then most other editors as it uses external windows (first editor to do so) and is optimized with various script elements (such as Drawing Panels).
My goal is to get this editor added to the Login server with the scripted RC so that anyone can access it by pressing F4 on any server. You would of course need to have RC in order to view/modify files on the server but files on your computer could be edited on any server (maybe even using the current servers tileset or so!).
Here's a simple screenshot of some of what I have completed so far but it does not show everything.
Here's the list of the current features that are implemented so far:- F4 opens the editor in a separate window outside of the Graal client.
- On the top of the window is a menu bar with the following options:
- File > New - Creates a new blank level.
- File > Open - Opens the file "newfile.nw" in your "scriptfiles" folder on your client. This is just temporary as I am still finishing up the File Browser.
- Below the menu bar is a toolbar with buttons that mimic many of the menu commands (new, open, save, save as).
- Below the toolbar is a set of tabs that allows you to switch between levels that you have open.
- On the right of the window is where the various panels are stored. You can click on the boxes next to each panel to show and hide them. The following panels are implemented:
- Layers - Change between the active tilelayer as well as display tile layer masks (tile types, etc.).
- Tools - Change between your active tool (pencil, selection, eraser, etc.).
- On the bottom of the window is the pallete where you can see your current tileset. From here you can select tiles for use with your active tool.
- The selection tool allows you to select tiles from the palette and place them on the level as well as move around tiles already on the level. This tool is the tool that lets you do all of the things you can do in the external editor (right click to fill, etc)
There are many other features that are scripted in but aren't supported yet because the new client has a few bugs.
Here's the things that are planned to be implemented:- Pencil Tool - Allows you to draw a single tile in a line or freeform. You can set the pencil size as well as the shape.
- Paintbrush Tool - Allows you to draw a set of tiles (or a predefined pattern) in a line or freeform.
- Bucket Tool - Allows you to fill an area of tiles.
- Stamp Tool - Allows you to place a set of tiles (or a predefined pattern) at a single point.
- Path Tool - Allows you to paint a path using self-defined or pre-defined path patterns.
- Pattern Tool - Enables other tools to draw the active pattern rather then the pallete.
- Eraser Tool - Enables other tools to simply erase tiles rather then use the pallete.
- A tileset panel will allow you to change the active tileset, append parts to the tileset as well as load a tileset of the current server.
- Various NPC and script editor things. Won't be done till most of the tile stuff is done.
- Hopefully when the script is complete, it will be added to the login server and the scripted RC will be changed to open all .nw files in the level editor rather then download and try to open them.
I have a bunch of other things I want to implement but that was all I could think of off the top of my head right now. Feel free to post suggestions, questions and/or comments!
Also, who's the moderator of this forum so I can have you update this post in the future?