From 784459ea4f6dfe7ab8a889b44c14ae1f10305480 Mon Sep 17 00:00:00 2001 From: Cubitect Date: Sun, 18 Mar 2018 13:10:13 +0000 Subject: [PATCH] formatting and seed lists --- README.md | 72 +++++++++++++++++-- find_quadhuts.c | 2 +- finders.c | 48 +++++++++++++ finders.h | 4 ++ .../imperfect_doublequadhut.md | 7 +- quadbases_Q1.txt => seeds/quadbases_Q1.txt | 0 6 files changed, 124 insertions(+), 9 deletions(-) rename doublequadhut.md => seeds/imperfect_doublequadhut.md (97%) rename quadbases_Q1.txt => seeds/quadbases_Q1.txt (100%) diff --git a/README.md b/README.md index 4d0f869..bc00bc3 100644 --- a/README.md +++ b/README.md @@ -40,15 +40,77 @@ This finder searches for seeds that contain all major biome types within 1024 bl ### Cool Seeds -If you are looking to get the "Adventuring Time" achievment you might consider one of the following seeds. All of these seeds have all 36 required biomes within less than 700 blocks from the origin (rarity: less than 1 in 100 billion): +#### All Biomes near Origin + +Below is a list of some very rare seeds that have all the interesing biomes in very close proximity to the origin, offering some unique scenery. TIP: If you are creating a new world you can use the Custom World Generation setting to reduce the biome size by a factor of up to 4, which puts all the biomes even closer together. + ++---------------+-------------------------------------------+-----------------------------------+ +| Seed | Notable biomes within 250 blocks of spawn | Remarks | ++===============+===========================================+===================================+ +| 2458028242930 | Ocean, Plains, Forest, Taiga, Swampland, | * Decently sized Mushroom Island | +| | Ice Plains, Roofed Forest, Cold Taiga, | | +| | Mega Taiga, Sunflower Plains, Ice Spikes | | ++---------------+-------------------------------------------+-----------------------------------+ +| 3659308845421 | Ocean, Plains, Extreme Hills, Forest, | | +| | Taiga, Swampland, Deep Ocean, Mega Taiga, | | +| | Sunflower Plains | | ++---------------+-------------------------------------------+-----------------------------------+ +| 3055141959546 | Ocean, Plains, Extreme Hills, Forest, | * All biomes are arranged in a | +| | Taiga, Deep Ocean, Flower Forest | ring around a central ocean | +| | | * Well suited for custom worlds | ++---------------+-------------------------------------------+-----------------------------------+ +| 1618761219563 | Ocean, Plains, Extreme Hills, Forest, | * Village at spawn | +| | Swampland, Ice Plains, Mushroom Island, | | +| | Deep Ocean, Birch Forest, Roofed Forest, | | +| | Savanna | | ++---------------+-------------------------------------------+-----------------------------------+ +| 1661454332289 | Ocean, Plains, Desert, Mushroom Island, | * All biomes are arranged in a | +| | Deep Ocean, Roofed Forest, Savanna | ring around a central ocean | +| | | * Mushroom Island at (0,0) | +| | | * Extremely Small Ice Spike Biome | ++---------------+-------------------------------------------+-----------------------------------+ + + + +#### Lots of Witch Huts + +Four is the maximum number of huts that can generate close enough together to be operated by a single player. However, if you have a server, or you just want multiple witch farms in your world, then you can consider seeds with more than one multi-huts. Unfortunately, seeds that have two quad-huts are extremely rare, and it turns out that the closest distance between any two perfect quad-huts is around 269000 blocks. Instead we can look for seeds with less constraints, such as having triple witch huts in proximity to the origin. + +For seeds that have a quad-hut with 2 additional tri-huts, I present to you all seeds that have the multi-huts in the closest proximity to spawn. In fact there are only 6 seeds that have all of them within 40000 blocks. Luckily all of the hut coordinates are inside a swamp, giving a total of 630×3 spawning spaces for each of the seeds. + +| Seed | Quad Hut | Tri Hut #1 | Tri Hut #2 | +|----------------------|---------------|----------------|----------------| +| 181201211981019340 | ( 5480, 4984) | (10616, -8344) | (-23688,28520) | +| 2178171917826985089 | (-3736,-3720) | ( 1400,-17048) | (-32904,19816) | +| -2263221739690455935 | (-3736,-3720) | ( 1400,-17048) | (-32904,19816) | +| 3382334921639955859 | (28008, -648) | (33144,-13976) | ( -1160,22888) | +| -8386696804585992813 | (28008, -648) | (33144,-13976) | ( -1160,22888) | +| 4027541812768105332 | (-5784,-7304) | ( -648,-20632) | (-34952,16232) | + +Also there exist a hand full of seeds with two imperfect quad huts that are relatively close to spawn. These huts can be up to 2 chunks further appart. Unfortunately this means that they always have some parts that are just outside the 128 block despawn radius, meaning that they will only have the efficency of about 3 huts. However, they have a much larger operation area, so you can move around while the farm in running. A list of these seeds can be found in `./seeds/imperfect_doublequadhut.md`. + + + +#### Advancement Related + +If you are looking to get the "Adventuring Time" achievment you might consider one of the following seeds. All of these seeds have all 36 required biomes within less than 650 blocks from the origin: | Seed | All biome radius | |---------------|------------------| -| 1065757415811 | 612 | | -880424771806 | 644 | -| -9896963610 | 664 | -| -78538250832 | 686 | -| 1251759844332 | 692 | +| 48382691805 | 633 | +| 480800992945 | 649 | +| 1065757415811 | 612 | +| 1509124018794 | 645 | +| 1550633690354 | 616 | +| 1571479851306 | 631 | +| 1925837979058 | 621 | +| 2082386353360 | 649 | +| 2087339213306 | 632 | +| 2810140768300 | 637 | +| 3053313529066 | 648 | +| 3457626356584 | 649 | +| 3548624619264 | 646 | diff --git a/find_quadhuts.c b/find_quadhuts.c index 4ea7936..ce7ebe7 100644 --- a/find_quadhuts.c +++ b/find_quadhuts.c @@ -39,7 +39,7 @@ int main(int argc, char *argv[]) regPosZ -= 1; - const char *seedFileName = "quadbases_Q1.txt"; + const char *seedFileName = "./seeds/quadbases_Q1.txt"; if(access(seedFileName, F_OK)) { diff --git a/finders.c b/finders.c index 2b38208..aacdbb9 100644 --- a/finders.c +++ b/finders.c @@ -139,6 +139,54 @@ int isQuadTempleBase(const long seed, const long lower, const long upper) return 1; } +int isTriTempleBase(const long seed, const long lower, const long upper) +{ + // seed offsets for the regions (0,0) to (1,1) + const long reg00base = 14357617; + const long reg01base = 341873128712 + 14357617; + const long reg10base = 132897987541 + 14357617; + const long reg11base = 341873128712 + 132897987541 + 14357617; + + long s; + int missing = 0; + + s = (reg00base + seed) ^ 0x5DEECE66DL; // & 0xffffffffffff; + s = (s * 0x5DEECE66DL + 0xBL) & 0xffffffffffff; + if((s >> 17) % 24 < upper || + (((s * 0x5DEECE66DL + 0xBL) & 0xffffffffffff) >> 17) % 24 < upper) + { + missing++; + } + + s = (reg01base + seed) ^ 0x5DEECE66DL; // & 0xffffffffffff; + s = (s * 0x5DEECE66DL + 0xBL) & 0xffffffffffff; + if((s >> 17) % 24 > lower || + (((s * 0x5DEECE66DL + 0xBL) & 0xffffffffffff) >> 17) % 24 < upper) + { + if(missing) return 0; + missing++; + } + + s = (reg10base + seed) ^ 0x5DEECE66DL; // & 0xffffffffffff; + s = (s * 0x5DEECE66DL + 0xBL) & 0xffffffffffff; + if((s >> 17) % 24 < upper || + (((s * 0x5DEECE66DL + 0xBL) & 0xffffffffffff) >> 17) % 24 > lower) + { + if(missing) return 0; + missing++; + } + + s = (reg11base + seed) ^ 0x5DEECE66DL; // & 0xffffffffffff; + s = (s * 0x5DEECE66DL + 0xBL) & 0xffffffffffff; + if((s >> 17) % 24 > lower || + (((s * 0x5DEECE66DL + 0xBL) & 0xffffffffffff) >> 17) % 24 > lower) + { + if(missing) return 0; + } + + return 1; +} + long moveTemple(const long baseSeed, const int regionX, const int regionZ) { diff --git a/finders.h b/finders.h index 99bf7cf..6254e12 100644 --- a/finders.h +++ b/finders.h @@ -87,6 +87,10 @@ extern Biome biomes[256]; * (with degrees of freedom for region-transposition, and the top 16-bit bits). */ +// helper functions +int isQuadTempleBase(const long seed, const long lower, const long upper); +int isTriTempleBase(const long seed, const long lower, const long upper); + /* moveTemple * ---------- * Transposes a base seed such that structures are moved by the specified region diff --git a/doublequadhut.md b/seeds/imperfect_doublequadhut.md similarity index 97% rename from doublequadhut.md rename to seeds/imperfect_doublequadhut.md index 2db181a..669a0e6 100644 --- a/doublequadhut.md +++ b/seeds/imperfect_doublequadhut.md @@ -2,9 +2,9 @@ This is (probably) the entire list of double quad witch hut seeds that exist for Minecraft 1.7+. This list contains only those seeds that have both quad-huts in reasonable proximity to the origin (10000 blocks). -Note that all quad-huts in this list have the same position relative to one another. I.e. to go from quad-hut #1 to quad-hut #2 add (-2560, 9200). This is because the PRNG that determines the position of temples is not very good, and these major constraints caused by 8 huts allow only for very few relative positions. Also these quad huts are imperfect, meaning that the huts can be up to 2 chunks further appart than in perfect quad-huts. The closeset any two perfect quad-huts are relative to one another is a spacing of over 250000 blocks. +Note that all quad-huts in this list have the same position relative to one another. I.e. to go from quad-hut #1 to quad-hut #2 add (-2560, 9200). This is because the PRNG that determines the position of temples is not very good, and the major constraints caused by 8 huts allow only for very few relative positions. Also these quad huts are imperfect, meaning that the huts can be up to 2 chunks further appart than in perfect quad-huts. The closest any two perfect quad-huts are relative to one another is a spacing of over 250000 blocks. -The column "In Swamp" indicated the number of coordinates enclosed by the 8 huts that have a swampland biome. The number of spawning spaces is therefore 2 times this number. +The column "In Swamp" indicates the number of coordinates enclosed by the 8 huts that have a swampland biome. The number of spawning spaces is therefore 2 times this number. | Seed | Quad Hut #1 | Quad Hut #2 | In Swamp | @@ -97,7 +97,7 @@ The column "In Swamp" indicated the number of coordinates enclosed by the 8 huts | -1676768422877678114 | ( 4624,-5088) | ( 2064, 4112) | 504 | | 6154478497277107322 | ( 5648,-3040) | ( 3088, 6160) | 504 | | 2065977460381146234 | ( 5648,-3040) | ( 3088, 6160) | 504 | -|----------------------|---------------|---------------|----------| ++----------------------+---------------+---------------+----------+ | 1550015567964991486 | (-3056,-9184) | (-5616, 16) | 477 | | -7802272008223264770 | (-3056,-9184) | (-5616, 16) | 477 | | -4590872665482268674 | (-3056,-9184) | (-5616, 16) | 499 | @@ -341,3 +341,4 @@ The column "In Swamp" indicated the number of coordinates enclosed by the 8 huts | -1984498787934315398 | ( 5648,-3040) | ( 3088, 6160) | 502 | | -7910007330748801926 | ( 5648,-3040) | ( 3088, 6160) | 502 | + diff --git a/quadbases_Q1.txt b/seeds/quadbases_Q1.txt similarity index 100% rename from quadbases_Q1.txt rename to seeds/quadbases_Q1.txt