Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
4.4 kB · 153 lines
C++
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153#include "stdafx.h"#include "Arrays.h"#include "FixedBiomeSource.h"
FixedBiomeSource::FixedBiomeSource(Biome *fixed, float temperature, float downfall){ biome = fixed; this->temperature = temperature; this->downfall = downfall;}
Biome *FixedBiomeSource::getBiome(ChunkPos *cp){ return biome;}
Biome *FixedBiomeSource::getBiome(int x, int z){ return biome;}
float FixedBiomeSource::getTemperature(int x, int z){ return temperature;}
void FixedBiomeSource::getTemperatureBlock(floatArray& temperatures, int x, int z, int w, int h) const{ if (temperatures.data == NULL || temperatures.length < w * h) { if(temperatures.data != NULL) delete [] temperatures.data; temperatures = floatArray(w * h); }
Arrays::fill(temperatures, 0, w * h, temperature);}
floatArray FixedBiomeSource::getTemperatureBlock(int x, int z, int w, int h) const{ floatArray temps(w*h); getTemperatureBlock(temps, x, z, w, h); return temps;}
// 4J - note that caller is responsible for deleting returned array. temperatures array is for output only.void FixedBiomeSource::getTemperatureBlock(doubleArray& temperatures, int x, int z, int w, int h) const{ temperatures = doubleArray(w * h);
Arrays::fill(temperatures, 0, w * h, (double)temperature);}
void FixedBiomeSource::getDownfallBlock(floatArray &downfalls, int x, int z, int w, int h) const{ if (downfalls.data == NULL || downfalls.length < w * h) { if(downfalls.data != NULL) delete [] downfalls.data; downfalls = floatArray(w * h); } Arrays::fill(downfalls, 0, w * h, downfall);}
floatArray FixedBiomeSource::getDownfallBlock(int x, int z, int w, int h) const{ floatArray downfalls(w*h); getDownfallBlock(downfalls, x, z, w, h); return downfalls;}
float FixedBiomeSource::getDownfall(int x, int z) const{ return downfall;}
void FixedBiomeSource::getDownfallBlock(doubleArray downfalls, int x, int z, int w, int h){ if (downfalls.data == NULL || downfalls.length < w * h) { if(downfalls.data != NULL) delete [] downfalls.data; downfalls = doubleArray(w * h); } Arrays::fill(downfalls, 0, w * h, (double) downfall);}
// 4J - caller is responsible for deleting biomes array, plus any optional arrays output if pointers are passed in (_temperatures, _downfalls)void FixedBiomeSource::getBiomeBlock(BiomeArray& biomes, int x, int z, int w, int h, bool useCache) const{ MemSect(36); biomes = BiomeArray(w * h); MemSect(0);
Arrays::fill(biomes, 0, w * h, biome);}
// 4J - caller is responsible for deleting biomes array, plus any optional arrays output if pointers are passed in (_temperatures, _downfalls)void FixedBiomeSource::getBiomeIndexBlock(byteArray& biomeIndices, int x, int z, int w, int h, bool useCache) const{ MemSect(36); biomeIndices = byteArray(w * h); MemSect(0); int biomeIndex = biome->id; Arrays::fill(biomeIndices, 0, w * h, biomeIndex);}
// 4J-PB added in from beyond 1.8.2// 4J - caller is responsible for deleting biomes array, plus any optional arrays output if pointers are passed in (_temperatures, _downfalls)void FixedBiomeSource::getRawBiomeBlock(BiomeArray& biomes,int x, int z, int w, int h) const{ MemSect(36); biomes = BiomeArray(w * h); MemSect(0);
Arrays::fill(biomes, 0, w * h, biome);}
// 4J-PB added in from beyond 1.8.2// 4J - caller is responsible for deleting biomes array, plus any optional arrays output if pointers are passed in (_temperatures, _downfalls)BiomeArray FixedBiomeSource::getRawBiomeBlock( int x, int z, int w, int h) const{ BiomeArray biomes; getRawBiomeBlock(biomes, x, z, w, h); return biomes;}
TilePos *FixedBiomeSource::findBiome(int x, int z, int r, Biome *toFind, Random *random){ if (toFind == biome) { return new TilePos(x - r + random->nextInt(r * 2 + 1), 0, z - r + random->nextInt(r * 2 + 1)); }
return NULL;}
TilePos *FixedBiomeSource::findBiome(int x, int z, int r, vector<Biome *> allowed, Random *random){ if (find(allowed.begin(), allowed.end(), biome) != allowed.end()) { return new TilePos(x - r + random->nextInt(r * 2 + 1), 0, z - r + random->nextInt(r * 2 + 1)); }
return NULL;}
bool FixedBiomeSource::containsOnly(int x, int z, int r, Biome *allowed){ return allowed == biome;}
bool FixedBiomeSource::containsOnly(int x, int z, int r, vector<Biome *> allowed){ return find(allowed.begin(), allowed.end(), biome) != allowed.end();}