обновление интерфейсов пакета mc.core.world.*
выделены методы для локальных и глобальных координат + добавлена документация
This commit is contained in:
@@ -1,7 +1,3 @@
|
||||
/*
|
||||
* DmitriyMX <dimon550@gmail.com>
|
||||
* 2018-04-15
|
||||
*/
|
||||
package mc.core.world;
|
||||
|
||||
import mc.core.EntityLocation;
|
||||
@@ -21,14 +17,26 @@ public interface World {
|
||||
setSpawn(x, y, z, 0f, 0f);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить чанк по координатам
|
||||
* @param x глобальный X
|
||||
* @param z глобальный Z
|
||||
* @return {@link mc.core.world.chunk.Chunk}
|
||||
*/
|
||||
Chunk getChunk(int x, int z);
|
||||
void setChunk(int x, int z, Chunk chunkSection);
|
||||
|
||||
default Chunk getChunk(BlockLocation location) {
|
||||
return getChunk(location.getX() >> 4, location.getZ() >> 4);
|
||||
}
|
||||
|
||||
default Chunk getChunk(EntityLocation location) {
|
||||
return getChunk(location.getBlockX() >> 4, location.getBlockZ() >> 4);
|
||||
}
|
||||
|
||||
/**
|
||||
* Установить чанк по координатам
|
||||
* @param x глобальный X
|
||||
* @param z глобальный Z
|
||||
* @param chunk {@link mc.core.world.chunk.Chunk}
|
||||
*/
|
||||
void setChunk(int x, int z, Chunk chunk);
|
||||
}
|
||||
|
||||
@@ -2,13 +2,67 @@ package mc.core.world.chunk;
|
||||
|
||||
import mc.core.world.Biome;
|
||||
|
||||
/* 16x256x16 */
|
||||
public interface Chunk {
|
||||
/**
|
||||
* Глобальная координата X
|
||||
* @return
|
||||
*/
|
||||
int getX();
|
||||
|
||||
/**
|
||||
* Глобальная координата Z
|
||||
* @return
|
||||
*/
|
||||
int getZ();
|
||||
|
||||
/**
|
||||
* Получить секцию чанка
|
||||
* @param height высота (0-15)
|
||||
* @return {@link mc.core.world.chunk.ChunkSection}
|
||||
*/
|
||||
ChunkSection getChunkSection(int height);
|
||||
|
||||
/**
|
||||
* Установить секцию чанка
|
||||
* @param height высота (0-15)
|
||||
* @param chunkSection {@link mc.core.world.chunk.ChunkSection}
|
||||
*/
|
||||
void setChunkSection(int height, ChunkSection chunkSection);
|
||||
|
||||
Biome getBiome(int localX, int localZ);
|
||||
void setBiome(int localX, int localZ, Biome biome);
|
||||
/**
|
||||
* Получиь данные по биому
|
||||
* @param x глобальный X
|
||||
* @param z глобальный Z
|
||||
* @return
|
||||
*/
|
||||
default Biome getBiome(int x, int z) {
|
||||
return getBiomeLocal(x >> 4, z >> 4);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получиь данные по биому
|
||||
* @param x локальный X (0-15)
|
||||
* @param z локальный Z (0-15)
|
||||
* @return
|
||||
*/
|
||||
Biome getBiomeLocal(int x, int z);
|
||||
|
||||
/**
|
||||
* Указать данные по биому
|
||||
* @param x глобальный X
|
||||
* @param z глобальный Z
|
||||
* @param biome {@link mc.core.world.Biome}
|
||||
*/
|
||||
default void setBiome(int x, int z, Biome biome) {
|
||||
setBiomeLocal(x >> 4, z >> 4, biome);
|
||||
}
|
||||
|
||||
/**
|
||||
* Указать данные по биому
|
||||
* @param x локальный X (0-15)
|
||||
* @param z локальный Z (0-15)
|
||||
* @param biome {@link mc.core.world.Biome}
|
||||
*/
|
||||
void setBiomeLocal(int x, int z, Biome biome);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
package mc.core.world.chunk;
|
||||
|
||||
public interface ChunkProvider {
|
||||
/**
|
||||
* Получить чанк по координатам
|
||||
* @param x глобальный X
|
||||
* @param z глобальный Z
|
||||
* @return {@link mc.core.world.chunk.Chunk}
|
||||
*/
|
||||
Chunk getChunk(int x , int z);
|
||||
|
||||
void saveChunk(Chunk chunk);
|
||||
|
||||
@@ -5,26 +5,108 @@ import mc.core.world.block.Block;
|
||||
|
||||
/* 16x16x16 */
|
||||
public interface ChunkSection {
|
||||
/**
|
||||
* Глобальная координата X
|
||||
* @return
|
||||
*/
|
||||
int getX();
|
||||
|
||||
/**
|
||||
* Высота
|
||||
* @return
|
||||
*/
|
||||
int getY();
|
||||
|
||||
/**
|
||||
* Глобальная координата Z
|
||||
* @return
|
||||
*/
|
||||
int getZ();
|
||||
|
||||
/**
|
||||
* Получить блок
|
||||
* @param x глобальный X
|
||||
* @param y глобальный Y
|
||||
* @param z глобальный Z
|
||||
* @return {@link mc.core.world.block.Block}
|
||||
*/
|
||||
default Block getBlock(int x, int y, int z) {
|
||||
return getBlockLocal(x >> 4, y >> 4, z >> 4);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить блок
|
||||
* @param x локальный X (0-15)
|
||||
* @param y локальный Y (0-15)
|
||||
* @param z локальный Z (0-15)
|
||||
* @return {@link mc.core.world.block.Block}
|
||||
*/
|
||||
Block getBlockLocal(int x, int y, int z);
|
||||
|
||||
/**
|
||||
* Установить блок
|
||||
* @param block {@link mc.core.world.block.Block}
|
||||
*/
|
||||
void setBlock(Block block);
|
||||
|
||||
/**
|
||||
* Получить блок по внутренним координатам
|
||||
* @param x X
|
||||
* @param y Y
|
||||
* @param z Z
|
||||
* @return {@link mc.core.world.block.Block}
|
||||
* Получить данные о естественной подсветке
|
||||
* @param x глобальный X
|
||||
* @param y глобальный Y
|
||||
* @param z глобальный Z
|
||||
* @return integer значение 0-15, где 0 - это света нет, а 15 - получает прямой солнечный свет
|
||||
*/
|
||||
Block getBlock(int x, int y, int z);
|
||||
default int getSkyLight(int x, int y, int z) {
|
||||
return getSkyLightLocal(x >> 4, y >> 4, z >> 4);
|
||||
}
|
||||
|
||||
int getSkyLight(int x, int y, int z);
|
||||
void setSkyLight(int x, int y, int z, int lightLevel);
|
||||
/**
|
||||
* Получить данные о естественной подсветке
|
||||
* @param x локальный X (0-15)
|
||||
* @param y локальный Y (0-15)
|
||||
* @param z локальный Z (0-15)
|
||||
* @return integer значение 0-15, где 0 - это света нет, а 15 - получает прямой солнечный свет
|
||||
*/
|
||||
int getSkyLightLocal(int x, int y, int z);
|
||||
|
||||
/**
|
||||
* Указать данные о естественной подсветке
|
||||
* @param x глобальный X
|
||||
* @param y глобальный Y
|
||||
* @param z глобальный Z
|
||||
* @param lightLevel значение 0-15, где 0 - это света нет, а 15 - получает прямой солнечный свет
|
||||
*/
|
||||
default void setSkyLight(int x, int y, int z, int lightLevel) {
|
||||
setSkyLightLocal(x >> 4, y >> 4, z >> 4, lightLevel);
|
||||
}
|
||||
|
||||
/**
|
||||
* Указать данные о естественной подсветке
|
||||
* @param x локальный X (0-15)
|
||||
* @param y локальный Y (0-15)
|
||||
* @param z локальный Z (0-15)
|
||||
* @param lightLevel значение 0-15, где 0 - это света нет, а 15 - получает прямой солнечный свет
|
||||
*/
|
||||
void setSkyLightLocal(int x, int y, int z, int lightLevel);
|
||||
|
||||
int getAddition(int x, int y, int z);
|
||||
void setAddition(int x, int y, int z, int value);
|
||||
|
||||
Biome getBiome(int localX, int localZ);
|
||||
/**
|
||||
* Получиь данные по биому
|
||||
* @param x глобальный X
|
||||
* @param z глобальный Z
|
||||
* @return
|
||||
*/
|
||||
default Biome getBiome(int x, int z) {
|
||||
return getBiomeLocal(x >> 4, z >> 4);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получиь данные по биому
|
||||
* @param x локальный X (0-15)
|
||||
* @param z локальный Z (0-15)
|
||||
* @return
|
||||
*/
|
||||
Biome getBiomeLocal(int x, int z);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user