Common build now!

This commit is contained in:
TomTheFurry
2022-06-12 15:38:11 +08:00
parent 417b98f881
commit 16adf15975
10 changed files with 168 additions and 18 deletions
+5 -3
View File
@@ -9,7 +9,7 @@ buildscript {
plugins {
id "architectury-plugin" version "3.4-SNAPSHOT"
id "dev.architectury.loom" version "0.11.0-SNAPSHOT" apply false
id "dev.architectury.loom" version "0.12.0-SNAPSHOT" apply false
}
def writeBuildGradlePredefine(List<String> mcVers, int mcIndex) {
@@ -115,6 +115,7 @@ subprojects { p ->
// Toml
implementation("com.electronwill.night-config:toml:${rootProject.toml_version}")
implementation("com.googlecode.json-simple:json-simple:1.1.1")
if (p != project(":forge")) {
// We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies
@@ -122,10 +123,11 @@ subprojects { p ->
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
}
if (p != project(":core"))
//if (p != project(":core"))
if (p == project(":common")) {
common(project(":core")) { transitive false }
if (p == project(":common"))
shadowMe(project(":core")) { transitive false }
}
}
// Allows the jar to run standalone
@@ -20,14 +20,24 @@
package com.seibel.lod.common.wrappers.world;
import java.awt.Color;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.function.Function;
import java.util.function.Supplier;
import com.google.common.collect.ImmutableBiMap;
import com.google.common.collect.ImmutableList;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.core.wrapperInterfaces.world.IBiomeWrapper;
import net.minecraft.data.BuiltinRegistries;
import net.minecraft.data.worldgen.biome.EndBiomes;
import net.minecraft.data.worldgen.biome.NetherBiomes;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.Biomes;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.material.MaterialColor;
@@ -58,18 +68,13 @@ public class BiomeWrapper implements IBiomeWrapper
return biomeWrapper;
}
/** Returns a color int for the given biome. */
#if PRE_MC_1_19
@Override
public int getColorForBiome(int x, int z)
{
int colorInt;
#if PRE_MC_1_19
switch (biome.biomeCategory)
#else
switch (biome.biomeCategory) // FIXME[1.19]
#endif
{
case NETHER:
@@ -125,7 +130,140 @@ public class BiomeWrapper implements IBiomeWrapper
return colorInt;
}
#else
private static int _colorEnd(Biome b) {
return Blocks.END_STONE.defaultMaterialColor().col;
}
private static int _colorNether(Biome b) {
return Blocks.NETHERRACK.defaultMaterialColor().col;
}
private static int _colorSand(Biome b) {
return Blocks.SAND.defaultMaterialColor().col;
}
private static int _colorStone(Biome b) {
return Blocks.STONE.defaultMaterialColor().col;
}
private static int _colorGravel(Biome b) {
return Blocks.GRAVEL.defaultMaterialColor().col;
}
private static int _colorDripStone(Biome b) {
return Blocks.DRIPSTONE_BLOCK.defaultMaterialColor().col;
}
private static int _colorMoss(Biome b) {
return Blocks.MOSS_BLOCK.defaultMaterialColor().col;
}
private static int _colorSculk(Biome b) {
return Blocks.SCULK.defaultMaterialColor().col;
}
private static int _colorMushoom(Biome b) {
return Blocks.MYCELIUM.defaultMaterialColor().col;
}
private static int _colorBamboo(Biome b) {
return Blocks.BAMBOO.defaultMaterialColor().col;
}
private static int _colorSnow(Biome b) {
return Blocks.SNOW.defaultMaterialColor().col;
}
private static int _colorIce(Biome b) {
return Blocks.ICE.defaultMaterialColor().col;
}
private static int _colorRedSand(Biome b) {
return Blocks.RED_SAND.defaultMaterialColor().col;
}
private static int _colorSoulSand(Biome b) {
return Blocks.SOUL_SAND.defaultMaterialColor().col;
}
private static int _colorBasalt(Biome b) {
return Blocks.BASALT.defaultMaterialColor().col;
}
private static int _colorWater(Biome b) {
return b.getWaterColor();
}
private static int _colorFoliage(Biome b) {
return b.getFoliageColor();
}
private static Biome _get(ResourceKey<Biome> r) {
return BuiltinRegistries.BIOME.getOrThrow(r);
}
//FIXME: THIS IS HELL!
private static final ImmutableBiMap<Biome, Function<Biome, Integer>> BIOME_COLOR_MAP =
ImmutableBiMap.<Biome, Function<Biome, Integer>>builder()
.put(_get(Biomes.SNOWY_PLAINS), BiomeWrapper::_colorSnow)
.put(_get(Biomes.ICE_SPIKES), BiomeWrapper::_colorIce)
.put(_get(Biomes.DESERT), BiomeWrapper::_colorSand)
.put(_get(Biomes.SWAMP), BiomeWrapper::_colorWater)
.put(_get(Biomes.MANGROVE_SWAMP), BiomeWrapper::_colorWater)
.put(_get(Biomes.FOREST), BiomeWrapper::_colorFoliage)
.put(_get(Biomes.FLOWER_FOREST), BiomeWrapper::_colorFoliage)
.put(_get(Biomes.BIRCH_FOREST), BiomeWrapper::_colorFoliage)
.put(_get(Biomes.DARK_FOREST), BiomeWrapper::_colorFoliage)
.put(_get(Biomes.OLD_GROWTH_BIRCH_FOREST), BiomeWrapper::_colorFoliage)
.put(_get(Biomes.OLD_GROWTH_PINE_TAIGA), BiomeWrapper::_colorFoliage)
.put(_get(Biomes.OLD_GROWTH_SPRUCE_TAIGA), BiomeWrapper::_colorFoliage)
.put(_get(Biomes.TAIGA), BiomeWrapper::_colorFoliage)
.put(_get(Biomes.SNOWY_TAIGA), BiomeWrapper::_colorSnow)
.put(_get(Biomes.WINDSWEPT_GRAVELLY_HILLS), BiomeWrapper::_colorGravel)
.put(_get(Biomes.WINDSWEPT_FOREST), BiomeWrapper::_colorFoliage)
.put(_get(Biomes.JUNGLE), BiomeWrapper::_colorFoliage)
.put(_get(Biomes.BAMBOO_JUNGLE), BiomeWrapper::_colorBamboo)
.put(_get(Biomes.BADLANDS), BiomeWrapper::_colorRedSand)
.put(_get(Biomes.ERODED_BADLANDS), BiomeWrapper::_colorRedSand)
.put(_get(Biomes.WOODED_BADLANDS), BiomeWrapper::_colorStone)
.put(_get(Biomes.GROVE), BiomeWrapper::_colorSnow)
.put(_get(Biomes.SNOWY_SLOPES), BiomeWrapper::_colorSnow)
.put(_get(Biomes.FROZEN_PEAKS), BiomeWrapper::_colorIce)
.put(_get(Biomes.JAGGED_PEAKS), BiomeWrapper::_colorSnow)
.put(_get(Biomes.STONY_PEAKS), BiomeWrapper::_colorStone)
.put(_get(Biomes.RIVER), BiomeWrapper::_colorWater)
.put(_get(Biomes.FROZEN_RIVER), BiomeWrapper::_colorIce)
.put(_get(Biomes.BEACH), BiomeWrapper::_colorSand)
.put(_get(Biomes.SNOWY_BEACH), BiomeWrapper::_colorSnow)
.put(_get(Biomes.STONY_SHORE), BiomeWrapper::_colorStone)
.put(_get(Biomes.WARM_OCEAN), BiomeWrapper::_colorWater)
.put(_get(Biomes.LUKEWARM_OCEAN), BiomeWrapper::_colorWater)
.put(_get(Biomes.DEEP_LUKEWARM_OCEAN), BiomeWrapper::_colorWater)
.put(_get(Biomes.OCEAN), BiomeWrapper::_colorWater)
.put(_get(Biomes.DEEP_OCEAN), BiomeWrapper::_colorWater)
.put(_get(Biomes.COLD_OCEAN), BiomeWrapper::_colorWater)
.put(_get(Biomes.DEEP_COLD_OCEAN), BiomeWrapper::_colorWater)
.put(_get(Biomes.FROZEN_OCEAN), BiomeWrapper::_colorIce)
.put(_get(Biomes.DEEP_FROZEN_OCEAN), BiomeWrapper::_colorIce)
.put(_get(Biomes.MUSHROOM_FIELDS), BiomeWrapper::_colorMushoom)
.put(_get(Biomes.DRIPSTONE_CAVES), BiomeWrapper::_colorDripStone)
.put(_get(Biomes.LUSH_CAVES), BiomeWrapper::_colorMoss)
.put(_get(Biomes.DEEP_DARK), BiomeWrapper::_colorSculk)
.put(_get(Biomes.NETHER_WASTES), BiomeWrapper::_colorNether)
.put(_get(Biomes.WARPED_FOREST), BiomeWrapper::_colorNether)
.put(_get(Biomes.CRIMSON_FOREST), BiomeWrapper::_colorNether)
.put(_get(Biomes.SOUL_SAND_VALLEY), BiomeWrapper::_colorSoulSand)
.put(_get(Biomes.BASALT_DELTAS), BiomeWrapper::_colorBasalt)
.put(_get(Biomes.THE_END), BiomeWrapper::_colorEnd)
.put(_get(Biomes.END_HIGHLANDS), BiomeWrapper::_colorEnd)
.put(_get(Biomes.END_MIDLANDS), BiomeWrapper::_colorEnd)
.put(_get(Biomes.SMALL_END_ISLANDS), BiomeWrapper::_colorEnd)
.put(_get(Biomes.END_BARRENS), BiomeWrapper::_colorEnd)
.build();
@Override
public int getColorForBiome(int x, int z)
{
int colorInt;
Function<Biome, Integer> colorFunction = BIOME_COLOR_MAP.get(biome);
if (colorFunction != null)
{
colorInt = colorFunction.apply(biome);
}
else
{
colorInt = biome.getGrassColor(x, z);
}
return colorInt;
}
#endif
@Override public String getName()
{
return biome.toString();
@@ -367,7 +367,11 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv
CompoundTag chunkData = null;
try
{
#if POST_MC_1_19
chunkData = level.getChunkSource().chunkMap.readChunk(chunkPos).get().orElse(null);
#else
chunkData = level.getChunkSource().chunkMap.readChunk(chunkPos);
#endif
}
catch (Exception e)
{
@@ -34,6 +34,7 @@ import net.minecraft.world.level.chunk.ChunkGenerator;
#if POST_MC_1_18_1
import net.minecraft.world.level.chunk.storage.ChunkScanAccess;
#endif
import net.minecraft.world.level.levelgen.RandomState;
import net.minecraft.world.level.levelgen.WorldGenSettings;
#if PRE_MC_1_19
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureManager;
@@ -49,6 +50,7 @@ public final class GlobalParameters
public final StructureManager structures;
#else
public final StructureTemplateManager structures;
public final RandomState randomState;
#endif
public final WorldGenSettings worldGenSettings;
public final ThreadedLevelLightEngine lightEngine;
@@ -83,5 +85,8 @@ public final class GlobalParameters
structures = server.getStructureManager();
generator = level.getChunkSource().getGenerator();
fixerUpper = server.getFixerUpper();
#if POST_MC_1_19
randomState = level.getChunkSource().randomState();
#endif
}
}
@@ -66,8 +66,8 @@ public final class ThreadedParameters
param.fixerUpper);
#else
structCheck = new StructureCheck(param.chunkScanner, param.registry, param.structures,
param.level.dimension(), param.generator, /*FIXME[1.19]*/, level, param.generator.getBiomeSource(), param.worldSeed,
param.fixerUpper);
param.level.dimension(), param.generator, param.randomState, level, param.generator.getBiomeSource(), param.worldSeed,
param.fixerUpper);
#endif
}
@@ -77,7 +77,7 @@ public final class StepBiomes {
chunk = environment.joinSync(environment.params.generator.createBiomes(environment.params.biomes, Runnable::run, Blender.of(worldGenRegion),
tParams.structFeat.forWorldGenRegion(worldGenRegion), chunk));
#else
chunk = environment.joinSync(environment.params.generator.createBiomes(environment.params.biomes, Runnable::run, /*FIXME[1.19]*/, Blender.of(worldGenRegion),
chunk = environment.joinSync(environment.params.generator.createBiomes(environment.params.biomes, Runnable::run, environment.params.randomState, Blender.of(worldGenRegion),
tParams.structFeat.forWorldGenRegion(worldGenRegion), chunk));
#endif
}
@@ -85,7 +85,7 @@ public final class StepNoise {
chunk = environment.joinSync(environment.params.generator.fillFromNoise(Runnable::run, Blender.of(worldGenRegion),
tParams.structFeat.forWorldGenRegion(worldGenRegion), chunk));
#else
chunk = environment.joinSync(environment.params.generator.fillFromNoise(Runnable::run, Blender.of(worldGenRegion), /*FIXME[1.19]*/,
chunk = environment.joinSync(environment.params.generator.fillFromNoise(Runnable::run, Blender.of(worldGenRegion), environment.params.randomState,
tParams.structFeat.forWorldGenRegion(worldGenRegion), chunk));
#endif
LodUtil.checkInterruptsUnchecked(); // Speed up termination responsiveness
@@ -70,7 +70,7 @@ public final class StepStructureStart {
#if PRE_MC_1_19
if (environment.params.worldGenSettings.generateFeatures()) {
#elif POST_MC_1_19
if (environment.params.worldGenSettings.generateStructures())
if (environment.params.worldGenSettings.generateStructures()) {
#endif
for (ChunkAccess chunk : chunksToDo) {
// System.out.println("StepStructureStart: "+chunk.getPos());
@@ -78,7 +78,7 @@ public final class StepStructureStart {
environment.params.generator.createStructures(environment.params.registry, tParams.structFeat, chunk, environment.params.structures,
environment.params.worldSeed);
#elif POST_MC_1_19
environment.params.generator.createStructures(environment.params.registry, /*FIXME[1.19]*/, tParams.structFeat, chunk, environment.params.structures,
environment.params.generator.createStructures(environment.params.registry, environment.params.randomState, tParams.structFeat, chunk, environment.params.structures,
environment.params.worldSeed);
#endif
#if POST_MC_1_18_1
@@ -63,7 +63,7 @@ public final class StepSurface {
#elif PRE_MC_1_19
environment.params.generator.buildSurface(worldGenRegion, tParams.structFeat.forWorldGenRegion(worldGenRegion), chunk);
#else
environment.params.generator.buildSurface(worldGenRegion, tParams.structFeat.forWorldGenRegion(worldGenRegion), /*FIXME[1.19]*/, chunk);
environment.params.generator.buildSurface(worldGenRegion, tParams.structFeat.forWorldGenRegion(worldGenRegion), environment.params.randomState, chunk);
#endif
}
}
@@ -23,9 +23,10 @@ accessible field net/minecraft/world/level/lighting/LevelLightEngine skyEngine L
# world generation
accessible method net/minecraft/world/level/levelgen/Heightmap setHeight (III)V
accessible field net/minecraft/world/level/biome/Biome generationSettings Lnet/minecraft/world/level/biome/BiomeGenerationSettings;
#accessible field net/minecraft/world/level/biome/Biome biomeCategory Lnet/minecraft/world/level/biome/Biome$BiomeCategory; #FIXME[1.19] What is the 1.19 alternative to this
# accessible field net/minecraft/world/level/levelgen/NoiseBasedChunkGenerator settings Lnet/minecraft/core/Holder;
accessible method net/minecraft/world/level/lighting/LayerLightEngine queueSectionData (JLnet/minecraft/world/level/chunk/DataLayer;Z)V
accessible method net/minecraft/server/level/ChunkMap readChunk (Lnet/minecraft/world/level/ChunkPos;)Ljava/util/concurrent/CompletableFuture;
# lod generation from save file
accessible field net/minecraft/server/level/ChunkMap mainThreadExecutor Lnet/minecraft/util/thread/BlockableEventLoop;