13
0
geforkt von Mirrors/Paper

Provide a faster way to get a location. Adds BUKKIT-3120

Currently when a plugin wants to get the location of something it calls
getLocation() which returns a new Location object. In some scenarios this
can cause enough object creation/destruction churn to be a significant
overhead. For this cases we add a method that updates a provided Location
object so there is no object creation done. This allows well written code
to work on several locations with only a single Location object getting
created.

Providing a more efficient way to set a location was also looked at but
the current solution is the fastest we can provide. You are not required
to create a new Location object every time you want to set something's
location so, with proper design, you can set locations with only a single
Location object being created.

By: Travis Watkins <amaranth@ubuntu.com>
Dieser Commit ist enthalten in:
Bukkit/Spigot 2012-12-07 19:48:19 -06:00
Ursprung 3cf005da64
Commit c87e48bb00
3 geänderte Dateien mit 24 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -137,6 +137,14 @@ public interface Block extends Metadatable {
*/
Location getLocation();
/**
* Stores the location of the block in the provided Location object.<br />
* If the provided Location is null this method does nothing and returns null.
*
* @return The Location object provided or null
*/
Location getLocation(Location loc);
/**
* Gets the chunk which contains this block
*

Datei anzeigen

@ -87,6 +87,14 @@ public interface BlockState extends Metadatable {
*/
Location getLocation();
/**
* Stores the location of this block in the provided Location object.<br />
* If the provided Location is null this method does nothing and returns null.
*
* @return The Location object provided or null
*/
Location getLocation(Location loc);
/**
* Gets the chunk which contains this block
*

Datei anzeigen

@ -24,6 +24,14 @@ public interface Entity extends Metadatable {
*/
public Location getLocation();
/**
* Stores the entity's current position in the provided Location object.<br />
* If the provided Location is null this method does nothing and returns null.
*
* @return The Location object provided or null
*/
public Location getLocation(Location loc);
/**
* Sets this entity's velocity
*