Skip to content

Commit

Permalink
Updated to v18.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Hex27 committed Dec 4, 2024
1 parent bcda464 commit c7219c6
Show file tree
Hide file tree
Showing 52 changed files with 2,436 additions and 108 deletions.
1 change: 1 addition & 0 deletions buildProj/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ dependencies {
implementation(project(":implementation:v1_20_R4"))
implementation(project(":implementation:v1_21_R1"))
implementation(project(":implementation:v1_21_R2"))
implementation(project(":implementation:v1_21_R3"))
implementation("com.github.AvarionMC:yaml:1.1.7")
}

Expand Down
7 changes: 7 additions & 0 deletions common/src/main/java/org/terraform/biome/BiomeBank.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.terraform.utils.noise.FastNoise.NoiseType;
import org.terraform.utils.noise.NoiseCacheHandler;
import org.terraform.utils.noise.NoiseCacheHandler.NoiseCacheEntry;
import org.terraform.utils.version.Version;

import java.util.ArrayList;
import java.util.Collections;
Expand Down Expand Up @@ -230,6 +231,7 @@ public enum BiomeBank {

// FLAT
PLAINS(new PlainsHandler(), BiomeType.FLAT, BiomeClimate.TRANSITION, TConfig.c.BIOME_PLAINS_WEIGHT),
MEADOW(new MeadowHandler(), BiomeType.FLAT, BiomeClimate.TRANSITION, TConfig.c.BIOME_MEADOW_WEIGHT),
ELEVATED_PLAINS(new ElevatedPlainsHandler(),
BiomeType.FLAT,
BiomeClimate.TRANSITION,
Expand Down Expand Up @@ -316,6 +318,11 @@ public enum BiomeBank {
BiomeClimate.HUMID_VEGETATION,
TConfig.c.BIOME_DARK_FOREST_WEIGHT
),
PALE_FOREST(new PaleForestHandler(),
BiomeType.FLAT,
BiomeClimate.HUMID_VEGETATION,
(Version.isAtLeast(21.4)) ? TConfig.c.BIOME_PALE_FOREST_WEIGHT : 0
),
SWAMP(new SwampHandler(), BiomeType.FLAT, BiomeClimate.HUMID_VEGETATION, TConfig.c.BIOME_SWAMP_WEIGHT),
MANGROVE(new MangroveHandler(),
BiomeType.FLAT,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import org.terraform.data.TerraformWorld;
import org.terraform.small_items.PlantBuilder;
import org.terraform.utils.GenUtils;
import org.terraform.utils.version.OneOneNineBlockHandler;
import org.terraform.utils.version.V_1_19;

import java.util.Random;

Expand All @@ -21,13 +21,13 @@ public boolean isOcean() {

@Override
public @NotNull Biome getBiome() {
return OneOneNineBlockHandler.MANGROVE_SWAMP;
return V_1_19.MANGROVE_SWAMP;
}

@Override
public Material @NotNull [] getSurfaceCrust(@NotNull Random rand) {
return new Material[] {
GenUtils.weightedRandomMaterial(rand, OneOneNineBlockHandler.MUD, 35, Material.GRASS_BLOCK, 10),
GenUtils.weightedRandomMaterial(rand, V_1_19.MUD, 35, Material.GRASS_BLOCK, 10),
GenUtils.randChoice(rand, Material.DIRT),
GenUtils.randChoice(rand, Material.DIRT),
GenUtils.randChoice(rand, Material.DIRT, Material.STONE),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.terraform.utils.BlockUtils;
import org.terraform.utils.GenUtils;
import org.terraform.utils.blockdata.MultipleFacingBuilder;
import org.terraform.utils.version.OneOneNineBlockHandler;
import org.terraform.utils.version.V_1_19;

import java.util.Random;

Expand Down Expand Up @@ -52,7 +52,7 @@ public void oneUnit(TerraformWorld tw,
}

// Already processed
if (ceil.getType() == OneOneNineBlockHandler.SCULK || floor.getType() == OneOneNineBlockHandler.SCULK) {
if (ceil.getType() == V_1_19.SCULK || floor.getType() == V_1_19.SCULK) {
return;
}
// =========================
Expand All @@ -69,10 +69,10 @@ public void oneUnit(TerraformWorld tw,

// Ceiling is ALWAYS sculk/veins
if (BlockUtils.isStoneLike(ceil.getType())) {
ceil.setType(OneOneNineBlockHandler.SCULK);
ceil.setType(V_1_19.SCULK);
}
else {
MultipleFacing sculkVein = (MultipleFacing) Bukkit.createBlockData(OneOneNineBlockHandler.SCULK_VEIN);
MultipleFacing sculkVein = (MultipleFacing) Bukkit.createBlockData(V_1_19.SCULK_VEIN);
sculkVein.setFace(BlockFace.UP, true);
ceil.getDown().setBlockData(sculkVein);
}
Expand All @@ -90,25 +90,25 @@ public void oneUnit(TerraformWorld tw,
// Ground is sculk
// Ceiling is ALWAYS sculk/veins
if (BlockUtils.isStoneLike(ceil.getType())) {
floor.setType(OneOneNineBlockHandler.SCULK);
floor.setType(V_1_19.SCULK);
}
else {
MultipleFacing sculkVein = (MultipleFacing) Bukkit.createBlockData(OneOneNineBlockHandler.SCULK_VEIN);
MultipleFacing sculkVein = (MultipleFacing) Bukkit.createBlockData(V_1_19.SCULK_VEIN);
sculkVein.setFace(BlockFace.DOWN, true);
floor.getUp().setBlockData(sculkVein);
}


if (GenUtils.chance(random, 1, 20)) { // Sculk Catalysts
floor.getUp().setType(OneOneNineBlockHandler.SCULK_CATALYST);
floor.getUp().setType(V_1_19.SCULK_CATALYST);
}
else if (GenUtils.chance(random, 1, 17)) { // Sculk Sensors
floor.getUp().setType(OneOneNineBlockHandler.SCULK_SENSOR);
floor.getUp().setType(V_1_19.SCULK_SENSOR);
}
else if (GenUtils.chance(random, 1, 25))
// Sculk Shrieker
{
floor.getUp().setType(OneOneNineBlockHandler.SCULK_SHRIEKER);
floor.getUp().setType(V_1_19.SCULK_SHRIEKER);
}


Expand All @@ -121,9 +121,9 @@ else if (GenUtils.chance(random, 1, 25))
for (BlockFace face : BlockUtils.directBlockFaces) {
SimpleBlock rel = target.getRelative(face);
if (BlockUtils.isStoneLike(rel.getType())) {
rel.setType(OneOneNineBlockHandler.SCULK);
rel.setType(V_1_19.SCULK);
if (BlockUtils.isAir(target.getType()) && GenUtils.chance(random, 1, 5)) {
new MultipleFacingBuilder(OneOneNineBlockHandler.SCULK_VEIN).setFace(face, true).apply(target);
new MultipleFacingBuilder(V_1_19.SCULK_VEIN).setFace(face, true).apply(target);
}
}
}
Expand All @@ -135,7 +135,7 @@ else if (GenUtils.chance(random, 1, 25))
// =========================
if (TerraformGeneratorPlugin.injector.getICAData(ceil.getPopData()) instanceof PopulatorDataICABiomeWriterAbstract data) {
while (floor.getY() < ceil.getY()) {
data.setBiome(floor.getX(), floor.getY(), floor.getZ(), OneOneNineBlockHandler.DEEP_DARK);
data.setBiome(floor.getX(), floor.getY(), floor.getZ(), V_1_19.DEEP_DARK);
floor = floor.getUp();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import org.terraform.utils.BlockUtils;
import org.terraform.utils.GenUtils;
import org.terraform.utils.SphereBuilder;
import org.terraform.utils.version.OneTwentyBlockHandler;
import org.terraform.utils.version.V_1_20;
import org.terraform.utils.version.Version;

import java.util.Random;
Expand Down Expand Up @@ -70,7 +70,7 @@ public void populateSmallItems(TerraformWorld world,
rawX,
surfaceY + 1,
rawZ,
OneTwentyBlockHandler.getPinkPetalData(GenUtils.randInt(1, 4))
V_1_20.getPinkPetalData(GenUtils.randInt(1, 4))
);
}
else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import org.terraform.utils.noise.FastNoise.NoiseType;
import org.terraform.utils.noise.NoiseCacheHandler;
import org.terraform.utils.noise.NoiseCacheHandler.NoiseCacheEntry;
import org.terraform.utils.version.OneOneNineBlockHandler;
import org.terraform.utils.version.V_1_19;

import java.util.Random;

Expand All @@ -41,7 +41,7 @@ public boolean isOcean() {

@Override
public @NotNull Biome getBiome() {
return OneOneNineBlockHandler.MANGROVE_SWAMP;
return V_1_19.MANGROVE_SWAMP;
}

@Override
Expand Down Expand Up @@ -141,7 +141,7 @@ public void populateSmallItems(TerraformWorld tw,
BlockUtils.replaceCircularPatch(random.nextInt(9999),
3.5f,
new SimpleBlock(data, rawX, surfaceY, rawZ),
OneOneNineBlockHandler.MUD
V_1_19.MUD
);
}
}
Expand All @@ -166,7 +166,7 @@ public void populateLargeItems(@NotNull TerraformWorld tw,
TreeDB.spawnBreathingRoots(
tw,
new SimpleBlock(data, treeX, treeY, treeZ),
OneOneNineBlockHandler.MANGROVE_ROOTS
V_1_19.MANGROVE_ROOTS
);
FractalTypes.Tree.SWAMP_TOP.build(
tw,
Expand Down
138 changes: 138 additions & 0 deletions common/src/main/java/org/terraform/biome/flat/MeadowHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
package org.terraform.biome.flat;

import org.bukkit.Material;
import org.bukkit.block.Biome;
import org.jetbrains.annotations.NotNull;
import org.terraform.biome.BiomeHandler;
import org.terraform.coregen.populatordata.PopulatorDataAbstract;
import org.terraform.data.SimpleBlock;
import org.terraform.data.SimpleLocation;
import org.terraform.data.TerraformWorld;
import org.terraform.main.config.TConfig;
import org.terraform.small_items.PlantBuilder;
import org.terraform.tree.FractalTreeBuilder;
import org.terraform.tree.FractalTypes;
import org.terraform.utils.BlockUtils;
import org.terraform.utils.GenUtils;

import java.util.Random;

public class MeadowHandler extends BiomeHandler {

@Override
public boolean isOcean() {
return false;
}

@Override
public @NotNull Biome getBiome() {
return Biome.MEADOW;
}

@Override
public Material @NotNull [] getSurfaceCrust(@NotNull Random rand) {
return new Material[] {
Material.GRASS_BLOCK,
Material.DIRT,
Material.DIRT,
GenUtils.randChoice(rand, Material.DIRT, Material.STONE),
GenUtils.randChoice(rand, Material.DIRT, Material.STONE)
};
}

@Override
public void populateSmallItems(TerraformWorld tw,
@NotNull Random random,
int rawX,
int surfaceY,
int rawZ,
@NotNull PopulatorDataAbstract data)
{
if (data.getType(rawX, surfaceY, rawZ) == Material.GRASS_BLOCK && !BlockUtils.isWet(new SimpleBlock(data,
rawX,
surfaceY,
rawZ)))
{
if (GenUtils.chance(random, 1, 10)) { // Grass
if (GenUtils.chance(random, 6, 10)) {
PlantBuilder.GRASS.build(data, rawX, surfaceY + 1, rawZ);
if (random.nextBoolean()) {
PlantBuilder.TALL_GRASS.build(data, rawX, surfaceY + 1, rawZ);
}
}
}
}
}

@Override
public void populateLargeItems(@NotNull TerraformWorld tw,
@NotNull Random random,
@NotNull PopulatorDataAbstract data)
{
//This logic crosses chunk borders, so we put it here to be safe
SimpleLocation[] flowerCenters = GenUtils.randomObjectPositions(tw, data.getChunkX(), data.getChunkZ(), 23);
//Spawn several dense clusters of flowers
for(SimpleLocation center:flowerCenters)
{
Random hashRand = tw.getHashedRand(78019432, center.getX(),center.getZ());
PlantBuilder flowerer = BlockUtils.pickFlower(hashRand);
BlockUtils.lambdaCircularPatch(
hashRand.nextInt(211312),
GenUtils.randInt(5,7),
new SimpleBlock(data, center.getX(), 0, center.getZ())
.getGround(),
(b)->{
if(data.getBiome(b.getX(),b.getZ()) == getBiome()
&& hashRand.nextInt(4) == 0)
flowerer.build(b.getUp());
});
}


boolean isPumpkin = random.nextBoolean();
// Pumpkin Patch
if (GenUtils.chance(1, 70)) {
for (int i = 0; i < GenUtils.randInt(5, 10); i++) {
int[] loc = GenUtils.randomSurfaceCoordinates(random, data);
if (data.getBiome(loc[0], loc[2]) != getBiome()) {
continue;
}
SimpleBlock target = new SimpleBlock(
data,
loc[0],
GenUtils.getHighestGround(data, loc[0], loc[2]) + 1,
loc[2]
);
if (!target.isSolid()) {
if(isPumpkin) PlantBuilder.PUMPKIN.build(target);
else PlantBuilder.MELON.build(target);
}
}
}

// Only poffs in meadows
SimpleLocation[] poffLocs = GenUtils.randomObjectPositions(tw, data.getChunkX(), data.getChunkZ(), 16);

for (SimpleLocation sLoc : poffLocs) {
int highestY = GenUtils.getHighestGround(data, sLoc.getX(), sLoc.getZ());
if (BlockUtils.isWet(new SimpleBlock(data, sLoc.getX(), highestY + 1, sLoc.getZ()))) {
continue;
}

sLoc.setY(highestY);
if (TConfig.arePlantsEnabled()
&& data.getBiome(sLoc.getX(), sLoc.getZ()) == getBiome()
&& BlockUtils.isDirtLike(data.getType(sLoc.getX(), sLoc.getY(), sLoc.getZ())))
{
BlockUtils.replaceSphere(random.nextInt(424444),
2,
2,
2,
new SimpleBlock(data, sLoc.getX(), sLoc.getY() + 1, sLoc.getZ()),
false,
Material.OAK_LEAVES
);
}
}
}
}
Loading

0 comments on commit c7219c6

Please sign in to comment.