Merge branch 'master' into GeneratingBenchmark2
Conflicts: src/Blocks/BlockRail.h src/World.h
This commit is contained in:
@@ -22,6 +22,8 @@
|
||||
#include "Entities/Player.h"
|
||||
#include "Entities/TNTEntity.h"
|
||||
|
||||
#include "BlockEntities/CommandBlockEntity.h"
|
||||
|
||||
// Simulators:
|
||||
#include "Simulator/SimulatorManager.h"
|
||||
#include "Simulator/FloodyFluidSimulator.h"
|
||||
@@ -232,7 +234,11 @@ cWorld::cWorld(const AString & a_WorldName) :
|
||||
m_WorldName(a_WorldName),
|
||||
m_IniFileName(m_WorldName + "/world.ini"),
|
||||
m_StorageSchema("Default"),
|
||||
#ifdef _arm_
|
||||
m_StorageCompressionFactor(0),
|
||||
#else
|
||||
m_StorageCompressionFactor(6),
|
||||
#endif
|
||||
m_IsSpawnExplicitlySet(false),
|
||||
m_WorldAgeSecs(0),
|
||||
m_TimeOfDaySecs(0),
|
||||
@@ -523,7 +529,7 @@ void cWorld::Start(void)
|
||||
}
|
||||
|
||||
m_StorageSchema = IniFile.GetValueSet ("Storage", "Schema", m_StorageSchema);
|
||||
m_StorageCompressionFactor = IniFile.GetValueSetI ("Storage", "CompressionFactor", m_StorageCompressionFactor);
|
||||
m_StorageCompressionFactor = IniFile.GetValueSetI("Storage", "CompressionFactor", m_StorageCompressionFactor);
|
||||
m_MaxCactusHeight = IniFile.GetValueSetI("Plants", "MaxCactusHeight", 3);
|
||||
m_MaxSugarcaneHeight = IniFile.GetValueSetI("Plants", "MaxSugarcaneHeight", 3);
|
||||
m_IsCactusBonemealable = IniFile.GetValueSetB("Plants", "IsCactusBonemealable", false);
|
||||
@@ -540,6 +546,7 @@ void cWorld::Start(void)
|
||||
m_bEnabledPVP = IniFile.GetValueSetB("PVP", "Enabled", true);
|
||||
m_IsDeepSnowEnabled = IniFile.GetValueSetB("Physics", "DeepSnow", false);
|
||||
m_ShouldLavaSpawnFire = IniFile.GetValueSetB("Physics", "ShouldLavaSpawnFire", true);
|
||||
m_bCommandBlocksEnabled = IniFile.GetValueSetB("Mechanics", "CommandBlocksEnabled", false);
|
||||
|
||||
m_GameMode = (eGameMode)IniFile.GetValueSetI("GameMode", "GameMode", m_GameMode);
|
||||
|
||||
@@ -2333,7 +2340,7 @@ bool cWorld::FindAndDoWithPlayer(const AString & a_PlayerNameHint, cPlayerListCa
|
||||
|
||||
|
||||
// TODO: This interface is dangerous!
|
||||
cPlayer * cWorld::FindClosestPlayer(const Vector3f & a_Pos, float a_SightLimit)
|
||||
cPlayer * cWorld::FindClosestPlayer(const Vector3f & a_Pos, float a_SightLimit, bool a_CheckLineOfSight)
|
||||
{
|
||||
cTracer LineOfSight(this);
|
||||
|
||||
@@ -2348,7 +2355,12 @@ cPlayer * cWorld::FindClosestPlayer(const Vector3f & a_Pos, float a_SightLimit)
|
||||
|
||||
if (Distance < ClosestDistance)
|
||||
{
|
||||
if (!LineOfSight.Trace(a_Pos,(Pos - a_Pos),(int)(Pos - a_Pos).Length()))
|
||||
if (a_CheckLineOfSight && !LineOfSight.Trace(a_Pos,(Pos - a_Pos),(int)(Pos - a_Pos).Length()))
|
||||
{
|
||||
ClosestDistance = Distance;
|
||||
ClosestPlayer = *itr;
|
||||
}
|
||||
else
|
||||
{
|
||||
ClosestDistance = Distance;
|
||||
ClosestPlayer = *itr;
|
||||
@@ -2528,6 +2540,28 @@ bool cWorld::UpdateSign(int a_BlockX, int a_BlockY, int a_BlockZ, const AString
|
||||
|
||||
|
||||
|
||||
bool cWorld::SetCommandBlockCommand(int a_BlockX, int a_BlockY, int a_BlockZ, const AString & a_Command)
|
||||
{
|
||||
class cUpdateCommandBlock : public cCommandBlockCallback
|
||||
{
|
||||
AString m_Command;
|
||||
public:
|
||||
cUpdateCommandBlock(const AString & a_Command) : m_Command(a_Command) {}
|
||||
|
||||
virtual bool Item(cCommandBlockEntity * a_CommandBlock) override
|
||||
{
|
||||
a_CommandBlock->SetCommand(m_Command);
|
||||
return false;
|
||||
}
|
||||
} CmdBlockCB (a_Command);
|
||||
|
||||
return DoWithCommandBlockAt(a_BlockX, a_BlockY, a_BlockZ, CmdBlockCB);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cWorld::ChunksStay(const cChunkCoordsList & a_Chunks, bool a_Stay)
|
||||
{
|
||||
m_ChunkMap->ChunksStay(a_Chunks, a_Stay);
|
||||
|
||||
Reference in New Issue
Block a user