mirror of
https://hub.spigotmc.org/stash/scm/spigot/spigot.git
synced 2025-09-18 21:33:01 +00:00
265 lines
12 KiB
Diff
265 lines
12 KiB
Diff
From 10af8a26636d82b2e88b2d5413061acce4e6d4d2 Mon Sep 17 00:00:00 2001
|
|
From: md_5 <git@md-5.net>
|
|
Date: Fri, 4 Jul 2014 13:28:45 +1000
|
|
Subject: [PATCH] Further Seed Customisation
|
|
|
|
Allow server admins that really want to to customise the seeds used in world generation even further.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkGenerator.java b/src/main/java/net/minecraft/server/ChunkGenerator.java
|
|
index 8ada7773c..701b214bf 100644
|
|
--- a/src/main/java/net/minecraft/server/ChunkGenerator.java
|
|
+++ b/src/main/java/net/minecraft/server/ChunkGenerator.java
|
|
@@ -216,4 +216,10 @@ public abstract class ChunkGenerator<C extends GeneratorSettingsDefault> {
|
|
public int c(int i, int j, HeightMap.Type heightmap_type) {
|
|
return this.getBaseHeight(i, j, heightmap_type) - 1;
|
|
}
|
|
+
|
|
+ // Spigot start
|
|
+ public World getWorld() {
|
|
+ return this.a.getMinecraftWorld();
|
|
+ }
|
|
+ // Spigot end
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
|
|
index e07157fb2..87c37c0d6 100644
|
|
--- a/src/main/java/net/minecraft/server/EntitySlime.java
|
|
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
|
|
@@ -274,7 +274,7 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
|
}
|
|
|
|
ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(blockposition);
|
|
- boolean flag = SeededRandom.a(chunkcoordintpair.x, chunkcoordintpair.z, generatoraccess.getSeed(), 987234911L).nextInt(10) == 0;
|
|
+ boolean flag = SeededRandom.a(chunkcoordintpair.x, chunkcoordintpair.z, generatoraccess.getSeed(), generatoraccess.getMinecraftWorld().spigotConfig.slimeSeed).nextInt(10) == 0; // Spigot
|
|
|
|
if (random.nextInt(10) == 0 && flag && blockposition.getY() < 40) {
|
|
return a(entitytypes, generatoraccess, enummobspawn, blockposition, random);
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureDesertPyramid.java b/src/main/java/net/minecraft/server/WorldGenFeatureDesertPyramid.java
|
|
index 4f1d57b8a..c54484631 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldGenFeatureDesertPyramid.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenFeatureDesertPyramid.java
|
|
@@ -25,8 +25,10 @@ public class WorldGenFeatureDesertPyramid extends WorldGenFeatureRandomScattered
|
|
}
|
|
|
|
@Override
|
|
- protected int getSeed() {
|
|
- return 14357617;
|
|
+ // Spigot start
|
|
+ protected int getSeed(World world) {
|
|
+ return world.spigotConfig.desertSeed;
|
|
+ // Spigot end
|
|
}
|
|
|
|
public static class a extends StructureStart {
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureIgloo.java b/src/main/java/net/minecraft/server/WorldGenFeatureIgloo.java
|
|
index 0f6ce1526..6f8a97942 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldGenFeatureIgloo.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenFeatureIgloo.java
|
|
@@ -25,8 +25,10 @@ public class WorldGenFeatureIgloo extends WorldGenFeatureRandomScattered<WorldGe
|
|
}
|
|
|
|
@Override
|
|
- protected int getSeed() {
|
|
- return 14357618;
|
|
+ // Spigot start
|
|
+ protected int getSeed(World world) {
|
|
+ return world.spigotConfig.iglooSeed;
|
|
+ // Spigot end
|
|
}
|
|
|
|
public static class a extends StructureStart {
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureJunglePyramid.java b/src/main/java/net/minecraft/server/WorldGenFeatureJunglePyramid.java
|
|
index 354584258..ca6b1ee8a 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldGenFeatureJunglePyramid.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenFeatureJunglePyramid.java
|
|
@@ -25,8 +25,10 @@ public class WorldGenFeatureJunglePyramid extends WorldGenFeatureRandomScattered
|
|
}
|
|
|
|
@Override
|
|
- protected int getSeed() {
|
|
- return 14357619;
|
|
+ // Spigot start
|
|
+ protected int getSeed(World world) {
|
|
+ return world.spigotConfig.jungleSeed;
|
|
+ // Spigot end
|
|
}
|
|
|
|
public static class a extends StructureStart {
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureOceanRuin.java b/src/main/java/net/minecraft/server/WorldGenFeatureOceanRuin.java
|
|
index 5f847e68f..7d553ee46 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldGenFeatureOceanRuin.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenFeatureOceanRuin.java
|
|
@@ -39,8 +39,10 @@ public class WorldGenFeatureOceanRuin extends WorldGenFeatureRandomScattered<Wor
|
|
}
|
|
|
|
@Override
|
|
- protected int getSeed() {
|
|
- return 14357621;
|
|
+ // Spigot start
|
|
+ protected int getSeed(World world) {
|
|
+ return world.spigotConfig.oceanSeed;
|
|
+ // Spigot end
|
|
}
|
|
|
|
public static enum Temperature {
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenFeaturePillagerOutpost.java b/src/main/java/net/minecraft/server/WorldGenFeaturePillagerOutpost.java
|
|
index a3c6bac32..5da5605cf 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldGenFeaturePillagerOutpost.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenFeaturePillagerOutpost.java
|
|
@@ -67,8 +67,10 @@ public class WorldGenFeaturePillagerOutpost extends WorldGenFeatureRandomScatter
|
|
}
|
|
|
|
@Override
|
|
- protected int getSeed() {
|
|
- return 165745296;
|
|
+ // Spigot start
|
|
+ protected int getSeed(World world) {
|
|
+ return world.spigotConfig.outpostSeed;
|
|
+ // Spigot end
|
|
}
|
|
|
|
public static class a extends StructureAbstract {
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureRandomScattered.java b/src/main/java/net/minecraft/server/WorldGenFeatureRandomScattered.java
|
|
index ae7973254..49ae612b1 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldGenFeatureRandomScattered.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenFeatureRandomScattered.java
|
|
@@ -21,7 +21,7 @@ public abstract class WorldGenFeatureRandomScattered<C extends WorldGenFeatureCo
|
|
int k2 = i2 / i1;
|
|
int l2 = j2 / i1;
|
|
|
|
- ((SeededRandom) random).a(chunkgenerator.getSeed(), k2, l2, this.getSeed());
|
|
+ ((SeededRandom) random).a(chunkgenerator.getSeed(), k2, l2, this.getSeed(chunkgenerator.getWorld())); // Spigot
|
|
k2 *= i1;
|
|
l2 *= i1;
|
|
k2 += random.nextInt(i1 - j1);
|
|
@@ -52,5 +52,5 @@ public abstract class WorldGenFeatureRandomScattered<C extends WorldGenFeatureCo
|
|
return chunkgenerator.getSettings().i();
|
|
}
|
|
|
|
- protected abstract int getSeed();
|
|
+ protected abstract int getSeed(World world); // Spigot
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureShipwreck.java b/src/main/java/net/minecraft/server/WorldGenFeatureShipwreck.java
|
|
index e89dbbcb7..061eb2569 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldGenFeatureShipwreck.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenFeatureShipwreck.java
|
|
@@ -25,8 +25,10 @@ public class WorldGenFeatureShipwreck extends WorldGenFeatureRandomScattered<Wor
|
|
}
|
|
|
|
@Override
|
|
- protected int getSeed() {
|
|
- return 165745295;
|
|
+ // Spigot start
|
|
+ protected int getSeed(World world) {
|
|
+ return world.spigotConfig.shipwreckSeed;
|
|
+ // Spigot end
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureSwampHut.java b/src/main/java/net/minecraft/server/WorldGenFeatureSwampHut.java
|
|
index 9c3cbb2b9..69f5f3ef6 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldGenFeatureSwampHut.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenFeatureSwampHut.java
|
|
@@ -30,8 +30,10 @@ public class WorldGenFeatureSwampHut extends WorldGenFeatureRandomScattered<Worl
|
|
}
|
|
|
|
@Override
|
|
- protected int getSeed() {
|
|
- return 14357620;
|
|
+ // Spigot start
|
|
+ protected int getSeed(World world) {
|
|
+ return world.spigotConfig.swampSeed;
|
|
+ // Spigot end
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenMonument.java b/src/main/java/net/minecraft/server/WorldGenMonument.java
|
|
index 29bf219f1..0f72e94a0 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldGenMonument.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenMonument.java
|
|
@@ -27,7 +27,7 @@ public class WorldGenMonument extends StructureGenerator<WorldGenFeatureEmptyCon
|
|
int k2 = i2 / i1;
|
|
int l2 = j2 / i1;
|
|
|
|
- ((SeededRandom) random).a(chunkgenerator.getSeed(), k2, l2, 10387313);
|
|
+ ((SeededRandom) random).a(chunkgenerator.getSeed(), k2, l2, chunkgenerator.getWorld().spigotConfig.monumentSeed); // Spigot
|
|
k2 *= i1;
|
|
l2 *= i1;
|
|
k2 += (random.nextInt(i1 - j1) + random.nextInt(i1 - j1)) / 2;
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenVillage.java b/src/main/java/net/minecraft/server/WorldGenVillage.java
|
|
index ead451073..b155a73a0 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldGenVillage.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenVillage.java
|
|
@@ -21,7 +21,7 @@ public class WorldGenVillage extends StructureGenerator<WorldGenFeatureVillageCo
|
|
int k2 = i2 / i1;
|
|
int l2 = j2 / i1;
|
|
|
|
- ((SeededRandom) random).a(chunkgenerator.getSeed(), k2, l2, 10387312);
|
|
+ ((SeededRandom) random).a(chunkgenerator.getSeed(), k2, l2, chunkgenerator.getWorld().spigotConfig.villageSeed); // Spigot
|
|
k2 *= i1;
|
|
l2 *= i1;
|
|
k2 += random.nextInt(i1 - j1);
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
|
index 2f8a399cc..bc9a65de2 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
|
@@ -168,7 +168,7 @@ public class CraftChunk implements Chunk {
|
|
@Override
|
|
public boolean isSlimeChunk() {
|
|
// 987234911L is deterimined in EntitySlime when seeing if a slime can spawn in a chunk
|
|
- return SeededRandom.a(getX(), getZ(), getWorld().getSeed(), 987234911L).nextInt(10) == 0;
|
|
+ return SeededRandom.a(getX(), getZ(), getWorld().getSeed(), worldServer.spigotConfig.slimeSeed).nextInt(10) == 0;
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
|
index f9411d9d5..68d38655f 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
|
@@ -184,4 +184,10 @@ public class CustomChunkGenerator extends InternalChunkGenerator<GeneratorSettin
|
|
public int getGenerationDepth() {
|
|
return world.getHeight();
|
|
}
|
|
+
|
|
+ // Spigot start
|
|
+ public WorldServer getWorld() {
|
|
+ return world;
|
|
+ }
|
|
+ // Spigot end
|
|
}
|
|
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
index aecab481f..01eb9c700 100644
|
|
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
|
|
@@ -261,4 +261,29 @@ public class SpigotWorldConfig
|
|
{
|
|
witherSpawnSoundRadius = getInt( "wither-spawn-sound-radius", 0 );
|
|
}
|
|
+
|
|
+ public int villageSeed;
|
|
+ public int desertSeed;
|
|
+ public int iglooSeed;
|
|
+ public int jungleSeed;
|
|
+ public int swampSeed;
|
|
+ public int monumentSeed;
|
|
+ public int oceanSeed;
|
|
+ public int outpostSeed;
|
|
+ public int shipwreckSeed;
|
|
+ public int slimeSeed;
|
|
+ private void initWorldGenSeeds()
|
|
+ {
|
|
+ villageSeed = getInt( "seed-village", 10387312 );
|
|
+ desertSeed = getInt( "seed-desert", 14357617 );
|
|
+ iglooSeed = getInt( "seed-igloo", 14357618 );
|
|
+ jungleSeed = getInt( "seed-jungle", 14357619 );
|
|
+ swampSeed = getInt( "seed-swamp", 14357620 );
|
|
+ monumentSeed = getInt( "seed-monument", 10387313 );
|
|
+ shipwreckSeed = getInt( "seed-shipwreck", 165745295 );
|
|
+ oceanSeed = getInt( "seed-ocean", 14357621 );
|
|
+ outpostSeed = getInt( "seed-outpost", 165745296 );
|
|
+ slimeSeed = getInt( "seed-slime", 987234911 );
|
|
+ log( "Custom Map Seeds: Village: " + villageSeed + " Desert: " + desertSeed + " Igloo: " + iglooSeed + " Jungle: " + jungleSeed + " Swamp: " + swampSeed + " Monument: " + monumentSeed + "Ocean: " + oceanSeed + " Shipwreck: " + shipwreckSeed + " Slime: " + slimeSeed );
|
|
+ }
|
|
}
|
|
--
|
|
2.20.1
|
|
|