Menu

Tree [40bf4d] default tip /
 History

Read Only access


File Date Author Commit
 .settings 2011-02-26 djlawler@aol.com djlawler@aol.com [710f7b] Update directory structure (common and cpython ...
 src 2014-06-30 djlawler djlawler [40bf4d] Minor bug fixes for wx/file open and save dialo...
 textures 2009-08-05 djlawler@aol.com djlawler@aol.com [661002] make local copies of textures
 .hgignore 2014-01-20 djlawler djlawler [f09a32] ignore pycharm settings directory
 .hgtags 2011-02-26 djlawler@aol.com djlawler@aol.com [6343b9] Added tag Release 0.6.7 for changeset 5257d124d73c
 .project 2010-03-17 djlawler@aol.com djlawler@aol.com [cbcfa6] switch from Netbeans to Eclipse/pydev because i...
 .pydevproject 2011-04-07 djlawler@aol.com djlawler@aol.com [ea1441] Minor changes...
 ReadMe.txt 2014-01-20 djlawler djlawler [625eaa] Updated ReadMe.txt
 cleanup.py 2010-10-25 djlawler@aol.com djlawler@aol.com [40d779] change cleanup.py to use newer, simpler os.walk...
 edit.bat 2011-02-26 djlawler@aol.com djlawler@aol.com [710f7b] Update directory structure (common and cpython ...
 informalbenchmark.txt 2010-03-31 djlawler@aol.com djlawler@aol.com [2f122f] no glu use anymore in any version
 license.txt 2009-06-27 David Lawler David Lawler [601197] rename todo to notes and re-include license
 pyBzEdit.wxs 2011-05-25 LD003@fks212w.ks.franke.world LD003@fks212w.ks.franke.world [9ccefc] Work toward release 0.7.0
 whatplatform.py 2010-04-08 djlawler@aol.com djlawler@aol.com [b2998e] save position & size to ini file now

Read Me

01/19/2014 - no release yet...
But the project SHOULD work with python 3.3 and the new (Phoenix) version of wxWindows.

05/01/2011 Release 0.7.0

Worked on ironing out some bugs that caused this program to not work on Linux (Xubuntu 10.10) and OSX.

02/26/2011

For performance, maintainability and other reasons, I have eliminated the IronPython and Jython versions.
These were nice experiments and did work, however I need to concentrate any time I have (very little),
on one version.  The python/wxPython version has the highest performance, best cross platform story and
decent development tools (pydev on Eclipse for debugging and refactoring, or just simple text editing for
quick things).  This code is still very lightly tested (just 2 users that I know about).  Please save your
work with different names (save as), and often if you try to use this.  If you actually open issues on this
site I will try to see if I can reproduce and fix what you find.

PyBzEdit does do some nice things compared to the official BZWorkbench:

1. Easier to set up a development environment
2. Better user interface IMHO (tree control)
3. Has working undo and redo
4. Digests more maps

Having said that, BZworkbench has better and more developers and will always be much faster due to it being
coded in C++.

Older notes:

Miscellaneous Notes and Ramblings:

I have split the project into three sections one for Python, one for IronPython and one for Jython.
Common programs are in the 'common' directory.  I wrote the Vector class to eliminate the dependency
on OpenTK in most modules which allowed me to port the project back to Python using only wxPython and
PyOpenGl.  The Vector class is probaly much slower than the nice stuff in OpenTK...but it is not too
noticable so far.  I had REAL fun bug squashing and modifying how this class worked.  It probably sucks...
but it works for what pyBzEdit needs.  Don't expect it to be feature complete or awesome.
Somewhere along the line I went 'insane' and decided to play with a Jython version as well.      

Ironpython specific stuff is in ipython subdirectory
Python specific stuff is in cpython subdirctory
Jython specific stuff is in the jpython subdirectory

The OpenGlForm.py programs in all subdirectories append ".." to sys.path so that they can find
the common programs.    

03/18/2010

The program 'works' and will allow you to view bzflag maps/worlds.  It can even download textures from
http servers IF you have internet access.  I have thrown a lot of oddball maps at it and it appears
to digest them.  This includes all 2.0 type objects (that I am aware of)!  This program is NOT 'stable'
and you should BACKUP ANY WORLD FILES before you play with them!  YOU HAVE BEEN WARNED!!!!
It DOES -now- allow you to move objects with the mouse.

I use Eclipse/Pydev to work with all versions due to it's ability to run all versions of python and debug
some (all?).  Gave up on Netbeans because the debugging did not work for me.  For heavy IronPython work
(creating forms or debugging) there is also a SharpDevelop project in the ipython directory.  I also frequently
use Scite to edit when I don't want a bulky IDE getting in the way.

Python version:
    You need to have Python, wxPython, and PyOpenGL installed - that is all!  Then just run from the source.
    See ReadMe.txt in the cpython directory for more information.

IronPython version:
    You just need IronPython 2.6 or above.  OpenTK and the Multi-Select Treeview are included in the project
    in DLL form.  I am using OpenTK to do anything in OpenGL (www.opentk.com).  I am using the CodersLab Multi-Select
    Treeview for the left hand treeview (http://sourceforge.net/projects/mstreeview).  Lastly, I am using
    my own RichTextBox derived class as the text editor.  In theory all of these controls should be cross platform.
    On Linux and Mac -unfortunately- you need to use Mono 2.6 or higher due to winforms bugs in earlier versions
    See ReadMe.txt in the ipython directory for more information.
    
Jython version:
    I use jython 2.5.1.  jogl is included (for windows) in the project.
    See ReadMe.txt in the jpython directory for more information.
    
What does not work:

1.  Everything is edited in 'text'.  Eventually, everything should be edited in a nice object specific forms.
2.  Teleports and Links.  They will be read and display properly....but cannot be edited reliably!
3.  Editing multiple objects does not work.  You have to edit one at a time...but now if you add more objects
    as text, they will be loaded propery.  This is a new feature and not well tested yet.
4.  Very little error checking - I need to add a lot of sanity checking!
5.  Before we get to the point where there are nice forms to edit eveything maybe I could generate
    sample objects of 'your choice' with a button or menu?  Editing the text is not so hard if you
    don't have to guess at the possible fields.
6.  Dynamic colors, Texture Matrixes - you can edit them...but they do not display 'dynamically' (in
    fact they have no effect at all...yet).
   
Things to maybe do:

background thread for displaying dynamic objects/texture matrices?
logging for debugging?
lots of comments
unit tests!
lots of error checking and handling
plugins - This would be a natural for python...you could create a cool script to repeat a
selected object (or objects) over some sort of 'path'.  Then have it show on the menu and be able
to execute it from the editor - and see the results right away.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.