From 3c94b5960dff527dc6e60bae5b1df5c7bc435d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Wed, 8 Jun 2022 22:18:21 -0500 Subject: [PATCH 1/9] More environment settings for fabric --- .gitignore | 3 +- .../com/dfsek/terra/fabric/PlatformImpl.java | 21 ++++- .../config/BiomeAdditionsSoundTemplate.java | 27 ++++++ .../fabric/config/BiomeMoodSoundTemplate.java | 35 +++++++ .../config/BiomeParticleConfigTemplate.java | 33 +++++++ .../fabric/config/MusicSoundTemplate.java | 36 +++++++ .../fabric/config/SoundEventTemplate.java | 29 ++++++ .../fabric/config/VanillaBiomeProperties.java | 87 +++++++++++++++-- .../dfsek/terra/fabric/util/BiomeUtil.java | 93 ++++++++++++------- 9 files changed, 319 insertions(+), 45 deletions(-) create mode 100644 platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeAdditionsSoundTemplate.java create mode 100644 platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeMoodSoundTemplate.java create mode 100644 platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeParticleConfigTemplate.java create mode 100644 platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/MusicSoundTemplate.java create mode 100644 platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/SoundEventTemplate.java diff --git a/.gitignore b/.gitignore index c93edc41f..7e27208c8 100644 --- a/.gitignore +++ b/.gitignore @@ -245,4 +245,5 @@ nbdist/ /run/ -**/testDir/ \ No newline at end of file +**/testDir/ +platforms/fabric/run/config/Terra/config.yml diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java index fef99d2cd..329001a4d 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java @@ -23,14 +23,26 @@ import ca.solostudios.strata.version.Version; import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; + +import com.dfsek.terra.fabric.config.BiomeAdditionsSoundTemplate; +import com.dfsek.terra.fabric.config.BiomeMoodSoundTemplate; +import com.dfsek.terra.fabric.config.BiomeParticleConfigTemplate; +import com.dfsek.terra.fabric.config.MusicSoundTemplate; +import com.dfsek.terra.fabric.config.SoundEventTemplate; import com.dfsek.terra.fabric.util.BiomeUtil; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.MinecraftVersion; import net.minecraft.server.MinecraftServer; +import net.minecraft.sound.BiomeAdditionsSound; +import net.minecraft.sound.BiomeMoodSound; +import net.minecraft.sound.MusicSound; +import net.minecraft.sound.SoundEvent; import net.minecraft.util.Identifier; import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.world.biome.Biome.Precipitation; +import net.minecraft.world.biome.Biome.TemperatureModifier; import net.minecraft.world.biome.BiomeEffects.GrassColorModifier; +import net.minecraft.world.biome.BiomeParticleConfig; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -164,7 +176,14 @@ public class PlatformImpl extends AbstractPlatform { .registerLoader(Precipitation.class, (type, o, loader, depthTracker) -> Precipitation.valueOf(((String) o).toUpperCase( Locale.ROOT))) .registerLoader(GrassColorModifier.class, (type, o, loader, depthTracker) -> GrassColorModifier.valueOf(((String) o).toUpperCase( - Locale.ROOT))); + Locale.ROOT))) + .registerLoader(GrassColorModifier.class, (type, o, loader, depthTracker) -> TemperatureModifier.valueOf(((String) o).toUpperCase( + Locale.ROOT))) + .registerLoader(BiomeParticleConfig.class, BiomeParticleConfigTemplate::new) + .registerLoader(SoundEvent.class, SoundEventTemplate::new) + .registerLoader(BiomeMoodSound.class, BiomeMoodSoundTemplate::new) + .registerLoader(BiomeAdditionsSound.class, BiomeAdditionsSoundTemplate::new) + .registerLoader(MusicSound.class, MusicSoundTemplate::new); } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeAdditionsSoundTemplate.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeAdditionsSoundTemplate.java new file mode 100644 index 000000000..5867a2f2a --- /dev/null +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeAdditionsSoundTemplate.java @@ -0,0 +1,27 @@ +package com.dfsek.terra.fabric.config; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import net.minecraft.sound.BiomeAdditionsSound; +import net.minecraft.sound.SoundEvent; + + +public class BiomeAdditionsSoundTemplate implements ObjectTemplate { + @Value("sound") + @Default + private SoundEvent sound = null; + + @Value("sound") + @Default + private Double soundChance = null; + + @Override + public BiomeAdditionsSound get() { + if (sound == null || soundChance == null) { + return null; + } else { + return new BiomeAdditionsSound(sound, soundChance); + } + } +} diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeMoodSoundTemplate.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeMoodSoundTemplate.java new file mode 100644 index 000000000..5bdec6876 --- /dev/null +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeMoodSoundTemplate.java @@ -0,0 +1,35 @@ +package com.dfsek.terra.fabric.config; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import net.minecraft.sound.BiomeMoodSound; +import net.minecraft.sound.SoundEvent; + + +public class BiomeMoodSoundTemplate implements ObjectTemplate { + @Value("sound") + @Default + private SoundEvent sound = null; + + @Value("cultivation-ticks") + @Default + private Integer soundCultivationTicks = null; + + @Value("spawn-range") + @Default + private Integer soundSpawnRange = null; + + @Value("extra-distance") + @Default + private Double soundExtraDistance = null; + + @Override + public BiomeMoodSound get() { + if (sound == null || soundCultivationTicks == null || soundSpawnRange == null || soundExtraDistance == null) { + return null; + } else { + return new BiomeMoodSound(sound, soundCultivationTicks, soundSpawnRange, soundExtraDistance); + } + } +} diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeParticleConfigTemplate.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeParticleConfigTemplate.java new file mode 100644 index 000000000..a15310a85 --- /dev/null +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/BiomeParticleConfigTemplate.java @@ -0,0 +1,33 @@ +package com.dfsek.terra.fabric.config; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import com.mojang.brigadier.StringReader; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import net.minecraft.command.argument.ParticleEffectArgumentType; +import net.minecraft.world.biome.BiomeParticleConfig; + + +public class BiomeParticleConfigTemplate implements ObjectTemplate { + @Value("particle") + @Default + private String particle = null; + + @Value("probability") + @Default + private Integer particleProbability = null; + + @Override + public BiomeParticleConfig get() { + if (particle == null || particleProbability == null) { + return null; + } + + try { + return new BiomeParticleConfig(ParticleEffectArgumentType.readParameters(new StringReader(particle)), particleProbability); + } catch(CommandSyntaxException e) { + throw new RuntimeException(e); + } + } +} diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/MusicSoundTemplate.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/MusicSoundTemplate.java new file mode 100644 index 000000000..a7bcea6d2 --- /dev/null +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/MusicSoundTemplate.java @@ -0,0 +1,36 @@ +package com.dfsek.terra.fabric.config; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import net.minecraft.sound.BiomeMoodSound; +import net.minecraft.sound.MusicSound; +import net.minecraft.sound.SoundEvent; + + +public class MusicSoundTemplate implements ObjectTemplate { + @Value("sound") + @Default + private SoundEvent sound = null; + + @Value("min-delay") + @Default + private Integer minDelay = null; + + @Value("max-delay") + @Default + private Integer maxDelay = null; + + @Value("-current-music") + @Default + private Boolean replaceCurrentMusic = null; + + @Override + public MusicSound get() { + if (sound == null || minDelay == null || maxDelay == null || replaceCurrentMusic == null) { + return null; + } else { + return new MusicSound(sound, minDelay, maxDelay, replaceCurrentMusic); + } + } +} diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/SoundEventTemplate.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/SoundEventTemplate.java new file mode 100644 index 000000000..e12ed1b2b --- /dev/null +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/SoundEventTemplate.java @@ -0,0 +1,29 @@ +package com.dfsek.terra.fabric.config; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import net.minecraft.sound.SoundEvent; +import net.minecraft.util.Identifier; + + +public class SoundEventTemplate implements ObjectTemplate { + @Value("id") + @Default + private Identifier id = null; + + @Value("distanceToTravel") + @Default + private Float distanceToTravel = null; + + @Override + public SoundEvent get() { + if (id == null) { + return null; + } else if (distanceToTravel == null) { + return new SoundEvent(id); + } else { + return new SoundEvent(id, distanceToTravel); + } + } +} diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/VanillaBiomeProperties.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/VanillaBiomeProperties.java index 889c9148f..57f89fb9e 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/VanillaBiomeProperties.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/config/VanillaBiomeProperties.java @@ -3,11 +3,18 @@ package com.dfsek.terra.fabric.config; import com.dfsek.tectonic.api.config.template.ConfigTemplate; import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; +import net.minecraft.sound.BiomeAdditionsSound; +import net.minecraft.sound.BiomeMoodSound; +import net.minecraft.sound.MusicSound; +import net.minecraft.sound.SoundEvent; import net.minecraft.world.biome.Biome.Precipitation; +import net.minecraft.world.biome.Biome.TemperatureModifier; import net.minecraft.world.biome.BiomeEffects.GrassColorModifier; import com.dfsek.terra.api.properties.Properties; +import net.minecraft.world.biome.BiomeParticleConfig; + public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Value("colors.grass") @@ -38,21 +45,49 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Default private GrassColorModifier modifier = null; + @Value("particles") + @Default + private BiomeParticleConfig particleConfig = null; + @Value("climate.precipitation") @Default private Precipitation precipitation = null; - public Integer getFogColor() { - return fogColor; - } + @Value("climate.temperature") + @Default + private Float temperature = null; - public Integer getFoliageColor() { - return foliageColor; - } + @Value("climate.temperature-modifier") + @Default + private TemperatureModifier temperatureModifier = null; + + @Value("climate.downfall") + @Default + private Float downfall = null; + + @Value("sound.loop-sound.sound") + @Default + private SoundEvent loopSound = null; + + @Value("sound.mood-sound") + @Default + private BiomeMoodSound moodSound = null; + + @Value("sound.additions-sound") + @Default + private BiomeAdditionsSound additionsSound = null; + + @Value("sound.music") + @Default + private MusicSound music = null; public Integer getGrassColor() { return grassColor; } + + public Integer getFogColor() { + return fogColor; + } public Integer getWaterColor() { return waterColor; @@ -62,15 +97,51 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { return waterFogColor; } + public Integer getFoliageColor() { + return foliageColor; + } + public Integer getSkyColor() { return skyColor; } + public GrassColorModifier getGrassColorModifier() { + return modifier; + } + + public BiomeParticleConfig getParticleConfig() { + return particleConfig; + } + public Precipitation getPrecipitation() { return precipitation; } - public GrassColorModifier getModifier() { - return modifier; + public Float getTemperature() { + return temperature; + } + + public TemperatureModifier getTemperatureModifier() { + return temperatureModifier; + } + + public Float getDownfall() { + return downfall; + } + + public SoundEvent getLoopSound() { + return loopSound; + } + + public BiomeMoodSound getMoodSound() { + return moodSound; + } + + public BiomeAdditionsSound getAdditionsSound() { + return additionsSound; + } + + public MusicSound getMusic() { + return music; } } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java index d1d2ec9a9..367426e7e 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java @@ -113,46 +113,69 @@ public final class BiomeUtil { BiomeEffects.Builder effects = new BiomeEffects.Builder(); net.minecraft.world.biome.Biome.Builder builder = new Builder(); - - if(biome.getContext().has(VanillaBiomeProperties.class)) { - VanillaBiomeProperties vanillaBiomeProperties = biome.getContext().get(VanillaBiomeProperties.class); - - effects.waterColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterColor(), vanilla.getWaterColor())) - .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) - .fogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFogColor(), vanilla.getFogColor())) - .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())) - .grassColorModifier( - Objects.requireNonNullElse(vanillaBiomeProperties.getModifier(), vanilla.getEffects().getGrassColorModifier())); - - - if(vanillaBiomeProperties.getGrassColor() == null) { - vanilla.getEffects().getGrassColor().ifPresent(effects::grassColor); - } else { - effects.grassColor(vanillaBiomeProperties.getGrassColor()); - } - - if(vanillaBiomeProperties.getFoliageColor() == null) { - vanilla.getEffects().getFoliageColor().ifPresent(effects::foliageColor); - } else { - effects.foliageColor(vanillaBiomeProperties.getFoliageColor()); - } - - builder.precipitation(Objects.requireNonNullElse(vanillaBiomeProperties.getPrecipitation(), vanilla.getPrecipitation())); - - } else { - effects.waterColor(vanilla.getWaterColor()) - .waterFogColor(vanilla.getWaterFogColor()) - .fogColor(vanilla.getFogColor()) - .skyColor(vanilla.getSkyColor()); + + VanillaBiomeProperties vanillaBiomeProperties = biome.getContext().get(VanillaBiomeProperties.class); + + effects.waterColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterColor(), vanilla.getWaterColor())) + .waterFogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getWaterFogColor(), vanilla.getWaterFogColor())) + .fogColor(Objects.requireNonNullElse(vanillaBiomeProperties.getFogColor(), vanilla.getFogColor())) + .skyColor(Objects.requireNonNullElse(vanillaBiomeProperties.getSkyColor(), vanilla.getSkyColor())) + .grassColorModifier( + Objects.requireNonNullElse(vanillaBiomeProperties.getGrassColorModifier(), vanilla.getEffects().getGrassColorModifier())); + + if (vanillaBiomeProperties.getFoliageColor() == null) { vanilla.getEffects().getFoliageColor().ifPresent(effects::foliageColor); + } else { + effects.foliageColor(vanillaBiomeProperties.getFoliageColor()); + } + + if (vanillaBiomeProperties.getGrassColor() == null) { vanilla.getEffects().getGrassColor().ifPresent(effects::grassColor); - - builder.precipitation(vanilla.getPrecipitation()); + } else { + effects.grassColor(vanillaBiomeProperties.getGrassColor()); + } + + if (vanillaBiomeProperties.getParticleConfig() == null) { + vanilla.getEffects().getParticleConfig().ifPresent(effects::particleConfig); + } else { + effects.particleConfig(vanillaBiomeProperties.getParticleConfig()); + } + + if (vanillaBiomeProperties.getLoopSound() == null) { + vanilla.getEffects().getLoopSound().ifPresent(effects::loopSound); + } else { + effects.loopSound(vanillaBiomeProperties.getLoopSound()); + } + + if (vanillaBiomeProperties.getMoodSound() == null) { + vanilla.getEffects().getMoodSound().ifPresent(effects::moodSound); + } else { + effects.moodSound(vanillaBiomeProperties.getMoodSound()); + } + + if (vanillaBiomeProperties.getAdditionsSound() == null) { + vanilla.getEffects().getAdditionsSound().ifPresent(effects::additionsSound); + } else { + effects.additionsSound(vanillaBiomeProperties.getAdditionsSound()); + } + + if (vanillaBiomeProperties.getMusic() == null) { + vanilla.getEffects().getMusic().ifPresent(effects::music); + } else { + effects.music(vanillaBiomeProperties.getMusic()); + } + + builder.precipitation(Objects.requireNonNullElse(vanillaBiomeProperties.getPrecipitation(), vanilla.getPrecipitation())); + + builder.temperature(Objects.requireNonNullElse(vanillaBiomeProperties.getTemperature(), vanilla.getTemperature())); + + builder.downfall(Objects.requireNonNullElse(vanillaBiomeProperties.getDownfall(), vanilla.getDownfall())); + + if (vanillaBiomeProperties.getTemperatureModifier() != null) { + builder.temperatureModifier(vanillaBiomeProperties.getTemperatureModifier()); } return builder - .temperature(vanilla.getTemperature()) - .downfall(vanilla.getDownfall()) .effects(effects.build()) .spawnSettings(vanilla.getSpawnSettings()) .generationSettings(generationSettings.build()) From dbd5edabae9da3fd7c22da68b159a02207caaaba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Sun, 26 Jun 2022 21:48:38 -0700 Subject: [PATCH 2/9] Imports --- .../src/main/kotlin/DistributionConfig.kt | 3 -- .../biome/extrusion/BiomeExtrusionAddon.java | 5 +-- .../extrusion/BiomeExtrusionProvider.java | 2 - .../addons/biome/extrusion/api/Extrusion.java | 4 +- .../biome/extrusion/api/ReplaceableBiome.java | 4 +- .../addons/biome/extrusion/api/SelfBiome.java | 4 +- .../config/BiomeExtrusionTemplate.java | 4 +- .../extrusions/ReplaceExtrusionTemplate.java | 1 - .../extrusions/ReplaceExtrusion.java | 8 ++-- .../extrusion/extrusions/SetExtrusion.java | 8 ++-- .../biome/pipeline/BiomePipelineColumn.java | 4 +- .../biome/pipeline/BiomePipelineProvider.java | 5 +-- .../biome/query/BiomeQueryAPIAddon.java | 4 +- .../addons/biome/query/api/BiomeQueries.java | 4 +- .../biome/query/impl/SingleTagQuery.java | 4 +- .../noise/BiomeNoiseConfigTemplate.java | 1 - .../config/noise/BiomeNoiseProperties.java | 1 - .../generation/NoiseChunkGenerator3D.java | 6 +-- .../math/interpolation/ChunkInterpolator.java | 4 +- .../LazilyEvaluatedInterpolator.java | 3 +- .../locators/AdjacentPatternLocator.java | 1 - .../locator/locators/PatternLocator.java | 4 +- .../locator/locators/SurfaceLocator.java | 4 +- .../locator/patterns/MatchPattern.java | 5 +-- .../feature/locator/patterns/Pattern.java | 3 -- .../feature/FeatureGenerationStage.java | 6 +-- .../addons/terrascript/parser/lang/Scope.java | 7 ++-- .../lang/keywords/looplike/IfKeyword.java | 3 +- .../lang/operations/BinaryOperation.java | 4 -- .../lang/operations/BooleanAndOperation.java | 2 - .../lang/operations/BooleanOrOperation.java | 2 - .../lang/operations/DivisionOperation.java | 2 - .../lang/operations/ModuloOperation.java | 2 - .../operations/MultiplicationOperation.java | 2 - .../operations/NumberAdditionOperation.java | 2 - .../lang/operations/SubtractionOperation.java | 2 - .../lang/operations/UnaryOperation.java | 2 - .../statements/EqualsStatement.java | 7 +--- .../GreaterOrEqualsThanStatement.java | 2 - .../statements/GreaterThanStatement.java | 2 - .../statements/LessThanOrEqualsStatement.java | 2 - .../statements/LessThanStatement.java | 2 - .../statements/NotEqualsStatement.java | 7 +--- .../variables/assign/NumAssignmentNode.java | 1 - .../terrascript/script/StructureScript.java | 4 +- .../src/test/java/structure/ParserTest.java | 4 +- .../java/com/dfsek/terra/api/util/Column.java | 6 +-- .../terra/api/util/generic/pair/Pair.java | 1 - .../world/biome/generation/BiomeProvider.java | 13 +++---- .../generation/CachingBiomeProvider.java | 6 +-- common/api/src/test/java/util/ColumnTest.java | 9 ++--- .../com/dfsek/terra/AbstractPlatform.java | 39 ++++++++++++------- platforms/bukkit/build.gradle.kts | 2 - .../com/dfsek/terra/bukkit/BukkitAddon.java | 4 -- .../com/dfsek/terra/bukkit/PlatformImpl.java | 4 +- .../BukkitChunkGeneratorWrapper.java | 8 ++-- .../dfsek/terra/bukkit/nms/Initializer.java | 5 +-- .../dfsek/terra/bukkit/util/VersionUtil.java | 2 - .../bukkit/nms/v1_18_R2/NMSBiomeProvider.java | 6 +-- .../v1_18_R2/NMSChunkGeneratorDelegate.java | 19 +++++---- .../bukkit/nms/v1_19_R1/NMSBiomeInjector.java | 18 ++++++--- .../v1_19_R1/NMSChunkGeneratorDelegate.java | 3 -- .../dfsek/terra/fabric/FabricEntryPoint.java | 14 +++---- .../com/dfsek/terra/fabric/PlatformImpl.java | 24 ++---------- .../mixin/lifecycle/MinecraftServerMixin.java | 3 -- .../mixin/lifecycle/NoiseConfigMixin.java | 4 +- .../dfsek/terra/fabric/util/BiomeUtil.java | 1 + .../dfsek/terra/forge/AwfulForgeHacks.java | 1 - .../dfsek/terra/forge/ForgeEntryPoint.java | 5 +-- .../com/dfsek/terra/forge/PlatformImpl.java | 6 --- .../java/com/dfsek/terra/mod/ModPlatform.java | 20 +++------- .../terra/mod/config/ProtoPlatformBiome.java | 3 +- .../mod/config/VanillaBiomeProperties.java | 3 +- .../java/com/dfsek/terra/mod/data/Codecs.java | 5 +-- .../MinecraftChunkGeneratorWrapper.java | 3 +- .../mod/generation/TerraBiomeSource.java | 13 +++---- .../mixin/fix/NetherFossilOptimization.java | 4 +- .../GenerationSettingsFloraFeaturesMixin.java | 4 +- .../terra/block/state/BlockStateMixin.java | 3 +- .../terra/chunk/data/ProtoChunkMixin.java | 6 +-- .../terra/world/ChunkRegionMixin.java | 2 +- .../terra/world/ServerWorldMixin.java | 2 +- .../lifecycle/DataPackContentsMixin.java | 6 +-- .../dfsek/terra/mod/util/MinecraftUtil.java | 17 ++++---- .../com/dfsek/terra/mod/util/PresetUtil.java | 11 +++--- 85 files changed, 179 insertions(+), 289 deletions(-) diff --git a/buildSrc/src/main/kotlin/DistributionConfig.kt b/buildSrc/src/main/kotlin/DistributionConfig.kt index df8d88d0f..253869ae6 100644 --- a/buildSrc/src/main/kotlin/DistributionConfig.kt +++ b/buildSrc/src/main/kotlin/DistributionConfig.kt @@ -7,12 +7,9 @@ import java.nio.file.Files import java.nio.file.StandardCopyOption import org.gradle.api.DefaultTask import org.gradle.api.Project -import org.gradle.api.Task import org.gradle.api.plugins.BasePluginExtension -import org.gradle.jvm.tasks.Jar import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.configure -import org.gradle.kotlin.dsl.creating import org.gradle.kotlin.dsl.extra import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.named diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionAddon.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionAddon.java index 5d8b1275b..cd4b1c9a4 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionAddon.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionAddon.java @@ -2,13 +2,14 @@ package com.dfsek.terra.addons.biome.extrusion; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import java.util.function.Supplier; + import com.dfsek.terra.addons.biome.extrusion.api.Extrusion; import com.dfsek.terra.addons.biome.extrusion.api.ReplaceableBiome; import com.dfsek.terra.addons.biome.extrusion.config.BiomeExtrusionTemplate; import com.dfsek.terra.addons.biome.extrusion.config.ReplaceableBiomeLoader; import com.dfsek.terra.addons.biome.extrusion.config.extrusions.ReplaceExtrusionTemplate; import com.dfsek.terra.addons.biome.extrusion.config.extrusions.SetExtrusionTemplate; -import com.dfsek.terra.addons.biome.extrusion.extrusions.SetExtrusion; import com.dfsek.terra.addons.manifest.api.AddonInitializer; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.addon.BaseAddon; @@ -22,8 +23,6 @@ import com.dfsek.terra.api.util.reflection.TypeKey; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import java.util.function.Supplier; - public class BiomeExtrusionAddon implements AddonInitializer { public static final TypeKey>> EXTRUSION_REGISTRY_KEY = new TypeKey<>() { diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionProvider.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionProvider.java index 605063428..a7331fc8a 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionProvider.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/BiomeExtrusionProvider.java @@ -10,8 +10,6 @@ import com.dfsek.terra.api.util.Column; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.github.benmanes.caffeine.cache.LoadingCache; - public class BiomeExtrusionProvider implements BiomeProvider { private final BiomeProvider delegate; diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/Extrusion.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/Extrusion.java index 3f3474428..8a7154fa9 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/Extrusion.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/Extrusion.java @@ -1,9 +1,9 @@ package com.dfsek.terra.addons.biome.extrusion.api; -import com.dfsek.terra.api.world.biome.Biome; - import java.util.Collection; +import com.dfsek.terra.api.world.biome.Biome; + public interface Extrusion { Biome extrude(Biome original, int x, int y, int z, long seed); diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/ReplaceableBiome.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/ReplaceableBiome.java index 31e742afa..e76eec1f3 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/ReplaceableBiome.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/ReplaceableBiome.java @@ -1,10 +1,10 @@ package com.dfsek.terra.addons.biome.extrusion.api; -import com.dfsek.terra.api.world.biome.Biome; - import java.util.Optional; +import com.dfsek.terra.api.world.biome.Biome; + /** * Basically just a specialised implementation of {@link Optional} for biomes where a biome may be a "self" reference. diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/SelfBiome.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/SelfBiome.java index 4e37192af..42e775ccc 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/SelfBiome.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/api/SelfBiome.java @@ -1,10 +1,10 @@ package com.dfsek.terra.addons.biome.extrusion.api; -import com.dfsek.terra.api.world.biome.Biome; - import java.util.Objects; +import com.dfsek.terra.api.world.biome.Biome; + final class SelfBiome implements ReplaceableBiome { public static final SelfBiome INSTANCE = new SelfBiome(); diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/BiomeExtrusionTemplate.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/BiomeExtrusionTemplate.java index 527e7d981..810246d65 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/BiomeExtrusionTemplate.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/BiomeExtrusionTemplate.java @@ -4,13 +4,13 @@ import com.dfsek.tectonic.api.config.template.annotations.Default; import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import java.util.List; + import com.dfsek.terra.addons.biome.extrusion.BiomeExtrusionProvider; import com.dfsek.terra.addons.biome.extrusion.api.Extrusion; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import java.util.List; - public class BiomeExtrusionTemplate implements ObjectTemplate { @Value("provider") diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/ReplaceExtrusionTemplate.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/ReplaceExtrusionTemplate.java index de5127b81..1b4743dc4 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/ReplaceExtrusionTemplate.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/config/extrusions/ReplaceExtrusionTemplate.java @@ -5,7 +5,6 @@ import com.dfsek.tectonic.api.config.template.annotations.Value; import com.dfsek.terra.addons.biome.extrusion.api.Extrusion; import com.dfsek.terra.addons.biome.extrusion.api.ReplaceableBiome; import com.dfsek.terra.addons.biome.extrusion.extrusions.ReplaceExtrusion; -import com.dfsek.terra.addons.biome.extrusion.extrusions.SetExtrusion; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.util.collection.ProbabilityCollection; diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/extrusions/ReplaceExtrusion.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/extrusions/ReplaceExtrusion.java index bc45ac40c..7458c475c 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/extrusions/ReplaceExtrusion.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/extrusions/ReplaceExtrusion.java @@ -1,5 +1,9 @@ package com.dfsek.terra.addons.biome.extrusion.extrusions; +import java.util.Collection; +import java.util.function.Predicate; +import java.util.stream.Collectors; + import com.dfsek.terra.addons.biome.extrusion.api.Extrusion; import com.dfsek.terra.addons.biome.extrusion.api.ReplaceableBiome; import com.dfsek.terra.addons.biome.query.api.BiomeQueries; @@ -8,10 +12,6 @@ import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.world.biome.Biome; -import java.util.Collection; -import java.util.function.Predicate; -import java.util.stream.Collectors; - /** * Sets biomes at locations based on a sampler. diff --git a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/extrusions/SetExtrusion.java b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/extrusions/SetExtrusion.java index a272d42be..79209c28a 100644 --- a/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/extrusions/SetExtrusion.java +++ b/common/addons/biome-provider-extrusion/src/main/java/com/dfsek/terra/addons/biome/extrusion/extrusions/SetExtrusion.java @@ -1,5 +1,9 @@ package com.dfsek.terra.addons.biome.extrusion.extrusions; +import java.util.Collection; +import java.util.function.Predicate; +import java.util.stream.Collectors; + import com.dfsek.terra.addons.biome.extrusion.api.Extrusion; import com.dfsek.terra.addons.biome.extrusion.api.ReplaceableBiome; import com.dfsek.terra.api.noise.NoiseSampler; @@ -7,10 +11,6 @@ import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.util.collection.ProbabilityCollection; import com.dfsek.terra.api.world.biome.Biome; -import java.util.Collection; -import java.util.function.Predicate; -import java.util.stream.Collectors; - /** * Sets biomes at locations based on a sampler. diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineColumn.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineColumn.java index 2bae69d45..609d22ee1 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineColumn.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineColumn.java @@ -1,13 +1,13 @@ package com.dfsek.terra.addons.biome.pipeline; +import java.util.function.Consumer; + import com.dfsek.terra.api.util.Column; import com.dfsek.terra.api.util.function.IntIntObjConsumer; import com.dfsek.terra.api.util.function.IntObjConsumer; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import java.util.function.Consumer; - class BiomePipelineColumn implements Column { private final int min; diff --git a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java index 395e8d24e..063395ae4 100644 --- a/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java +++ b/common/addons/biome-provider-pipeline/src/main/java/com/dfsek/terra/addons/biome/pipeline/BiomePipelineProvider.java @@ -7,16 +7,12 @@ package com.dfsek.terra.addons.biome.pipeline; -import com.dfsek.terra.api.util.Column; -import com.dfsek.terra.api.world.info.WorldProperties; - import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.LoadingCache; import net.jafama.FastMath; import java.util.Comparator; import java.util.HashSet; -import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.stream.StreamSupport; @@ -26,6 +22,7 @@ import com.dfsek.terra.addons.biome.pipeline.api.delegate.BiomeDelegate; import com.dfsek.terra.addons.biome.pipeline.api.stage.Stage; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.registry.key.StringIdentifiable; +import com.dfsek.terra.api.util.Column; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; diff --git a/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/BiomeQueryAPIAddon.java b/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/BiomeQueryAPIAddon.java index 3004cb0e1..5f767998f 100644 --- a/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/BiomeQueryAPIAddon.java +++ b/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/BiomeQueryAPIAddon.java @@ -1,5 +1,7 @@ package com.dfsek.terra.addons.biome.query; +import java.util.Collection; + import com.dfsek.terra.addons.biome.query.impl.BiomeTagFlattener; import com.dfsek.terra.addons.biome.query.impl.BiomeTagHolder; import com.dfsek.terra.addons.manifest.api.AddonInitializer; @@ -12,8 +14,6 @@ import com.dfsek.terra.api.properties.Context; import com.dfsek.terra.api.properties.PropertyKey; import com.dfsek.terra.api.world.biome.Biome; -import java.util.Collection; - public class BiomeQueryAPIAddon implements AddonInitializer { @Inject diff --git a/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/api/BiomeQueries.java b/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/api/BiomeQueries.java index 83b1ebf18..6e36b7a45 100644 --- a/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/api/BiomeQueries.java +++ b/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/api/BiomeQueries.java @@ -1,10 +1,10 @@ package com.dfsek.terra.addons.biome.query.api; +import java.util.function.Predicate; + import com.dfsek.terra.addons.biome.query.impl.SingleTagQuery; import com.dfsek.terra.api.world.biome.Biome; -import java.util.function.Predicate; - public final class BiomeQueries { private BiomeQueries() { diff --git a/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/impl/SingleTagQuery.java b/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/impl/SingleTagQuery.java index d2dfc4b23..af2bfa8c7 100644 --- a/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/impl/SingleTagQuery.java +++ b/common/addons/biome-query-api/src/main/java/com/dfsek/terra/addons/biome/query/impl/SingleTagQuery.java @@ -1,10 +1,10 @@ package com.dfsek.terra.addons.biome.query.impl; +import java.util.function.Predicate; + import com.dfsek.terra.addons.biome.query.BiomeQueryAPIAddon; import com.dfsek.terra.api.world.biome.Biome; -import java.util.function.Predicate; - public class SingleTagQuery implements Predicate { private int tagIndex = -1; diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/BiomeNoiseConfigTemplate.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/BiomeNoiseConfigTemplate.java index 0e091b44b..cd034f012 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/BiomeNoiseConfigTemplate.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/BiomeNoiseConfigTemplate.java @@ -6,7 +6,6 @@ import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.api.noise.NoiseSampler; -import com.dfsek.terra.api.util.mutable.MutableInteger; public class BiomeNoiseConfigTemplate implements ObjectTemplate { diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/BiomeNoiseProperties.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/BiomeNoiseProperties.java index b058e4c2f..7f4b20a88 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/BiomeNoiseProperties.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/config/noise/BiomeNoiseProperties.java @@ -2,7 +2,6 @@ package com.dfsek.terra.addons.chunkgenerator.config.noise; import com.dfsek.terra.api.noise.NoiseSampler; import com.dfsek.terra.api.properties.Properties; -import com.dfsek.terra.api.util.mutable.MutableInteger; public record BiomeNoiseProperties(NoiseSampler base, diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java index 24be708af..fcb8d3fe2 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/NoiseChunkGenerator3D.java @@ -8,6 +8,9 @@ package com.dfsek.terra.addons.chunkgenerator.generation; +import net.jafama.FastMath; +import org.jetbrains.annotations.NotNull; + import com.dfsek.terra.addons.chunkgenerator.config.noise.BiomeNoiseProperties; import com.dfsek.terra.addons.chunkgenerator.config.palette.PaletteInfo; import com.dfsek.terra.addons.chunkgenerator.generation.math.PaletteUtil; @@ -26,9 +29,6 @@ import com.dfsek.terra.api.world.chunk.generation.ProtoChunk; import com.dfsek.terra.api.world.chunk.generation.util.Palette; import com.dfsek.terra.api.world.info.WorldProperties; -import net.jafama.FastMath; -import org.jetbrains.annotations.NotNull; - public class NoiseChunkGenerator3D implements ChunkGenerator { private final Platform platform; diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator.java index 89fe55afe..4ef7072c7 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/ChunkInterpolator.java @@ -7,14 +7,14 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation; +import net.jafama.FastMath; + import com.dfsek.terra.addons.chunkgenerator.config.noise.BiomeNoiseProperties; import com.dfsek.terra.api.properties.PropertyKey; import com.dfsek.terra.api.util.Column; import com.dfsek.terra.api.world.biome.Biome; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import net.jafama.FastMath; - /** * Class to abstract away the Interpolators needed to generate a chunk.
diff --git a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/LazilyEvaluatedInterpolator.java b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/LazilyEvaluatedInterpolator.java index 97a6a147c..6e46ba774 100644 --- a/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/LazilyEvaluatedInterpolator.java +++ b/common/addons/chunk-generator-noise-3d/src/main/java/com/dfsek/terra/addons/chunkgenerator/generation/math/interpolation/LazilyEvaluatedInterpolator.java @@ -1,10 +1,9 @@ package com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation; -import com.dfsek.terra.api.properties.PropertyKey; - import net.jafama.FastMath; import com.dfsek.terra.addons.chunkgenerator.config.noise.BiomeNoiseProperties; +import com.dfsek.terra.api.properties.PropertyKey; import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import static com.dfsek.terra.addons.chunkgenerator.generation.math.interpolation.Interpolator.lerp; diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/AdjacentPatternLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/AdjacentPatternLocator.java index ab1de182f..439c85ad1 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/AdjacentPatternLocator.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/AdjacentPatternLocator.java @@ -11,7 +11,6 @@ import com.dfsek.terra.addons.feature.locator.patterns.Pattern; import com.dfsek.terra.api.structure.feature.BinaryColumn; import com.dfsek.terra.api.structure.feature.Locator; import com.dfsek.terra.api.util.Range; -import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.WritableWorld; import com.dfsek.terra.api.world.chunk.generation.util.Column; diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/PatternLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/PatternLocator.java index 575b2328e..b4ea6b1d8 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/PatternLocator.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/PatternLocator.java @@ -7,14 +7,14 @@ package com.dfsek.terra.addons.feature.locator.locators; +import net.jafama.FastMath; + import com.dfsek.terra.addons.feature.locator.patterns.Pattern; import com.dfsek.terra.api.structure.feature.BinaryColumn; import com.dfsek.terra.api.structure.feature.Locator; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.world.chunk.generation.util.Column; -import net.jafama.FastMath; - public class PatternLocator implements Locator { private final Pattern pattern; diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SurfaceLocator.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SurfaceLocator.java index e0194167b..9e9b7ef2e 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SurfaceLocator.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/locators/SurfaceLocator.java @@ -7,14 +7,14 @@ package com.dfsek.terra.addons.feature.locator.locators; +import net.jafama.FastMath; + import com.dfsek.terra.api.structure.feature.BinaryColumn; import com.dfsek.terra.api.structure.feature.Locator; import com.dfsek.terra.api.util.Range; import com.dfsek.terra.api.world.chunk.generation.util.Column; import com.dfsek.terra.api.world.chunk.generation.util.Column.BinaryColumnBuilder; -import net.jafama.FastMath; - public class SurfaceLocator implements Locator { private final Range search; diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/MatchPattern.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/MatchPattern.java index 111744cd9..e2ca64f69 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/MatchPattern.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/MatchPattern.java @@ -7,16 +7,13 @@ package com.dfsek.terra.addons.feature.locator.patterns; -import com.dfsek.terra.api.world.ServerWorld; - -import com.dfsek.terra.api.world.WritableWorld; - import net.jafama.FastMath; import java.util.function.Predicate; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.util.Range; +import com.dfsek.terra.api.world.WritableWorld; import com.dfsek.terra.api.world.chunk.generation.util.Column; diff --git a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/Pattern.java b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/Pattern.java index 86850378e..4c2d0de67 100644 --- a/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/Pattern.java +++ b/common/addons/config-locators/src/main/java/com/dfsek/terra/addons/feature/locator/patterns/Pattern.java @@ -7,9 +7,6 @@ package com.dfsek.terra.addons.feature.locator.patterns; -import com.dfsek.terra.api.world.ReadableWorld; -import com.dfsek.terra.api.world.ServerWorld; -import com.dfsek.terra.api.world.World; import com.dfsek.terra.api.world.WritableWorld; import com.dfsek.terra.api.world.chunk.generation.util.Column; diff --git a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java index 0a7a0c9b4..5408b26e4 100644 --- a/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java +++ b/common/addons/generation-stage-feature/src/main/java/com/dfsek/terra/addons/generation/feature/FeatureGenerationStage.java @@ -7,6 +7,9 @@ package com.dfsek.terra.addons.generation.feature; +import java.util.Collections; +import java.util.Random; + import com.dfsek.terra.addons.generation.feature.config.BiomeFeatures; import com.dfsek.terra.api.Platform; import com.dfsek.terra.api.properties.PropertyKey; @@ -18,9 +21,6 @@ import com.dfsek.terra.api.world.chunk.generation.ProtoWorld; import com.dfsek.terra.api.world.chunk.generation.stage.GenerationStage; import com.dfsek.terra.api.world.chunk.generation.util.Column; -import java.util.Collections; -import java.util.Random; - public class FeatureGenerationStage implements GenerationStage, StringIdentifiable { private final Platform platform; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Scope.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Scope.java index 946abbfea..f9532c8cf 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Scope.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/Scope.java @@ -1,15 +1,14 @@ package com.dfsek.terra.addons.terrascript.parser.lang; -import com.dfsek.terra.addons.terrascript.parser.lang.Returnable.ReturnType; -import com.dfsek.terra.addons.terrascript.parser.lang.variables.reference.VariableReferenceNode; -import com.dfsek.terra.api.util.generic.pair.Pair; - import net.jafama.FastMath; import java.util.HashMap; import java.util.Map; +import com.dfsek.terra.addons.terrascript.parser.lang.Returnable.ReturnType; +import com.dfsek.terra.api.util.generic.pair.Pair; + public class Scope { private final double[] num; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/IfKeyword.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/IfKeyword.java index 7d36d114d..f49cab112 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/IfKeyword.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/keywords/looplike/IfKeyword.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.keywords.looplike; -import com.dfsek.terra.api.util.generic.pair.Pair; - import org.jetbrains.annotations.Nullable; import java.util.List; @@ -19,6 +17,7 @@ import com.dfsek.terra.addons.terrascript.parser.lang.Keyword; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import com.dfsek.terra.addons.terrascript.tokenizer.Position; +import com.dfsek.terra.api.util.generic.pair.Pair; public class IfKeyword implements Keyword> { diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BinaryOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BinaryOperation.java index f336b3055..fdacebe4c 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BinaryOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BinaryOperation.java @@ -7,11 +7,7 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations; -import java.util.function.Supplier; - -import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import com.dfsek.terra.addons.terrascript.tokenizer.Position; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanAndOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanAndOperation.java index b10407a79..94a08bbe6 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanAndOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanAndOperation.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanOrOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanOrOperation.java index 177297972..e5ca10337 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanOrOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/BooleanOrOperation.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/DivisionOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/DivisionOperation.java index e2153559e..793012549 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/DivisionOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/DivisionOperation.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/ModuloOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/ModuloOperation.java index 41cc48662..3731d0807 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/ModuloOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/ModuloOperation.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/MultiplicationOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/MultiplicationOperation.java index aeaf9bd90..62e58a92c 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/MultiplicationOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/MultiplicationOperation.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/NumberAdditionOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/NumberAdditionOperation.java index bb216047a..33439b742 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/NumberAdditionOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/NumberAdditionOperation.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/SubtractionOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/SubtractionOperation.java index e31b2b5de..dca6c66c5 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/SubtractionOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/SubtractionOperation.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/UnaryOperation.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/UnaryOperation.java index 5071e95ea..d83ab0ad2 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/UnaryOperation.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/UnaryOperation.java @@ -7,9 +7,7 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations; -import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import com.dfsek.terra.addons.terrascript.tokenizer.Position; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/EqualsStatement.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/EqualsStatement.java index 82a045742..97648aa1f 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/EqualsStatement.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/EqualsStatement.java @@ -7,14 +7,11 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; -import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; - import net.jafama.FastMath; -import java.util.function.Supplier; - +import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; +import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import com.dfsek.terra.addons.terrascript.parser.lang.operations.BinaryOperation; import com.dfsek.terra.addons.terrascript.tokenizer.Position; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/GreaterOrEqualsThanStatement.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/GreaterOrEqualsThanStatement.java index 10c60a305..d25f6bd0d 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/GreaterOrEqualsThanStatement.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/GreaterOrEqualsThanStatement.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/GreaterThanStatement.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/GreaterThanStatement.java index 0bb3e5500..8e5cc4aee 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/GreaterThanStatement.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/GreaterThanStatement.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanOrEqualsStatement.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanOrEqualsStatement.java index ef2aa8346..207d09632 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanOrEqualsStatement.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanOrEqualsStatement.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanStatement.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanStatement.java index f06e395b1..aed7189f6 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanStatement.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/LessThanStatement.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; -import java.util.function.Supplier; - import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/NotEqualsStatement.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/NotEqualsStatement.java index aaecd56bc..3241c8657 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/NotEqualsStatement.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/operations/statements/NotEqualsStatement.java @@ -7,14 +7,11 @@ package com.dfsek.terra.addons.terrascript.parser.lang.operations.statements; -import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; -import com.dfsek.terra.addons.terrascript.parser.lang.Scope; - import net.jafama.FastMath; -import java.util.function.Supplier; - +import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; +import com.dfsek.terra.addons.terrascript.parser.lang.Scope; import com.dfsek.terra.addons.terrascript.parser.lang.operations.BinaryOperation; import com.dfsek.terra.addons.terrascript.tokenizer.Position; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/variables/assign/NumAssignmentNode.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/variables/assign/NumAssignmentNode.java index 55ebb8aa8..1b67e7150 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/variables/assign/NumAssignmentNode.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/parser/lang/variables/assign/NumAssignmentNode.java @@ -3,7 +3,6 @@ package com.dfsek.terra.addons.terrascript.parser.lang.variables.assign; import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; -import com.dfsek.terra.addons.terrascript.parser.lang.variables.Variable; import com.dfsek.terra.addons.terrascript.tokenizer.Position; diff --git a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java index 87636fd9e..e865d0d6d 100644 --- a/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java +++ b/common/addons/structure-terrascript-loader/src/main/java/com/dfsek/terra/addons/terrascript/script/StructureScript.java @@ -7,8 +7,6 @@ package com.dfsek.terra.addons.terrascript.script; -import com.dfsek.terra.addons.terrascript.parser.lang.Executable; - import net.jafama.FastMath; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; @@ -20,7 +18,7 @@ import java.nio.charset.Charset; import java.util.Random; import com.dfsek.terra.addons.terrascript.parser.Parser; -import com.dfsek.terra.addons.terrascript.parser.lang.Block; +import com.dfsek.terra.addons.terrascript.parser.lang.Executable; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.functions.FunctionBuilder; import com.dfsek.terra.addons.terrascript.script.builders.BinaryNumberFunctionBuilder; diff --git a/common/addons/structure-terrascript-loader/src/test/java/structure/ParserTest.java b/common/addons/structure-terrascript-loader/src/test/java/structure/ParserTest.java index e50589dfb..2f07954d2 100644 --- a/common/addons/structure-terrascript-loader/src/test/java/structure/ParserTest.java +++ b/common/addons/structure-terrascript-loader/src/test/java/structure/ParserTest.java @@ -8,8 +8,6 @@ package structure; -import com.dfsek.terra.addons.terrascript.parser.lang.Executable; - import org.apache.commons.io.IOUtils; import org.junit.jupiter.api.Test; @@ -20,7 +18,7 @@ import java.util.Objects; import com.dfsek.terra.addons.terrascript.parser.Parser; import com.dfsek.terra.addons.terrascript.parser.exceptions.ParseException; -import com.dfsek.terra.addons.terrascript.parser.lang.Block; +import com.dfsek.terra.addons.terrascript.parser.lang.Executable; import com.dfsek.terra.addons.terrascript.parser.lang.ImplementationArguments; import com.dfsek.terra.addons.terrascript.parser.lang.Returnable; import com.dfsek.terra.addons.terrascript.parser.lang.Scope; diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/Column.java b/common/api/src/main/java/com/dfsek/terra/api/util/Column.java index 4610bbf8d..2b6264228 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/Column.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/Column.java @@ -1,12 +1,12 @@ package com.dfsek.terra.api.util; -import com.dfsek.terra.api.util.function.IntIntObjConsumer; -import com.dfsek.terra.api.util.function.IntObjConsumer; - import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; +import com.dfsek.terra.api.util.function.IntIntObjConsumer; +import com.dfsek.terra.api.util.function.IntObjConsumer; + public interface Column { int getMinY(); diff --git a/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java b/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java index 4727b57e2..d47cfdc05 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java +++ b/common/api/src/main/java/com/dfsek/terra/api/util/generic/pair/Pair.java @@ -15,7 +15,6 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; -import java.util.function.UnaryOperator; public final class Pair { diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/BiomeProvider.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/BiomeProvider.java index 09c6f3dbd..cfa5a78c0 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/BiomeProvider.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/BiomeProvider.java @@ -7,19 +7,18 @@ package com.dfsek.terra.api.world.biome.generation; -import com.dfsek.terra.api.util.Column; -import com.dfsek.terra.api.util.vector.Vector3; -import com.dfsek.terra.api.util.vector.Vector3Int; -import com.dfsek.terra.api.world.biome.Biome; - -import com.dfsek.terra.api.world.info.WorldProperties; - import org.jetbrains.annotations.Contract; import java.util.Optional; import java.util.stream.Stream; import java.util.stream.StreamSupport; +import com.dfsek.terra.api.util.Column; +import com.dfsek.terra.api.util.vector.Vector3; +import com.dfsek.terra.api.util.vector.Vector3Int; +import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.api.world.info.WorldProperties; + /** * Provides locations of biomes in a world. diff --git a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java index e503dd54c..fa3847a23 100644 --- a/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java +++ b/common/api/src/main/java/com/dfsek/terra/api/world/biome/generation/CachingBiomeProvider.java @@ -1,14 +1,14 @@ package com.dfsek.terra.api.world.biome.generation; -import com.dfsek.terra.api.Handle; -import com.dfsek.terra.api.world.biome.Biome; - import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.LoadingCache; import com.github.benmanes.caffeine.cache.Scheduler; import java.util.Optional; +import com.dfsek.terra.api.Handle; +import com.dfsek.terra.api.world.biome.Biome; + /** * A biome provider implementation that lazily evaluates biomes, and caches them. diff --git a/common/api/src/test/java/util/ColumnTest.java b/common/api/src/test/java/util/ColumnTest.java index bcb3f6064..7ba140683 100644 --- a/common/api/src/test/java/util/ColumnTest.java +++ b/common/api/src/test/java/util/ColumnTest.java @@ -1,10 +1,5 @@ package util; -import com.dfsek.terra.api.util.Column; - -import com.dfsek.terra.api.util.generic.pair.Pair; -import com.dfsek.terra.api.util.mutable.MutableInteger; - import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -14,6 +9,10 @@ import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.IntStream; +import com.dfsek.terra.api.util.Column; +import com.dfsek.terra.api.util.generic.pair.Pair; +import com.dfsek.terra.api.util.mutable.MutableInteger; + import static org.junit.jupiter.api.Assertions.*; diff --git a/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java b/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java index 81933014f..4ea9466ec 100644 --- a/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java +++ b/common/implementation/base/src/main/java/com/dfsek/terra/AbstractPlatform.java @@ -18,6 +18,30 @@ package com.dfsek.terra; import com.dfsek.tectonic.api.TypeRegistry; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; +import org.jetbrains.annotations.NotNull; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.yaml.snakeyaml.Yaml; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.UncheckedIOException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; import com.dfsek.terra.addon.BootstrapAddonLoader; import com.dfsek.terra.addon.DependencySorter; @@ -49,21 +73,6 @@ import com.dfsek.terra.registry.LockedRegistryImpl; import com.dfsek.terra.registry.OpenRegistryImpl; import com.dfsek.terra.registry.master.ConfigRegistry; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.yaml.snakeyaml.Yaml; - -import java.io.*; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.*; -import java.util.stream.Collectors; - /** * Skeleton implementation of {@link Platform} diff --git a/platforms/bukkit/build.gradle.kts b/platforms/bukkit/build.gradle.kts index 7221c9f90..ee85af57a 100644 --- a/platforms/bukkit/build.gradle.kts +++ b/platforms/bukkit/build.gradle.kts @@ -1,5 +1,3 @@ -import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar - plugins { id("xyz.jpenilla.run-paper") version "1.0.6" } diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitAddon.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitAddon.java index 38d3ff2dc..ac215b83e 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitAddon.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/BukkitAddon.java @@ -7,12 +7,8 @@ import com.dfsek.terra.api.addon.BaseAddon; import com.dfsek.terra.api.event.events.config.ConfigurationLoadEvent; import com.dfsek.terra.api.event.functional.FunctionalEventHandler; import com.dfsek.terra.api.world.biome.Biome; - import com.dfsek.terra.bukkit.config.VanillaBiomeProperties; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class BukkitAddon implements BaseAddon { private static final Version VERSION = Versions.getVersion(1, 0, 0); diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java index a58cc1a3d..bba0e1bc1 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/PlatformImpl.java @@ -20,9 +20,6 @@ package com.dfsek.terra.bukkit; import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; - -import com.dfsek.terra.api.addon.BaseAddon; - import org.bukkit.Bukkit; import org.bukkit.entity.EntityType; import org.jetbrains.annotations.NotNull; @@ -34,6 +31,7 @@ import java.util.List; import java.util.Locale; import com.dfsek.terra.AbstractPlatform; +import com.dfsek.terra.api.addon.BaseAddon; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.handle.ItemHandle; import com.dfsek.terra.api.handle.WorldHandle; diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java index a1c7a6ef1..bf847ff86 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/generator/BukkitChunkGeneratorWrapper.java @@ -17,8 +17,6 @@ package com.dfsek.terra.bukkit.generator; -import com.dfsek.terra.api.world.info.WorldProperties; - import org.bukkit.World; import org.bukkit.generator.BiomeProvider; import org.bukkit.generator.BlockPopulator; @@ -26,6 +24,8 @@ import org.bukkit.generator.LimitedRegion; import org.bukkit.generator.WorldInfo; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.List; import java.util.Random; @@ -35,12 +35,10 @@ import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.api.world.chunk.generation.util.GeneratorWrapper; +import com.dfsek.terra.api.world.info.WorldProperties; import com.dfsek.terra.bukkit.world.BukkitProtoWorld; import com.dfsek.terra.bukkit.world.BukkitWorldProperties; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGenerator implements GeneratorWrapper { private static final Logger LOGGER = LoggerFactory.getLogger(BukkitChunkGeneratorWrapper.class); diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/nms/Initializer.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/nms/Initializer.java index b86a37f89..675b84b00 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/nms/Initializer.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/nms/Initializer.java @@ -1,13 +1,10 @@ package com.dfsek.terra.bukkit.nms; -import com.dfsek.terra.bukkit.PlatformImpl; -import com.dfsek.terra.bukkit.TerraBukkitPlugin; - import org.bukkit.Bukkit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.lang.reflect.InvocationTargetException; +import com.dfsek.terra.bukkit.PlatformImpl; public interface Initializer { diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/VersionUtil.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/VersionUtil.java index 08e9b4864..469582bf2 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/VersionUtil.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/util/VersionUtil.java @@ -1,7 +1,5 @@ package com.dfsek.terra.bukkit.util; -import ca.solostudios.strata.Versions; -import ca.solostudios.strata.version.Version; import io.papermc.lib.PaperLib; import org.bukkit.Bukkit; import org.slf4j.Logger; diff --git a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSBiomeProvider.java b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSBiomeProvider.java index 6d44d19d5..111b2802b 100644 --- a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSBiomeProvider.java +++ b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSBiomeProvider.java @@ -1,8 +1,5 @@ package com.dfsek.terra.bukkit.nms.v1_18_R2; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.bukkit.world.BukkitPlatformBiome; - import com.mojang.serialization.Codec; import net.minecraft.core.Holder; import net.minecraft.core.Registry; @@ -11,6 +8,9 @@ import net.minecraft.world.level.biome.BiomeSource; import net.minecraft.world.level.biome.Climate.Sampler; import org.jetbrains.annotations.NotNull; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.bukkit.world.BukkitPlatformBiome; + public class NMSBiomeProvider extends BiomeSource { private final BiomeProvider delegate; diff --git a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java index 4bc41052c..ff4e1597c 100644 --- a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java @@ -1,10 +1,5 @@ package com.dfsek.terra.bukkit.nms.v1_18_R2; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.util.generic.Lazy; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.api.world.info.WorldProperties; - import com.mojang.datafixers.util.Pair; import com.mojang.serialization.Codec; import it.unimi.dsi.fastutil.objects.Object2ObjectArrayMap; @@ -21,7 +16,6 @@ import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.BiomeManager; import net.minecraft.world.level.biome.Climate; import net.minecraft.world.level.biome.Climate.Sampler; -import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.GenerationStep; @@ -36,11 +30,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.Nullable; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Random; +import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; import java.util.stream.Collectors; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.util.generic.Lazy; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.api.world.info.WorldProperties; + public class NMSChunkGeneratorDelegate extends ChunkGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(NMSChunkGeneratorDelegate.class); diff --git a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSBiomeInjector.java b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSBiomeInjector.java index 4ed328fff..fdf380e97 100644 --- a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSBiomeInjector.java +++ b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSBiomeInjector.java @@ -1,10 +1,5 @@ package com.dfsek.terra.bukkit.nms.v1_19_R1; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.bukkit.config.VanillaBiomeProperties; -import com.dfsek.terra.bukkit.world.BukkitPlatformBiome; -import com.dfsek.terra.registry.master.ConfigRegistry; - import com.google.common.collect.ImmutableMap; import com.mojang.serialization.Lifecycle; import net.minecraft.core.Holder; @@ -21,7 +16,18 @@ import org.bukkit.NamespacedKey; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.bukkit.config.VanillaBiomeProperties; +import com.dfsek.terra.bukkit.world.BukkitPlatformBiome; +import com.dfsek.terra.registry.master.ConfigRegistry; public class NMSBiomeInjector { diff --git a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSChunkGeneratorDelegate.java index 860bfa5a0..e20a5da0b 100644 --- a/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_19_R1/src/main/java/com/dfsek/terra/bukkit/nms/v1_19_R1/NMSChunkGeneratorDelegate.java @@ -16,8 +16,6 @@ import net.minecraft.world.level.StructureManager; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.BiomeManager; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.GenerationStep.Carving; @@ -34,7 +32,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Objects; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java index ca110eccf..6fcc2b792 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricEntryPoint.java @@ -18,16 +18,7 @@ package com.dfsek.terra.fabric; import cloud.commandframework.execution.CommandExecutionCoordinator; - import cloud.commandframework.fabric.FabricServerCommandManager; - -import com.dfsek.terra.api.command.CommandSender; -import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; - -import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; -import com.dfsek.terra.fabric.util.BiomeUtil; -import com.dfsek.terra.mod.CommonPlatform; - import net.fabricmc.api.ModInitializer; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.util.Identifier; @@ -36,6 +27,11 @@ import net.minecraft.util.registry.Registry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.dfsek.terra.api.command.CommandSender; +import com.dfsek.terra.api.event.events.platform.CommandRegistrationEvent; +import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; +import com.dfsek.terra.fabric.util.BiomeUtil; +import com.dfsek.terra.mod.CommonPlatform; import com.dfsek.terra.mod.data.Codecs; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java index 14f298947..c21f755cd 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java @@ -20,27 +20,9 @@ package com.dfsek.terra.fabric; import ca.solostudios.strata.Versions; import ca.solostudios.strata.parser.tokenizer.ParseException; import ca.solostudios.strata.version.Version; - -import com.dfsek.terra.fabric.util.BiomeUtil; -import com.dfsek.terra.mod.CommonPlatform; -import com.dfsek.terra.mod.ModPlatform; - -import com.dfsek.terra.mod.generation.TerraBiomeSource; - -import com.dfsek.terra.mod.util.PresetUtil; - import net.fabricmc.loader.api.FabricLoader; import net.minecraft.MinecraftVersion; import net.minecraft.server.MinecraftServer; -import net.minecraft.sound.BiomeAdditionsSound; -import net.minecraft.sound.BiomeMoodSound; -import net.minecraft.sound.MusicSound; -import net.minecraft.sound.SoundEvent; -import net.minecraft.util.Identifier; -import net.minecraft.util.registry.BuiltinRegistries; -import net.minecraft.world.dimension.DimensionOptions; -import net.minecraft.world.gen.WorldPreset; -import net.minecraft.world.gen.chunk.ChunkGenerator; import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,15 +30,15 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.util.ArrayList; import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.function.BiConsumer; import com.dfsek.terra.addon.EphemeralAddon; import com.dfsek.terra.api.addon.BaseAddon; import com.dfsek.terra.api.handle.ItemHandle; import com.dfsek.terra.api.handle.WorldHandle; import com.dfsek.terra.api.util.generic.Lazy; +import com.dfsek.terra.fabric.util.BiomeUtil; +import com.dfsek.terra.mod.CommonPlatform; +import com.dfsek.terra.mod.ModPlatform; import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; import com.dfsek.terra.mod.handle.MinecraftItemHandle; import com.dfsek.terra.mod.handle.MinecraftWorldHandle; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/MinecraftServerMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/MinecraftServerMixin.java index 2a545ebf0..0620de7f2 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/MinecraftServerMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/MinecraftServerMixin.java @@ -1,14 +1,11 @@ package com.dfsek.terra.fabric.mixin.lifecycle; -import com.mojang.authlib.GameProfileRepository; -import com.mojang.authlib.minecraft.MinecraftSessionService; import com.mojang.datafixers.DataFixer; import net.minecraft.resource.ResourcePackManager; import net.minecraft.server.MinecraftServer; import net.minecraft.server.SaveLoader; import net.minecraft.server.WorldGenerationProgressListenerFactory; import net.minecraft.util.ApiServices; -import net.minecraft.util.UserCache; import net.minecraft.world.level.storage.LevelStorage; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/NoiseConfigMixin.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/NoiseConfigMixin.java index b24bfd489..15957b31c 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/NoiseConfigMixin.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/mixin/lifecycle/NoiseConfigMixin.java @@ -1,7 +1,5 @@ package com.dfsek.terra.fabric.mixin.lifecycle; -import com.dfsek.terra.mod.util.SeedHack; - import net.minecraft.util.math.noise.DoublePerlinNoiseSampler; import net.minecraft.util.registry.Registry; import net.minecraft.world.biome.source.util.MultiNoiseUtil.MultiNoiseSampler; @@ -14,6 +12,8 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import com.dfsek.terra.mod.util.SeedHack; + /** * Hack to map noise sampler to seeds diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java index a092166e6..fdaee4a21 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java @@ -70,4 +70,5 @@ public final class BiomeUtil { MinecraftUtil.TERRA_BIOME_MAP.computeIfAbsent(vanilla.getValue(), i -> new ArrayList<>()).add(identifier); } } + } diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java index 0ddb92caa..12c67e838 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java @@ -7,7 +7,6 @@ import java.io.IOException; import java.nio.file.FileVisitOption; import java.nio.file.Files; import java.nio.file.Path; -import java.util.Objects; import java.util.concurrent.atomic.AtomicReference; import java.util.jar.JarFile; import java.util.stream.Stream; diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeEntryPoint.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeEntryPoint.java index dbc919781..9691dde88 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeEntryPoint.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeEntryPoint.java @@ -17,9 +17,6 @@ package com.dfsek.terra.forge; -import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; -import com.dfsek.terra.forge.util.BiomeUtil; - import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import net.minecraft.world.biome.Biome; @@ -36,8 +33,10 @@ import net.minecraftforge.registries.RegisterEvent.RegisterHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.dfsek.terra.api.event.events.platform.PlatformInitializationEvent; import com.dfsek.terra.forge.AwfulForgeHacks.RegistrySanityCheck; import com.dfsek.terra.forge.AwfulForgeHacks.RegistryStep; +import com.dfsek.terra.forge.util.BiomeUtil; import com.dfsek.terra.mod.data.Codecs; diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java index b3996a9d8..294fa01d9 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java @@ -20,13 +20,8 @@ package com.dfsek.terra.forge; import ca.solostudios.strata.Versions; import ca.solostudios.strata.parser.tokenizer.ParseException; import ca.solostudios.strata.version.Version; - -import com.dfsek.terra.mod.util.PresetUtil; - import net.minecraft.MinecraftVersion; import net.minecraft.server.MinecraftServer; -import net.minecraft.util.Identifier; -import net.minecraft.world.gen.WorldPreset; import net.minecraftforge.fml.loading.FMLLoader; import net.minecraftforge.server.ServerLifecycleHooks; import org.jetbrains.annotations.NotNull; @@ -36,7 +31,6 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.util.ArrayList; import java.util.List; -import java.util.function.BiConsumer; import com.dfsek.terra.addon.EphemeralAddon; import com.dfsek.terra.api.addon.BaseAddon; diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java index 5a75d0cc2..7d140eb79 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java @@ -1,24 +1,11 @@ package com.dfsek.terra.mod; import com.dfsek.tectonic.api.TypeRegistry; - import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; - -import com.dfsek.terra.AbstractPlatform; - -import com.dfsek.terra.api.addon.BaseAddon; -import com.dfsek.terra.api.world.biome.PlatformBiome; - -import com.dfsek.terra.mod.config.ProtoPlatformBiome; - -import com.dfsek.terra.mod.util.PresetUtil; - -import net.minecraft.command.CommandSource; import net.minecraft.server.MinecraftServer; import net.minecraft.util.Identifier; import net.minecraft.util.registry.BuiltinRegistries; -import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome.Precipitation; import net.minecraft.world.biome.BiomeEffects.GrassColorModifier; import net.minecraft.world.gen.WorldPreset; @@ -26,7 +13,12 @@ import net.minecraft.world.gen.WorldPreset; import java.util.List; import java.util.Locale; import java.util.function.BiConsumer; -import java.util.function.Consumer; + +import com.dfsek.terra.AbstractPlatform; +import com.dfsek.terra.api.addon.BaseAddon; +import com.dfsek.terra.api.world.biome.PlatformBiome; +import com.dfsek.terra.mod.config.ProtoPlatformBiome; +import com.dfsek.terra.mod.util.PresetUtil; public abstract class ModPlatform extends AbstractPlatform { diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/ProtoPlatformBiome.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/ProtoPlatformBiome.java index 78542fabe..f9524ef58 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/ProtoPlatformBiome.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/ProtoPlatformBiome.java @@ -17,8 +17,6 @@ package com.dfsek.terra.mod.config; -import com.dfsek.terra.mod.util.MinecraftUtil; - import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryKey; @@ -27,6 +25,7 @@ import net.minecraft.world.biome.Biome; import java.util.Objects; import com.dfsek.terra.api.world.biome.PlatformBiome; +import com.dfsek.terra.mod.util.MinecraftUtil; public class ProtoPlatformBiome implements PlatformBiome { diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java index 72095c53b..0bec88566 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java @@ -10,11 +10,10 @@ import net.minecraft.sound.SoundEvent; import net.minecraft.world.biome.Biome.Precipitation; import net.minecraft.world.biome.Biome.TemperatureModifier; import net.minecraft.world.biome.BiomeEffects.GrassColorModifier; +import net.minecraft.world.biome.BiomeParticleConfig; import com.dfsek.terra.api.properties.Properties; -import net.minecraft.world.biome.BiomeParticleConfig; - public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Value("colors.grass") diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/data/Codecs.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/data/Codecs.java index 643ced594..36f774297 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/data/Codecs.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/data/Codecs.java @@ -1,8 +1,5 @@ package com.dfsek.terra.mod.data; -import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; -import com.dfsek.terra.mod.generation.TerraBiomeSource; - import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.util.dynamic.RegistryOps; @@ -12,6 +9,8 @@ import net.minecraft.world.gen.chunk.ChunkGeneratorSettings; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.api.registry.key.RegistryKey; import com.dfsek.terra.mod.CommonPlatform; +import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; +import com.dfsek.terra.mod.generation.TerraBiomeSource; public final class Codecs { diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/MinecraftChunkGeneratorWrapper.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/MinecraftChunkGeneratorWrapper.java index 1b8af7852..5742120d6 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/MinecraftChunkGeneratorWrapper.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/MinecraftChunkGeneratorWrapper.java @@ -17,8 +17,6 @@ package com.dfsek.terra.mod.generation; -import com.dfsek.terra.mod.mixin.access.StructureAccessorAccessor; - import com.mojang.serialization.Codec; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -65,6 +63,7 @@ import com.dfsek.terra.api.world.chunk.generation.util.GeneratorWrapper; import com.dfsek.terra.api.world.info.WorldProperties; import com.dfsek.terra.mod.config.PreLoadCompatibilityOptions; import com.dfsek.terra.mod.data.Codecs; +import com.dfsek.terra.mod.mixin.access.StructureAccessorAccessor; import com.dfsek.terra.mod.util.MinecraftAdapter; diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/TerraBiomeSource.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/TerraBiomeSource.java index 7f1f1d6dd..5730cee80 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/TerraBiomeSource.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/generation/TerraBiomeSource.java @@ -17,13 +17,6 @@ package com.dfsek.terra.mod.generation; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.world.biome.generation.BiomeProvider; -import com.dfsek.terra.mod.data.Codecs; -import com.dfsek.terra.mod.config.ProtoPlatformBiome; - -import com.dfsek.terra.mod.util.SeedHack; - import com.mojang.serialization.Codec; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryEntry; @@ -34,6 +27,12 @@ import org.slf4j.LoggerFactory; import java.util.stream.StreamSupport; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.world.biome.generation.BiomeProvider; +import com.dfsek.terra.mod.config.ProtoPlatformBiome; +import com.dfsek.terra.mod.data.Codecs; +import com.dfsek.terra.mod.util.SeedHack; + public class TerraBiomeSource extends BiomeSource { diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/fix/NetherFossilOptimization.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/fix/NetherFossilOptimization.java index f0eb245b8..12d6a0732 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/fix/NetherFossilOptimization.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/fix/NetherFossilOptimization.java @@ -1,7 +1,5 @@ package com.dfsek.terra.mod.mixin.fix; -import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; - import net.minecraft.world.gen.structure.NetherFossilStructure; import net.minecraft.world.gen.structure.Structure.Context; import net.minecraft.world.gen.structure.Structure.StructurePosition; @@ -12,6 +10,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.Optional; +import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; + /** * Disable fossil generation in Terra worlds, as they are very expensive due to consistently triggering cache misses. diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/compat/GenerationSettingsFloraFeaturesMixin.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/compat/GenerationSettingsFloraFeaturesMixin.java index df71e733f..c254445d1 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/compat/GenerationSettingsFloraFeaturesMixin.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/compat/GenerationSettingsFloraFeaturesMixin.java @@ -1,7 +1,5 @@ package com.dfsek.terra.mod.mixin.implementations.compat; -import com.dfsek.terra.mod.mixin_ifaces.FloraFeatureHolder; - import net.minecraft.world.biome.GenerationSettings; import net.minecraft.world.gen.feature.ConfiguredFeature; import org.spongepowered.asm.mixin.Implements; @@ -13,6 +11,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.List; +import com.dfsek.terra.mod.mixin_ifaces.FloraFeatureHolder; + @Mixin(GenerationSettings.class) @Implements(@Interface(iface = FloraFeatureHolder.class, prefix = "terra$")) diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/block/state/BlockStateMixin.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/block/state/BlockStateMixin.java index 86272efd9..636a3f721 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/block/state/BlockStateMixin.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/block/state/BlockStateMixin.java @@ -1,8 +1,6 @@ package com.dfsek.terra.mod.mixin.implementations.terra.block.state; -import com.dfsek.terra.mod.mixin.access.StateAccessor; - import com.google.common.collect.ImmutableMap; import com.mojang.serialization.MapCodec; import net.minecraft.block.AbstractBlock.AbstractBlockState; @@ -20,6 +18,7 @@ import java.util.stream.Collectors; import com.dfsek.terra.api.block.BlockType; import com.dfsek.terra.api.block.state.BlockState; import com.dfsek.terra.api.block.state.properties.Property; +import com.dfsek.terra.mod.mixin.access.StateAccessor; @Mixin(AbstractBlockState.class) diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/chunk/data/ProtoChunkMixin.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/chunk/data/ProtoChunkMixin.java index f90e5a3b3..25c8f196f 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/chunk/data/ProtoChunkMixin.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/chunk/data/ProtoChunkMixin.java @@ -17,9 +17,6 @@ package com.dfsek.terra.mod.mixin.implementations.terra.chunk.data; -import com.dfsek.terra.api.block.state.BlockState; -import com.dfsek.terra.api.world.chunk.generation.ProtoChunk; - import net.minecraft.util.math.BlockPos; import net.minecraft.world.HeightLimitView; import org.jetbrains.annotations.NotNull; @@ -28,6 +25,9 @@ import org.spongepowered.asm.mixin.Interface; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import com.dfsek.terra.api.block.state.BlockState; +import com.dfsek.terra.api.world.chunk.generation.ProtoChunk; + @Mixin(net.minecraft.world.chunk.ProtoChunk.class) @Implements(@Interface(iface = ProtoChunk.class, prefix = "terra$")) diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/world/ChunkRegionMixin.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/world/ChunkRegionMixin.java index c17a8c1ee..64ed28314 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/world/ChunkRegionMixin.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/world/ChunkRegionMixin.java @@ -17,7 +17,6 @@ package com.dfsek.terra.mod.mixin.implementations.terra.world; -import com.dfsek.terra.mod.util.MinecraftUtil; import net.minecraft.block.FluidBlock; import net.minecraft.fluid.Fluid; import net.minecraft.util.math.BlockPos; @@ -49,6 +48,7 @@ import com.dfsek.terra.api.world.biome.generation.BiomeProvider; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.api.world.chunk.generation.ProtoWorld; import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; +import com.dfsek.terra.mod.util.MinecraftUtil; @Mixin(ChunkRegion.class) diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/world/ServerWorldMixin.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/world/ServerWorldMixin.java index f219db0a1..74af91dbc 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/world/ServerWorldMixin.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/implementations/terra/world/ServerWorldMixin.java @@ -17,7 +17,6 @@ package com.dfsek.terra.mod.mixin.implementations.terra.world; -import com.dfsek.terra.mod.util.MinecraftUtil; import net.minecraft.util.math.BlockPos; import net.minecraft.world.WorldAccess; import org.spongepowered.asm.mixin.Implements; @@ -36,6 +35,7 @@ import com.dfsek.terra.api.world.chunk.Chunk; import com.dfsek.terra.api.world.chunk.generation.ChunkGenerator; import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; import com.dfsek.terra.mod.generation.TerraBiomeSource; +import com.dfsek.terra.mod.util.MinecraftUtil; @Mixin(net.minecraft.server.world.ServerWorld.class) diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/lifecycle/DataPackContentsMixin.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/lifecycle/DataPackContentsMixin.java index d18fbf8d2..a9ecb9354 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/lifecycle/DataPackContentsMixin.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/lifecycle/DataPackContentsMixin.java @@ -1,8 +1,5 @@ package com.dfsek.terra.mod.mixin.lifecycle; -import com.dfsek.terra.mod.util.TagUtil; -import com.dfsek.terra.mod.util.MinecraftUtil; - import net.minecraft.server.DataPackContents; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.util.registry.Registry; @@ -12,6 +9,9 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import com.dfsek.terra.mod.util.MinecraftUtil; +import com.dfsek.terra.mod.util.TagUtil; + @Mixin(DataPackContents.class) public class DataPackContentsMixin { diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java index 276aefaa9..fc2eb9def 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java @@ -1,14 +1,5 @@ package com.dfsek.terra.mod.util; -import com.dfsek.terra.api.block.entity.BlockEntity; -import com.dfsek.terra.api.block.entity.Container; -import com.dfsek.terra.api.block.entity.MobSpawner; -import com.dfsek.terra.api.block.entity.Sign; - -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.mod.config.VanillaBiomeProperties; -import com.dfsek.terra.mod.mixin_ifaces.FloraFeatureHolder; - import net.minecraft.block.entity.LootableContainerBlockEntity; import net.minecraft.block.entity.MobSpawnerBlockEntity; import net.minecraft.block.entity.SignBlockEntity; @@ -33,6 +24,14 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; +import com.dfsek.terra.api.block.entity.BlockEntity; +import com.dfsek.terra.api.block.entity.Container; +import com.dfsek.terra.api.block.entity.MobSpawner; +import com.dfsek.terra.api.block.entity.Sign; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.mod.config.VanillaBiomeProperties; +import com.dfsek.terra.mod.mixin_ifaces.FloraFeatureHolder; + public final class MinecraftUtil { public static final Logger logger = LoggerFactory.getLogger(MinecraftUtil.class); diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java index 7b3e57ca5..df1641f39 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/PresetUtil.java @@ -1,11 +1,5 @@ package com.dfsek.terra.mod.util; -import com.dfsek.terra.api.config.ConfigPack; - -import com.dfsek.terra.api.util.generic.pair.Pair; -import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; -import com.dfsek.terra.mod.generation.TerraBiomeSource; - import net.minecraft.structure.StructureSet; import net.minecraft.util.Identifier; import net.minecraft.util.math.noise.DoublePerlinNoiseSampler.NoiseParameters; @@ -30,6 +24,11 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.util.generic.pair.Pair; +import com.dfsek.terra.mod.generation.MinecraftChunkGeneratorWrapper; +import com.dfsek.terra.mod.generation.TerraBiomeSource; + public class PresetUtil { private static final Logger LOGGER = LoggerFactory.getLogger(PresetUtil.class); From b0bf9d042e64dce7394d1029e6490a426a17dc98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Sun, 26 Jun 2022 22:02:18 -0700 Subject: [PATCH 3/9] oops --- .../java/com/dfsek/terra/mod/ModPlatform.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java index 7d140eb79..49cc681c1 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java @@ -3,11 +3,25 @@ package com.dfsek.terra.mod; import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; + +import com.dfsek.terra.mod.config.BiomeAdditionsSoundTemplate; +import com.dfsek.terra.mod.config.BiomeMoodSoundTemplate; +import com.dfsek.terra.mod.config.BiomeParticleConfigTemplate; + +import com.dfsek.terra.mod.config.MusicSoundTemplate; +import com.dfsek.terra.mod.config.SoundEventTemplate; + import net.minecraft.server.MinecraftServer; +import net.minecraft.sound.BiomeAdditionsSound; +import net.minecraft.sound.BiomeMoodSound; +import net.minecraft.sound.MusicSound; +import net.minecraft.sound.SoundEvent; import net.minecraft.util.Identifier; import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.world.biome.Biome.Precipitation; +import net.minecraft.world.biome.Biome.TemperatureModifier; import net.minecraft.world.biome.BiomeEffects.GrassColorModifier; +import net.minecraft.world.biome.BiomeParticleConfig; import net.minecraft.world.gen.WorldPreset; import java.util.List; @@ -42,7 +56,14 @@ public abstract class ModPlatform extends AbstractPlatform { .registerLoader(Precipitation.class, (type, o, loader, depthTracker) -> Precipitation.valueOf(((String) o).toUpperCase( Locale.ROOT))) .registerLoader(GrassColorModifier.class, (type, o, loader, depthTracker) -> GrassColorModifier.valueOf(((String) o).toUpperCase( - Locale.ROOT))); + Locale.ROOT))) + .registerLoader(GrassColorModifier.class, (type, o, loader, depthTracker) -> TemperatureModifier.valueOf(((String) o).toUpperCase( + Locale.ROOT))) + .registerLoader(BiomeParticleConfig.class, BiomeParticleConfigTemplate::new) + .registerLoader(SoundEvent.class, SoundEventTemplate::new) + .registerLoader(BiomeMoodSound.class, BiomeMoodSoundTemplate::new) + .registerLoader(BiomeAdditionsSound.class, BiomeAdditionsSoundTemplate::new) + .registerLoader(MusicSound.class, MusicSoundTemplate::new); } private ProtoPlatformBiome parseBiome(String id, DepthTracker tracker) throws LoadException { From 71aa42011f75d53ac028ea0c0a54f9e5230ec358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Sun, 26 Jun 2022 23:43:15 -0700 Subject: [PATCH 4/9] Spawning! --- gradle.properties | 2 +- platforms/fabric/build.gradle.kts | 2 +- .../dfsek/terra/fabric/util/BiomeUtil.java | 19 ++++----- .../src/main/resources/terra.accesswidener | 1 - platforms/forge/build.gradle.kts | 2 + platforms/mixin-common/build.gradle.kts | 1 + .../java/com/dfsek/terra/mod/ModPlatform.java | 29 ++++++++++---- .../config/BiomeAdditionsSoundTemplate.java | 2 +- .../config/BiomeParticleConfigTemplate.java | 6 +-- .../terra/mod/config/EntityTypeTemplate.java | 20 ++++++++++ .../terra/mod/config/MusicSoundTemplate.java | 2 +- .../terra/mod/config/SoundEventTemplate.java | 2 +- .../terra/mod/config/SpawnCostConfig.java | 38 ++++++++++++++++++ .../terra/mod/config/SpawnEntryTemplate.java | 31 +++++++++++++++ .../terra/mod/config/SpawnGroupTemplate.java | 18 +++++++++ .../mod/config/SpawnSettingsTemplate.java | 39 +++++++++++++++++++ .../terra/mod/config/SpawnTypeConfig.java | 31 +++++++++++++++ .../mod/config/VanillaBiomeProperties.java | 13 ++++++- .../terra/mod/mixin/access/BiomeAccessor.java | 12 ++++++ .../dfsek/terra/mod/util/MinecraftUtil.java | 12 +++--- .../src/main/resources/terra.accesswidener | 2 + 21 files changed, 249 insertions(+), 35 deletions(-) delete mode 100644 platforms/fabric/src/main/resources/terra.accesswidener create mode 100644 platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/EntityTypeTemplate.java create mode 100644 platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnCostConfig.java create mode 100644 platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnEntryTemplate.java create mode 100644 platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnGroupTemplate.java create mode 100644 platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnSettingsTemplate.java create mode 100644 platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnTypeConfig.java create mode 100644 platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/access/BiomeAccessor.java create mode 100644 platforms/mixin-common/src/main/resources/terra.accesswidener diff --git a/gradle.properties b/gradle.properties index baf5d0e6a..067f03e0c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # Magic options for more perf -org.gradle.jvmargs=-Xmx2048M -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC +org.gradle.jvmargs=-Xmx3048M -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC org.gradle.vfs.watch=true kapt.use.worker.api=true kapt.include.compile.classpath=false diff --git a/platforms/fabric/build.gradle.kts b/platforms/fabric/build.gradle.kts index 4020713db..1155a480e 100644 --- a/platforms/fabric/build.gradle.kts +++ b/platforms/fabric/build.gradle.kts @@ -36,7 +36,7 @@ dependencies { } loom { - accessWidenerPath.set(file("src/main/resources/terra.accesswidener")) + accessWidenerPath.set(project(":platforms:mixin-common").file("src/main/resources/terra.accesswidener")) mixin { defaultRefmapName.set("terra-fabric-refmap.json") } diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java index fdaee4a21..7afb25668 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/util/BiomeUtil.java @@ -1,23 +1,20 @@ package com.dfsek.terra.fabric.util; -import com.dfsek.terra.api.config.ConfigPack; -import com.dfsek.terra.api.world.biome.Biome; -import com.dfsek.terra.fabric.FabricEntryPoint; -import com.dfsek.terra.mod.config.PreLoadCompatibilityOptions; - -import com.dfsek.terra.mod.config.ProtoPlatformBiome; -import com.dfsek.terra.mod.mixin_ifaces.FloraFeatureHolder; -import com.dfsek.terra.mod.util.MinecraftUtil; - import net.minecraft.util.Identifier; import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryKey; -import net.minecraft.world.gen.feature.ConfiguredFeature; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.*; +import java.util.ArrayList; + +import com.dfsek.terra.api.config.ConfigPack; +import com.dfsek.terra.api.world.biome.Biome; +import com.dfsek.terra.fabric.FabricEntryPoint; +import com.dfsek.terra.mod.config.PreLoadCompatibilityOptions; +import com.dfsek.terra.mod.config.ProtoPlatformBiome; +import com.dfsek.terra.mod.util.MinecraftUtil; public final class BiomeUtil { diff --git a/platforms/fabric/src/main/resources/terra.accesswidener b/platforms/fabric/src/main/resources/terra.accesswidener deleted file mode 100644 index 3fde5170f..000000000 --- a/platforms/fabric/src/main/resources/terra.accesswidener +++ /dev/null @@ -1 +0,0 @@ -accessWidener v1 named diff --git a/platforms/forge/build.gradle.kts b/platforms/forge/build.gradle.kts index b09a9a1b1..95cd6d82d 100644 --- a/platforms/forge/build.gradle.kts +++ b/platforms/forge/build.gradle.kts @@ -32,11 +32,13 @@ dependencies { } loom { + accessWidenerPath.set(project(":platforms:mixin-common").file("src/main/resources/terra.accesswidener")) mixin { defaultRefmapName.set("terra-forge-refmap.json") } forge { + convertAccessWideners.set(true) mixinConfig("terra.common.mixins.json") mixinConfig("terra.forge.mixins.json") } diff --git a/platforms/mixin-common/build.gradle.kts b/platforms/mixin-common/build.gradle.kts index 33a503818..439419b70 100644 --- a/platforms/mixin-common/build.gradle.kts +++ b/platforms/mixin-common/build.gradle.kts @@ -7,6 +7,7 @@ loom { mixin { defaultRefmapName.set("terra-common-refmap.json") } + accessWidenerPath.set(file("src/main/resources/terra.accesswidener")) } dependencies { diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java index 49cc681c1..7d70b727e 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java @@ -4,13 +4,10 @@ import com.dfsek.tectonic.api.TypeRegistry; import com.dfsek.tectonic.api.depth.DepthTracker; import com.dfsek.tectonic.api.exception.LoadException; -import com.dfsek.terra.mod.config.BiomeAdditionsSoundTemplate; -import com.dfsek.terra.mod.config.BiomeMoodSoundTemplate; -import com.dfsek.terra.mod.config.BiomeParticleConfigTemplate; - -import com.dfsek.terra.mod.config.MusicSoundTemplate; -import com.dfsek.terra.mod.config.SoundEventTemplate; +import com.dfsek.terra.mod.config.SpawnSettingsTemplate; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.SpawnGroup; import net.minecraft.server.MinecraftServer; import net.minecraft.sound.BiomeAdditionsSound; import net.minecraft.sound.BiomeMoodSound; @@ -22,6 +19,8 @@ import net.minecraft.world.biome.Biome.Precipitation; import net.minecraft.world.biome.Biome.TemperatureModifier; import net.minecraft.world.biome.BiomeEffects.GrassColorModifier; import net.minecraft.world.biome.BiomeParticleConfig; +import net.minecraft.world.biome.SpawnSettings; +import net.minecraft.world.biome.SpawnSettings.SpawnEntry; import net.minecraft.world.gen.WorldPreset; import java.util.List; @@ -31,7 +30,17 @@ import java.util.function.BiConsumer; import com.dfsek.terra.AbstractPlatform; import com.dfsek.terra.api.addon.BaseAddon; import com.dfsek.terra.api.world.biome.PlatformBiome; +import com.dfsek.terra.mod.config.BiomeAdditionsSoundTemplate; +import com.dfsek.terra.mod.config.BiomeMoodSoundTemplate; +import com.dfsek.terra.mod.config.BiomeParticleConfigTemplate; +import com.dfsek.terra.mod.config.EntityTypeTemplate; +import com.dfsek.terra.mod.config.MusicSoundTemplate; import com.dfsek.terra.mod.config.ProtoPlatformBiome; +import com.dfsek.terra.mod.config.SoundEventTemplate; +import com.dfsek.terra.mod.config.SpawnCostConfig; +import com.dfsek.terra.mod.config.SpawnEntryTemplate; +import com.dfsek.terra.mod.config.SpawnGroupTemplate; +import com.dfsek.terra.mod.config.SpawnTypeConfig; import com.dfsek.terra.mod.util.PresetUtil; @@ -63,7 +72,13 @@ public abstract class ModPlatform extends AbstractPlatform { .registerLoader(SoundEvent.class, SoundEventTemplate::new) .registerLoader(BiomeMoodSound.class, BiomeMoodSoundTemplate::new) .registerLoader(BiomeAdditionsSound.class, BiomeAdditionsSoundTemplate::new) - .registerLoader(MusicSound.class, MusicSoundTemplate::new); + .registerLoader(MusicSound.class, MusicSoundTemplate::new) + .registerLoader(EntityType.class, EntityTypeTemplate::new) + .registerLoader(SpawnCostConfig.class, SpawnCostConfig::new) + .registerLoader(SpawnEntry.class, SpawnEntryTemplate::new) + .registerLoader(SpawnGroup.class, SpawnGroupTemplate::new) + .registerLoader(SpawnTypeConfig.class, SpawnTypeConfig::new) + .registerLoader(SpawnSettings.class, SpawnSettingsTemplate::new); } private ProtoPlatformBiome parseBiome(String id, DepthTracker tracker) throws LoadException { diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/BiomeAdditionsSoundTemplate.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/BiomeAdditionsSoundTemplate.java index f6bc69a5a..92e6dc7a7 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/BiomeAdditionsSoundTemplate.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/BiomeAdditionsSoundTemplate.java @@ -12,7 +12,7 @@ public class BiomeAdditionsSoundTemplate implements ObjectTemplate> { + @Value("id") + @Default + private Identifier id = null; + + @Override + public EntityType get() { + return Registry.ENTITY_TYPE.get(id); + } +} diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/MusicSoundTemplate.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/MusicSoundTemplate.java index 4896a0cc5..674d47548 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/MusicSoundTemplate.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/MusicSoundTemplate.java @@ -20,7 +20,7 @@ public class MusicSoundTemplate implements ObjectTemplate { @Default private Integer maxDelay = null; - @Value("-current-music") + @Value("replace-current-music") @Default private Boolean replaceCurrentMusic = null; diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SoundEventTemplate.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SoundEventTemplate.java index 7a69b1546..f2ae58993 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SoundEventTemplate.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SoundEventTemplate.java @@ -12,7 +12,7 @@ public class SoundEventTemplate implements ObjectTemplate { @Default private Identifier id = null; - @Value("distanceToTravel") + @Value("distance-to-travel") @Default private Float distanceToTravel = null; diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnCostConfig.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnCostConfig.java new file mode 100644 index 000000000..3af1ff1b1 --- /dev/null +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnCostConfig.java @@ -0,0 +1,38 @@ +package com.dfsek.terra.mod.config; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import net.minecraft.entity.EntityType; + + +public class SpawnCostConfig implements ObjectTemplate { + @Value("type") + @Default + private EntityType type = null; + + @Value("mass") + @Default + private Double mass = null; + + @Value("gravity") + @Default + private Double gravity = null; + + public EntityType getType() { + return type; + } + + public Double getMass() { + return mass; + } + + public Double getGravity() { + return gravity; + } + + @Override + public SpawnCostConfig get() { + return this; + } +} diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnEntryTemplate.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnEntryTemplate.java new file mode 100644 index 000000000..7c203b62e --- /dev/null +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnEntryTemplate.java @@ -0,0 +1,31 @@ +package com.dfsek.terra.mod.config; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import net.minecraft.entity.EntityType; +import net.minecraft.world.biome.SpawnSettings.SpawnEntry; + + +public class SpawnEntryTemplate implements ObjectTemplate { + @Value("type") + @Default + private EntityType type = null; + + @Value("weight") + @Default + private Integer weight = null; + + @Value("min-group-size") + @Default + private Integer minGroupSize = null; + + @Value("max-group-size") + @Default + private Integer maxGroupSize = null; + + @Override + public SpawnEntry get() { + return new SpawnEntry(type, weight, minGroupSize, maxGroupSize); + } +} diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnGroupTemplate.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnGroupTemplate.java new file mode 100644 index 000000000..e6a9143d1 --- /dev/null +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnGroupTemplate.java @@ -0,0 +1,18 @@ +package com.dfsek.terra.mod.config; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import net.minecraft.entity.SpawnGroup; + + +public class SpawnGroupTemplate implements ObjectTemplate { + @Value("group") + @Default + private String group = null; + + @Override + public SpawnGroup get() { + return SpawnGroup.valueOf(group); + } +} diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnSettingsTemplate.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnSettingsTemplate.java new file mode 100644 index 000000000..25fae1481 --- /dev/null +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnSettingsTemplate.java @@ -0,0 +1,39 @@ +package com.dfsek.terra.mod.config; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import net.minecraft.world.biome.SpawnSettings; + +import java.util.List; + + +public class SpawnSettingsTemplate implements ObjectTemplate { + @Value("spawns") + @Default + private List spawns = null; + + @Value("costs") + @Default + private List costs = null; + + @Value("probability") + @Default + private Float probability = null; + + @Override + public SpawnSettings get() { + SpawnSettings.Builder builder = new SpawnSettings.Builder(); + for (SpawnTypeConfig spawn : spawns) { + builder.spawn(spawn.getGroup(), spawn.getEntry()); + } + for (SpawnCostConfig cost: costs) { + builder.spawnCost(cost.getType(), cost.getMass(), cost.getGravity()); + } + if (probability != null) { + builder.creatureSpawnProbability(probability); + } + + return builder.build(); + } +} diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnTypeConfig.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnTypeConfig.java new file mode 100644 index 000000000..0f1eff6b5 --- /dev/null +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/SpawnTypeConfig.java @@ -0,0 +1,31 @@ +package com.dfsek.terra.mod.config; + +import com.dfsek.tectonic.api.config.template.annotations.Default; +import com.dfsek.tectonic.api.config.template.annotations.Value; +import com.dfsek.tectonic.api.config.template.object.ObjectTemplate; +import net.minecraft.entity.SpawnGroup; +import net.minecraft.world.biome.SpawnSettings.SpawnEntry; + + +public class SpawnTypeConfig implements ObjectTemplate { + @Value("group") + @Default + private SpawnGroup group = null; + + @Value("entry") + @Default + private SpawnEntry entry = null; + + public SpawnGroup getGroup() { + return group; + } + + public SpawnEntry getEntry() { + return entry; + } + + @Override + public SpawnTypeConfig get() { + return this; + } +} diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java index 0bec88566..e44e4b977 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/config/VanillaBiomeProperties.java @@ -11,6 +11,7 @@ import net.minecraft.world.biome.Biome.Precipitation; import net.minecraft.world.biome.Biome.TemperatureModifier; import net.minecraft.world.biome.BiomeEffects.GrassColorModifier; import net.minecraft.world.biome.BiomeParticleConfig; +import net.minecraft.world.biome.SpawnSettings; import com.dfsek.terra.api.properties.Properties; @@ -42,7 +43,7 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Value("colors.modifier") @Default - private GrassColorModifier modifier = null; + private GrassColorModifier grassColorModifier = null; @Value("particles") @Default @@ -80,6 +81,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { @Default private MusicSound music = null; + @Value("spawning") + @Default + private SpawnSettings spawnSettings = null; + public Integer getGrassColor() { return grassColor; } @@ -105,7 +110,7 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { } public GrassColorModifier getGrassColorModifier() { - return modifier; + return grassColorModifier; } public BiomeParticleConfig getParticleConfig() { @@ -143,4 +148,8 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties { public MusicSound getMusic() { return music; } + + public SpawnSettings getSpawnSettings() { + return spawnSettings; + } } diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/access/BiomeAccessor.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/access/BiomeAccessor.java new file mode 100644 index 000000000..c51029682 --- /dev/null +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/mixin/access/BiomeAccessor.java @@ -0,0 +1,12 @@ +package com.dfsek.terra.mod.mixin.access; + +import net.minecraft.world.biome.Biome; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + + +@Mixin(Biome.class) +public interface BiomeAccessor { + @Accessor("weather") + Biome.Weather getWeather(); +} diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java index fc2eb9def..1fa62bcae 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/util/MinecraftUtil.java @@ -30,6 +30,7 @@ import com.dfsek.terra.api.block.entity.MobSpawner; import com.dfsek.terra.api.block.entity.Sign; import com.dfsek.terra.api.config.ConfigPack; import com.dfsek.terra.mod.config.VanillaBiomeProperties; +import com.dfsek.terra.mod.mixin.access.BiomeAccessor; import com.dfsek.terra.mod.mixin_ifaces.FloraFeatureHolder; @@ -151,14 +152,13 @@ public final class MinecraftUtil { builder.temperature(Objects.requireNonNullElse(vanillaBiomeProperties.getTemperature(), vanilla.getTemperature())); builder.downfall(Objects.requireNonNullElse(vanillaBiomeProperties.getDownfall(), vanilla.getDownfall())); - - if (vanillaBiomeProperties.getTemperatureModifier() != null) { - builder.temperatureModifier(vanillaBiomeProperties.getTemperatureModifier()); - } - + + builder.temperatureModifier(Objects.requireNonNullElse(vanillaBiomeProperties.getTemperatureModifier(), ((BiomeAccessor)((Object)vanilla)).getWeather().temperatureModifier())); + + builder.spawnSettings(Objects.requireNonNullElse(vanillaBiomeProperties.getSpawnSettings(), vanilla.getSpawnSettings())); + return builder .effects(effects.build()) - .spawnSettings(vanilla.getSpawnSettings()) .generationSettings(generationSettings.build()) .build(); } diff --git a/platforms/mixin-common/src/main/resources/terra.accesswidener b/platforms/mixin-common/src/main/resources/terra.accesswidener new file mode 100644 index 000000000..4f59bb962 --- /dev/null +++ b/platforms/mixin-common/src/main/resources/terra.accesswidener @@ -0,0 +1,2 @@ +accessWidener v1 named +accessible class net/minecraft/world/biome/Biome$Weather \ No newline at end of file From e21bb5c26d69795600d00abfb957605e00be21f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Sun, 26 Jun 2022 23:58:48 -0700 Subject: [PATCH 5/9] Refractor --- buildSrc/src/main/kotlin/DistributionConfig.kt | 4 ++-- .../dfsek/terra/bukkit/world/block/data/BukkitBlockState.java | 2 +- .../terra/bukkit/world/inventory/meta/BukkitDamageable.java | 2 +- .../terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java | 2 +- platforms/cli/build.gradle.kts | 2 +- .../src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/buildSrc/src/main/kotlin/DistributionConfig.kt b/buildSrc/src/main/kotlin/DistributionConfig.kt index 253869ae6..60e79867a 100644 --- a/buildSrc/src/main/kotlin/DistributionConfig.kt +++ b/buildSrc/src/main/kotlin/DistributionConfig.kt @@ -52,8 +52,8 @@ fun Project.configureDistribution() { println("Packaging addon ${jar.archiveFileName.get()} to $dest. size: ${jar.archiveFile.get().asFile.length() / 1024}KB") val boot = if (extra.has("bootstrap") && extra.get("bootstrap") as Boolean) "bootstrap/" else "" - val addonPath = fs.getPath("/addons/$boot${jar.archiveFileName.get()}"); - + val addonPath = fs.getPath("/addons/$boot${jar.archiveFileName.get()}") + if (!Files.exists(addonPath)) { Files.createDirectories(addonPath.parent) Files.createFile(addonPath) diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/block/data/BukkitBlockState.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/block/data/BukkitBlockState.java index f670d4f03..4a6716826 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/block/data/BukkitBlockState.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/block/data/BukkitBlockState.java @@ -24,7 +24,7 @@ import com.dfsek.terra.bukkit.world.BukkitAdapter; public class BukkitBlockState implements BlockState { - private org.bukkit.block.data.BlockData delegate; + private final org.bukkit.block.data.BlockData delegate; protected BukkitBlockState(org.bukkit.block.data.BlockData delegate) { this.delegate = delegate; diff --git a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/inventory/meta/BukkitDamageable.java b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/inventory/meta/BukkitDamageable.java index 09e2e167b..74287e964 100644 --- a/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/inventory/meta/BukkitDamageable.java +++ b/platforms/bukkit/common/src/main/java/com/dfsek/terra/bukkit/world/inventory/meta/BukkitDamageable.java @@ -25,7 +25,7 @@ import com.dfsek.terra.bukkit.world.inventory.BukkitItemMeta; public class BukkitDamageable extends BukkitItemMeta implements Damageable { public BukkitDamageable(org.bukkit.inventory.meta.Damageable delegate) { - super((ItemMeta) delegate); + super(delegate); } @Override diff --git a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java index ff4e1597c..2b292142f 100644 --- a/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java +++ b/platforms/bukkit/nms/v1_18_R2/src/main/java/com/dfsek/terra/bukkit/nms/v1_18_R2/NMSChunkGeneratorDelegate.java @@ -227,7 +227,7 @@ public class NMSChunkGeneratorDelegate extends ChunkGenerator { this.climateSampler()); if(pair != null) { - BlockPos blockposition = (BlockPos) pair.getFirst(); + BlockPos blockposition = pair.getFirst(); k1 = SectionPos.blockToSectionCoord(blockposition.getX()); l1 = SectionPos.blockToSectionCoord(blockposition.getZ()); diff --git a/platforms/cli/build.gradle.kts b/platforms/cli/build.gradle.kts index 677d2f585..26d9f3d6c 100644 --- a/platforms/cli/build.gradle.kts +++ b/platforms/cli/build.gradle.kts @@ -20,7 +20,7 @@ dependencies { implementation("net.jafama", "jafama", Versions.Libraries.Internal.jafama) } -tasks.withType() { +tasks.withType { entryCompression = ZipEntryCompression.STORED manifest { attributes( diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java index 12c67e838..899a97055 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java @@ -83,7 +83,7 @@ public final class AwfulForgeHacks { BLOCK, BIOME, WORLD_TYPE, - DONE; + DONE } From 18de2c3f99ada9f888c85b4c63ca3b639b12ee9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Thu, 30 Jun 2022 18:30:13 -0700 Subject: [PATCH 6/9] Fix dev launch for fabric and forge --- .gitignore | 5 +- buildSrc/src/main/kotlin/Versions.kt | 11 +- .../terra/addon/BootstrapAddonLoader.java | 1 - platforms/fabric/build.gradle.kts | 23 ++-- .../fabric/src/main/resources/fabric.mod.json | 3 +- .../main/resources/terra.fabric.mixins.json | 3 +- platforms/forge/build.gradle.kts | 29 +++-- .../dfsek/terra/forge/AwfulForgeHacks.java | 105 ++++++++++++++---- .../main/resources/terra.forge.mixins.json | 3 +- platforms/mixin-common/build.gradle.kts | 9 +- .../com/dfsek/terra/mod/MinecraftAddon.java | 2 +- .../src/main/resources/fabric.mod.json | 8 -- .../main/resources/terra.common.mixins.json | 4 +- .../main/resources => }/terra.accesswidener | 0 ...d.gradle.kts => build.gradle.kts.disabled} | 0 15 files changed, 140 insertions(+), 66 deletions(-) delete mode 100644 platforms/mixin-common/src/main/resources/fabric.mod.json rename platforms/mixin-common/{src/main/resources => }/terra.accesswidener (100%) rename platforms/sponge/{build.gradle.kts => build.gradle.kts.disabled} (100%) diff --git a/.gitignore b/.gitignore index 7e27208c8..11b505e85 100644 --- a/.gitignore +++ b/.gitignore @@ -246,4 +246,7 @@ nbdist/ /run/ **/testDir/ -platforms/fabric/run/config/Terra/config.yml + +platforms/fabric/run/** + +platforms/forge/run/** diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index f0b5efc0f..451f648a2 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -20,11 +20,8 @@ object Versions { object Fabric { const val fabricLoader = "0.14.2" const val fabricAPI = "0.56.0+1.19" - const val minecraft = "1.19" - const val yarn = "$minecraft+build.1" const val mixin = "0.11.2+mixin.0.8.5" const val loom = "0.12-SNAPSHOT" - const val loomQuiltflower = "1.7.1" const val minotaur = "1.1.0" } @@ -35,13 +32,13 @@ object Versions { const val architecuryLoom = "0.12.0-SNAPSHOT" const val architectutyPlugin = "3.4-SNAPSHOT" + + const val loomQuiltflower = "1.7.1" } object Forge { - const val minecraft = "1.19" - const val forge = "$minecraft-41.0.38" - const val yarn = "$minecraft+build.1" - const val architecuryLoom = "0.12.0-SNAPSHOT" + const val forge = "${Mod.minecraft}-41.0.38" + const val burningwave = "" } object Bukkit { diff --git a/common/implementation/bootstrap-addon-loader/src/main/java/com/dfsek/terra/addon/BootstrapAddonLoader.java b/common/implementation/bootstrap-addon-loader/src/main/java/com/dfsek/terra/addon/BootstrapAddonLoader.java index 37eba4762..244bef568 100644 --- a/common/implementation/bootstrap-addon-loader/src/main/java/com/dfsek/terra/addon/BootstrapAddonLoader.java +++ b/common/implementation/bootstrap-addon-loader/src/main/java/com/dfsek/terra/addon/BootstrapAddonLoader.java @@ -96,7 +96,6 @@ public class BootstrapAddonLoader implements BootstrapBaseAddon + setOf("fabric-lifecycle-events-v1", "fabric-resource-loader-v0", "fabric-api-base", "fabric-command-api-v2", "fabric-networking-api-v1").forEach { apiModule -> val module = fabricApi.module(apiModule, Versions.Fabric.fabricAPI) modImplementation(module) include(module) @@ -36,16 +37,16 @@ dependencies { } loom { - accessWidenerPath.set(project(":platforms:mixin-common").file("src/main/resources/terra.accesswidener")) + accessWidenerPath.set(project(":platforms:mixin-common").file("terra.accesswidener")) + mixin { - defaultRefmapName.set("terra-fabric-refmap.json") + defaultRefmapName.set("terra.fabric.refmap.json") } + } -addonDir(project.file("./run/config/Terra/addons"), tasks.named("runClient").get()) -addonDir(project.file("./run/config/Terra/addons"), tasks.named("runServer").get()) - +addonDir(project.file("./run/config/Terra/addons"), tasks.named("configureLaunch").get()) tasks { compileJava { @@ -56,4 +57,8 @@ tasks { inputFile.set(shadowJar.get().archiveFile) archiveFileName.set("${rootProject.name.capitalize()}-${project.version}.jar") } + + processResources { + from(project(":platforms:mixin-common").file("terra.accesswidener")) + } } diff --git a/platforms/fabric/src/main/resources/fabric.mod.json b/platforms/fabric/src/main/resources/fabric.mod.json index e6e490c1a..2d9a3db6a 100644 --- a/platforms/fabric/src/main/resources/fabric.mod.json +++ b/platforms/fabric/src/main/resources/fabric.mod.json @@ -21,7 +21,8 @@ ] }, "mixins": [ - "terra.fabric.mixins.json" + "terra.fabric.mixins.json", + "terra.common.mixins.json" ], "depends": { "fabricloader": ">=0.14.2", diff --git a/platforms/fabric/src/main/resources/terra.fabric.mixins.json b/platforms/fabric/src/main/resources/terra.fabric.mixins.json index 52882ee43..9b2d4bcec 100644 --- a/platforms/fabric/src/main/resources/terra.fabric.mixins.json +++ b/platforms/fabric/src/main/resources/terra.fabric.mixins.json @@ -16,6 +16,5 @@ ], "injectors": { "defaultRequire": 1 - }, - "refmap": "terra-fabric-refmap.json" + } } \ No newline at end of file diff --git a/platforms/forge/build.gradle.kts b/platforms/forge/build.gradle.kts index 95cd6d82d..a667149d7 100644 --- a/platforms/forge/build.gradle.kts +++ b/platforms/forge/build.gradle.kts @@ -1,7 +1,7 @@ plugins { - id("dev.architectury.loom") version Versions.Forge.architecuryLoom + id("dev.architectury.loom") version Versions.Mod.architecuryLoom id("architectury-plugin") version Versions.Mod.architectutyPlugin - id("io.github.juuxel.loom-quiltflower") version Versions.Fabric.loomQuiltflower + id("io.github.juuxel.loom-quiltflower") version Versions.Mod.loomQuiltflower } architectury { @@ -17,34 +17,43 @@ configurations { dependencies { shadedApi(project(":common:implementation:base")) + "forgeRuntimeLibrary"(project(":common:implementation:base")) + "common"(project(path = ":platforms:mixin-common", configuration = "namedElements")) { isTransitive = false } shaded(project(path = ":platforms:mixin-common", configuration = "transformProductionForge")) { isTransitive = false } - "developmentForge"(project(":platforms:mixin-common", configuration = "namedElements")) { + "developmentForge"(project(path = ":platforms:mixin-common", configuration = "namedElements")) { isTransitive = false } forge(group = "net.minecraftforge", name = "forge", version = Versions.Forge.forge) - minecraft("com.mojang:minecraft:${Versions.Forge.minecraft}") - mappings("net.fabricmc:yarn:${Versions.Forge.yarn}:v2") + minecraft("com.mojang:minecraft:${Versions.Mod.minecraft}") + mappings("net.fabricmc:yarn:${Versions.Mod.yarn}:v2") + + //forge is not ok. + compileOnly("org.burningwave:core:12.53.0") + "forgeRuntimeLibrary"("org.burningwave:core:12.53.0") } loom { - accessWidenerPath.set(project(":platforms:mixin-common").file("src/main/resources/terra.accesswidener")) + accessWidenerPath.set(project(":platforms:mixin-common").file("terra.accesswidener")) + mixin { - defaultRefmapName.set("terra-forge-refmap.json") + defaultRefmapName.set("terra.forge.refmap.json") } forge { convertAccessWideners.set(true) mixinConfig("terra.common.mixins.json") mixinConfig("terra.forge.mixins.json") + extraAccessWideners.add(loom.accessWidenerPath.get().asFile.name) } } +addonDir(project.file("./run/config/Terra/addons"), tasks.named("configureLaunch").get()) tasks { jar { @@ -66,4 +75,8 @@ tasks { inputFile.set(shadowJar.get().archiveFile) archiveFileName.set("${rootProject.name.capitalize()}-${project.version}.jar") } -} + + processResources { + from(project(":platforms:mixin-common").file("terra.accesswidener")) + } +} \ No newline at end of file diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java index 899a97055..1d0f44bc2 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/AwfulForgeHacks.java @@ -1,16 +1,34 @@ package com.dfsek.terra.forge; +import com.dfsek.terra.AbstractPlatform; + +import cpw.mods.cl.ModuleClassLoader; +import net.minecraftforge.fml.loading.FMLLoader; +import org.burningwave.core.classes.Classes; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; +import java.lang.reflect.Field; +import java.net.URISyntaxException; +import java.net.URL; import java.nio.file.FileVisitOption; import java.nio.file.Files; import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import java.util.concurrent.atomic.AtomicReference; +import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.stream.Stream; +import com.dfsek.terra.api.addon.bootstrap.BootstrapAddonClassLoader; + /** * Forge is really wacky and screws with class resolution in the addon loader. Loading every single Terra class *manually* on startup @@ -33,7 +51,7 @@ public final class AwfulForgeHacks { */ public static JarFile getTerraJar() throws IOException { LOGGER.info("Scanning for Terra JAR..."); - return Files.walk(Path.of("./", "mods"), 1, FileVisitOption.FOLLOW_LINKS) + return Files.walk(Path.of(System.getProperty("user.dir"), "mods"), 1, FileVisitOption.FOLLOW_LINKS) .filter(it -> it.getFileName().toString().endsWith(".jar")) .peek(path -> LOGGER.info("Found mod: {}", path)) .map(Path::toFile) @@ -52,30 +70,75 @@ public final class AwfulForgeHacks { .equals(ForgeEntryPoint.class.getName().replace('.', '/') + ".class"))) .findFirst() .orElseThrow(() -> new IllegalStateException("Could not find Terra JAR")); - } public static void loadAllTerraClasses() { - - try(JarFile jar = getTerraJar()) { - jar.stream() - .forEach(jarEntry -> { - if(jarEntry.getName().startsWith("com/dfsek/terra/forge/mixin") - || jarEntry.getName().startsWith("com/dfsek/terra/mod/mixin")) { - return; - } - if(jarEntry.getName().endsWith(".class")) { - String name = jarEntry.getName().replace('/', '.'); - name = name.substring(0, name.length() - 6); - try { - Class.forName(name); - } catch(ClassNotFoundException | NoClassDefFoundError e) { - LOGGER.warn("Failed to load class {}: {}", name, e); + if (FMLLoader.isProduction()) { + try(JarFile jar = getTerraJar()) { + jar.stream() + .forEach(jarEntry -> { + if(jarEntry.getName().startsWith("com/dfsek/terra/forge/mixin") + || jarEntry.getName().startsWith("com/dfsek/terra/mod/mixin")) { + return; } - } - }); - } catch(IOException e) { - throw new IllegalStateException("Could not load all Terra classes", e); + if(jarEntry.getName().endsWith(".class")) { + String name = jarEntry.getName().replace('/', '.'); + name = name.substring(0, name.length() - 6); + try { + Class.forName(name); + } catch(ClassNotFoundException | NoClassDefFoundError e) { + LOGGER.warn("Failed to load class {}: {}", name, e); + } + } + }); + } catch(IOException e) { + throw new IllegalStateException("Could not load all Terra classes", e); + } + } else { + // Forgive me for what I'm about to do... + LOGGER.warn("I felt a great disturbance in the JVM, as if millions of class not found exceptions suddenly cried out in terror and were suddenly silenced."); + ArrayList pathsToLoad = new ArrayList<>(); + + Path terraRoot = Path.of(System.getProperty("user.dir")).getParent().getParent().getParent(); + Path commonRoot = terraRoot.resolve("common"); + Path implementationRoot = commonRoot.resolve("implementation"); + + pathsToLoad.add(commonRoot.resolve("api")); + pathsToLoad.add(implementationRoot.resolve("base")); + pathsToLoad.add(implementationRoot.resolve("bootstrap-addon-loader")); + for (Path path : pathsToLoad) { + try { + Path target = path.resolve("build").resolve("classes").resolve("java").resolve("main"); + + BootstrapAddonClassLoader cl = new BootstrapAddonClassLoader(new URL[] { path.toUri().toURL()}); + + Classes.Loaders omegaCL = Classes.Loaders.create(); + Files.walk(target, Integer.MAX_VALUE, FileVisitOption.FOLLOW_LINKS) + .filter(it -> it.getFileName().toString().endsWith(".class")) + .map(Path::toFile) + .forEach(it -> { + String name = it.getAbsolutePath().replace(target + "/", "").replace('\\', '.').replace('/', '.'); + name = name.substring(0, name.length() - 6); + LOGGER.info("Loading class {}", name); + try { + Class.forName(name); + } catch(ClassNotFoundException e) { + try { + String pathToJar = cl.loadClass(name).getProtectionDomain().getCodeSource().getLocation().toURI().getPath(); + + cl.addURL(new URL("jar:file:" + pathToJar + "!/")); + Class newClassLoad = Class.forName(name, true, cl); + omegaCL.loadOrDefine(newClassLoad, AbstractPlatform.class.getClassLoader()); + } catch(ClassNotFoundException | URISyntaxException | IOException ex) { + throw new RuntimeException(ex); + } + + } + }); + } catch(IOException e) { + throw new IllegalStateException("Could not load all Terra classes", e); + } + } } } diff --git a/platforms/forge/src/main/resources/terra.forge.mixins.json b/platforms/forge/src/main/resources/terra.forge.mixins.json index 355d77483..9bc9426db 100644 --- a/platforms/forge/src/main/resources/terra.forge.mixins.json +++ b/platforms/forge/src/main/resources/terra.forge.mixins.json @@ -12,6 +12,5 @@ ], "injectors": { "defaultRequire": 1 - }, - "refmap": "terra-forge-refmap.json" + } } \ No newline at end of file diff --git a/platforms/mixin-common/build.gradle.kts b/platforms/mixin-common/build.gradle.kts index 439419b70..8646e8b39 100644 --- a/platforms/mixin-common/build.gradle.kts +++ b/platforms/mixin-common/build.gradle.kts @@ -1,13 +1,15 @@ plugins { id("dev.architectury.loom") version Versions.Mod.architecuryLoom id("architectury-plugin") version Versions.Mod.architectutyPlugin + id("io.github.juuxel.loom-quiltflower") version Versions.Mod.loomQuiltflower } loom { + accessWidenerPath.set(file("terra.accesswidener")) + mixin { - defaultRefmapName.set("terra-common-refmap.json") + defaultRefmapName.set("terra.common.refmap.json") } - accessWidenerPath.set(file("src/main/resources/terra.accesswidener")) } dependencies { @@ -22,4 +24,5 @@ dependencies { architectury { common("fabric", "forge") minecraft = Versions.Mod.minecraft -} \ No newline at end of file +} + diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/MinecraftAddon.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/MinecraftAddon.java index 76b13b137..edc8ea63f 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/MinecraftAddon.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/MinecraftAddon.java @@ -75,6 +75,6 @@ public final class MinecraftAddon implements BaseAddon { @Override public String getID() { - return "terra-fabric"; + return "terra-mod"; } } diff --git a/platforms/mixin-common/src/main/resources/fabric.mod.json b/platforms/mixin-common/src/main/resources/fabric.mod.json deleted file mode 100644 index 2f4b9b0de..000000000 --- a/platforms/mixin-common/src/main/resources/fabric.mod.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "schemaVersion": 1, - "id": "terra-common", - "version": "1.0.0", - "mixins": [ - "terra.common.mixins.json" - ] -} \ No newline at end of file diff --git a/platforms/mixin-common/src/main/resources/terra.common.mixins.json b/platforms/mixin-common/src/main/resources/terra.common.mixins.json index b084bee6f..b2b28d2e0 100644 --- a/platforms/mixin-common/src/main/resources/terra.common.mixins.json +++ b/platforms/mixin-common/src/main/resources/terra.common.mixins.json @@ -4,6 +4,7 @@ "package": "com.dfsek.terra.mod.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ + "access.BiomeAccessor", "access.MobSpawnerLogicAccessor", "access.StateAccessor", "access.StructureAccessorAccessor", @@ -42,6 +43,5 @@ ], "injectors": { "defaultRequire": 1 - }, - "refmap": "terra-common-refmap.json" + } } \ No newline at end of file diff --git a/platforms/mixin-common/src/main/resources/terra.accesswidener b/platforms/mixin-common/terra.accesswidener similarity index 100% rename from platforms/mixin-common/src/main/resources/terra.accesswidener rename to platforms/mixin-common/terra.accesswidener diff --git a/platforms/sponge/build.gradle.kts b/platforms/sponge/build.gradle.kts.disabled similarity index 100% rename from platforms/sponge/build.gradle.kts rename to platforms/sponge/build.gradle.kts.disabled From 7a4bf38cbcc6ee9c258b1e7ca42d6d00afd603e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Thu, 30 Jun 2022 22:00:21 -0700 Subject: [PATCH 7/9] actually version ify burningwave --- buildSrc/src/main/kotlin/Versions.kt | 2 +- platforms/forge/build.gradle.kts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 451f648a2..78517707c 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -38,7 +38,7 @@ object Versions { object Forge { const val forge = "${Mod.minecraft}-41.0.38" - const val burningwave = "" + const val burningwave = "12.53.0" } object Bukkit { diff --git a/platforms/forge/build.gradle.kts b/platforms/forge/build.gradle.kts index a667149d7..fc967677e 100644 --- a/platforms/forge/build.gradle.kts +++ b/platforms/forge/build.gradle.kts @@ -33,8 +33,8 @@ dependencies { mappings("net.fabricmc:yarn:${Versions.Mod.yarn}:v2") //forge is not ok. - compileOnly("org.burningwave:core:12.53.0") - "forgeRuntimeLibrary"("org.burningwave:core:12.53.0") + compileOnly("org.burningwave:core:${Versions.Forge.burningwave}") + "forgeRuntimeLibrary"("org.burningwave:core:${Versions.Forge.burningwave}") } loom { From 21d8be47269ef52c5937d3e2cf5540aeb2960e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Sun, 3 Jul 2022 13:44:53 -0700 Subject: [PATCH 8/9] abstract addon id --- .../com/dfsek/terra/fabric/FabricAddon.java | 16 +++++++ .../com/dfsek/terra/fabric/PlatformImpl.java | 5 +++ .../com/dfsek/terra/forge/ForgeAddon.java | 16 +++++++ .../com/dfsek/terra/forge/PlatformImpl.java | 44 +++++++++++-------- .../com/dfsek/terra/mod/MinecraftAddon.java | 7 +-- .../java/com/dfsek/terra/mod/ModPlatform.java | 6 ++- 6 files changed, 67 insertions(+), 27 deletions(-) create mode 100644 platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricAddon.java create mode 100644 platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeAddon.java diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricAddon.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricAddon.java new file mode 100644 index 000000000..21ed9870c --- /dev/null +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/FabricAddon.java @@ -0,0 +1,16 @@ +package com.dfsek.terra.fabric; + +import com.dfsek.terra.mod.MinecraftAddon; +import com.dfsek.terra.mod.ModPlatform; + +public class FabricAddon extends MinecraftAddon { + + public FabricAddon(ModPlatform modPlatform) { + super(modPlatform); + } + + @Override + public String getID() { + return "terra-fabric"; + } +} \ No newline at end of file diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java index c21f755cd..4c5ab038a 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/PlatformImpl.java @@ -143,4 +143,9 @@ public class PlatformImpl extends ModPlatform { public @NotNull ItemHandle getItemHandle() { return itemHandle; } + + @Override + public BaseAddon getPlatformAddon() { + return new FabricAddon(this); + } } diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeAddon.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeAddon.java new file mode 100644 index 000000000..5b6e82ec1 --- /dev/null +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/ForgeAddon.java @@ -0,0 +1,16 @@ +package com.dfsek.terra.forge; + +import com.dfsek.terra.mod.MinecraftAddon; +import com.dfsek.terra.mod.ModPlatform; + +public class ForgeAddon extends MinecraftAddon { + + public ForgeAddon(ModPlatform modPlatform) { + super(modPlatform); + } + + @Override + public String getID() { + return "terra-forge"; + } +} \ No newline at end of file diff --git a/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java b/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java index 294fa01d9..5281b8ba1 100644 --- a/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java +++ b/platforms/forge/src/main/java/com/dfsek/terra/forge/PlatformImpl.java @@ -49,33 +49,33 @@ public class PlatformImpl extends ModPlatform { private final ItemHandle itemHandle = new MinecraftItemHandle(); private final WorldHandle worldHandle = new MinecraftWorldHandle(); private final Lazy dataFolder = Lazy.lazy(() -> new File("./config/Terra")); - + public PlatformImpl() { CommonPlatform.initialize(this); load(); } - + @Override public MinecraftServer getServer() { return ServerLifecycleHooks.getCurrentServer(); } - + @Override public boolean reload() { getTerraConfig().load(this); getRawConfigRegistry().clear(); boolean succeed = getRawConfigRegistry().loadAll(this); - + MinecraftServer server = getServer(); - - if(server != null) { + + if (server != null) { server.reloadResources(server.getDataPackManager().getNames()).exceptionally(throwable -> { LOGGER.warn("Failed to execute reload", throwable); return null; }).join(); //BiomeUtil.registerBiomes(); server.getWorlds().forEach(world -> { - if(world.getChunkManager().getChunkGenerator() instanceof MinecraftChunkGeneratorWrapper chunkGeneratorWrapper) { + if (world.getChunkManager().getChunkGenerator() instanceof MinecraftChunkGeneratorWrapper chunkGeneratorWrapper) { getConfigRegistry().get(chunkGeneratorWrapper.getPack().getRegistryKey()).ifPresent(pack -> { chunkGeneratorWrapper.setPack(pack); LOGGER.info("Replaced pack in chunk generator for world {}", world); @@ -85,51 +85,57 @@ public class PlatformImpl extends ModPlatform { } return succeed; } - + @Override protected Iterable platformAddon() { List addons = new ArrayList<>(); - + super.platformAddon().forEach(addons::add); - + String mcVersion = MinecraftVersion.CURRENT.getReleaseTarget(); try { addons.add(new EphemeralAddon(Versions.parseVersion(mcVersion), "minecraft")); - } catch(ParseException e) { + } catch (ParseException e) { try { addons.add(new EphemeralAddon(Versions.parseVersion(mcVersion + ".0"), "minecraft")); - } catch(ParseException ex) { + } catch (ParseException ex) { LOGGER.warn("Failed to parse Minecraft version", e); } } - + FMLLoader.getLoadingModList().getMods().forEach(mod -> { String id = mod.getModId(); - if(id.equals("terra") || id.equals("minecraft") || id.equals("java")) return; + if (id.equals("terra") || id.equals("minecraft") || id.equals("java")) return; Version version = Versions.getVersion(mod.getVersion().getMajorVersion(), mod.getVersion().getMinorVersion(), mod.getVersion().getIncrementalVersion()); addons.add(new EphemeralAddon(version, "forge:" + id)); }); - + return addons; } - + @Override public @NotNull String platformName() { return "Forge"; } - + @Override public @NotNull WorldHandle getWorldHandle() { return worldHandle; } - + @Override public @NotNull File getDataFolder() { return dataFolder.value(); } - + @Override public @NotNull ItemHandle getItemHandle() { return itemHandle; } + + + @Override + public BaseAddon getPlatformAddon() { + return new ForgeAddon(this); + } } diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/MinecraftAddon.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/MinecraftAddon.java index edc8ea63f..50fd7a428 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/MinecraftAddon.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/MinecraftAddon.java @@ -33,7 +33,7 @@ import com.dfsek.terra.mod.config.PreLoadCompatibilityOptions; import com.dfsek.terra.mod.config.VanillaBiomeProperties; -public final class MinecraftAddon implements BaseAddon { +public abstract class MinecraftAddon implements BaseAddon { private static final Version VERSION = Versions.getVersion(1, 0, 0); private static final Logger logger = LoggerFactory.getLogger(MinecraftAddon.class); private final ModPlatform modPlatform; @@ -72,9 +72,4 @@ public final class MinecraftAddon implements BaseAddon { public Version getVersion() { return VERSION; } - - @Override - public String getID() { - return "terra-mod"; - } } diff --git a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java index 7d70b727e..ed9f2a986 100644 --- a/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java +++ b/platforms/mixin-common/src/main/java/com/dfsek/terra/mod/ModPlatform.java @@ -86,9 +86,11 @@ public abstract class ModPlatform extends AbstractPlatform { if(BuiltinRegistries.BIOME.get(identifier) == null) throw new LoadException("Invalid Biome ID: " + identifier, tracker); // failure. return new ProtoPlatformBiome(identifier); } - + @Override protected Iterable platformAddon() { - return List.of(new MinecraftAddon(this)); + return List.of(getPlatformAddon()); } + + protected abstract BaseAddon getPlatformAddon(); } From cdb957403e4090d356f160a1c8099cb9c978ee70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zo=C3=AB?= Date: Sun, 3 Jul 2022 13:50:07 -0700 Subject: [PATCH 9/9] Change memory to align to 1024mb --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 067f03e0c..62df22f83 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ # Magic options for more perf -org.gradle.jvmargs=-Xmx3048M -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC +org.gradle.jvmargs=-Xmx3072M -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC org.gradle.vfs.watch=true kapt.use.worker.api=true kapt.include.compile.classpath=false