Skip to content

Commit ced5696

Browse files
committed
Merge changes from v3.1.1 into v3.2.x.
2 parents 972c8f5 + d1107a0 commit ced5696

File tree

5 files changed

+44
-20
lines changed

5 files changed

+44
-20
lines changed

CHANGELOG.md

+9
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,10 @@
202202
- Added settings access in Sodium.
203203
- Updated Simplified Chinese translations ([#242](https://github.com/LambdAurora/LambDynamicLights/pull/242)).
204204

205+
### 3.1.1
206+
207+
- Fixed in-world item light source data reload not applying.
208+
205209
## 3.2.0
206210

207211
- Updated to Minecraft 1.21.2.
@@ -211,6 +215,11 @@
211215
- Updated Estonian translations ([#243](https://github.com/LambdAurora/LambDynamicLights/pull/243)).
212216
- Updated [SpruceUI].
213217

218+
### 3.2.1
219+
220+
- Same changes as v3.1.1 but for 1.21.3.
221+
- Fixed in-world item light source data reload not applying.
222+
214223
[SpruceUI]: https://github.com/LambdAurora/SpruceUI "SpruceUI page"
215224
[pridelib]: https://github.com/Queerbric/pridelib "Pridelib page"
216225
[Sodium]: https://modrinth.com/mod/sodium "Sodium Modrinth page"

build_logic/src/main/kotlin/lambdynamiclights/Constants.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import org.gradle.accessors.dm.LibrariesForLibs
55
object Constants {
66
const val GROUP = "dev.lambdaurora"
77
const val NAME = "lambdynamiclights"
8-
const val VERSION = "3.2.0"
8+
const val VERSION = "3.2.1"
99
const val JAVA_VERSION = 21
1010

1111
private var minecraftVersion: String? = null

gradle/libs.versions.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[versions]
2-
minecraft = "1.21.2"
2+
minecraft = "1.21.3"
33
fabric-loader = "0.16.7"
4-
fabric-api = "0.106.1+1.21.2"
5-
mappings-yalmm = "7"
4+
fabric-api = "0.106.1+1.21.3"
5+
mappings-yalmm = "1"
66
mappings-parchment = "2024.07.28"
77

88
# Dependencies

src/main/java/dev/lambdaurora/lambdynlights/LambDynLights.java

+2-14
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
2222
import net.fabricmc.fabric.api.event.lifecycle.v1.CommonLifecycleEvents;
2323
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
24-
import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener;
2524
import net.fabricmc.loader.api.FabricLoader;
2625
import net.fabricmc.loader.api.entrypoint.EntrypointContainer;
2726
import net.minecraft.client.Minecraft;
@@ -30,7 +29,6 @@
3029
import net.minecraft.client.renderer.LightTexture;
3130
import net.minecraft.core.BlockPos;
3231
import net.minecraft.resources.Identifier;
33-
import net.minecraft.resources.io.ResourceManager;
3432
import net.minecraft.resources.io.ResourceType;
3533
import net.minecraft.util.profiling.Profiler;
3634
import net.minecraft.world.entity.Entity;
@@ -56,7 +54,7 @@
5654
* Represents the LambDynamicLights mod.
5755
*
5856
* @author LambdAurora
59-
* @version 3.1.0
57+
* @version 3.1.1
6058
* @since 1.0.0
6159
*/
6260
public class LambDynLights implements ClientModInitializer {
@@ -84,17 +82,7 @@ public void onInitializeClient() {
8482
.map(EntrypointContainer::getEntrypoint)
8583
.forEach(initializer -> initializer.onInitializeDynamicLights(this.itemLightSources));
8684

87-
ResourceManagerHelper.get(ResourceType.CLIENT_RESOURCES).registerReloadListener(new SimpleSynchronousResourceReloadListener() {
88-
@Override
89-
public Identifier getFabricId() {
90-
return Identifier.of(LambDynLightsConstants.NAMESPACE, "dynamiclights_resources");
91-
}
92-
93-
@Override
94-
public void reload(ResourceManager manager) {
95-
LambDynLights.this.itemLightSources.load(manager);
96-
}
97-
});
85+
ResourceManagerHelper.get(ResourceType.CLIENT_RESOURCES).registerReloadListener(this.itemLightSources);
9886

9987
CommonLifecycleEvents.TAGS_LOADED.register((registries, client) -> {
10088
this.itemLightSources.apply(registries);

src/main/java/dev/lambdaurora/lambdynlights/resource/item/ItemLightSources.java

+29-2
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,15 @@
1515
import com.mojang.serialization.DynamicOps;
1616
import com.mojang.serialization.JsonOps;
1717
import dev.lambdaurora.lambdynlights.LambDynLights;
18+
import dev.lambdaurora.lambdynlights.LambDynLightsConstants;
1819
import dev.lambdaurora.lambdynlights.api.item.ItemLightSource;
1920
import dev.lambdaurora.lambdynlights.api.item.ItemLightSourceManager;
2021
import dev.yumi.commons.TriState;
22+
import dev.yumi.commons.Unit;
2123
import dev.yumi.commons.event.Event;
24+
import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener;
2225
import net.fabricmc.loader.api.FabricLoader;
26+
import net.minecraft.client.Minecraft;
2327
import net.minecraft.core.RegistryAccess;
2428
import net.minecraft.resources.Identifier;
2529
import net.minecraft.resources.RegistryOps;
@@ -34,25 +38,48 @@
3438
import java.io.InputStreamReader;
3539
import java.util.ArrayList;
3640
import java.util.List;
41+
import java.util.concurrent.CompletableFuture;
42+
import java.util.concurrent.Executor;
3743

3844
/**
3945
* Represents an item light sources manager.
4046
*
4147
* @author LambdAurora
42-
* @version 3.0.0
48+
* @version 3.2.1
4349
* @since 1.3.0
4450
*/
45-
public final class ItemLightSources implements ItemLightSourceManager {
51+
public final class ItemLightSources implements ItemLightSourceManager, IdentifiableResourceReloadListener {
4652
private static final Logger LOGGER = LoggerFactory.getLogger("LambDynamicLights|ItemLightSources");
53+
private static final Identifier RESOURCE_RELOADER_ID = Identifier.of(LambDynLightsConstants.NAMESPACE, "dynamiclights_resources");
4754
private static final String SILENCE_ERROR_KEY = "silence_error";
4855
private static final boolean FORCE_LOG_ERRORS = TriState.fromProperty("lambdynamiclights.resource.force_log_errors")
4956
.toBooleanOrElse(FabricLoader.getInstance().isDevelopmentEnvironment());
5057

5158
private final Event<Identifier, OnRegister> onRegisterEvent = LambDynLights.EVENT_MANAGER.create(OnRegister.class);
59+
private final Minecraft client = Minecraft.getInstance();
5260

5361
private final List<LoadedItemLightSource> loadedLightSources = new ArrayList<>();
5462
private final List<ItemLightSource> lightSources = new ArrayList<>();
5563

64+
@Override
65+
public Identifier getFabricId() {
66+
return RESOURCE_RELOADER_ID;
67+
}
68+
69+
@Override
70+
public CompletableFuture<Void> reload(Synchronizer synchronizer, ResourceManager resourceManager, Executor prepareExecutor, Executor applyExecutor) {
71+
return CompletableFuture.supplyAsync(() -> {
72+
this.load(resourceManager);
73+
return Unit.INSTANCE;
74+
}, prepareExecutor)
75+
.thenCompose(synchronizer::whenPrepared)
76+
.thenAcceptAsync((reloadState) -> {
77+
if (this.client.level != null) {
78+
this.apply(this.client.level.registryAccess());
79+
}
80+
}, applyExecutor);
81+
}
82+
5683
/**
5784
* Loads the item light source data from resource pack.
5885
*

0 commit comments

Comments
 (0)