Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MinecraftForge
GitHub Repository: MinecraftForge/MinecraftForge
Path: blob/1.21.x/src/main/java/net/minecraftforge/client/event/RegisterPresetEditorsEvent.java
7161 views
1
/*
2
* Copyright (c) Forge Development LLC and contributors
3
* SPDX-License-Identifier: LGPL-2.1-only
4
*/
5
6
package net.minecraftforge.client.event;
7
8
import java.util.Map;
9
10
import net.minecraftforge.eventbus.api.bus.BusGroup;
11
import net.minecraftforge.eventbus.api.bus.EventBus;
12
import net.minecraftforge.eventbus.api.event.characteristic.SelfDestructing;
13
import org.apache.logging.log4j.LogManager;
14
import org.apache.logging.log4j.Logger;
15
import org.jetbrains.annotations.ApiStatus;
16
17
import net.minecraft.client.gui.screens.worldselection.PresetEditor;
18
import net.minecraft.resources.ResourceKey;
19
import net.minecraft.world.level.levelgen.presets.WorldPreset;
20
import net.minecraftforge.fml.LogicalSide;
21
import net.minecraftforge.fml.ModLoadingContext;
22
import net.minecraftforge.fml.event.IModBusEvent;
23
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
24
25
/**
26
* <p>Event for registering {@link PresetEditor} screen factories for world presets.</p>
27
*
28
* <p>This event is fired on the {@linkplain FMLJavaModLoadingContext#getModEventBus() mod-specific event bus},
29
* only on the {@linkplain LogicalSide#CLIENT logical client}.</p>
30
*/
31
public final class RegisterPresetEditorsEvent implements SelfDestructing, IModBusEvent {
32
public static EventBus<RegisterPresetEditorsEvent> getBus(BusGroup modBusGroup) {
33
return IModBusEvent.getBus(modBusGroup, RegisterPresetEditorsEvent.class);
34
}
35
36
private static final Logger LOGGER = LogManager.getLogger();
37
38
private final Map<ResourceKey<WorldPreset>, PresetEditor> editors;
39
40
@ApiStatus.Internal
41
public RegisterPresetEditorsEvent(Map<ResourceKey<WorldPreset>, PresetEditor> editors) {
42
this.editors = editors;
43
}
44
45
/**
46
* Registers a PresetEditor for a given world preset key.
47
*/
48
public void register(ResourceKey<WorldPreset> key, PresetEditor editor) {
49
PresetEditor old = this.editors.put(key, editor);
50
if (old != null) {
51
LOGGER.debug("PresetEditor {} overridden by mod {}", key.location(), ModLoadingContext.get().getActiveNamespace());
52
}
53
}
54
}
55
56