Merge pull request #22 from architectury/feature/screen-open-event

Add GuiEvent.SET_SCREEN
This commit is contained in:
Max
2021-01-25 19:21:30 +01:00
committed by GitHub
5 changed files with 125 additions and 5 deletions

View File

@@ -27,6 +27,7 @@ import me.shedaniel.architectury.impl.TooltipEventColorContextImpl;
import me.shedaniel.architectury.impl.TooltipEventPositionContextImpl;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.events.GuiEventListener;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.network.chat.Component;
import net.minecraft.world.InteractionResult;
@@ -124,6 +125,18 @@ public class EventHandlerImplClient {
}
}
@SubscribeEvent
public static void event(GuiOpenEvent event) {
InteractionResultHolder<Screen> result = GuiEvent.SET_SCREEN.invoker().modifyScreen(event.getGui());
switch (result.getResult()) {
case FAIL:
event.setCanceled(true);
return;
case SUCCESS:
event.setGui(result.getObject());
}
}
@SubscribeEvent
public static void event(GuiScreenEvent.DrawScreenEvent.Pre event) {
if (GuiEvent.RENDER_PRE.invoker().render(event.getGui(), event.getMatrixStack(), event.getMouseX(), event.getMouseY(), event.getRenderPartialTicks()) == InteractionResult.FAIL) {
@@ -300,7 +313,7 @@ public class EventHandlerImplClient {
public static void event(net.minecraftforge.client.event.TextureStitchEvent.Post event) {
TextureStitchEvent.POST.invoker().stitch(event.getMap());
}
@SubscribeEvent
public static void event(FMLClientSetupEvent event) {
ClientLifecycleEvent.CLIENT_SETUP.invoker().stateChanged(event.getMinecraftSupplier().get());