Add ClientPauseChangeEvent (#9905)

This commit is contained in:
J-RAP authored and GitHub committed 2024-04-18 21:36:00 +01:00
1 parent e0dccae041
commit a647237db4
4 files changed
+94 -5

No files matched your search

@@ -111,6 +111,7 @@ import net.minecraft.world.phys.HitResult;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.ClientChatEvent;
import net.minecraftforge.client.event.ClientChatReceivedEvent;
import net.minecraftforge.client.event.ClientPauseChangeEvent;
import net.minecraftforge.client.event.ClientPauseEvent;
import net.minecraftforge.client.event.ClientPlayerChangeGameTypeEvent;
import net.minecraftforge.client.event.ClientPlayerNetworkEvent;
@@ -249,9 +250,13 @@ public class ForgeHooksClient {
return 1000.0F + 10000.0F * (1 + guiLayers.size());
}
public static void onClientPauseUpdate(boolean paused)
{
MinecraftForge.EVENT_BUS.post(new ClientPauseEvent(paused));
public static boolean onClientPauseChangePre(boolean pause) {
return MinecraftForge.EVENT_BUS.post(new ClientPauseChangeEvent.Pre(pause));
}
public static void onClientPauseChangePost(boolean pause) {
MinecraftForge.EVENT_BUS.post(new ClientPauseChangeEvent.Post(pause));
MinecraftForge.EVENT_BUS.post(new ClientPauseEvent(pause));
}
public static String getArmorTexture(Entity entity, ItemStack armor, String _default, EquipmentSlot slot, String type) {
@@ -0,0 +1,69 @@
/*
* Copyright (c) Forge Development LLC and contributors
* SPDX-License-Identifier: LGPL-2.1-only
*/
package net.minecraftforge.client.event;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.Cancelable;
import net.minecraftforge.eventbus.api.Event;
import net.minecraft.client.Minecraft;
import net.minecraftforge.fml.LogicalSide;
/**
* Fired when pause is about to change
*
* <p>These events are fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus},
* only on the {@linkplain LogicalSide#CLIENT logical client}.</p>
*
* @see ClientPauseChangeEvent.Pre
* @see ClientPauseChangeEvent.Post
*/
public abstract class ClientPauseChangeEvent extends Event {
private final boolean pause;
public ClientPauseChangeEvent(boolean pause) {
this.pause = pause;
}
/**
* Fired when {@linkplain Minecraft#pause pause} is going to change
*
* <p>This event is {@linkplain Cancelable cancellable}, and does not {@linkplain HasResult have a result}.</p>
* Cancelling this event will prevent the game change pause state even if the conditions match
*
* <p>This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus},
* only on the {@linkplain LogicalSide#CLIENT logical client}.</p>
*/
@Cancelable
public static class Pre extends ClientPauseChangeEvent {
public Pre(boolean pause) {
super(pause);
}
}
/**
* Fired when {@linkplain Minecraft#pause pause} is already changed
*
* <p>This event is not {@linkplain Cancelable cancellable}, and does not {@linkplain HasResult have a result}.</p>
*
* <p>This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus},
* only on the {@linkplain LogicalSide#CLIENT logical client}.</p>
*/
public static class Post extends ClientPauseChangeEvent {
public Post(boolean pause) {
super(pause);
}
}
/**
* {@return game is paused}
*/
public boolean isPaused() {
return pause;
}
}
@@ -20,7 +20,12 @@ import net.minecraftforge.fml.LogicalSide;
*
* <p>This event is fired on the {@linkplain MinecraftForge#EVENT_BUS main Forge event bus},
* only on the {@linkplain LogicalSide#CLIENT logical client}.</p>
*
* @deprecated use {@linkplain ClientPauseChangeEvent.Post ClientPauseChangeEvent.Post} instead
* @see ClientPauseChangeEvent.Pre
* @see ClientPauseChangeEvent.Post
*/
@Deprecated(forRemoval = true, since="1.20.4")
public class ClientPauseEvent extends Event
{
private final boolean paused;
@@ -37,4 +42,4 @@ public class ClientPauseEvent extends Event
{
return paused;
}
}
}