Server Help Forum Index Server Help
Community forums for Subgame, ASSS, and bots
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   StatisticsStatistics   RegisterRegister 
 ProfileProfile   Login to check your private messagesLogin to check your private messages   LoginLogin (SSL) 

Server Help | ASSS Wiki (0) | Shanky.com
SubSpace (map) Editor wishlist

 
Post new topic   Reply to topic Printable version
 View previous topic  New Post probs Post :: Post GET IN THE ZONE! not auto zone...  View next topic  
Author Message
SuSE
Me measures good


Joined: Dec 02 2002
Posts: 2307
Offline

PostPosted: Thu Nov 13, 2003 8:26 am   Post maybe stupid    Post subject: SubSpace (map) Editor wishlist Reply to topic Reply with quote

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 sa_tongue.gif 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 sa_tongue.gif

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 sa_tongue.gif

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 sa_tongue.gif )

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 sa_tongue.gif]


Last edited by SuSE on Thu Nov 13, 2003 8:38 pm, edited 1 time in total
Back to top
View users profile Send private message Add User to Ignore List Send email Visit posters website
Dr Brain
Flip-flopping like a wind surfer


Age:39
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Thu Nov 13, 2003 11:16 am   Post maybe stupid    Post subject: Re: SubSpace (map) Editor wishlist Reply to topic Reply with quote

Akai wrote:
was bored


No kidding...
_________________
Hyperspace Owner

Smong> so long as 99% deaths feel lame it will always be hyperspace to me
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Helicon
Server Help Squatter


Joined: Dec 03 2002
Posts: 771
Location: GNU Doldrums
Offline

PostPosted: Thu Nov 13, 2003 4:27 pm   Post maybe stupid    Post subject: Reply to topic Reply with quote

my current framework implements something like the following for placeable/renderable objects:
Code: Show/Hide

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:

Code: Show/Hide

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
View users profile Send private message Add User to Ignore List
Cyan~Fire
I'll count you!
I'll count you!


Age:37
Gender:Gender:Male
Joined: Jul 14 2003
Posts: 4608
Location: A Dream
Offline

PostPosted: Thu Nov 13, 2003 6:20 pm   Post maybe stupid    Post subject: Reply to topic Reply with quote

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
View users profile Send private message Add User to Ignore List Visit posters website
CypherJF
I gargle nitroglycerin


Gender:Gender:Male
Joined: Aug 14 2003
Posts: 2582
Location: USA
Offline

PostPosted: Thu Nov 13, 2003 6:28 pm   Post maybe stupid    Post subject: Reply to topic Reply with quote

I would agree, it'd become a tad bulky for 1 program :-/ ... so we make plugins w000t biggrin.gif lol

- cyp
Back to top
View users profile Send private message Add User to Ignore List
SuSE
Me measures good


Joined: Dec 02 2002
Posts: 2307
Offline

PostPosted: Thu Nov 13, 2003 8:36 pm   Post maybe stupid    Post subject: Reply to topic Reply with quote

sure plugins if necessary, but honestly it shouldn't be too bulky
compared to SSME perhaps, but not Adobe Photoshop sa_tongue.gif

n00blets probably don't care about filesize as much as functionality

looks good, Hel - hope the Java works out
Back to top
View users profile Send private message Add User to Ignore List Send email Visit posters website
Helicon
Server Help Squatter


Joined: Dec 03 2002
Posts: 771
Location: GNU Doldrums
Offline

PostPosted: Thu Nov 13, 2003 9:03 pm   Post maybe stupid    Post subject: Reply to topic Reply with quote

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
View users profile Send private message Add User to Ignore List
Helicon
Server Help Squatter


Joined: Dec 03 2002
Posts: 771
Location: GNU Doldrums
Offline

PostPosted: Thu Nov 13, 2003 9:08 pm   Post maybe stupid    Post subject: Reply to topic Reply with quote

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
View users profile Send private message Add User to Ignore List
cypher
Guest


Offline

PostPosted: Thu Nov 13, 2003 9:40 pm   Post maybe stupid    Post subject: Reply to topic Reply with quote

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 biggrin.gif... 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 biggrin.gif

thanx - cypherjf
cypherjf at yahoo dot com
Back to top
Helicon
Server Help Squatter


Joined: Dec 03 2002
Posts: 771
Location: GNU Doldrums
Offline

PostPosted: Thu Nov 13, 2003 10:00 pm   Post maybe stupid    Post subject: Reply to topic Reply with quote

http://www4.ncsu.edu:8030/%7Erniyenga/subspace/old/lvlformat.html
Back to top
View users profile Send private message Add User to Ignore List
Smong
Server Help Squatter


Joined: 1043048991
Posts: 0x91E
Offline

PostPosted: Fri Nov 14, 2003 6:58 am   Post maybe stupid    Post subject: Reply to topic Reply with quote

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
View users profile Send private message Add User to Ignore List Visit posters website MSN Messenger
Helicon
Server Help Squatter


Joined: Dec 03 2002
Posts: 771
Location: GNU Doldrums
Offline

PostPosted: Fri Nov 14, 2003 7:59 am   Post maybe stupid    Post subject: Reply to topic Reply with quote

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
View users profile Send private message Add User to Ignore List
Display posts from previous:   
Post new topic   Reply to topic    Server Help Forum Index -> Trash Talk All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
View online users | View Statistics | View Ignored List


Software by php BB © php BB Group
Server Load: 40 page(s) served in previous 5 minutes.

phpBB Created this page in 0.950791 seconds : 35 queries executed (89.3%): GZIP compression disabled