feat: TU19 (Dec 2014) Features & Content (#155)

* try to resolve merge conflict

* feat: TU19 (Dec 2014) Features & Content (#32)

* December 2014 files

* Working release build

* Fix compilation issues

* Add sound to Windows64Media

* Add DLC content and force Tutorial DLC

* Revert "Add DLC content and force Tutorial DLC"

This reverts commit 97a4399472.

* Disable broken light packing

* Disable breakpoint during DLC texture map load

Allows DLC loading but the DLC textures are still broken

* Fix post build not working

* ...

* fix vs2022 build

* fix cmake build

---------

Co-authored-by: Loki <lokirautio@gmail.com>
This commit is contained in:
daoge
2026-03-03 03:04:10 +08:00
committed by GitHub
parent 84c31a2331
commit b3feddfef3
2069 changed files with 264842 additions and 139522 deletions

View File

@@ -10,9 +10,10 @@
NetherBridgeFeature::NetherBridgeFeature() : StructureFeature()
{
bridgeEnemies.push_back(new Biome::MobSpawnerData(eTYPE_BLAZE, 10, 2, 3));
bridgeEnemies.push_back(new Biome::MobSpawnerData(eTYPE_PIGZOMBIE, 10, 4, 4));
bridgeEnemies.push_back(new Biome::MobSpawnerData(eTYPE_LAVASLIME, 3, 4, 4));
bridgeEnemies.push_back(new Biome::MobSpawnerData(eTYPE_BLAZE, 10, 2, 3));
bridgeEnemies.push_back(new Biome::MobSpawnerData(eTYPE_PIGZOMBIE, 5, 4, 4));
bridgeEnemies.push_back(new Biome::MobSpawnerData(eTYPE_SKELETON, 10, 4, 4));
bridgeEnemies.push_back(new Biome::MobSpawnerData(eTYPE_LAVASLIME, 3, 4, 4));
isSpotSelected=false;
netherFortressPos = NULL;
@@ -23,6 +24,11 @@ NetherBridgeFeature::~NetherBridgeFeature()
if( netherFortressPos != NULL ) delete netherFortressPos;
}
wstring NetherBridgeFeature::getFeatureName()
{
return L"Fortress";
}
vector<Biome::MobSpawnerData *> *NetherBridgeFeature::getBridgeEnemies()
{
return &bridgeEnemies;
@@ -48,7 +54,7 @@ bool NetherBridgeFeature::isFeatureChunk(int x, int z, bool bIsSuperflat)
isSpotSelected = true;
}
bool forcePlacement = false;
LevelGenerationOptions *levelGenOptions = app.getLevelGenerationOptions();
if( levelGenOptions != NULL )
@@ -57,7 +63,7 @@ bool NetherBridgeFeature::isFeatureChunk(int x, int z, bool bIsSuperflat)
}
if(forcePlacement || (x == netherFortressPos->x && z == netherFortressPos->z) ) return true;
#ifdef _LARGE_WORLDS
int xzSize = level->dimension->getXZSize();
if(xzSize > 30)
@@ -90,7 +96,7 @@ bool NetherBridgeFeature::isFeatureChunk(int x, int z, bool bIsSuperflat)
StructureStart *NetherBridgeFeature::createStructureStart(int x, int z)
{
return new NetherBridgeStart(level, random, x, z);
return new NetherBridgeStart(level, random, x, z);
}
void NetherBridgeFeature::clearCachedBuildings()
@@ -98,22 +104,27 @@ void NetherBridgeFeature::clearCachedBuildings()
cachedStructures.clear();
}
NetherBridgeFeature::NetherBridgeStart::NetherBridgeStart(Level *level, Random *random, int chunkX, int chunkZ) : StructureStart()
NetherBridgeFeature::NetherBridgeStart::NetherBridgeStart()
{
NetherBridgePieces::StartPiece *start = new NetherBridgePieces::StartPiece(random, (chunkX << 4) + 2, (chunkZ << 4) + 2, level);
pieces.push_back(start);
start->addChildren(start, &pieces, random);
vector<StructurePiece *> *pendingChildren = &start->pendingChildren;
while (!pendingChildren->empty())
{
int pos = random->nextInt((int)pendingChildren->size());
AUTO_VAR(it, pendingChildren->begin() + pos);
StructurePiece *structurePiece = *it;
pendingChildren->erase(it);
structurePiece->addChildren(start, &pieces, random);
}
calculateBoundingBox();
moveInsideHeights(level, random, 48, 70);
// for reflection
}
NetherBridgeFeature::NetherBridgeStart::NetherBridgeStart(Level *level, Random *random, int chunkX, int chunkZ) : StructureStart(chunkX, chunkZ)
{
NetherBridgePieces::StartPiece *start = new NetherBridgePieces::StartPiece(random, (chunkX << 4) + 2, (chunkZ << 4) + 2, level);
pieces.push_back(start);
start->addChildren(start, &pieces, random);
vector<StructurePiece *> *pendingChildren = &start->pendingChildren;
while (!pendingChildren->empty())
{
int pos = random->nextInt((int)pendingChildren->size());
AUTO_VAR(it, pendingChildren->begin() + pos);
StructurePiece *structurePiece = *it;
pendingChildren->erase(it);
structurePiece->addChildren(start, &pieces, random);
}
calculateBoundingBox();
moveInsideHeights(level, random, 48, 70);
}