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

44 lines
1.8 KiB
Java

package amidst.mojangapi.minecraftinterface;
import amidst.documentation.ThreadSafe;
import amidst.gameengineabstraction.GameEngineType;
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();
public GameEngineType getGameEngineType();
}