Skip to content

Commit

Permalink
Update to 1.18.1
Browse files Browse the repository at this point in the history
  • Loading branch information
jR3f committed Jan 11, 2022
1 parent f3dcad2 commit 2fcb8d7
Show file tree
Hide file tree
Showing 12 changed files with 97 additions and 70 deletions.
16 changes: 7 additions & 9 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,12 @@ on: [push]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- name: Set up JDK 1.16
uses: actions/setup-java@v1
with:
java-version: 1.16
- name: Build with Gradle
run: chmod +x gradlew && ./gradlew build
- uses: actions/checkout@v1
- name: Set up JDK 1.17
uses: actions/setup-java@v1
with:
java-version: 1.17
- name: Build with Gradle
run: chmod +x gradlew && ./gradlew build
10 changes: 5 additions & 5 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import java.text.SimpleDateFormat

plugins {
id 'fabric-loom' version '0.9-SNAPSHOT'
id 'fabric-loom' version '0.10-SNAPSHOT'
id 'maven-publish'
}

Expand All @@ -11,14 +11,14 @@ repositories {
}
}

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

archivesBaseName = project.archives_base_name
version = project.minecraft_version + "-" + project.mod_version

minecraft {
accessWidener = file("src/main/resources/skyblock.accesswidener")
loom {
accessWidenerPath = file("src/main/resources/skyblock.accesswidener")
}

dependencies {
Expand Down
12 changes: 6 additions & 6 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
org.gradle.jvmargs=-Xmx1G

# Mod Properties
mod_version = 3.0.1
mod_version = 3.2.1
archives_base_name = skyblock

# Fabric Properties
# see https://modmuss50.me/fabric.html
minecraft_version=1.17.1
yarn_mappings=1.17.1+build.24
loader_version=0.11.6
fabric_api_version=0.37.0+1.17
minecraft_version=1.18.1
yarn_mappings=1.18.1+build.18
loader_version=0.12.12
fabric_api_version=0.45.2+1.18

# see https://masa.dy.fi/maven/carpet/fabric-carpet/
carpet_core_version=1.17.1-1.4.44+v210714
carpet_core_version=1.18-1.4.56+v211130
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
45 changes: 29 additions & 16 deletions src/main/java/com/jsorrell/skyblock/gen/SkyBlockChunkGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,36 +22,46 @@
import net.minecraft.structure.StructurePiece;
import net.minecraft.structure.StructurePieceType;
import net.minecraft.util.Identifier;
import net.minecraft.util.dynamic.RegistryLookupCodec;
import net.minecraft.util.math.BlockBox;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.math.ChunkSectionPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Direction.Axis;
import net.minecraft.util.math.Vec3i;
import net.minecraft.util.math.noise.DoublePerlinNoiseSampler;
import net.minecraft.util.registry.BuiltinRegistries;
import net.minecraft.util.registry.Registry;
import net.minecraft.world.ChunkRegion;
import net.minecraft.world.ServerWorldAccess;
import net.minecraft.world.StructureWorldAccess;
import net.minecraft.world.WorldAccess;
import net.minecraft.world.biome.source.BiomeAccess;
import net.minecraft.world.biome.source.BiomeSource;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.WorldChunk;
import net.minecraft.world.gen.ChunkRandom;
import net.minecraft.world.gen.GenerationStep;
import net.minecraft.world.gen.StructureAccessor;
import net.minecraft.world.gen.chunk.Blender;
import net.minecraft.world.gen.chunk.ChunkGenerator;
import net.minecraft.world.gen.chunk.ChunkGeneratorSettings;
import net.minecraft.world.gen.chunk.NoiseChunkGenerator;
import net.minecraft.world.gen.random.AtomicSimpleRandom;
import net.minecraft.world.gen.random.ChunkRandom;

public class SkyBlockChunkGenerator extends NoiseChunkGenerator {
private final long seed;
private final Registry<DoublePerlinNoiseSampler.NoiseParameters> noiseRegistry;

public static final Codec<SkyBlockChunkGenerator> CODEC =
RecordCodecBuilder.create(
(instance) ->
instance
.group(
RegistryLookupCodec
.of(Registry.NOISE_WORLDGEN)
.forGetter(SkyBlockChunkGenerator::getNoiseRegistry),
BiomeSource.CODEC
.fieldOf("biome_source")
.forGetter(SkyBlockChunkGenerator::getBiomeSource),
Expand All @@ -65,11 +75,16 @@ public class SkyBlockChunkGenerator extends NoiseChunkGenerator {
.apply(instance, instance.stable(SkyBlockChunkGenerator::new)));

public SkyBlockChunkGenerator(
BiomeSource biomeSource, long seed, Supplier<ChunkGeneratorSettings> settings) {
super(biomeSource, seed, settings);
Registry<DoublePerlinNoiseSampler.NoiseParameters> noiseRegistry, BiomeSource biomeSource, long seed, Supplier<ChunkGeneratorSettings> settings) {
super(noiseRegistry, biomeSource, seed, settings);
this.noiseRegistry = noiseRegistry;
this.seed = seed;
}

public Registry<DoublePerlinNoiseSampler.NoiseParameters> getNoiseRegistry() {
return this.noiseRegistry;
}

public long getSeed() {
return this.seed;
}
Expand All @@ -86,13 +101,11 @@ protected Codec<? extends ChunkGenerator> getCodec() {
@Override
@Environment(EnvType.CLIENT)
public ChunkGenerator withSeed(long seed) {
return new SkyBlockChunkGenerator(this.biomeSource.withSeed(seed), seed, this.settings);
return new SkyBlockChunkGenerator(this.noiseRegistry, this.biomeSource.withSeed(seed), seed, this.settings);
}

@Override
public void buildSurface(ChunkRegion region, Chunk chunk) {
Arrays.fill(chunk.getSectionArray(), WorldChunk.EMPTY_SECTION);

public void buildSurface(ChunkRegion region, StructureAccessor accessor, Chunk chunk) {
if (region.getDimension().isNatural()) {
BlockPos spawn =
new BlockPos(
Expand Down Expand Up @@ -120,23 +133,23 @@ public void buildSurface(ChunkRegion region, Chunk chunk) {
// TODO: Does this hurt something
@Override
public CompletableFuture<Chunk> populateNoise(
Executor executor, StructureAccessor accessor, Chunk chunk) {
Executor executor, Blender blender, StructureAccessor accessor, Chunk chunk) {
return CompletableFuture.completedFuture(chunk);
}

@Override
public void carve(long seed, BiomeAccess access, Chunk chunk, GenerationStep.Carver carver) {}
public void carve(ChunkRegion chunkRegion, long seed, BiomeAccess access, StructureAccessor accessor, Chunk chunk, GenerationStep.Carver carver) {}

@Override
public void generateFeatures(ChunkRegion region, StructureAccessor accessor) {
ChunkPos chunkPos = region.getCenterPos();
BlockPos pos = new BlockPos(chunkPos.getStartX(), region.getBottomY(), chunkPos.getStartZ());
public void generateFeatures(StructureWorldAccess world, Chunk chunk, StructureAccessor accessor) {
ChunkPos chunkPos = chunk.getPos();
BlockPos pos = new BlockPos(chunkPos.getStartX(), chunk.getBottomY(), chunkPos.getStartZ());
int startX = chunkPos.getStartX();
int startZ = chunkPos.getStartZ();
BlockBox box = new BlockBox(startX, 0, startZ, startX + 15, region.getHeight(), startZ + 15);
BlockBox box = new BlockBox(startX, 0, startZ, startX + 15, chunk.getHeight(), startZ + 15);

accessor
.getStructuresWithChildren(
.getStructureStarts(
ChunkSectionPos.from(pos),
Registry.STRUCTURE_FEATURE.get(new Identifier("minecraft:stronghold")))
.forEach(
Expand All @@ -149,10 +162,10 @@ public void generateFeatures(ChunkRegion region, StructureAccessor accessor) {
piece.getBoundingBox().getMinY(),
piece.getBoundingBox().getMinZ());
if (piece.intersectsChunk(chunkPos, 0)) {
ChunkRandom random = new ChunkRandom();
ChunkRandom random = new ChunkRandom(new AtomicSimpleRandom(seed));
random.setCarverSeed(seed, chunkPos.x, chunkPos.z);
generateStrongholdPortalInBox(
region, portalPos, random, Objects.requireNonNull(piece.getFacing()), box);
world, portalPos, random, Objects.requireNonNull(piece.getFacing()), box);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import com.mojang.serialization.Lifecycle;

import net.minecraft.util.math.noise.DoublePerlinNoiseSampler;
import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.SimpleRegistry;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.source.MultiNoiseBiomeSource;
import net.minecraft.world.biome.source.TheEndBiomeSource;
import net.minecraft.world.biome.source.VanillaLayeredBiomeSource;
import net.minecraft.world.dimension.DimensionOptions;
import net.minecraft.world.dimension.DimensionType;
import net.minecraft.world.gen.chunk.ChunkGenerator;
Expand All @@ -19,6 +19,7 @@ public class SkyBlockGenerationSettings {

public static SimpleRegistry<DimensionOptions> getSkyBlockDimensionOptions(
Registry<DimensionType> dimensionTypeRegistry,
Registry<DoublePerlinNoiseSampler.NoiseParameters> noiseRegistry,
Registry<Biome> biomeRegistry,
Registry<ChunkGeneratorSettings> settingsRegistry,
long seed) {
Expand All @@ -28,42 +29,54 @@ public static SimpleRegistry<DimensionOptions> getSkyBlockDimensionOptions(
DimensionOptions.OVERWORLD,
new DimensionOptions(
() -> dimensionTypeRegistry.get(DimensionType.OVERWORLD_REGISTRY_KEY),
createOverworldGenerator(biomeRegistry, settingsRegistry, seed)),
createOverworldGenerator(noiseRegistry, biomeRegistry, settingsRegistry, seed)),
Lifecycle.stable());
simpleRegistry.add(
DimensionOptions.NETHER,
new DimensionOptions(
() -> dimensionTypeRegistry.get(DimensionType.THE_NETHER_REGISTRY_KEY),
createNetherGenerator(biomeRegistry, settingsRegistry, seed)),
createNetherGenerator(noiseRegistry, biomeRegistry, settingsRegistry, seed)),
Lifecycle.stable());
simpleRegistry.add(
DimensionOptions.END,
new DimensionOptions(
() -> dimensionTypeRegistry.get(DimensionType.THE_END_REGISTRY_KEY),
createEndGenerator(biomeRegistry, settingsRegistry, seed)),
createEndGenerator(noiseRegistry, biomeRegistry, settingsRegistry, seed)),
Lifecycle.stable());
return simpleRegistry;
}

public static ChunkGenerator createOverworldGenerator(
Registry<Biome> biomeRegistry, Registry<ChunkGeneratorSettings> settingsRegistry, long seed) {
Registry<DoublePerlinNoiseSampler.NoiseParameters> noiseRegistry,
Registry<Biome> biomeRegistry,
Registry<ChunkGeneratorSettings> settingsRegistry,
long seed) {
return new SkyBlockChunkGenerator(
new VanillaLayeredBiomeSource(seed, false, false, biomeRegistry),
noiseRegistry,
MultiNoiseBiomeSource.Preset.OVERWORLD.getBiomeSource(biomeRegistry).withSeed(seed),
seed,
() -> settingsRegistry.getOrThrow(ChunkGeneratorSettings.OVERWORLD));
}

public static ChunkGenerator createNetherGenerator(
Registry<Biome> biomeRegistry, Registry<ChunkGeneratorSettings> settingsRegistry, long seed) {
Registry<DoublePerlinNoiseSampler.NoiseParameters> noiseRegistry,
Registry<Biome> biomeRegistry,
Registry<ChunkGeneratorSettings> settingsRegistry,
long seed) {
return new SkyBlockChunkGenerator(
MultiNoiseBiomeSource.Preset.NETHER.getBiomeSource(biomeRegistry, seed),
noiseRegistry,
MultiNoiseBiomeSource.Preset.NETHER.getBiomeSource(biomeRegistry).withSeed(seed),
seed,
() -> settingsRegistry.getOrThrow(ChunkGeneratorSettings.NETHER));
}

public static ChunkGenerator createEndGenerator(
Registry<Biome> biomeRegistry, Registry<ChunkGeneratorSettings> settingsRegistry, long seed) {
Registry<DoublePerlinNoiseSampler.NoiseParameters> noiseRegistry,
Registry<Biome> biomeRegistry,
Registry<ChunkGeneratorSettings> settingsRegistry,
long seed) {
return new SkyBlockChunkGenerator(
noiseRegistry,
new TheEndBiomeSource(biomeRegistry, seed),
seed,
() -> settingsRegistry.getOrThrow(ChunkGeneratorSettings.END));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import net.fabricmc.api.Environment;

import net.minecraft.client.world.GeneratorType;
import net.minecraft.util.math.noise.DoublePerlinNoiseSampler;
import net.minecraft.util.registry.DynamicRegistryManager;
import net.minecraft.util.registry.Registry;
import net.minecraft.util.registry.SimpleRegistry;
Expand All @@ -20,11 +21,15 @@ public class SkyBlockGeneratorTypes {
new GeneratorType("skyblock") {
@Override
protected ChunkGenerator getChunkGenerator(
Registry<Biome> biomeRegistry,
Registry<ChunkGeneratorSettings> chunkGeneratorSettingsRegistry,
DynamicRegistryManager registryManager,
long seed) {
Registry<DoublePerlinNoiseSampler.NoiseParameters> noiseRegistry =
registryManager.get(Registry.NOISE_WORLDGEN);
Registry<Biome> biomeRegistry = registryManager.get(Registry.BIOME_KEY);
Registry<ChunkGeneratorSettings> settingsRegistry =
registryManager.get(Registry.CHUNK_GENERATOR_SETTINGS_KEY);
return SkyBlockGenerationSettings.createOverworldGenerator(
biomeRegistry, chunkGeneratorSettingsRegistry, seed);
noiseRegistry, biomeRegistry, settingsRegistry, seed);
}

@Override
Expand All @@ -33,14 +38,16 @@ public GeneratorOptions createDefaultOptions(
long seed,
boolean generateStructures,
boolean bonusChest) {
Registry<DoublePerlinNoiseSampler.NoiseParameters> noiseRegistry =
registryManager.get(Registry.NOISE_WORLDGEN);
Registry<Biome> biomeRegistry = registryManager.get(Registry.BIOME_KEY);
Registry<DimensionType> dimensionTypeRegistry =
registryManager.get(Registry.DIMENSION_TYPE_KEY);
Registry<ChunkGeneratorSettings> settingsRegistry =
registryManager.get(Registry.CHUNK_GENERATOR_SETTINGS_KEY);
SimpleRegistry<DimensionOptions> dimensionOptionsRegistry =
SkyBlockGenerationSettings.getSkyBlockDimensionOptions(
dimensionTypeRegistry, biomeRegistry, settingsRegistry, seed);
dimensionTypeRegistry, noiseRegistry, biomeRegistry, settingsRegistry, seed);
return new GeneratorOptions(
seed, generateStructures, bonusChest, dimensionOptionsRegistry);
}
Expand Down
10 changes: 0 additions & 10 deletions src/main/java/com/jsorrell/skyblock/helpers/UsefulComposter.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,8 @@
import net.minecraft.world.biome.Biome;

public class UsefulComposter {
protected static final List<Block> possibleSurfaceDrops =
new ArrayList<>(Arrays.asList(Blocks.SAND, Blocks.RED_SAND, Blocks.DIRT));

public static Item getComposterProduct(Biome biome) {
Block dropBlock = Blocks.DIRT;

Block surfaceBlock =
biome.getGenerationSettings().getSurfaceConfig().getTopMaterial().getBlock();
if (possibleSurfaceDrops.contains(surfaceBlock)) {
dropBlock = surfaceBlock;
}

return dropBlock.asItem();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.StructureWorldAccess;
import net.minecraft.world.gen.ChunkRandom;
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
import net.minecraft.world.gen.feature.EndIslandFeature;
import net.minecraft.world.gen.feature.Feature;
import net.minecraft.world.gen.feature.util.FeatureContext;
import net.minecraft.world.gen.random.AtomicSimpleRandom;
import net.minecraft.world.gen.random.ChunkRandom;

import com.jsorrell.skyblock.SkyBlockSettings;

Expand All @@ -42,7 +43,7 @@ private void generateChorus(
int level) {
if (SkyBlockSettings.gatewaysSpawnChorus) {
if (level == 0) {
ChunkRandom randomChorus = new ChunkRandom();
ChunkRandom randomChorus = new ChunkRandom(new AtomicSimpleRandom(world.getSeed()));
ChunkPos chunkPos = new ChunkPos(blockPos);
randomChorus.setPopulationSeed(world.getSeed(), chunkPos.getStartX(), chunkPos.getStartZ());
int islandRadius = MathHelper.ceil(islandSizeF);
Expand All @@ -52,7 +53,7 @@ private void generateChorus(
int zOffset = randomChorus.nextInt(2 * farthestZ) - farthestZ;
BlockPos chorusPos = blockPos.add(xOffset, 1, zOffset);
Feature.CHORUS_PLANT.generate(
new FeatureContext<>(world, null, randomChorus, chorusPos, null));
new FeatureContext(null, world, null, randomChorus, chorusPos, null));
}
}
}
Expand Down
Loading

0 comments on commit 2fcb8d7

Please sign in to comment.