mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
Spawning!
This commit is contained in:
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
# Magic options for more perf
|
# 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
|
org.gradle.vfs.watch=true
|
||||||
kapt.use.worker.api=true
|
kapt.use.worker.api=true
|
||||||
kapt.include.compile.classpath=false
|
kapt.include.compile.classpath=false
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ dependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
loom {
|
loom {
|
||||||
accessWidenerPath.set(file("src/main/resources/terra.accesswidener"))
|
accessWidenerPath.set(project(":platforms:mixin-common").file("src/main/resources/terra.accesswidener"))
|
||||||
mixin {
|
mixin {
|
||||||
defaultRefmapName.set("terra-fabric-refmap.json")
|
defaultRefmapName.set("terra-fabric-refmap.json")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +1,20 @@
|
|||||||
package com.dfsek.terra.fabric.util;
|
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.Identifier;
|
||||||
import net.minecraft.util.registry.BuiltinRegistries;
|
import net.minecraft.util.registry.BuiltinRegistries;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import net.minecraft.util.registry.RegistryKey;
|
import net.minecraft.util.registry.RegistryKey;
|
||||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
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 {
|
public final class BiomeUtil {
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
accessWidener v1 named
|
|
||||||
@@ -32,11 +32,13 @@ dependencies {
|
|||||||
}
|
}
|
||||||
|
|
||||||
loom {
|
loom {
|
||||||
|
accessWidenerPath.set(project(":platforms:mixin-common").file("src/main/resources/terra.accesswidener"))
|
||||||
mixin {
|
mixin {
|
||||||
defaultRefmapName.set("terra-forge-refmap.json")
|
defaultRefmapName.set("terra-forge-refmap.json")
|
||||||
}
|
}
|
||||||
|
|
||||||
forge {
|
forge {
|
||||||
|
convertAccessWideners.set(true)
|
||||||
mixinConfig("terra.common.mixins.json")
|
mixinConfig("terra.common.mixins.json")
|
||||||
mixinConfig("terra.forge.mixins.json")
|
mixinConfig("terra.forge.mixins.json")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ loom {
|
|||||||
mixin {
|
mixin {
|
||||||
defaultRefmapName.set("terra-common-refmap.json")
|
defaultRefmapName.set("terra-common-refmap.json")
|
||||||
}
|
}
|
||||||
|
accessWidenerPath.set(file("src/main/resources/terra.accesswidener"))
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|||||||
@@ -4,13 +4,10 @@ import com.dfsek.tectonic.api.TypeRegistry;
|
|||||||
import com.dfsek.tectonic.api.depth.DepthTracker;
|
import com.dfsek.tectonic.api.depth.DepthTracker;
|
||||||
import com.dfsek.tectonic.api.exception.LoadException;
|
import com.dfsek.tectonic.api.exception.LoadException;
|
||||||
|
|
||||||
import com.dfsek.terra.mod.config.BiomeAdditionsSoundTemplate;
|
import com.dfsek.terra.mod.config.SpawnSettingsTemplate;
|
||||||
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.entity.EntityType;
|
||||||
|
import net.minecraft.entity.SpawnGroup;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.sound.BiomeAdditionsSound;
|
import net.minecraft.sound.BiomeAdditionsSound;
|
||||||
import net.minecraft.sound.BiomeMoodSound;
|
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.Biome.TemperatureModifier;
|
||||||
import net.minecraft.world.biome.BiomeEffects.GrassColorModifier;
|
import net.minecraft.world.biome.BiomeEffects.GrassColorModifier;
|
||||||
import net.minecraft.world.biome.BiomeParticleConfig;
|
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 net.minecraft.world.gen.WorldPreset;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -31,7 +30,17 @@ import java.util.function.BiConsumer;
|
|||||||
import com.dfsek.terra.AbstractPlatform;
|
import com.dfsek.terra.AbstractPlatform;
|
||||||
import com.dfsek.terra.api.addon.BaseAddon;
|
import com.dfsek.terra.api.addon.BaseAddon;
|
||||||
import com.dfsek.terra.api.world.biome.PlatformBiome;
|
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.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;
|
import com.dfsek.terra.mod.util.PresetUtil;
|
||||||
|
|
||||||
|
|
||||||
@@ -63,7 +72,13 @@ public abstract class ModPlatform extends AbstractPlatform {
|
|||||||
.registerLoader(SoundEvent.class, SoundEventTemplate::new)
|
.registerLoader(SoundEvent.class, SoundEventTemplate::new)
|
||||||
.registerLoader(BiomeMoodSound.class, BiomeMoodSoundTemplate::new)
|
.registerLoader(BiomeMoodSound.class, BiomeMoodSoundTemplate::new)
|
||||||
.registerLoader(BiomeAdditionsSound.class, BiomeAdditionsSoundTemplate::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 {
|
private ProtoPlatformBiome parseBiome(String id, DepthTracker tracker) throws LoadException {
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ public class BiomeAdditionsSoundTemplate implements ObjectTemplate<BiomeAddition
|
|||||||
@Default
|
@Default
|
||||||
private SoundEvent sound = null;
|
private SoundEvent sound = null;
|
||||||
|
|
||||||
@Value("sound")
|
@Value("sound-chance")
|
||||||
@Default
|
@Default
|
||||||
private Double soundChance = null;
|
private Double soundChance = null;
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -16,16 +16,16 @@ public class BiomeParticleConfigTemplate implements ObjectTemplate<BiomeParticle
|
|||||||
|
|
||||||
@Value("probability")
|
@Value("probability")
|
||||||
@Default
|
@Default
|
||||||
private Integer particleProbability = null;
|
private Integer probability = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BiomeParticleConfig get() {
|
public BiomeParticleConfig get() {
|
||||||
if (particle == null || particleProbability == null) {
|
if (particle == null || probability == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return new BiomeParticleConfig(ParticleEffectArgumentType.readParameters(new StringReader(particle)), particleProbability);
|
return new BiomeParticleConfig(ParticleEffectArgumentType.readParameters(new StringReader(particle)), probability);
|
||||||
} catch(CommandSyntaxException e) {
|
} catch(CommandSyntaxException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
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.util.Identifier;
|
||||||
|
import net.minecraft.util.registry.Registry;
|
||||||
|
|
||||||
|
|
||||||
|
public class EntityTypeTemplate implements ObjectTemplate<EntityType<?>> {
|
||||||
|
@Value("id")
|
||||||
|
@Default
|
||||||
|
private Identifier id = null;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityType<?> get() {
|
||||||
|
return Registry.ENTITY_TYPE.get(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -20,7 +20,7 @@ public class MusicSoundTemplate implements ObjectTemplate<MusicSound> {
|
|||||||
@Default
|
@Default
|
||||||
private Integer maxDelay = null;
|
private Integer maxDelay = null;
|
||||||
|
|
||||||
@Value("-current-music")
|
@Value("replace-current-music")
|
||||||
@Default
|
@Default
|
||||||
private Boolean replaceCurrentMusic = null;
|
private Boolean replaceCurrentMusic = null;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ public class SoundEventTemplate implements ObjectTemplate<SoundEvent> {
|
|||||||
@Default
|
@Default
|
||||||
private Identifier id = null;
|
private Identifier id = null;
|
||||||
|
|
||||||
@Value("distanceToTravel")
|
@Value("distance-to-travel")
|
||||||
@Default
|
@Default
|
||||||
private Float distanceToTravel = null;
|
private Float distanceToTravel = null;
|
||||||
|
|
||||||
|
|||||||
@@ -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<SpawnCostConfig> {
|
||||||
|
@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;
|
||||||
|
}
|
||||||
|
}
|
||||||
+31
@@ -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<SpawnEntry> {
|
||||||
|
@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);
|
||||||
|
}
|
||||||
|
}
|
||||||
+18
@@ -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<SpawnGroup> {
|
||||||
|
@Value("group")
|
||||||
|
@Default
|
||||||
|
private String group = null;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SpawnGroup get() {
|
||||||
|
return SpawnGroup.valueOf(group);
|
||||||
|
}
|
||||||
|
}
|
||||||
+39
@@ -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<SpawnSettings> {
|
||||||
|
@Value("spawns")
|
||||||
|
@Default
|
||||||
|
private List<SpawnTypeConfig> spawns = null;
|
||||||
|
|
||||||
|
@Value("costs")
|
||||||
|
@Default
|
||||||
|
private List<SpawnCostConfig> 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<SpawnTypeConfig> {
|
||||||
|
@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;
|
||||||
|
}
|
||||||
|
}
|
||||||
+11
-2
@@ -11,6 +11,7 @@ import net.minecraft.world.biome.Biome.Precipitation;
|
|||||||
import net.minecraft.world.biome.Biome.TemperatureModifier;
|
import net.minecraft.world.biome.Biome.TemperatureModifier;
|
||||||
import net.minecraft.world.biome.BiomeEffects.GrassColorModifier;
|
import net.minecraft.world.biome.BiomeEffects.GrassColorModifier;
|
||||||
import net.minecraft.world.biome.BiomeParticleConfig;
|
import net.minecraft.world.biome.BiomeParticleConfig;
|
||||||
|
import net.minecraft.world.biome.SpawnSettings;
|
||||||
|
|
||||||
import com.dfsek.terra.api.properties.Properties;
|
import com.dfsek.terra.api.properties.Properties;
|
||||||
|
|
||||||
@@ -42,7 +43,7 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties {
|
|||||||
|
|
||||||
@Value("colors.modifier")
|
@Value("colors.modifier")
|
||||||
@Default
|
@Default
|
||||||
private GrassColorModifier modifier = null;
|
private GrassColorModifier grassColorModifier = null;
|
||||||
|
|
||||||
@Value("particles")
|
@Value("particles")
|
||||||
@Default
|
@Default
|
||||||
@@ -80,6 +81,10 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties {
|
|||||||
@Default
|
@Default
|
||||||
private MusicSound music = null;
|
private MusicSound music = null;
|
||||||
|
|
||||||
|
@Value("spawning")
|
||||||
|
@Default
|
||||||
|
private SpawnSettings spawnSettings = null;
|
||||||
|
|
||||||
public Integer getGrassColor() {
|
public Integer getGrassColor() {
|
||||||
return grassColor;
|
return grassColor;
|
||||||
}
|
}
|
||||||
@@ -105,7 +110,7 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public GrassColorModifier getGrassColorModifier() {
|
public GrassColorModifier getGrassColorModifier() {
|
||||||
return modifier;
|
return grassColorModifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BiomeParticleConfig getParticleConfig() {
|
public BiomeParticleConfig getParticleConfig() {
|
||||||
@@ -143,4 +148,8 @@ public class VanillaBiomeProperties implements ConfigTemplate, Properties {
|
|||||||
public MusicSound getMusic() {
|
public MusicSound getMusic() {
|
||||||
return music;
|
return music;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SpawnSettings getSpawnSettings() {
|
||||||
|
return spawnSettings;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -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();
|
||||||
|
}
|
||||||
@@ -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.block.entity.Sign;
|
||||||
import com.dfsek.terra.api.config.ConfigPack;
|
import com.dfsek.terra.api.config.ConfigPack;
|
||||||
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
import com.dfsek.terra.mod.config.VanillaBiomeProperties;
|
||||||
|
import com.dfsek.terra.mod.mixin.access.BiomeAccessor;
|
||||||
import com.dfsek.terra.mod.mixin_ifaces.FloraFeatureHolder;
|
import com.dfsek.terra.mod.mixin_ifaces.FloraFeatureHolder;
|
||||||
|
|
||||||
|
|
||||||
@@ -152,13 +153,12 @@ public final class MinecraftUtil {
|
|||||||
|
|
||||||
builder.downfall(Objects.requireNonNullElse(vanillaBiomeProperties.getDownfall(), vanilla.getDownfall()));
|
builder.downfall(Objects.requireNonNullElse(vanillaBiomeProperties.getDownfall(), vanilla.getDownfall()));
|
||||||
|
|
||||||
if (vanillaBiomeProperties.getTemperatureModifier() != null) {
|
builder.temperatureModifier(Objects.requireNonNullElse(vanillaBiomeProperties.getTemperatureModifier(), ((BiomeAccessor)((Object)vanilla)).getWeather().temperatureModifier()));
|
||||||
builder.temperatureModifier(vanillaBiomeProperties.getTemperatureModifier());
|
|
||||||
}
|
builder.spawnSettings(Objects.requireNonNullElse(vanillaBiomeProperties.getSpawnSettings(), vanilla.getSpawnSettings()));
|
||||||
|
|
||||||
return builder
|
return builder
|
||||||
.effects(effects.build())
|
.effects(effects.build())
|
||||||
.spawnSettings(vanilla.getSpawnSettings())
|
|
||||||
.generationSettings(generationSettings.build())
|
.generationSettings(generationSettings.build())
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
accessWidener v1 named
|
||||||
|
accessible class net/minecraft/world/biome/Biome$Weather
|
||||||
Reference in New Issue
Block a user