2016-06-22 23:49:47 -04:00
|
|
|
/*
|
|
|
|
|
* Minecraft Forge
|
2021-03-10 23:05:53 +01:00
|
|
|
* Copyright (c) 2016-2021.
|
2016-06-22 23:49:47 -04:00
|
|
|
*
|
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
|
* License as published by the Free Software Foundation version 2.1
|
|
|
|
|
* of the License.
|
|
|
|
|
*
|
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
|
*/
|
|
|
|
|
|
2021-07-17 00:08:49 -05:00
|
|
|
package net.minecraftforge.fmlclient;
|
2013-12-16 11:48:09 -05:00
|
|
|
|
2018-06-11 09:56:44 -04:00
|
|
|
import net.minecraft.client.Minecraft;
|
2021-07-17 00:08:49 -05:00
|
|
|
import net.minecraft.client.gui.screens.Screen;
|
2018-06-15 15:03:35 -04:00
|
|
|
import net.minecraftforge.fml.ModList;
|
2021-07-17 00:08:49 -05:00
|
|
|
import net.minecraftforge.fml.IExtensionPoint;
|
|
|
|
|
import net.minecraftforge.forgespi.language.IModInfo;
|
2018-06-11 09:56:44 -04:00
|
|
|
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
import java.util.function.BiFunction;
|
|
|
|
|
|
|
|
|
|
public class ConfigGuiHandler
|
2013-12-16 11:48:09 -05:00
|
|
|
{
|
2021-07-17 00:08:49 -05:00
|
|
|
public record ConfigGuiFactory(BiFunction<Minecraft, Screen, Screen> screenFunction) implements IExtensionPoint<ConfigGuiFactory> {}
|
|
|
|
|
public static Optional<BiFunction<Minecraft, Screen, Screen>> getGuiFactoryFor(IModInfo selectedMod)
|
2018-06-11 09:56:44 -04:00
|
|
|
{
|
2018-06-15 15:03:35 -04:00
|
|
|
return ModList.get().getModContainerById(selectedMod.getModId()).
|
2021-07-17 00:08:49 -05:00
|
|
|
flatMap(mc -> mc.getCustomExtension(ConfigGuiFactory.class).map(ConfigGuiFactory::screenFunction));
|
2018-06-11 09:56:44 -04:00
|
|
|
}
|
2013-12-16 11:48:09 -05:00
|
|
|
}
|