amidstest/src/main/java/amidst/mojangapi/minecraftinterface/MinecraftInterface.java

43 lines
1.7 KiB
Java

package amidst.mojangapi.minecraftinterface;
import amidst.documentation.ThreadSafe;
import amidst.mojangapi.world.WorldType;
/**
* Acts as an additional layer of abstraction for interfacing with Minecraft.
* This allows for other sources of data other than direct reflection against a
* loaded jar of Minecraft.
*
* Implementing classes need to be thread-safe!
*
* One minecraft interface can only handle one world at a time.
*/
@ThreadSafe
public interface MinecraftInterface {
/**
* @param useQuarterResolution
* Minecraft calculates biomes at quarter-resolution, then
* noisily interpolates the biome-map up to 1:1 resolution when
* needed, set useQuarterResolutionMap to true to read from the
* quarter-resolution map, or false to read values that have been
* interpolated up to full resolution.
*
* When useQuarterResolution is true, the x, y, width, and height
* paramaters must all correspond to a quarter of the Minecraft
* block coordinates/sizes you wish to obtain the biome data for.
*
* Amidst displays the quarter-resolution biome map, however full
* resolution is required to determine the position and nature of
* structures, as the noisy interpolation can change which biome
* a structure is located in (if the structure is located on a
* biome boundary).
*/
public int[] getBiomeData(int x, int y, int width, int height,
boolean useQuarterResolution) throws MinecraftInterfaceException;
public void createWorld(long seed, WorldType worldType,
String generatorOptions) throws MinecraftInterfaceException;
public RecognisedVersion getRecognisedVersion();
}