Updates: Fast and Furious Edition Link to this entry.
Tags: Important, Library, Update

Hey, code junkies.

I'm probably going to hold off on announcing big changes to projects for the moment, as I'm currently tweaking the libraries at a rate that would just be weird to keep reporting.

So for now, just watch the Downloads page. Maybe I'll come up with a better way to announce changes in the future.

Updates of Doom (and Commons) Link to this entry.
Tags: Library, Update

Commons and Doom Struct receive more updates today. They aren't numerous, but important.

Changes to Commons for version 2.11.0 include:

  • Added: for "Mapped" structures.
  • Fixed: AbstractVector.add(int, Object) would occasionally throw an ArrayIndexOutOfBoundsException.

Changes to Doom Struct for version 2.7.0 include:

  • Requires: Commons 2.11.0
  • Changed: TextureLump and PatchNameLump now extend CaseInsensitiveMappedVector.
  • Fixed: DoomWad.addAll(String[], byte[][]) didn't work. Now it does!

Updates All Around Link to this entry.
Tags: Library, Update

Hey, all.

A bunch of projects have received updates, but two of the projects have received major ones, and those are Commons and Doom Struct.

Changes to Commons for version 2.10.0 include:

  • Added: AbstractVector.swap(int, int) for swapping the position of two objects in the vector.
  • Added: AbstractVector.shift(int, int) for moving the position of an object in the vector, shifting the positions of the rest of objects if necessary.
  • Added: AbstractVector.shuffle(Random) for shuffling the order of objects in the vector.
  • Added: Common.digest(byte[], String) for other digests. sha1() and md5() now call this method, under the covers.
  • Added: Common.matchWildcardPattern(...) methods for matching DOS/UNIX-like file patterns.
  • Added: Common.setLocal and Common.getLocal for adding thread-specific variables.
  • Added: RMath.roundToNearest(double, double).
  • Added: RMath.getAngularDistanceDegrees/Radians().
  • Added: RMath.getVectorAngleDegrees/Radians().
  • Added: CustomWaveForm.setAmplitude(int).
  • Deprecated: RMath.getVectorAngle(). Use RMath.getVectorAngleDegrees() instead for clarity.
  • Fixed: RMath.getInterpolationFactor(double, double, double) would return NaN if lo and hi were equal. Now it returns 0.0 in this case.
  • Added: Rectangle2D.projectOnto(Tuple2D, Line2D) on Rectangle2D.
  • Added: Rectangle2F projectOnto(Tuple2F, Line2F) on Rectangle2F.
  • Deprecated: com.blackrook.commons.scene in favor of a better spatial hash package.
  • Added: The com.blackrook.commons.spatialhash package, the replacement for the scene package.

Changes to Doom Struct for version 2.6.0 include:

  • Added: Demo, a class that encapsulates Doom automated DEMO data.
  • Added: SoundData, a class that holds digital sound data.
  • Added: DoomWad.addAt(String, int, byte[]) for adding entries at specific indices.
  • Changed: Made some methods in WadFile and WadBuffer private instead of protected.
  • Removed: Vertex.callHexenCompatibilityCheck(), a call that was unnecessary.
  • Removed: A multitude of constructors for DoomMap that didn't need to exist. Sorry, users. You're better off without them, anyway.
  • Changed: A lot of code tweaks and other things in DoomMap.
  • Changed: You can disable any and all export checks in DoomObjectUtils by setting system property "com.blackrook.doom.DoomObjectUtils.disabled" to true.

Doom Struct: Fixed Edition Link to this entry.
Tags: Library, Update

Hey, all. I've updated the Doom library to version 2.5.0, and with it comes some badly-needed fixes:
  • Added: WadBuffer.writeToStream(OutputStream) and WadBuffer.writeToFile(File).
  • Fixed: Exception that occurred when opening a WAD with no entries.
  • Changed: Some additional changes to DoomMap and Animated to return Lists and not AbstractVectors. Little end-user refactoring needs to occur, if any.
  • Added: WadBuffer.set/getType() for assigning/getting WAD type to/from the buffer.
  • Fixed: DoomMap.makeUDMFMap(...) was not reading information properly due to an unresolved NullPointer bug.
  • Fixed: UDMFTable had an important data structure uninitialized in its constructor, meaning that this never worked! Boy, is my face red...
  • Fixed: DoomUtil.intuitGameType(DoomPK3 ...) looked in the wrong places for guessing via sector data.
  • Special Thanks: Ed Cripps, whose spectacular map, "Putrefier," helped me find all of these bugs!

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

Black Rook Commons was updated to version 2.9.0.
  • Fixed: Some documentation weirdness.
  • Fixed: clear()-ing AbstractChainHashes did not reset size. Now it does.
  • Added: Convenience methods to Common for opening buffered readers: openTextStream(InputStream), openTextFile(File), openTextFile(String), and openSystemIn().
  • Added: RMath.gcd(int, int) for finding the greatest common divisor of two numbers.
  • Added: Common.md5(byte[]) and Common.sha1(byte[]) for checksumming.
  • Added: HashedHashMap<K, V> and CaseInsensitiveHashedHashMap<V>, similar to HashedQueueMap<K, V> and CaseInsensitiveHashedQueueMap<V>, except it stores hashes, not queues.
  • Changed: In HashedHashMap, HashedQueueMap, CaseInsensitiveHashedHashMap, and CaseInsensitiveHashedQueueMap, if the last value is removed, the key is removed as well.
  • Added: Common.asBase64(InputStream, char, char) to Common for converting bytes to Base64 strings.
  • Added: Common.secureDelete(File, int) and Common.createJunkFile(File).

DataLanguage Plus Link to this entry.
Tags: Library, Update

The DataLanguage project has received a much-needed update to 2.3.0. Read the project page for more info.
  • Changed/Added: Allowed "multiple inheritance" and extra prototyping clauses.
  • Removed: Beginning comment from DLWriter.write().
  • Added: A proper DLStruct.toString() method.

Some Slight Refactoring Link to this entry.
Tags: Library, Update

So I may have done some slight refactoring in the Commons project, and that's going to trickle down into all of the other projects. That means all of the projects were updated, but the major changes happened in Commons:
  • Added: set(...) to Rectangle2F and Rectangle2D. No longer cares about AWT Rectangle classes. Not sure why it did in the first place.
  • Fixed: If CountMap.give(Object, int) resulted in a total of 0 in the map, it would still add the object. Now it doesn't.
  • Deprecated: The com.blackrook.commons.vector and everything in it has been deprecated, due to potential confusion with java.util.Vector and its synchronized methods. Also, "VolatileVector" is a lot to type, compared to "List".
  • Added: The com.blackrook.commons.list package, the replacement for the vector package.

  Next Page >