Update to 20w11a
Well, there is still some minor issues with new options object and compile fails for a mysterious nullable Signed-off-by: liach <liach@users.noreply.github.com>
This commit is contained in:
parent
b6c1b94e9d
commit
ec2f6a4409
@ -1 +1 @@
|
||||
Subproject commit 6e6959528b41fe1704eb1d301dbee923de6e4742
|
||||
Subproject commit 8c38ce3e65e1c7af602bf42a4a5b52c2d1c5340e
|
@ -12,7 +12,7 @@ apply plugin: "fabric-loom"
|
||||
apply plugin: "maven-publish"
|
||||
apply plugin: "eclipse"
|
||||
|
||||
version = "${mc_version}-${mod_version}"
|
||||
version = "${fabric_mc_version}-${mod_version}"
|
||||
archivesBaseName = "TerraForgedAPI-fabric"
|
||||
|
||||
repositories {
|
||||
@ -21,8 +21,8 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
minecraft "com.mojang:minecraft:${mc_version}"
|
||||
mappings "net.fabricmc:yarn:${mc_version}+build.${yarn_build}:v2"
|
||||
minecraft "com.mojang:minecraft:${fabric_mc_version}"
|
||||
mappings "net.fabricmc:yarn:${fabric_mc_version}+build.${yarn_build}:v2"
|
||||
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
|
||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}"
|
||||
compile project(":Noise2D")
|
||||
|
@ -43,6 +43,6 @@ public class ChunkContext {
|
||||
this.chunkZ = chunk.getPos().z;
|
||||
this.blockX = chunkX << 4;
|
||||
this.blockZ = chunkZ << 4;
|
||||
this.random.setSeed(chunkX, chunkZ);
|
||||
this.random.setTerrainSeed(chunkX, chunkZ);
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ apply plugin: "fabric-loom"
|
||||
apply plugin: "maven-publish"
|
||||
apply plugin: "eclipse"
|
||||
|
||||
version = "${mc_version}-${mod_version}${getClassifier()}"
|
||||
version = "${fabric_mc_version}-${mod_version}${getClassifier()}"
|
||||
archivesBaseName = "TerraForged"
|
||||
|
||||
repositories {
|
||||
@ -21,8 +21,8 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
minecraft "com.mojang:minecraft:${mc_version}"
|
||||
mappings "net.fabricmc:yarn:${mc_version}+build.${yarn_build}:v2"
|
||||
minecraft "com.mojang:minecraft:${fabric_mc_version}"
|
||||
mappings "net.fabricmc:yarn:${fabric_mc_version}+build.${yarn_build}:v2"
|
||||
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
|
||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}"
|
||||
compile project(":Noise2D")
|
||||
|
@ -31,6 +31,7 @@ import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.WorldView;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeEffects;
|
||||
import net.minecraft.world.biome.Biomes;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder;
|
||||
@ -40,7 +41,7 @@ public class ColdSteppe extends BiomeVariant {
|
||||
public ColdSteppe() {
|
||||
super((new Settings()).configureSurfaceBuilder(SurfaceBuilder.GIANT_TREE_TAIGA, SurfaceBuilder.GRASS_CONFIG)
|
||||
.precipitation(Precipitation.SNOW).category(Biome.Category.TAIGA).depth(0.2F).scale(0.25F).temperature(0.2F).downfall(0.1F)
|
||||
.waterColor(4159204).waterFogColor(329011).parent(null));
|
||||
.effects(new BiomeEffects.Builder().waterColor(4159204).waterFogColor(329011).fogColor(12638463).build()).parent(null));
|
||||
DefaultBiomeFeatures.addLandCarvers(this);
|
||||
DefaultBiomeFeatures.addDefaultStructures(this);
|
||||
// DefaultBiomeFeatures.addLakes(this);
|
||||
|
@ -29,6 +29,7 @@ import com.terraforged.api.biome.BiomeVariant;
|
||||
import net.minecraft.entity.EntityCategory;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeEffects;
|
||||
import net.minecraft.world.biome.Biomes;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.gen.GenerationStep;
|
||||
@ -42,7 +43,7 @@ public class Marshland extends BiomeVariant {
|
||||
|
||||
public Marshland() {
|
||||
super((new Settings()).configureSurfaceBuilder(SurfaceBuilder.SWAMP, SurfaceBuilder.GRASS_CONFIG).precipitation(Precipitation.RAIN)
|
||||
.category(Category.SWAMP).depth(0.2F).scale(0.2F).temperature(0.8F).downfall(0.4F).waterColor(6388580).waterFogColor(2302743)
|
||||
.category(Category.SWAMP).depth(0.2F).scale(0.2F).temperature(0.8F).downfall(0.4F).effects(new BiomeEffects.Builder().waterColor(6388580).waterFogColor(2302743).fogColor(12638463).build())
|
||||
.parent(null));
|
||||
DefaultBiomeFeatures.addLandCarvers(this);
|
||||
DefaultBiomeFeatures.addDefaultStructures(this);
|
||||
|
@ -33,6 +33,7 @@ import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.Heightmap;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeEffects;
|
||||
import net.minecraft.world.biome.Biomes;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.chunk.Chunk;
|
||||
@ -46,8 +47,9 @@ public class SavannaScrub extends BiomeVariant {
|
||||
|
||||
public SavannaScrub() {
|
||||
super((new Settings()).configureSurfaceBuilder(new Builder(), SurfaceBuilder.GRASS_CONFIG).precipitation(Precipitation.NONE)
|
||||
.category(Biome.Category.SAVANNA).depth(0.125F).scale(0.05F).temperature(1.2F).downfall(0.0F).waterColor(4159204)
|
||||
.waterFogColor(329011).parent(null));
|
||||
.category(Biome.Category.SAVANNA).depth(0.125F).scale(0.05F).temperature(1.2F).downfall(0.0F)
|
||||
.effects(new BiomeEffects.Builder().fogColor(12638463).waterColor(4159204).waterFogColor(329011).build())
|
||||
.parent(null));
|
||||
DefaultBiomeFeatures.addLandCarvers(this);
|
||||
DefaultBiomeFeatures.addDefaultStructures(this);
|
||||
// DefaultBiomeFeatures.addLakes(this);
|
||||
|
@ -32,6 +32,7 @@ import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.Heightmap;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeEffects;
|
||||
import net.minecraft.world.biome.Biomes;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.chunk.Chunk;
|
||||
@ -45,8 +46,9 @@ public class ShatteredSavannaScrub extends BiomeVariant {
|
||||
|
||||
public ShatteredSavannaScrub() {
|
||||
super((new Settings()).configureSurfaceBuilder(new Builder(), SurfaceBuilder.GRASS_CONFIG).precipitation(Precipitation.NONE)
|
||||
.category(Biome.Category.SAVANNA).depth(0.3625F).scale(1.225F).temperature(1.1F).downfall(0.0F).waterColor(4159204)
|
||||
.waterFogColor(329011).parent("terraforged:savanna_scrub"));
|
||||
.category(Biome.Category.SAVANNA).depth(0.3625F).scale(1.225F).temperature(1.1F).downfall(0.0F)
|
||||
.effects(new BiomeEffects.Builder().fogColor(12638463).waterColor(4159204).waterFogColor(329011).build())
|
||||
.parent("terraforged:savanna_scrub"));
|
||||
DefaultBiomeFeatures.addLandCarvers(this);
|
||||
DefaultBiomeFeatures.addDefaultStructures(this);
|
||||
// DefaultBiomeFeatures.addLakes(this);
|
||||
|
@ -29,6 +29,7 @@ import com.terraforged.api.biome.BiomeVariant;
|
||||
import net.minecraft.entity.EntityCategory;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeEffects;
|
||||
import net.minecraft.world.biome.Biomes;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder;
|
||||
@ -37,7 +38,8 @@ public class SnowyTaigaScrub extends BiomeVariant {
|
||||
|
||||
public SnowyTaigaScrub() {
|
||||
super(new Settings().configureSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.GRASS_CONFIG).precipitation(Precipitation.SNOW)
|
||||
.category(Category.TAIGA).depth(0.2F).scale(0.2F).temperature(-0.5F).downfall(0.4F).waterColor(4020182).waterFogColor(329011)
|
||||
.category(Category.TAIGA).depth(0.2F).scale(0.2F).temperature(-0.5F).downfall(0.4F)
|
||||
.effects(new BiomeEffects.Builder().fogColor(12638463).waterColor(4020182).waterFogColor(329011).build())
|
||||
.parent(null));
|
||||
DefaultBiomeFeatures.addLandCarvers(this);
|
||||
DefaultBiomeFeatures.addDefaultStructures(this);
|
||||
|
@ -31,6 +31,7 @@ import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.WorldView;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeEffects;
|
||||
import net.minecraft.world.biome.Biomes;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder;
|
||||
@ -39,7 +40,8 @@ public class Steppe extends BiomeVariant {
|
||||
|
||||
protected Steppe() {
|
||||
super((new Settings()).configureSurfaceBuilder(SurfaceBuilder.GIANT_TREE_TAIGA, SurfaceBuilder.GRASS_CONFIG).precipitation(Precipitation.SNOW)
|
||||
.category(Category.SAVANNA).depth(0.2F).scale(0.2F).temperature(0.7F).downfall(0.1F).waterColor(4159204).waterFogColor(329011)
|
||||
.category(Category.SAVANNA).depth(0.2F).scale(0.2F).temperature(0.7F).downfall(0.1F)
|
||||
.effects(new BiomeEffects.Builder().fogColor(12638463).waterColor(4159204).waterFogColor(329011).build())
|
||||
.parent(null));
|
||||
DefaultBiomeFeatures.addLandCarvers(this);
|
||||
DefaultBiomeFeatures.addDefaultStructures(this);
|
||||
|
@ -29,6 +29,7 @@ import com.terraforged.api.biome.BiomeVariant;
|
||||
import net.minecraft.entity.EntityCategory;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeEffects;
|
||||
import net.minecraft.world.biome.Biomes;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder;
|
||||
@ -37,7 +38,8 @@ public class TaigaScrub extends BiomeVariant {
|
||||
|
||||
public TaigaScrub() {
|
||||
super((new Settings()).configureSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.GRASS_CONFIG).precipitation(Precipitation.RAIN)
|
||||
.category(Category.TAIGA).depth(0.2F).scale(0.2F).temperature(0.25F).downfall(0.8F).waterColor(4159204).waterFogColor(329011)
|
||||
.category(Category.TAIGA).depth(0.2F).scale(0.2F).temperature(0.25F).downfall(0.8F)
|
||||
.effects(new BiomeEffects.Builder().fogColor(12638463).waterColor(4159204).waterFogColor(329011).build())
|
||||
.parent(null));
|
||||
DefaultBiomeFeatures.addLandCarvers(this);
|
||||
DefaultBiomeFeatures.addDefaultStructures(this);
|
||||
|
@ -29,6 +29,7 @@ import com.terraforged.api.biome.BiomeVariant;
|
||||
import net.minecraft.entity.EntityCategory;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeEffects;
|
||||
import net.minecraft.world.biome.Biomes;
|
||||
import net.minecraft.world.biome.DefaultBiomeFeatures;
|
||||
import net.minecraft.world.gen.feature.BuriedTreasureFeatureConfig;
|
||||
@ -41,7 +42,8 @@ public class WarmBeach extends BiomeVariant {
|
||||
|
||||
public WarmBeach() {
|
||||
super((new Settings()).configureSurfaceBuilder(SurfaceBuilder.DEFAULT, SurfaceBuilder.SAND_CONFIG).precipitation(Precipitation.RAIN)
|
||||
.category(Category.BEACH).depth(-0.5F).scale(0.1F).temperature(1.5F).downfall(0.5F).waterColor(4445678).waterFogColor(270131)
|
||||
.category(Category.BEACH).depth(-0.5F).scale(0.1F).temperature(1.5F).downfall(0.5F)
|
||||
.effects(new BiomeEffects.Builder().fogColor(12638463).waterColor(4445678).waterFogColor(270131).build())
|
||||
.parent(null));
|
||||
this.addStructureFeature(Feature.MINESHAFT.configure(new MineshaftFeatureConfig(0.004D, MineshaftFeature.Type.NORMAL)));
|
||||
this.addStructureFeature(Feature.BURIED_TREASURE.configure(new BuriedTreasureFeatureConfig(0.01F)));
|
||||
|
@ -53,7 +53,7 @@ public class GridBiomeMap extends AbstractBiomeMap {
|
||||
public Biome getBiome(BiomeType type, float temperature, float moisture, float shape) {
|
||||
BiomeGroup group = biomeTypes[type.ordinal()];
|
||||
if (group == null) {
|
||||
return Biomes.NETHER;
|
||||
return Biomes.NETHER_WASTES;
|
||||
}
|
||||
return group.biomes.get(moisture, temperature, shape);
|
||||
}
|
||||
|
@ -47,6 +47,7 @@ import net.minecraft.world.gen.chunk.ChunkGeneratorConfig;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
public abstract class ObfHelperChunkGenerator<T extends ChunkGeneratorConfig> extends ChunkGenerator<T> {
|
||||
|
||||
@ -59,7 +60,7 @@ public abstract class ObfHelperChunkGenerator<T extends ChunkGeneratorConfig> ex
|
||||
public ObfHelperChunkGenerator(IWorld world, BiomeSource biomeSource, T settings) {
|
||||
super(world, biomeSource, settings);
|
||||
ChunkRandom random = new ChunkRandom(world.getSeed());
|
||||
this.surfaceNoise = new OctavePerlinNoiseSampler(random, 3, 0);
|
||||
this.surfaceNoise = new OctavePerlinNoiseSampler(random, IntStream.rangeClosed(-3, 0));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -98,7 +99,7 @@ public abstract class ObfHelperChunkGenerator<T extends ChunkGeneratorConfig> ex
|
||||
int chunkZ = region.getCenterChunkZ();
|
||||
Biome biome = region.getChunk(chunkX, chunkZ).getBiomeArray().getBiomeForNoiseGen(0, 0, 0);
|
||||
ChunkRandom random = new ChunkRandom();
|
||||
random.setSeed(region.getSeed(), chunkX << 4, chunkZ << 4);
|
||||
random.setPopulationSeed(region.getSeed(), chunkX << 4, chunkZ << 4);
|
||||
SpawnHelper.populateEntities(region, biome, chunkX, chunkZ, random);
|
||||
}
|
||||
|
||||
|
@ -124,7 +124,7 @@ public class TerraChunkGenerator extends ObfHelperChunkGenerator<ChunkGeneratorC
|
||||
ChunkPos pos = chunk.getPos();
|
||||
ChunkReader reader = getChunkReader(pos.x, pos.z);
|
||||
TerraBiomeArray container = getBiomeSource().createBiomeContainer(reader);
|
||||
((ProtoChunk) chunk).method_22405(container);
|
||||
((ProtoChunk) chunk).setBiomes(container);
|
||||
// apply chunk-local heightmap modifications
|
||||
preProcess(pos, reader, container);
|
||||
}
|
||||
@ -205,7 +205,7 @@ public class TerraChunkGenerator extends ObfHelperChunkGenerator<ChunkGeneratorC
|
||||
postProcess(container.getChunkReader(), container, context);
|
||||
|
||||
// bake biome array & discard gen data
|
||||
((ProtoChunk) chunk).method_22405(container.bakeBiomes());
|
||||
((ProtoChunk) chunk).setBiomes(container.bakeBiomes());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -292,7 +292,7 @@ public class TerraChunkGenerator extends ObfHelperChunkGenerator<ChunkGeneratorC
|
||||
ChunkReader view = getChunkReader(chunk.getPos().x, chunk.getPos().z);
|
||||
TerraBiomeArray container = getBiomeSource().createBiomeContainer(view);
|
||||
if (chunk instanceof ProtoChunk) {
|
||||
((ProtoChunk) chunk).method_22405(container);
|
||||
((ProtoChunk) chunk).setBiomes(container);
|
||||
}
|
||||
|
||||
return container;
|
||||
|
@ -335,11 +335,6 @@ public class RegionDelegate extends ChunkRegion {
|
||||
return region.getClosestPlayer(x, y, z, distance, creativePlayers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PlayerEntity getClosestPlayer(double x, double y, double z) {
|
||||
return region.getClosestPlayer(x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlayerInRange(double x, double y, double z, double distance) {
|
||||
return region.isPlayerInRange(x, y, z, distance);
|
||||
|
@ -104,7 +104,7 @@ public class TerraCommand {
|
||||
"This command can only be run in a TerraForged world!"
|
||||
));
|
||||
|
||||
BlockPos pos = context.getSource().getPlayer().getBlockPos();
|
||||
BlockPos pos = context.getSource().getPlayer().getSenseCenterPos();
|
||||
BiomeProvider biomeProvider = getBiomeProvider(context);
|
||||
Cell<Terrain> cell = biomeProvider.lookupPos(pos.getX(), pos.getZ());
|
||||
Biome biome = biomeProvider.getBiome(cell, pos.getX(), pos.getZ());
|
||||
@ -127,7 +127,7 @@ public class TerraCommand {
|
||||
|
||||
private static int debugBiome(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
|
||||
ServerPlayerEntity player = context.getSource().getPlayer();
|
||||
BlockPos position = player.getBlockPos();
|
||||
BlockPos position = player.getSenseCenterPos();
|
||||
int x = position.getX();
|
||||
int y = position.getY();
|
||||
int z = position.getZ();
|
||||
@ -155,7 +155,7 @@ public class TerraCommand {
|
||||
|
||||
Terrain terrain = TerrainArgType.getTerrain(context, "terrain");
|
||||
Terrain target = getTerrainInstance(terrain, terraContext.terrain);
|
||||
BlockPos pos = context.getSource().getPlayer().getBlockPos();
|
||||
BlockPos pos = context.getSource().getPlayer().getSenseCenterPos();
|
||||
UUID playerID = context.getSource().getPlayer().getUuid();
|
||||
MinecraftServer server = context.getSource().getMinecraftServer();
|
||||
WorldGenerator worldGenerator = terraContext.factory.get();
|
||||
@ -174,7 +174,7 @@ public class TerraCommand {
|
||||
));
|
||||
|
||||
Biome biome = BiomeArgType.getBiome(context, "biome");
|
||||
BlockPos pos = context.getSource().getPlayer().getBlockPos();
|
||||
BlockPos pos = context.getSource().getPlayer().getSenseCenterPos();
|
||||
UUID playerID = context.getSource().getPlayer().getUuid();
|
||||
MinecraftServer server = context.getSource().getMinecraftServer();
|
||||
ServerWorld reader = context.getSource().getPlayer().getServerWorld();
|
||||
@ -195,7 +195,7 @@ public class TerraCommand {
|
||||
Terrain terrain = TerrainArgType.getTerrain(context, "terrain");
|
||||
Terrain target = getTerrainInstance(terrain, terraContext.terrain);
|
||||
Biome biome = BiomeArgType.getBiome(context, "biome");
|
||||
BlockPos pos = context.getSource().getPlayer().getBlockPos();
|
||||
BlockPos pos = context.getSource().getPlayer().getSenseCenterPos();
|
||||
ServerWorld world = context.getSource().getPlayer().getServerWorld();
|
||||
UUID playerID = context.getSource().getPlayer().getUuid();
|
||||
MinecraftServer server = context.getSource().getMinecraftServer();
|
||||
|
@ -76,7 +76,7 @@ public class TerrainHelper {
|
||||
StructureStart structurestart = neighbourChunk.getStructureStart(name);
|
||||
if (structurestart != null && structurestart.isInExistingChunk()) {
|
||||
for (StructurePiece structurepiece : structurestart.getChildren()) {
|
||||
if (structurepiece.method_16654(pos, 12) && structurepiece instanceof PoolStructurePiece) {
|
||||
if (structurepiece.intersectsChunk(pos, 12) && structurepiece instanceof PoolStructurePiece) {
|
||||
PoolStructurePiece piece = (PoolStructurePiece) structurepiece;
|
||||
StructurePool.Projection placement = piece.getPoolElement().getProjection();
|
||||
if (placement == StructurePool.Projection.RIGID) {
|
||||
|
@ -38,8 +38,8 @@ public class OverlayScreen extends Screen implements OverlayRenderer {
|
||||
|
||||
public OverlayScreen() {
|
||||
super(new TranslatableText(""));
|
||||
super.minecraft = MinecraftClient.getInstance();
|
||||
super.font = minecraft.textRenderer;
|
||||
super.client = MinecraftClient.getInstance();
|
||||
super.textRenderer = client.textRenderer;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -71,7 +71,7 @@ public class ScrollPane extends ElementListWidget<ScrollPane.Entry> implements O
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getScrollbarPosition() {
|
||||
protected int getScrollbarPositionX() {
|
||||
return getMaxPosition(); // todo old getRight
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,7 @@ package com.terraforged.mod.gui;
|
||||
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.mojang.datafixers.Dynamic;
|
||||
import com.terraforged.core.settings.Settings;
|
||||
import com.terraforged.mod.gui.element.TerraLabel;
|
||||
import com.terraforged.mod.gui.page.FeaturePage;
|
||||
@ -44,8 +45,10 @@ import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.client.gui.screen.world.CreateWorldScreen;
|
||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||
import net.minecraft.datafixer.NbtOps;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.util.Util;
|
||||
import net.minecraft.world.level.LevelGeneratorOptions;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
@ -66,7 +69,8 @@ public class SettingsScreen extends OverlayScreen {
|
||||
private int pageIndex = 0;
|
||||
|
||||
public SettingsScreen(CreateWorldScreen parent) {
|
||||
NBTHelper.deserialize(parent.generatorOptionsTag, settings);
|
||||
// todo enhance this!
|
||||
NBTHelper.deserialize((CompoundTag) parent.generatorOptions.getDynamic().convert(NbtOps.INSTANCE).getValue(), settings);
|
||||
this.parent = parent;
|
||||
this.pages = new Page[]{
|
||||
new GeneratorPage(settings, preview),
|
||||
@ -114,7 +118,8 @@ public class SettingsScreen extends OverlayScreen {
|
||||
for (Page page : pages) {
|
||||
page.save();
|
||||
}
|
||||
parent.generatorOptionsTag = NBTHelper.serializeCompact(settings);
|
||||
LevelGeneratorOptions oldOptions = parent.generatorOptions;
|
||||
parent.generatorOptions = new LevelGeneratorOptions(oldOptions.getType(), new Dynamic<>(NbtOps.INSTANCE, NBTHelper.serializeCompact(settings)), oldOptions::createChunkGenerator);
|
||||
onClose();
|
||||
}));
|
||||
|
||||
|
@ -1,16 +1,21 @@
|
||||
package com.terraforged.mod.settings;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.mojang.datafixers.OptionalDynamic;
|
||||
import com.terraforged.mod.Log;
|
||||
import com.terraforged.mod.util.nbt.NBTHelper;
|
||||
import net.minecraft.datafixer.NbtOps;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.IWorld;
|
||||
import net.minecraft.world.level.LevelGeneratorOptions;
|
||||
import net.minecraft.world.level.LevelProperties;
|
||||
import org.spongepowered.asm.mixin.injection.struct.InjectorGroupInfo;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.Reader;
|
||||
import java.util.Map;
|
||||
|
||||
public class SettingsHelper {
|
||||
|
||||
@ -22,20 +27,20 @@ public class SettingsHelper {
|
||||
}
|
||||
|
||||
public static int getVersion(LevelProperties info) {
|
||||
if (info.getGeneratorOptions().isEmpty()) {
|
||||
if (info.getGeneratorOptions().getDynamic().getMapValues().map(Map::isEmpty).orElse(true)) {
|
||||
// if options have not been set then the world has been created
|
||||
// during the current runtime .: is not legacy
|
||||
// return TerraWorld.VERSION; todo
|
||||
return 0;
|
||||
}
|
||||
|
||||
CompoundTag version = info.getGeneratorOptions().getCompound("version");
|
||||
if (version.isEmpty()) {
|
||||
OptionalDynamic<?> version = info.getGeneratorOptions().getDynamic().get("version");
|
||||
if (!version.get().isPresent()) {
|
||||
// version tag is absent in legacy worlds .: is legacy
|
||||
return 0;
|
||||
}
|
||||
|
||||
return version.getInt("value");
|
||||
return version.get().get().get("value").asInt(0); // blursed dfu
|
||||
}
|
||||
|
||||
public static TerraSettings getSettings(IWorld world) {
|
||||
@ -52,8 +57,8 @@ public class SettingsHelper {
|
||||
|
||||
public static TerraSettings getSettings(LevelProperties info) {
|
||||
TerraSettings settings = new TerraSettings();
|
||||
if (!info.getGeneratorOptions().isEmpty()) {
|
||||
NBTHelper.deserialize(info.getGeneratorOptions(), settings);
|
||||
if (!info.getGeneratorOptions().getDynamic().getMapValues().map(Map::isEmpty).orElse(true)) {
|
||||
NBTHelper.deserialize((CompoundTag) info.getGeneratorOptions().getDynamic().convert(NbtOps.INSTANCE).getValue(), settings);
|
||||
}
|
||||
return settings;
|
||||
}
|
||||
@ -62,6 +67,7 @@ public class SettingsHelper {
|
||||
settings.version = version;
|
||||
settings.generator.seed = info.getSeed();
|
||||
CompoundTag options = NBTHelper.serialize(settings);
|
||||
info.setGeneratorOptions(options);
|
||||
// todo find generator type and chunk generator factory
|
||||
//info.setGeneratorOptions(new LevelGeneratorOptions());
|
||||
}
|
||||
}
|
||||
|
@ -3,8 +3,9 @@ mc_version=1.15.2
|
||||
forge_version=31.1.1
|
||||
mcp_channel=snapshot
|
||||
mcp_version=20200225-1.15.1
|
||||
yarn_build=14
|
||||
fabric_mc_version=20w11a
|
||||
yarn_build=6
|
||||
fabric_loader_version=0.7.8+build.187
|
||||
fabric_api_version=0.5.0+build.293-1.15
|
||||
fabric_api_version=0.5.3+build.308-1.16
|
||||
org.gradle.jvmargs=-Xmx4G
|
||||
org.gradle.daemon=false
|
Loading…
Reference in New Issue
Block a user