mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2025-07-03 16:35:50 +00:00
Mixin on Forge
This commit is contained in:
parent
762b248641
commit
049a56fcb0
@ -1,9 +1,9 @@
|
||||
import com.dfsek.terra.configureCommon
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
import net.minecraftforge.gradle.common.util.RunConfig
|
||||
import net.minecraftforge.gradle.mcp.task.GenerateSRG
|
||||
import net.minecraftforge.gradle.userdev.UserDevExtension
|
||||
import net.minecraftforge.gradle.userdev.tasks.RenameJarInPlace
|
||||
import java.util.Date
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
@ -18,8 +18,11 @@ buildscript {
|
||||
}
|
||||
}
|
||||
apply(plugin = "net.minecraftforge.gradle")
|
||||
apply(plugin = "org.spongepowered.mixin")
|
||||
|
||||
|
||||
configure<org.spongepowered.asm.gradle.plugins.MixinExtension> {
|
||||
add(sourceSets.main.orNull, "terra.refmap.json")
|
||||
}
|
||||
|
||||
plugins {
|
||||
java
|
||||
@ -41,6 +44,15 @@ val mcVersion = "1.16.5"
|
||||
dependencies {
|
||||
"shadedApi"(project(":common"))
|
||||
"minecraft"("net.minecraftforge:forge:$mcVersion-$forgeVersion")
|
||||
"annotationProcessor"("org.spongepowered:mixin:0.8.2:processor")
|
||||
}
|
||||
|
||||
if (System.getProperty("idea.sync.active") == "true") {
|
||||
afterEvaluate {
|
||||
tasks.withType<JavaCompile>().all {
|
||||
options.annotationProcessorPath = files()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
@ -61,6 +73,7 @@ configure<UserDevExtension> {
|
||||
"forge.logging.markers" to "SCAN,REGISTRIES,REGISTRYDUMP",
|
||||
"forge.logging.console.level" to "debug"
|
||||
))
|
||||
arg("-mixin.config=terra.mixins.json")
|
||||
workingDirectory = project.file("run").canonicalPath
|
||||
source(sourceSets["main"])
|
||||
}
|
||||
@ -93,3 +106,17 @@ val javaComponent = components["java"] as AdhocComponentWithVariants
|
||||
javaComponent.addVariantsFromConfiguration(deobfElements.get()) {
|
||||
mapToMavenScope("runtime")
|
||||
}
|
||||
|
||||
tasks.jar {
|
||||
manifest {
|
||||
attributes(mapOf(
|
||||
"Specification-Title" to "terra",
|
||||
"Specification-Vendor" to "Terra",
|
||||
"Specification-Version" to "1.0",
|
||||
"Implementation-Title" to "Terra",
|
||||
"Implementation-Version" to project.version,
|
||||
"Implementation-Vendor" to "terra",
|
||||
"MixinConfigs" to "terra.mixins.json"
|
||||
))
|
||||
}
|
||||
}
|
@ -37,6 +37,7 @@ import com.dfsek.terra.config.lang.Language;
|
||||
import com.dfsek.terra.config.pack.ConfigPack;
|
||||
import com.dfsek.terra.config.templates.BiomeTemplate;
|
||||
import com.dfsek.terra.forge.inventory.ForgeItemHandle;
|
||||
import com.dfsek.terra.forge.mixin.BiomeAmbienceAccessor;
|
||||
import com.dfsek.terra.forge.world.ForgeAdapter;
|
||||
import com.dfsek.terra.forge.world.ForgeBiome;
|
||||
import com.dfsek.terra.forge.world.ForgeTree;
|
||||
@ -62,6 +63,7 @@ import net.minecraft.command.CommandSource;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.text.StringTextComponent;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.biome.BiomeAmbience;
|
||||
import net.minecraft.world.biome.BiomeGenerationSettings;
|
||||
import net.minecraft.world.gen.GenerationStage;
|
||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||
@ -214,7 +216,7 @@ public class TerraForgePlugin implements TerraPlugin {
|
||||
|
||||
public Biome createBiome(BiomeBuilder biome) {
|
||||
BiomeTemplate template = biome.getTemplate();
|
||||
//Map<String, Integer> colors = template.getColors();
|
||||
Map<String, Integer> colors = template.getColors();
|
||||
|
||||
Biome vanilla = ((ForgeBiome) new ArrayList<>(biome.getVanillaBiomes().getContents()).get(0)).getHandle();
|
||||
|
||||
@ -222,29 +224,26 @@ public class TerraForgePlugin implements TerraPlugin {
|
||||
generationSettings.surfaceBuilder(SurfaceBuilder.DEFAULT.configured(new SurfaceBuilderConfig(Blocks.GRASS_BLOCK.defaultBlockState(), Blocks.DIRT.defaultBlockState(), Blocks.GRAVEL.defaultBlockState()))); // It needs a surfacebuilder, even though we dont use it.
|
||||
generationSettings.addFeature(GenerationStage.Decoration.VEGETAL_DECORATION, POPULATOR_CONFIGURED_FEATURE);
|
||||
|
||||
|
||||
/*
|
||||
BiomeAmbienceAccessor accessor = ((BiomeAmbienceAccessor) vanilla.getSpecialEffects());
|
||||
BiomeAmbience.Builder effects = new BiomeAmbience.Builder()
|
||||
.waterColor(colors.getOrDefault("water", vanilla.getSpecialEffects().waterColor))
|
||||
.waterFogColor(colors.getOrDefault("water-fog", vanilla.getSpecialEffects().waterFogColor))
|
||||
.fogColor(colors.getOrDefault("fog", vanilla.getSpecialEffects().fogColor))
|
||||
.skyColor(colors.getOrDefault("sky", vanilla.getSpecialEffects().skyColor))
|
||||
.grassColorModifier(vanilla.getSpecialEffects().grassColorModifier);
|
||||
.waterColor(colors.getOrDefault("water", accessor.getWaterColor()))
|
||||
.waterFogColor(colors.getOrDefault("water-fog", accessor.getWaterFogColor()))
|
||||
.fogColor(colors.getOrDefault("fog", accessor.getFogColor()))
|
||||
.skyColor(colors.getOrDefault("sky", accessor.getSkyColor()))
|
||||
.grassColorModifier(accessor.getGrassColorModifier());
|
||||
|
||||
if(colors.containsKey("grass")) {
|
||||
effects.grassColorOverride(colors.get("grass"));
|
||||
} else {
|
||||
vanilla.getSpecialEffects().grassColor.ifPresent(effects::grassColor);
|
||||
accessor.getGrassColorOverride().ifPresent(effects::grassColorOverride);
|
||||
}
|
||||
vanilla.getEffects().foliageColor.ifPresent(effects::foliageColor);
|
||||
accessor.getFoliageColorOverride().ifPresent(effects::foliageColorOverride);
|
||||
if(colors.containsKey("foliage")) {
|
||||
effects.foliageColor(colors.get("foliage"));
|
||||
effects.foliageColorOverride(colors.get("foliage"));
|
||||
} else {
|
||||
vanilla.getEffects().foliageColor.ifPresent(effects::foliageColor);
|
||||
accessor.getFoliageColorOverride().ifPresent(effects::foliageColorOverride);
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
return new Biome.Builder()
|
||||
.precipitation(vanilla.getPrecipitation())
|
||||
.biomeCategory(vanilla.getBiomeCategory())
|
||||
@ -252,8 +251,7 @@ public class TerraForgePlugin implements TerraPlugin {
|
||||
.scale(vanilla.getScale())
|
||||
.temperature(vanilla.getBaseTemperature())
|
||||
.downfall(vanilla.getDownfall())
|
||||
//.specialEffects(effects.build())
|
||||
.specialEffects(vanilla.getSpecialEffects())
|
||||
.specialEffects(effects.build())
|
||||
.mobSpawnSettings(vanilla.getMobSettings())
|
||||
.generationSettings(generationSettings.build())
|
||||
.build().setRegistryName("terra", createBiomeID(template.getPack(), template.getID()));
|
||||
|
@ -0,0 +1,51 @@
|
||||
package com.dfsek.terra.forge.mixin;
|
||||
|
||||
import net.minecraft.client.audio.BackgroundMusicSelector;
|
||||
import net.minecraft.util.SoundEvent;
|
||||
import net.minecraft.world.biome.BiomeAmbience;
|
||||
import net.minecraft.world.biome.MoodSoundAmbience;
|
||||
import net.minecraft.world.biome.ParticleEffectAmbience;
|
||||
import net.minecraft.world.biome.SoundAdditionsAmbience;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Mixin(BiomeAmbience.class)
|
||||
public interface BiomeAmbienceAccessor {
|
||||
@Accessor
|
||||
int getFogColor();
|
||||
|
||||
@Accessor
|
||||
int getWaterColor();
|
||||
|
||||
@Accessor
|
||||
int getWaterFogColor();
|
||||
|
||||
@Accessor
|
||||
int getSkyColor();
|
||||
|
||||
@Accessor
|
||||
Optional<Integer> getFoliageColorOverride();
|
||||
|
||||
@Accessor
|
||||
Optional<Integer> getGrassColorOverride();
|
||||
|
||||
@Accessor
|
||||
BiomeAmbience.GrassColorModifier getGrassColorModifier();
|
||||
|
||||
@Accessor
|
||||
Optional<ParticleEffectAmbience> getAmbientParticleSettings();
|
||||
|
||||
@Accessor
|
||||
Optional<SoundEvent> getAmbientLoopSoundEvent();
|
||||
|
||||
@Accessor
|
||||
Optional<MoodSoundAmbience> getAmbientMoodSettings();
|
||||
|
||||
@Accessor
|
||||
Optional<SoundAdditionsAmbience> getAmbientAdditionsSettings();
|
||||
|
||||
@Accessor
|
||||
Optional<BackgroundMusicSelector> getBackgroundMusic();
|
||||
}
|
15
platforms/forge/src/main/resources/terra.mixins.json
Normal file
15
platforms/forge/src/main/resources/terra.mixins.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"required": true,
|
||||
"package": "com.dfsek.terra.forge.mixin",
|
||||
"compatibilityLevel": "JAVA_8",
|
||||
"refmap": "terra.refmap.json",
|
||||
"mixins": [
|
||||
"BiomeAmbienceAccessor"
|
||||
],
|
||||
"client": [
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
},
|
||||
"minVersion": "0.8"
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user