mirror of
https://github.com/Cubitect/cubiomes.git
synced 2025-09-23 03:33:50 -04:00
More expressive dimensions
This commit is contained in:
parent
81adef19bf
commit
a89d2cf9c9
@ -1854,7 +1854,7 @@ int isViableStructurePos(int structureType, Generator *g, int x, int z, uint32_t
|
|||||||
int id;
|
int id;
|
||||||
|
|
||||||
|
|
||||||
if (g->dim == -1) // Nether
|
if (g->dim == DIM_NETHER)
|
||||||
{
|
{
|
||||||
if (structureType == Fortress && g->mc <= MC_1_17)
|
if (structureType == Fortress && g->mc <= MC_1_17)
|
||||||
return 1;
|
return 1;
|
||||||
@ -1893,7 +1893,7 @@ int isViableStructurePos(int structureType, Generator *g, int x, int z, uint32_t
|
|||||||
id = getBiomeAt(g, 4, sampleX, sampleY, sampleZ);
|
id = getBiomeAt(g, 4, sampleX, sampleY, sampleZ);
|
||||||
return isViableFeatureBiome(g->mc, structureType, id);
|
return isViableFeatureBiome(g->mc, structureType, id);
|
||||||
}
|
}
|
||||||
else if (g->dim == +1) // End
|
else if (g->dim == DIM_END)
|
||||||
{
|
{
|
||||||
switch (structureType)
|
switch (structureType)
|
||||||
{
|
{
|
||||||
@ -2978,7 +2978,7 @@ int checkForBiomes(
|
|||||||
return 0;
|
return 0;
|
||||||
int i, j, k, ret;
|
int i, j, k, ret;
|
||||||
|
|
||||||
if (g->mc <= MC_1_17 && dim == 0)
|
if (g->mc <= MC_1_17 && dim == DIM_OVERWORLD)
|
||||||
{
|
{
|
||||||
Layer *entry = (Layer*) getLayerForScale(g, r.scale);
|
Layer *entry = (Layer*) getLayerForScale(g, r.scale);
|
||||||
ret = checkForBiomesAtLayer(&g->ls, entry, cache, seed,
|
ret = checkForBiomesAtLayer(&g->ls, entry, cache, seed,
|
||||||
|
18
generator.c
18
generator.c
@ -62,7 +62,7 @@ int mapOceanMixMod(const Layer * l, int * out, int x, int z, int w, int h)
|
|||||||
void setupGenerator(Generator *g, int mc, uint32_t flags)
|
void setupGenerator(Generator *g, int mc, uint32_t flags)
|
||||||
{
|
{
|
||||||
g->mc = mc;
|
g->mc = mc;
|
||||||
g->dim = 1000; // not initialized
|
g->dim = DIM_UNDEF;
|
||||||
g->flags = flags;
|
g->flags = flags;
|
||||||
g->seed = 0;
|
g->seed = 0;
|
||||||
g->sha = 0;
|
g->sha = 0;
|
||||||
@ -98,24 +98,24 @@ void applySeed(Generator *g, int dim, uint64_t seed)
|
|||||||
g->seed = seed;
|
g->seed = seed;
|
||||||
g->sha = 0;
|
g->sha = 0;
|
||||||
|
|
||||||
if (dim == 0)
|
if (dim == DIM_OVERWORLD)
|
||||||
{
|
{
|
||||||
if (g->mc <= MC_1_17)
|
if (g->mc <= MC_1_17)
|
||||||
setLayerSeed(g->entry ? g->entry : g->ls.entry_1, seed);
|
setLayerSeed(g->entry ? g->entry : g->ls.entry_1, seed);
|
||||||
else
|
else
|
||||||
setBiomeSeed(&g->bn, seed, g->flags & LARGE_BIOMES);
|
setBiomeSeed(&g->bn, seed, g->flags & LARGE_BIOMES);
|
||||||
}
|
}
|
||||||
else if (dim == -1 && g->mc >= MC_1_16)
|
else if (dim == DIM_NETHER && g->mc >= MC_1_16)
|
||||||
{
|
{
|
||||||
setNetherSeed(&g->nn, seed);
|
setNetherSeed(&g->nn, seed);
|
||||||
}
|
}
|
||||||
else if (dim == +1 && g->mc >= MC_1_9)
|
else if (dim == DIM_END && g->mc >= MC_1_9)
|
||||||
{
|
{
|
||||||
setEndSeed(&g->en, seed);
|
setEndSeed(&g->en, seed);
|
||||||
}
|
}
|
||||||
if (g->mc >= MC_1_15)
|
if (g->mc >= MC_1_15)
|
||||||
{
|
{
|
||||||
if (g->mc <= MC_1_17 && dim == 0 && !g->entry)
|
if (g->mc <= MC_1_17 && dim == DIM_OVERWORLD && !g->entry)
|
||||||
g->sha = g->ls.entry_1->startSalt;
|
g->sha = g->ls.entry_1->startSalt;
|
||||||
else
|
else
|
||||||
g->sha = getVoronoiSHA(seed);
|
g->sha = getVoronoiSHA(seed);
|
||||||
@ -129,7 +129,7 @@ size_t getMinCacheSize(const Generator *g, int scale, int sx, int sy, int sz)
|
|||||||
sy = 1;
|
sy = 1;
|
||||||
|
|
||||||
size_t len = (size_t)sx * sz * sy;
|
size_t len = (size_t)sx * sz * sy;
|
||||||
if (g->mc <= MC_1_17 && g->dim == 0)
|
if (g->mc <= MC_1_17 && g->dim == DIM_OVERWORLD)
|
||||||
{ // recursively check the layer stack for the max buffer
|
{ // recursively check the layer stack for the max buffer
|
||||||
const Layer *entry = getLayerForScale(g, scale);
|
const Layer *entry = getLayerForScale(g, scale);
|
||||||
if (!entry) {
|
if (!entry) {
|
||||||
@ -161,7 +161,7 @@ int genBiomes(const Generator *g, int *cache, Range r)
|
|||||||
int err = 1;
|
int err = 1;
|
||||||
int i, k;
|
int i, k;
|
||||||
|
|
||||||
if (g->dim == 0)
|
if (g->dim == DIM_OVERWORLD)
|
||||||
{
|
{
|
||||||
if (g->mc <= MC_1_17)
|
if (g->mc <= MC_1_17)
|
||||||
{
|
{
|
||||||
@ -181,11 +181,11 @@ int genBiomes(const Generator *g, int *cache, Range r)
|
|||||||
return genBiomeNoiseScaled(&g->bn, cache, r, g->mc, g->sha);
|
return genBiomeNoiseScaled(&g->bn, cache, r, g->mc, g->sha);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (g->dim == -1)
|
else if (g->dim == DIM_NETHER)
|
||||||
{
|
{
|
||||||
return genNetherScaled(&g->nn, cache, r, g->mc, g->sha);
|
return genNetherScaled(&g->nn, cache, r, g->mc, g->sha);
|
||||||
}
|
}
|
||||||
else if (g->dim == +1)
|
else if (g->dim == DIM_END)
|
||||||
{
|
{
|
||||||
return genEndScaled(&g->en, cache, r, g->mc, g->sha);
|
return genEndScaled(&g->en, cache, r, g->mc, g->sha);
|
||||||
}
|
}
|
||||||
|
9
layers.c
9
layers.c
@ -158,6 +158,15 @@ int isOverworld(int mc, int id)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getDimension(int id)
|
||||||
|
{
|
||||||
|
if (id >= small_end_islands && id <= end_barrens) return DIM_END;
|
||||||
|
if (id >= soul_sand_valley && id <= basalt_deltas) return DIM_NETHER;
|
||||||
|
if (id == the_end) return DIM_END;
|
||||||
|
if (id == nether_wastes) return DIM_NETHER;
|
||||||
|
return DIM_OVERWORLD;
|
||||||
|
}
|
||||||
|
|
||||||
int getMutated(int mc, int id)
|
int getMutated(int mc, int id)
|
||||||
{
|
{
|
||||||
switch (id)
|
switch (id)
|
||||||
|
9
layers.h
9
layers.h
@ -17,6 +17,14 @@ enum MCVersion
|
|||||||
MC_1_19, MC_NEWEST = MC_1_19,
|
MC_1_19, MC_NEWEST = MC_1_19,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum Dimension
|
||||||
|
{
|
||||||
|
DIM_NETHER = -1,
|
||||||
|
DIM_OVERWORLD = 0,
|
||||||
|
DIM_END = +1,
|
||||||
|
DIM_UNDEF = 1000,
|
||||||
|
};
|
||||||
|
|
||||||
enum BiomeID
|
enum BiomeID
|
||||||
{
|
{
|
||||||
none = -1,
|
none = -1,
|
||||||
@ -489,6 +497,7 @@ int genBiomeNoiseScaled(const BiomeNoise *bn, int *out, Range r, int mc, uint64_
|
|||||||
|
|
||||||
int biomeExists(int mc, int id);
|
int biomeExists(int mc, int id);
|
||||||
int isOverworld(int mc, int id);
|
int isOverworld(int mc, int id);
|
||||||
|
int getDimension(int id);
|
||||||
int getMutated(int mc, int id);
|
int getMutated(int mc, int id);
|
||||||
int getCategory(int mc, int id);
|
int getCategory(int mc, int id);
|
||||||
int areSimilar(int mc, int id1, int id2);
|
int areSimilar(int mc, int id1, int id2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user