From db3623a77bbd9a5f6be0f3ce937b2bc611b0fe7c Mon Sep 17 00:00:00 2001 From: Vice Date: Mon, 20 Dec 2021 20:58:57 -0500 Subject: [PATCH] 1.0.1 --- build.gradle | 12 +++++- gradle.properties | 2 +- .../lambdynlights/DynamicLightsReforged.java | 19 +++++++++ .../config/DynamicLightsConfig.java | 2 + .../lambdynlights/mixin/BlockEntityMixin.java | 27 +------------ .../lambdynlights/mixin/EntityMixin.java | 39 ++++++------------- .../mixin/sodium/SodiumSettingsMixin.java | 24 ++++++++---- 7 files changed, 61 insertions(+), 64 deletions(-) diff --git a/build.gradle b/build.gradle index 6eb487a..f45c645 100644 --- a/build.gradle +++ b/build.gradle @@ -130,8 +130,8 @@ dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - compileOnly fg.deobf("curse.maven:magnesium-532724:3503910") - runtimeOnly fg.deobf("curse.maven:magnesium-532724:3503910") + compileOnly fg.deobf("curse.maven:magnesium-532724:3526076") + runtimeOnly fg.deobf("curse.maven:magnesium-532724:3526076") runtimeOnly fg.deobf("curse.maven:jei-238222:3438494") runtimeOnly fg.deobf("curse.maven:jer-240630:3066754") @@ -146,6 +146,14 @@ dependencies { runtimeOnly fg.deobf("curse.maven:engineers-313866:3390489") runtimeOnly fg.deobf("curse.maven:immersive-231951:3497359") runtimeOnly fg.deobf("curse.maven:patchouli-306770:3459118") + runtimeOnly fg.deobf("curse.maven:kotrt-543308:3571155") + + runtimeOnly fg.deobf("curse.maven:architecury-419699:3570507") + runtimeOnly fg.deobf("curse.maven:ftbteams-404468:3535953") + runtimeOnly fg.deobf("curse.maven:ftbranks-314905:3530024") + runtimeOnly fg.deobf("curse.maven:ftbchunks-314906:3538223") + + runtimeOnly fg.deobf("curse.maven:ftblibrary-404465:3553840") annotationProcessor 'org.spongepowered:mixin:0.8.3:processor' } diff --git a/gradle.properties b/gradle.properties index 6ea25cc..bdf15f6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ org.gradle.daemon = false # mod version info mod_id = dynamiclightsreforged -mod_version = 1.0.0 +mod_version = 1.0.1 minecraft_version = 1.16.5 forge_version = 36.2.0 diff --git a/src/main/java/me/lambdaurora/lambdynlights/DynamicLightsReforged.java b/src/main/java/me/lambdaurora/lambdynlights/DynamicLightsReforged.java index 2f94616..ebc6bf2 100644 --- a/src/main/java/me/lambdaurora/lambdynlights/DynamicLightsReforged.java +++ b/src/main/java/me/lambdaurora/lambdynlights/DynamicLightsReforged.java @@ -112,7 +112,26 @@ public DynamicLightsReforged() { } + private static long lambdynlights_lastUpdate = 0; + public static boolean ShouldUpdateDynamicLights() + { + String mode = DynamicLightsConfig.Quality.get(); + if (Objects.equals(mode, "OFF")) + return false; + + long currentTime = System.currentTimeMillis(); + + if (Objects.equals(mode, "SLOW") && currentTime < lambdynlights_lastUpdate + 500) + return false; + + + if (Objects.equals(mode, "FAST") && currentTime < lambdynlights_lastUpdate + 200) + return false; + + lambdynlights_lastUpdate = currentTime; + return true; + } /** diff --git a/src/main/java/me/lambdaurora/lambdynlights/config/DynamicLightsConfig.java b/src/main/java/me/lambdaurora/lambdynlights/config/DynamicLightsConfig.java index 3722bcc..f982c49 100644 --- a/src/main/java/me/lambdaurora/lambdynlights/config/DynamicLightsConfig.java +++ b/src/main/java/me/lambdaurora/lambdynlights/config/DynamicLightsConfig.java @@ -15,6 +15,7 @@ public class DynamicLightsConfig public static ForgeConfigSpec.ConfigValue EntityLighting; public static ForgeConfigSpec.ConfigValue TileEntityLighting; + public static ForgeConfigSpec.ConfigValue OnlyUpdateOnPositionChange; static { @@ -24,6 +25,7 @@ public class DynamicLightsConfig Quality = b.define("Quality Mode (OFF, SLOW, FAST, REALTIME)", "REALTIME"); EntityLighting = b.define("Dynamic Entity Lighting", true); TileEntityLighting = b.define("Dynamic TileEntity Lighting", true); + OnlyUpdateOnPositionChange = b.define("Only Update On Position Change", true); }); ConfigSpec = builder.Save(); diff --git a/src/main/java/me/lambdaurora/lambdynlights/mixin/BlockEntityMixin.java b/src/main/java/me/lambdaurora/lambdynlights/mixin/BlockEntityMixin.java index bdc2a15..183b81a 100644 --- a/src/main/java/me/lambdaurora/lambdynlights/mixin/BlockEntityMixin.java +++ b/src/main/java/me/lambdaurora/lambdynlights/mixin/BlockEntityMixin.java @@ -109,32 +109,7 @@ public int getLuminance() @Override public boolean shouldUpdateDynamicLight() { - String mode = DynamicLightsConfig.Quality.get(); - - if (Objects.equals(mode, "OFF")) - return false; - - if (Objects.equals(mode, "SLOW")) - { - long currentTime = System.currentTimeMillis(); - if (currentTime < this.lambdynlights_lastUpdate + 500) { - return false; - } - - this.lambdynlights_lastUpdate = currentTime; - } - - if (Objects.equals(mode, "FAST")) - { - long currentTime = System.currentTimeMillis(); - if (currentTime < this.lambdynlights_lastUpdate + 200) { - return false; - } - - this.lambdynlights_lastUpdate = currentTime; - } - - return true; + return DynamicLightsReforged.ShouldUpdateDynamicLights(); } @Override diff --git a/src/main/java/me/lambdaurora/lambdynlights/mixin/EntityMixin.java b/src/main/java/me/lambdaurora/lambdynlights/mixin/EntityMixin.java index 39aedcc..09b9b1c 100644 --- a/src/main/java/me/lambdaurora/lambdynlights/mixin/EntityMixin.java +++ b/src/main/java/me/lambdaurora/lambdynlights/mixin/EntityMixin.java @@ -121,32 +121,7 @@ public void resetDynamicLight() { @Override public boolean shouldUpdateDynamicLight() { - String mode = DynamicLightsConfig.Quality.get(); - - if (Objects.equals(mode, "OFF")) - return false; - - if (Objects.equals(mode, "SLOW")) - { - long currentTime = System.currentTimeMillis(); - if (currentTime < this.lambdynlights_lastUpdate + 500) { - return false; - } - - this.lambdynlights_lastUpdate = currentTime; - } - - if (Objects.equals(mode, "FAST")) - { - long currentTime = System.currentTimeMillis(); - if (currentTime < this.lambdynlights_lastUpdate + 200) { - return false; - } - - this.lambdynlights_lastUpdate = currentTime; - } - - return true; + return DynamicLightsReforged.ShouldUpdateDynamicLights(); } @Override @@ -173,7 +148,17 @@ public boolean lambdynlights_updateDynamicLight(@NotNull WorldRenderer renderer) int luminance = this.getLuminance(); - if (Math.abs(deltaX) > 0.1D || Math.abs(deltaY) > 0.1D || Math.abs(deltaZ) > 0.1D || luminance != this.lambdynlights_lastLuminance) { + + double minDelta = 0D; + String mode = DynamicLightsConfig.Quality.get(); + if (Objects.equals(mode, "SLOW")) + minDelta = 0.5D; + + if (Objects.equals(mode, "FAST") ) + minDelta = 0.20D; + + + if (Math.abs(deltaX) > minDelta || Math.abs(deltaY) > minDelta || Math.abs(deltaZ) > minDelta || luminance != this.lambdynlights_lastLuminance) { this.lambdynlights_prevX = this.getX(); this.lambdynlights_prevY = this.getY(); this.lambdynlights_prevZ = this.getZ(); diff --git a/src/main/java/me/lambdaurora/lambdynlights/mixin/sodium/SodiumSettingsMixin.java b/src/main/java/me/lambdaurora/lambdynlights/mixin/sodium/SodiumSettingsMixin.java index 1b19e42..3f32252 100644 --- a/src/main/java/me/lambdaurora/lambdynlights/mixin/sodium/SodiumSettingsMixin.java +++ b/src/main/java/me/lambdaurora/lambdynlights/mixin/sodium/SodiumSettingsMixin.java @@ -3,6 +3,7 @@ import com.google.common.collect.ImmutableList; import me.jellysquid.mods.sodium.client.gui.SodiumGameOptionPages; import me.jellysquid.mods.sodium.client.gui.SodiumGameOptions; +import me.jellysquid.mods.sodium.client.gui.SodiumOptionsGUI; import me.jellysquid.mods.sodium.client.gui.options.*; import me.jellysquid.mods.sodium.client.gui.options.control.CyclingControl; @@ -11,10 +12,14 @@ import me.lambdaurora.lambdynlights.DynamicLightsReforged; import me.lambdaurora.lambdynlights.config.DynamicLightsConfig; import me.lambdaurora.lambdynlights.config.QualityMode; +import net.minecraft.client.gui.screen.Screen; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Pseudo; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; @@ -22,20 +27,21 @@ import java.util.List; @Pseudo -@Mixin(SodiumGameOptionPages.class) +@Mixin(SodiumOptionsGUI.class) public abstract class SodiumSettingsMixin { + @Shadow + @Final + private List pages; + private static final SodiumOptionsStorage dynamicLightsOpts = new SodiumOptionsStorage(); - @Inject( - method = "experimental", - at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableList;copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList;"), - locals = LocalCapture.CAPTURE_FAILHARD, - remap = false - ) - private static void DynamicLights(CallbackInfoReturnable cir, List groups) + @Inject(method = "", at = @At("RETURN")) + private void DynamicLights(Screen prevScreen, CallbackInfo ci) { + List groups = new ArrayList<>(); + OptionImpl qualityMode = OptionImpl.createBuilder(QualityMode.class, dynamicLightsOpts) .setName("Dynamic Lights Speed") .setTooltip("Controls how often dynamic lights will update. " + @@ -82,6 +88,8 @@ private static void DynamicLights(CallbackInfoReturnable cir, List