diff --git a/LiteLoader/Header/MC/BlockSource.hpp b/LiteLoader/Header/MC/BlockSource.hpp index 475036f..ea72848 100644 --- a/LiteLoader/Header/MC/BlockSource.hpp +++ b/LiteLoader/Header/MC/BlockSource.hpp @@ -27,7 +27,7 @@ public: inline AutomaticID getDimensionId() const{ //Dimension::onBlockEvent Line24 // Dimension* mDimension = dAccess< Dimension*>(this, 4); - return dAccess>(getDimension(), 192); + return this->getDimension()->getDimensionId(); }; inline LevelChunk * getChunkAt(const BlockPos& pos) const{ ChunkPos chunkPos = ChunkPos(pos.x>>4, pos.z>>4); diff --git a/LiteLoader/Header/MC/Dimension.hpp b/LiteLoader/Header/MC/Dimension.hpp index 85916b4..0be90cc 100644 --- a/LiteLoader/Header/MC/Dimension.hpp +++ b/LiteLoader/Header/MC/Dimension.hpp @@ -4,7 +4,16 @@ #include "../Global.h" #define BEFORE_EXTRA -#include "MC/BlockSource.hpp" +class BlockSource; + +class DimensionHeightRange +{ +public: + short min = 0; + short max; + + DimensionHeightRange(short a):max(a){}; +}; #undef BEFORE_EXTRA class Dimension { @@ -23,6 +32,14 @@ public: //Player::checkSpawnBlock Line19 return dAccess>(this,192); }; + inline DimensionHeightRange const & getHeightRange() const{ + // 0为主世界,1为下界,2为末地 + if(this->getDimensionId() == 2 || this->getDimensionId() == 0) + return DimensionHeightRange(255); + else if(this->getDimensionId() == 1) + return DimensionHeightRange(127); + return DimensionHeightRange(0); + }; #undef AFTER_EXTRA #ifndef DISABLE_CONSTRUCTOR_PREVENTION_DIMENSION public: