News

Commons at 2.3 Link to this entry.
Tags: Library, Update

The Commons project has been updated to version 2.3.0. There are some minor changes and fixes, and one large (but mostly unintrusive) one.
  • Got rid of the SceneObject getUpper/Lower/X/Y/Z() functions. Debated just deprecating, but since they only had one typical equivalent value that used function calls on the same object to calculate. Adjust your code accordingly.
  • Added Common.close(Closeable).
  • Fixed: A particularly bad bug in Scene2D where Pair memory was re-used instead of re-instantiated, changing grid coordinates for all members of the Scene!
  • Changed GridMap.get(int, int) so that it returns null if a set of coordinates off the grid is entered.
  • Changed Wave: offset is a double, not float.
  • Added Wave.getSample(int).

Updates to Commons and Lang Link to this entry.
Tags: Library, Update

The Commons and Common Lang libraries were updated to version 2.2.0, and 2.0.1, respectively.

For Commons:

  • Changed internals of the abstract data structures so that repetitive gets, iterations, and other operations do not create new objects.
  • Added new interface that extends Iterator, ResettableIterator, which contains a reset() method that will set the iterator back to the beginning of the structure it was created for, as though it were just created. The general policy of reset() is that it will not create additional objects to reset itself.
  • All iterable structures now return a "ResettableIterator" class.
  • Changed Ticker: it is now very, very accurate.
  • Scene2D changed a lot. Generates no additional memory for lookups and visibility checks.
  • Added: randElement(Random, T ... objects) to RMath.
  • Fixed: SparseGridMap's get(x,y) method did not correct bounds by wrap type.
  • Added: SparseQueueGridMap.
  • Added: FloatGrid.
  • Added: AbstractVector.replace(int, T).
  • Fixed: GridMap contained its own wrapping fields which undermined its parent class's fields. These have been removed.
  • Added: Polynomial.

And one little change to Common Lang:

  • Fixed some end of block comments in Lexer not being detected.

Fixing Up Commons Link to this entry.
Tags: Library, Update

The Commons library was updated to version 2.1.0, and with that come these wonderful changes...
  • Removed update() from Scene2D.
  • Fixed a bunch of places where AbstractLinkedList could break itself.
  • Made all public entry points into Scene2D synchronized.
  • Added "package-info" files to commons packages.
  • Added Matrix4F and changed a method or two in Matrix4D.
  • Changed internal datatype for Matrix4D in order to be consistent with the other *D structures.

Ch-Ch-Ch-Changes Link to this entry.
Tags: Important, Library, Update, New

Hey, everybody. Just got done with that revamp I posted about. Half a year later and everything gets better!

The sidebar has more stuff on it than last time - mostly due to the splitting of Commons into sibling projects.

All projects have been upgraded to version 2.0, mostly due to the Commons series of libraries changing. If you need the older versions, they're under "Other Downloads" on the right. Nightly (or almost-nightly) builds of the projects are available, too - but I cannot guarantee the stability of the nightlies, programming-wise or structure-wise.

Javadocs of course have been updated as well, and can be found in pretty much the same place as last time.

Okay, that's it! Thanks for your patience!


Coming Soon and Slated Changes Link to this entry.
Tags: Information, Update

After much deliberation, I have decided that Commons requires a complete revamp, or maybe packaged into smaller libraries. It may take a while to sift through the code and figure out what is crap and what isn't crap, and figure out what to keep and what to give the axe. Needless to say, the face of that project will change completely. Once the new version of the Commons libraries is released, newer versions of the existing projects will be released that will use the newer version of Commons.

Of course, this is not to say that Commons as it stands is crap, per se - everything is still completely functional. It could just be better, is all. ;)

Also, in the future, Black Rook is planning preliminary versions of the upcoming OpenGL and OpenAL encapsulation libraries, the purpose of which would be object-orienting the OpenGL and OpenAL contexts, and well as adding some helpful utility classes, so that's something to at least look forward to.

Also Doom Struct has been updated to 1.6.2:

  • Fixed: Some versions of Doom (i.e. the "vanilla" ones) may rely on a particular lump order for entries in maps. WadIO has been changed to reflect this.
  • Fixed: Doom-compatibility checking for linedefs allowed up to 32767 sidedefs when it should have been 65535.

Updates and Fixes Link to this entry.
Tags: Library, Update

After quite a long time, there have been additions and fixes to the Commons project and Doom Struct project, respectively.

Changes to Commons:

  • Added: GradientAbstract to math package for creating sampleable gradient types.
  • Changed: SortedMap now extends VectorAbstract. Because of this, the value-fetching function was changed to getValue() and U removeIndex() was changed to U removeValueAtIndex() in order to clear up ambiguities, and the protected methods swap() and compare() have been removed entirely. Naturally, this may end up breaking programs. Please update your code to the new functions.
  • Changed: SortedVector and ComparatorVector to use sort() and not its own methods. The sorting methods in those classes have been deprecated as of this version.
  • Added: RWaveTypeField: For setting/getting wave forms.
  • Changed: RColorField: The edit cells are expandable with the field's size, but not the selector button.
  • Added: VectorAbstract.sort(int startIndex, int endIndex) for sorting within a range.
  • Added: WaveUtils.createNoiseWave() for creating Noise functions.
  • Added: Rectangle2D/F to com.blackrook.math.
  • Added: coalesce(T ... objects) to Defs. Returns the first non-null object in the list.
  • Added: New constructor for Wave. Made sense to add it. You'll know it when you see it.
The changes to Doom Struct, however, are far less numerous:
  • Fixed: Saving a Doom or Strife-format Thing would fail if saved as anything other than Hexen type.
  • Fixed: Saving a Doom or Strife-format Linedef would fail if saved as anything other than Hexen type.
  • Fixed: "-" should be a valid character in entries and textures.
So, go to the Downloads section and get them!
Commons and Scripting Fixes and Additions Link to this entry.
Tags: Library, Update

Changes have been made to both the Commons and Scripting libraries, which brings each project up to 1.7.0 and 1.2.0, respectively.

Changes to Commons:

  • Fixed: Wave.getInterpolatedValue(long, int, int) was not returning the correct upper bound value in certain cases.
  • Added: Class DataGrid for storing two-dimensional data to be used for grid-oriented data. It's essentially a non-jagged multidimensional array, but it contains other useful methods.
  • Fixed: LL.remove(T) would not return true for items in the middle of the list if removed successfully. Geez, one day I'm gonna rewrite this sucker...
  • Changed: Ticker uses an interrupt now to stop() the underlying ticker thread. Safer in cases of race conditions.

Changes to Scripting:

  • Added: SimpleScriptEngine.callScript(String, String) for instantiating scripts at a particular label.
  • Added: Additional methods to SimpleScriptInterpreter for using interpreters as a pool.
  • Fixed: ControlInterpreter had a slightly buggy implementation of integers and incerement/decrement. This has been fixed.

< Previous Page Next Page >