Files
BluTac10-Xbox_Neo/Minecraft.World/MutatedBiome.cpp
Lord Cambion 10b7fc36d3 Biome Update!
2026-03-26 20:37:51 +01:00

92 lines
3.1 KiB
C++

#include "stdafx.h"
#include "MutatedBiome.h"
#include "BiomeDecorator.h"
#include "Level.h"
#include "Random.h"
#include "ChunkPrimer.h"
MutatedBiome::MutatedBiome(int id, Biome* baseBiome)
: Biome(id), m_baseBiome(baseBiome)
{
if (!baseBiome) return;
color = baseBiome->color;
topMaterial = baseBiome->topMaterial;
material = baseBiome->material;
leafColor = baseBiome->leafColor;
depth = baseBiome->depth + 0.1f;
scale = baseBiome->scale + 0.2f;
temperature = baseBiome->temperature;
downfall = baseBiome->downfall;
friendlies = baseBiome->friendlies;
enemies = baseBiome->enemies;
waterFriendlies = baseBiome->waterFriendlies;
friendlies_chicken = baseBiome->friendlies_chicken;
friendlies_wolf = baseBiome->friendlies_wolf;
friendlies_mushroomcow = baseBiome->friendlies_mushroomcow;
ambientFriendlies = baseBiome->ambientFriendlies;
m_waterColor = baseBiome->m_waterColor;
m_skyColor = baseBiome->m_skyColor;
m_name = baseBiome->m_name + L" Mutated";
// Copia parametri del decorator
if (decorator && baseBiome->decorator) {
decorator->treeCount = baseBiome->decorator->treeCount;
decorator->grassCount = baseBiome->decorator->grassCount;
decorator->flowerCount = baseBiome->decorator->flowerCount;
decorator->hugeMushrooms = baseBiome->decorator->hugeMushrooms;
// ... altri campi se necessari
}
}
MutatedBiome::~MutatedBiome() {}
Feature* MutatedBiome::getTreeFeature(Random* random) {
return m_baseBiome ? m_baseBiome->getTreeFeature(random) : Biome::getTreeFeature(random);
}
void MutatedBiome::decorate(Level* level, Random* rand, int xo, int zo) {
if (m_baseBiome)
m_baseBiome->decorate(level, rand, xo, zo);
else
Biome::decorate(level, rand, xo, zo);
}
int MutatedBiome::getGrassColor() const {
return m_baseBiome ? m_baseBiome->getGrassColor() : Biome::getGrassColor();
}
int MutatedBiome::getFoliageColor() const {
return m_baseBiome ? m_baseBiome->getFoliageColor() : Biome::getFoliageColor();
}
float MutatedBiome::getCreatureProbability() const
{
return m_baseBiome ? m_baseBiome->getCreatureProbability() : Biome::getCreatureProbability();
}
bool MutatedBiome::isSame(const Biome* other) const {
return m_baseBiome ? m_baseBiome->isSame(other) : Biome::isSame(other);
}
int MutatedBiome::getTemperatureCategory() const {
return m_baseBiome ? m_baseBiome->getTemperatureCategory() : Biome::getTemperatureCategory();
}
Feature* MutatedBiome::getFlowerFeature(Random* random, int x, int y, int z) {
return m_baseBiome ? m_baseBiome->getFlowerFeature(random, x, y, z) : Biome::getFlowerFeature(random, x, y, z);
}
int MutatedBiome::getRandomDoublePlantType(Random* random) {
return m_baseBiome ? m_baseBiome->getRandomDoublePlantType(random) : Biome::getRandomDoublePlantType(random);
}
void MutatedBiome::buildSurfaceAt(Level* level, Random* random, ChunkPrimer* primer, int x, int z, double noiseVal) {
if (m_baseBiome)
m_baseBiome->buildSurfaceAt(level, random, primer, x, z, noiseVal);
else
Biome::buildSurfaceAt(level, random, primer, x, z, noiseVal);
}