Author |
Message |
SuSE Me measures good

Joined: Dec 02 2002 Posts: 2307 Offline
|
Posted: Thu Nov 13, 2003 8:26 am Post maybe stupid Post subject: SubSpace (map) Editor wishlist |
 |
|
|
|
was bored - Helicon got me thinking about editor stuff again
(this is not meant to burden anyone working on an editor btw, just throwing it out here)
this is really unorganized and contains at least a few things that you'll probably think will be ridiculous to implement in any program
but it's an IDEALish list so here goes
do add things or make comments or just make a post with "BHAHAHAHAH YOU'RE A DUMBASS" in it or what not
----------------------------
elements of an idealish ss editor
SSME elements (or the like) that should (perhaps) be duplicated in some form
(including those never included)
single tile placement
clear single tile
dropper (select tile on map)
zoom in / zoom out
fill
flip horizontal
flip vertical
line (SHIFT for straight [including 45degrees])
connected line (SHIFT for straight [including 45degrees])
rectangle (outline) (CTRL for perfect)
filled rectangle (CTRL for perfect)
ellipse (outline) (CTRL for perfect)
filled ellipse (CTRL for perfect)
grid (toggle)
radar (toggle)
tile palette (toggle)
special objects palette (toggle)
tile info (toggle)
undo / redo
print
cut / copy / paste
new / open / save / save as
help
import tileset (.lvl or .bmp)
recent files list
float selection
drop selection
fill selection
status bar: tile coordinates (active/over)
status bar: %coord coordinates
status bar: area shown tile coordinates (x1,y1,x2,y2)
status bar: area shown %coord coordinates (x1,y1,x2,y2)
status bar: zoom setting
status bar: flags total
about
CLE elements (or the like) that should (perhaps) be duplicated in some form
(including those never included / excluding SSME duplicates)
rotate 90 clockwise
rotate 90 counterclockwise
rotate 180
tile/tileset editing
lvz editing
. place objects on map
. place screen objects
. open .lvz and .ini files
. create .lvz files
smart tiling (tiles placed to match nearby tiles / program tilesets to match up properly)
guide/help / online support / faq
send feedback
grid subsectioning
minor expanding on SSME and CLE elements
single tile placement (cannot drag)
[drag single tile placement (more tiles if you move it around]
select area (rectangle only / +shift for multiples)
clear single tile (cannot drag)
[drag clear single tile (more tiles if you move it around]
select area (rectangle only / +(user-defined key [default SHIFT]) for adding / +(user-defined key [default ALT] for removing)
select area (selecting part of tile includes entire tile [not selecting around tiles]
mouse pointers (all icons are standard ARROW POINTER plus small image at bottom-right / right regarding specific function)
rotate (45degrees clock/counter - approximate)(?)
tileset editing (create collection of tiles - swap in and out of current tileset from existing tilesets)
import non .bmp tilesets
other element ideas (or major expanding on SSME and CLE elements)
lvz editing
separate window/bar - where necessary
place objects on map
. separate window/bar
. full pixel coords, not just tile coords
. arrow keys for small nudges
. type-in coords to place
place objects for screen
. separate window/bar
. full pixel coords
. arrow keys for small nudges
. toggle for standard in-game images [disp, energy bar (standard), stat box, chat, radar] to preview relation
. common resolution previews
debuild / build .lvz files
edit .ini files (real-time / can watch update while placing images via mouse [or vice versa])
. save stored coordinates/file names and split into multiple .ini's (and eventually .lvz's) per user-preferred organization
use standard features (line, rectangle, etc) with images (basically allowing "TILE"ing via lvz-included images)
. include using existing tilesets (standard dimensions) with lvz-included "tile"ing (breaks selected tiles into singular 16 x 16 pixel images)
. select more than one tile from existing tileset to "tile" via lvz-including
. tile - flip horizontal/vertical - rotate 180 / 90 - create new image (store in 'misc' tileset) to be swapped in/out existing tilesets
automatic (or user-instigated) syntax/etc checking for .ini files
compare (or estimate/guess/suggest?) best format (currently supported) to use (images & audio)
settings
separate window/bar
.cfg > .set / .set > .cfg conversion
edit settings
add setting (manual type-in)
remove setting (right-click/delete, etc)
sort (drag, alphabetical, section, etc)
automatic (or user-instigated) syntax/etc checking for .ini files
warnings for important values (owner:userid, touchy sets, etc)
CTRL+F find
ships
separate window/bar
rotating for ships with no rolling images
. instructions so it doesn't get b0rked
et cetera
history (event) list (for undo/redo)
lvz images
. rotate by dragging (circularly) 180 / 80 / 45
tile selections
. rotate by dragging (circularly) 180 / 80 / 45
anything requiring files - browse for file (file can be anywhere - even for .lvz)
. optionally save list with file paths for future use
. optionally copy/move used files to user-specified directory
options for EVERYTHING
. in case of updated audio format support
. in case of updated image format support
. defaults have support for existing optional formats not yet supported turned off
PROJECT files
. single file containing information for a PROJECT
. user selects what parts to include [.lvl,.lvz(audial replacement),.lvz(visual replacement),settings,ships,tileset(s),etc]
redundant checking
descriptive/informative error messages
specify grid subsectioning
specify background color
specify grid lines 'above' (visible over) tiles or 'below' (not visible)
everything FACTS can do not already mentioned
news file editing (using proper font & dimensions for preview)
searchable help/faq/etc (including ALL info )
automatic (or user-instigated) file updating/check for file updates (for things that will be updated)
lvz creator tool able to allow for file to be extracted to zone folder (assuming Priit wasn't on crack and this can actually be done)
not open source but source available for worthy people [unless developer(s) plan to go AWOL - then open source ]
Last edited by SuSE on Thu Nov 13, 2003 8:38 pm, edited 1 time in total |
|
Back to top |
|
 |
Dr Brain Flip-flopping like a wind surfer

Age:39 Gender: Joined: Dec 01 2002 Posts: 3502 Location: Hyperspace Offline
|
Posted: Thu Nov 13, 2003 11:16 am Post maybe stupid Post subject: Re: SubSpace (map) Editor wishlist |
 |
|
|
|
No kidding... _________________ Hyperspace Owner
Smong> so long as 99% deaths feel lame it will always be hyperspace to me |
|
Back to top |
|
 |
Helicon Server Help Squatter
Joined: Dec 03 2002 Posts: 771 Location: GNU Doldrums Offline
|
Posted: Thu Nov 13, 2003 4:27 pm Post maybe stupid Post subject: |
 |
|
|
|
my current framework implements something like the following for placeable/renderable objects:
package servertools.map.content;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import servertools.Consts;
public abstract class MapContent {
int width, height;
boolean pixels;
public abstract ImageIcon getIcon();
public MapContent(int width, int height, boolean inPixels) {
//convert to tiles if possible
if (width % Consts.tileWidth == 0 && height % Consts.tileWidth == 0) {
//valid in tiles
pixels = false;
this.width = width / Consts.tileWidth;
this.height = height / Consts.tileWidth;
} else {
this.width = width;
this.height = height;
this.pixels = true;
}
}
public int getWidthPixels() {
if (pixels) {
return this.width;
} else {
return this.width * Consts.tileWidth;
}
}
public int getHeightPixels() {
if (pixels) {
return this.height;
} else {
return this.height * Consts.tileWidth;
}
}
public int getHeightTiles() {
if (pixels) {
return this.height / Consts.tileWidth;
} else {
return this.height;
}
}
public int getWidthTiles() {
if (pixels) {
return this.width / Consts.tileWidth;
} else {
return this.width;
}
}
protected void setHeight(int height) {
this.height = height;
}
protected void setWidth(int width) {
this.width = width;
}
public static boolean isValidMapObject(Object o) {
if (o instanceof MapContent) {
return true;
}
return false;
}
public abstract void paint(Graphics g, Map m);
}
|
(this is an old version, obvious incongruities have been fixed on my home computer)
tiles, etc are survived by extending this class
current LVZ screen objects are implemented via anchors at tiles which then have offsets down and right. you can stick any image that fits into an Image object in there.
currently, any manner of tools (IE pencil, rectangle, even FACTS-dependent ones) can be supported via a Tool class, which look something like this:
package servertools.map.tools;
import java.awt.*;
import java.awt.event.*;
import servertools.map.*;
import servertools.map.content.*;
import javax.swing.*;
public abstract class Tool {
public String toolName;
public abstract ImageIcon getIcon();
public abstract void paintTool(Graphics g);
public abstract boolean onMouseEvent(
MouseEvent e,
Coordinate clicked,
Map m,
MapContent primary,
MapContent secondary);
public final boolean sendMouseEvent(
MouseEvent e,
Coordinate clicked,
Map m,
MapContent primary,
MapContent secondary) {
if (onMouseEvent(e, clicked, m, primary, secondary)) {
return true;
} else {
return false;
}
}
private boolean KEYMASK_ALT = false;
private boolean KEYMASK_SHIFT = false;
private boolean KEYMASK_CTRL = false;
public Tool(String name) {
this.toolName = name;
}
private final void setToolName(String n) {
this.toolName = n;
}
public final String getToolName() {
return this.toolName;
}
public final void onKeyEvent(KeyEvent e) {
//alt
if (e.getModifiers() == KeyEvent.ALT_DOWN_MASK)
this.KEYMASK_ALT = true;
else {
this.KEYMASK_ALT = false;
}
//ctrl
if (e.getModifiers() == KeyEvent.CTRL_DOWN_MASK)
this.KEYMASK_CTRL = true;
else {
this.KEYMASK_CTRL = false;
}
//shift
if (e.getModifiers() == KeyEvent.SHIFT_DOWN_MASK)
this.KEYMASK_SHIFT = true;
else {
this.KEYMASK_SHIFT = false;
}
}
public abstract Cursor getCursor();
}
|
the painting of tool related gfx (ie temp tiles for line, etc) is still very much a work in progress.
i also have a basic framework for something like a wizard or filter... that may or may not happen soon
I have pretty much come to the realisation that i will eventually come to the point where i no longer have energy to pursue this project (not now, i'm hooked.... weeeeeeeeee!), so i am trying to make it as textbook-OOP as i can. That way when people say "include this or that" i can tell them to write it themselves and leave me alone.
of course that does mean making something of an API, but i always get a kick out of doing that... so it won't be a problem.
My only concerns at this point in time are memory usage (dynamic loading of classes itself bears considerable overhead) and performance ("java and performance, did the other guys who try really go mad?"-ML)
hopefully it will end up being something remotely useful _________________ Signatures just seem so quaint. |
|
Back to top |
|
 |
Cyan~Fire I'll count you!

Age:37 Gender: Joined: Jul 14 2003 Posts: 4608 Location: A Dream Offline
|
Posted: Thu Nov 13, 2003 6:20 pm Post maybe stupid Post subject: |
 |
|
|
|
Ship rotating? Settings? This is gonna get a tad bulky... _________________ This help is informational only. No representation is made or warranty given as to its content. User assumes all risk of use. Cyan~Fire assumes no responsibility for any loss or delay resulting from such use.
Wise men STILL seek Him. |
|
Back to top |
|
 |
CypherJF I gargle nitroglycerin

Gender: Joined: Aug 14 2003 Posts: 2582 Location: USA Offline
|
Posted: Thu Nov 13, 2003 6:28 pm Post maybe stupid Post subject: |
 |
|
|
|
I would agree, it'd become a tad bulky for 1 program :-/ ... so we make plugins w000t lol
- cyp |
|
Back to top |
|
 |
SuSE Me measures good

Joined: Dec 02 2002 Posts: 2307 Offline
|
Posted: Thu Nov 13, 2003 8:36 pm Post maybe stupid Post subject: |
 |
|
|
|
sure plugins if necessary, but honestly it shouldn't be too bulky
compared to SSME perhaps, but not Adobe Photoshop
n00blets probably don't care about filesize as much as functionality
looks good, Hel - hope the Java works out |
|
Back to top |
|
 |
Helicon Server Help Squatter
Joined: Dec 03 2002 Posts: 771 Location: GNU Doldrums Offline
|
Posted: Thu Nov 13, 2003 9:03 pm Post maybe stupid Post subject: |
 |
|
|
|
Cyan~Fire wrote: | Ship rotating? Settings? This is gonna get a tad bulky... |
i dont know what you're talking about, really
did i leave a strange comment in?
The editor im using now was originally part of a set (think a cheap emacs imitation), so some of that junk may be left in the old version i posted... |
|
Back to top |
|
 |
Helicon Server Help Squatter
Joined: Dec 03 2002 Posts: 771 Location: GNU Doldrums Offline
|
Posted: Thu Nov 13, 2003 9:08 pm Post maybe stupid Post subject: |
 |
|
|
|
ps: if i get this thing done it will have a pencil and an eraser... with a nice extension api
Then you can make huge lists until you fall over... and write the plug-ins |
|
Back to top |
|
 |
cypher Guest
Offline
|
Posted: Thu Nov 13, 2003 9:40 pm Post maybe stupid Post subject: |
 |
|
|
|
Meeh like i said im working on vb6 version but it wont be all fancy being its my first really big project of this type ... lol... but it's coming along well _i guess_... but i neeeeed to know how to get the coords of the tiles :-/ etc.. from the lvl.. i got the bmp/tile image... but not the coords
something about bit shifting?! grr... Helicon if ya know how and wouldnt mind sharing in java code how to accomplish that let me know plzz
thanx - cypherjf
cypherjf at yahoo dot com |
|
Back to top |
|
 |
Helicon Server Help Squatter
Joined: Dec 03 2002 Posts: 771 Location: GNU Doldrums Offline
|
|
Back to top |
|
 |
Smong Server Help Squatter

Joined: 1043048991 Posts: 0x91E Offline
|
Posted: Fri Nov 14, 2003 6:58 am Post maybe stupid Post subject: |
 |
|
|
|
I think there should be a shortcut key to switch to the last tool you used. That way you can quickly add/remove tiles (ok, so there is ctrl+z, but it has other uses too). Maybe a hotkey for each tool as well? |
|
Back to top |
|
 |
Helicon Server Help Squatter
Joined: Dec 03 2002 Posts: 771 Location: GNU Doldrums Offline
|
Posted: Fri Nov 14, 2003 7:59 am Post maybe stupid Post subject: |
 |
|
|
|
right now i have the middle mouse button of pencil as an eraser... the 1st and second for the primary and secondary selected tiles (think tiledit) |
|
Back to top |
|
 |
|