diff options
Diffstat (limited to 'src/BlockArea.h')
-rw-r--r-- | src/BlockArea.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/BlockArea.h b/src/BlockArea.h index d28325d7d..c48175b8c 100644 --- a/src/BlockArea.h +++ b/src/BlockArea.h @@ -51,6 +51,9 @@ public: msFillAir, msImprint, msLake, + msSpongePrint, + msDifference, + msMask, } ; cBlockArea(void); @@ -127,8 +130,8 @@ public: - msFillAir overwrites only those blocks that were air - msImprint overwrites with only those blocks that are non-air - Special strategies: - msLake (evaluate top-down, first match wins): + Special strategies (evaluate top-down, first match wins): + msLake: | area block | | | this | Src | result | +----------+--------+--------+ @@ -143,6 +146,22 @@ public: | mycelium | stone | stone | ... and mycelium | A | stone | A | ... but nothing else | A | * | A | Everything else is left as it is + + msSpongePrint: + Used for most generators, it allows carving out air pockets, too, and uses the Sponge as the NOP block + | area block | | + | this | Src | result | + +----------+--------+--------+ + | A | sponge | A | Sponge is the NOP block + | * | B | B | Everything else overwrites anything + + msMask: + Combines two areas, the blocks that are the same are kept, differing ones are reset to air + | area block | | + | this | Src | result | + +------+-------+--------+ + | A | A | A | Same blocks are kept + | A | non-A | air | Everything else is replaced with air */ void Merge(const cBlockArea & a_Src, int a_RelX, int a_RelY, int a_RelZ, eMergeStrategy a_Strategy); |