mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-27 23:10:16 +01:00
Added chunk, world and block interfaces
By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
parent
8f8f4aef90
commit
a2d9b84796
4 changed files with 176 additions and 0 deletions
88
paper-api/src/org/bukkit/Block.java
Normal file
88
paper-api/src/org/bukkit/Block.java
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
|
||||||
|
package org.bukkit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a block
|
||||||
|
*/
|
||||||
|
public interface Block {
|
||||||
|
/**
|
||||||
|
* Gets the metadata for this block
|
||||||
|
*
|
||||||
|
* @return block specific metadata
|
||||||
|
*/
|
||||||
|
byte getData();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the block at the given face
|
||||||
|
*
|
||||||
|
* @param face Face of this block to return
|
||||||
|
* @return Block at the given face
|
||||||
|
*/
|
||||||
|
Block getFace(final BlockFace face);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the block at the given offsets
|
||||||
|
*
|
||||||
|
* @param modX X-coordinate offset
|
||||||
|
* @param modY Y-coordinate offset
|
||||||
|
* @param modZ Z-coordinate offset
|
||||||
|
* @return Block at the given offsets
|
||||||
|
*/
|
||||||
|
Block getRelative(final int modX, final int modY, final int modZ);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the type-ID of this block
|
||||||
|
*
|
||||||
|
* @return block type-ID
|
||||||
|
*/
|
||||||
|
int getType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the world which contains this Block
|
||||||
|
*
|
||||||
|
* @return World containing this block
|
||||||
|
*/
|
||||||
|
World getWorld();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the x-coordinate of this block
|
||||||
|
*
|
||||||
|
* @return x-coordinate
|
||||||
|
*/
|
||||||
|
int getX();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the y-coordinate of this block
|
||||||
|
*
|
||||||
|
* @return y-coordinate
|
||||||
|
*/
|
||||||
|
int getY();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the z-coordinate of this block
|
||||||
|
*
|
||||||
|
* @return z-coordinate
|
||||||
|
*/
|
||||||
|
int getZ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the chunk which contains this block
|
||||||
|
*
|
||||||
|
* @return Containing Chunk
|
||||||
|
*/
|
||||||
|
Chunk getChunk();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the metadata for this block
|
||||||
|
*
|
||||||
|
* @param data New block specific metadata
|
||||||
|
*/
|
||||||
|
void setData(final byte data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the type-ID of this block
|
||||||
|
*
|
||||||
|
* @param type Type-ID to change this block to
|
||||||
|
*/
|
||||||
|
void setType(final int type);
|
||||||
|
}
|
47
paper-api/src/org/bukkit/BlockFace.java
Normal file
47
paper-api/src/org/bukkit/BlockFace.java
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
package org.bukkit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents the face of a block
|
||||||
|
*/
|
||||||
|
public enum BlockFace {
|
||||||
|
North(-1, 0, 0),
|
||||||
|
East(0, 0, -1),
|
||||||
|
South(1, 0, 0),
|
||||||
|
West(0, 0, 1),
|
||||||
|
Up(0, 1, 0),
|
||||||
|
Down(0, -1, 0);
|
||||||
|
|
||||||
|
private final int modX;
|
||||||
|
private final int modY;
|
||||||
|
private final int modZ;
|
||||||
|
|
||||||
|
private BlockFace(final int modX, final int modY, final int modZ) {
|
||||||
|
this.modX = modX;
|
||||||
|
this.modY = modY;
|
||||||
|
this.modZ = modZ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the amount of X-coordinates to modify to get the represented block
|
||||||
|
* @return Amount of X-coordinates to modify
|
||||||
|
*/
|
||||||
|
public int getModX() {
|
||||||
|
return modX;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the amount of Y-coordinates to modify to get the represented block
|
||||||
|
* @return Amount of Y-coordinates to modify
|
||||||
|
*/
|
||||||
|
public int getModY() {
|
||||||
|
return modY;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the amount of Z-coordinates to modify to get the represented block
|
||||||
|
* @return Amount of Z-coordinates to modify
|
||||||
|
*/
|
||||||
|
public int getModZ() {
|
||||||
|
return modZ;
|
||||||
|
}
|
||||||
|
}
|
23
paper-api/src/org/bukkit/Chunk.java
Normal file
23
paper-api/src/org/bukkit/Chunk.java
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
|
||||||
|
package org.bukkit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a chunk of blocks
|
||||||
|
*/
|
||||||
|
public interface Chunk {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the X-coordinate of this chunk
|
||||||
|
*
|
||||||
|
* @return X-coordinate
|
||||||
|
*/
|
||||||
|
int getX();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the Z-coordinate of this chunk
|
||||||
|
*
|
||||||
|
* @return Z-coordinate
|
||||||
|
*/
|
||||||
|
int getZ();
|
||||||
|
|
||||||
|
}
|
18
paper-api/src/org/bukkit/World.java
Normal file
18
paper-api/src/org/bukkit/World.java
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
package org.bukkit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a world.
|
||||||
|
*
|
||||||
|
* Currently there is only one world in the default Minecraft spec, but this
|
||||||
|
* may change with the addition of a functional Nether world
|
||||||
|
*/
|
||||||
|
public interface World {
|
||||||
|
public Block getBlockAt(int x, int y, int z);
|
||||||
|
|
||||||
|
public Chunk getChunkAt(int x, int z);
|
||||||
|
|
||||||
|
public Chunk getChunkAt(Block block);
|
||||||
|
|
||||||
|
public boolean isChunkLoaded();
|
||||||
|
}
|
Loading…
Reference in a new issue