mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-12 16:27:47 +00:00
Co-authored-by: Daniel Norris <33832062+danorris709@users.noreply.github.com>
This commit is contained in:
1 parent
7134b93427
commit
d3e9cfaaba
3 files changed
+120
-36
No files matched your search
@@ -51,8 +51,13 @@ public class ForgeInternalHandler {
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onServerTick(ServerTickEvent event) {
|
||||
WorldWorkerManager.tick(event.phase == TickEvent.Phase.START);
|
||||
public void onServerTick(ServerTickEvent.Pre event) {
|
||||
WorldWorkerManager.tick(true);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onServerTick(ServerTickEvent.Post event) {
|
||||
WorldWorkerManager.tick(false);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
|
||||
@@ -716,43 +716,43 @@ public class ForgeEventFactory {
|
||||
}
|
||||
|
||||
public static void onRenderTickStart(float timer) {
|
||||
post(new TickEvent.RenderTickEvent(TickEvent.Phase.START, timer));
|
||||
post(new TickEvent.RenderTickEvent.Pre(timer));
|
||||
}
|
||||
|
||||
public static void onRenderTickEnd(float timer) {
|
||||
post(new TickEvent.RenderTickEvent(TickEvent.Phase.END, timer));
|
||||
post(new TickEvent.RenderTickEvent.Post(timer));
|
||||
}
|
||||
|
||||
public static void onPlayerPreTick(Player player) {
|
||||
post(new TickEvent.PlayerTickEvent(TickEvent.Phase.START, player));
|
||||
post(new TickEvent.PlayerTickEvent.Pre(player));
|
||||
}
|
||||
|
||||
public static void onPlayerPostTick(Player player) {
|
||||
post(new TickEvent.PlayerTickEvent(TickEvent.Phase.END, player));
|
||||
post(new TickEvent.PlayerTickEvent.Post(player));
|
||||
}
|
||||
|
||||
public static void onPreLevelTick(Level level, BooleanSupplier haveTime) {
|
||||
post(new TickEvent.LevelTickEvent(level.isClientSide ? LogicalSide.CLIENT : LogicalSide.SERVER, TickEvent.Phase.START, level, haveTime));
|
||||
post(new TickEvent.LevelTickEvent.Pre(level.isClientSide ? LogicalSide.CLIENT : LogicalSide.SERVER, level, haveTime));
|
||||
}
|
||||
|
||||
public static void onPostLevelTick(Level level, BooleanSupplier haveTime) {
|
||||
post(new TickEvent.LevelTickEvent(level.isClientSide ? LogicalSide.CLIENT : LogicalSide.SERVER, TickEvent.Phase.END, level, haveTime));
|
||||
post(new TickEvent.LevelTickEvent.Post(level.isClientSide ? LogicalSide.CLIENT : LogicalSide.SERVER, level, haveTime));
|
||||
}
|
||||
|
||||
public static void onPreClientTick() {
|
||||
post(new TickEvent.ClientTickEvent(TickEvent.Phase.START));
|
||||
post(new TickEvent.ClientTickEvent.Pre());
|
||||
}
|
||||
|
||||
public static void onPostClientTick() {
|
||||
post(new TickEvent.ClientTickEvent(TickEvent.Phase.END));
|
||||
post(new TickEvent.ClientTickEvent.Post());
|
||||
}
|
||||
|
||||
public static void onPreServerTick(BooleanSupplier haveTime, MinecraftServer server) {
|
||||
post(new TickEvent.ServerTickEvent(TickEvent.Phase.START, haveTime, server));
|
||||
post(new TickEvent.ServerTickEvent.Pre(haveTime, server));
|
||||
}
|
||||
|
||||
public static void onPostServerTick(BooleanSupplier haveTime, MinecraftServer server) {
|
||||
post(new TickEvent.ServerTickEvent(TickEvent.Phase.END, haveTime, server));
|
||||
post(new TickEvent.ServerTickEvent.Post(haveTime, server));
|
||||
}
|
||||
|
||||
public static WeightedRandomList<MobSpawnSettings.SpawnerData> getPotentialSpawns(LevelAccessor level, MobCategory category, BlockPos pos, WeightedRandomList<MobSpawnSettings.SpawnerData> oldList) {
|
||||
|
||||
@@ -13,10 +13,10 @@ import java.util.function.BooleanSupplier;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.eventbus.api.Event;
|
||||
import net.minecraftforge.eventbus.api.EventPriority;
|
||||
import net.minecraftforge.fml.LogicalSide;
|
||||
|
||||
public class TickEvent extends Event
|
||||
{
|
||||
public class TickEvent extends Event {
|
||||
public enum Type {
|
||||
LEVEL, PLAYER, CLIENT, SERVER, RENDER;
|
||||
}
|
||||
@@ -24,11 +24,14 @@ public class TickEvent extends Event
|
||||
public enum Phase {
|
||||
START, END;
|
||||
}
|
||||
|
||||
public final Type type;
|
||||
public final LogicalSide side;
|
||||
|
||||
@Deprecated(forRemoval = true, since = "1.20.6")
|
||||
public final Phase phase;
|
||||
public TickEvent(Type type, LogicalSide side, Phase phase)
|
||||
{
|
||||
|
||||
public TickEvent(Type type, LogicalSide side, Phase phase) {
|
||||
this.type = type;
|
||||
this.side = side;
|
||||
this.phase = phase;
|
||||
@@ -38,8 +41,12 @@ public class TickEvent extends Event
|
||||
private final BooleanSupplier haveTime;
|
||||
private final MinecraftServer server;
|
||||
|
||||
public ServerTickEvent(Phase phase, BooleanSupplier haveTime, MinecraftServer server)
|
||||
{
|
||||
@Deprecated(forRemoval = true, since = "1.20.6")
|
||||
public ServerTickEvent(Phase phase, BooleanSupplier haveTime, MinecraftServer server) {
|
||||
this(haveTime, server, phase);
|
||||
}
|
||||
|
||||
protected ServerTickEvent(BooleanSupplier haveTime, MinecraftServer server, Phase phase) {
|
||||
super(Type.SERVER, LogicalSide.SERVER, phase);
|
||||
this.haveTime = haveTime;
|
||||
this.server = server;
|
||||
@@ -47,36 +54,64 @@ public class TickEvent extends Event
|
||||
|
||||
/**
|
||||
* @return {@code true} whether the server has enough time to perform any
|
||||
* additional tasks (usually IO related) during the current tick,
|
||||
* otherwise {@code false}
|
||||
* additional tasks (usually IO related) during the current tick,
|
||||
* otherwise {@code false}
|
||||
*/
|
||||
public boolean haveTime()
|
||||
{
|
||||
public boolean haveTime() {
|
||||
return this.haveTime.getAsBoolean();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@return the server instance}
|
||||
*/
|
||||
public MinecraftServer getServer()
|
||||
{
|
||||
public MinecraftServer getServer() {
|
||||
return server;
|
||||
}
|
||||
|
||||
public static class Pre extends ServerTickEvent {
|
||||
|
||||
public Pre(BooleanSupplier haveTime, MinecraftServer server) {
|
||||
super(haveTime, server, Phase.START);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Post extends ServerTickEvent {
|
||||
|
||||
public Post(BooleanSupplier haveTime, MinecraftServer server) {
|
||||
super(haveTime, server, Phase.END);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class ClientTickEvent extends TickEvent {
|
||||
public ClientTickEvent(Phase phase)
|
||||
{
|
||||
@Deprecated(forRemoval = true, since = "1.20.6")
|
||||
public ClientTickEvent(Phase phase) {
|
||||
super(Type.CLIENT, LogicalSide.CLIENT, phase);
|
||||
}
|
||||
|
||||
public static class Pre extends ClientTickEvent {
|
||||
public Pre() {
|
||||
super(Phase.START);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Post extends ClientTickEvent {
|
||||
public Post() {
|
||||
super(Phase.END);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class LevelTickEvent extends TickEvent {
|
||||
public final Level level;
|
||||
private final BooleanSupplier haveTime;
|
||||
|
||||
public LevelTickEvent(LogicalSide side, Phase phase, Level level, BooleanSupplier haveTime)
|
||||
{
|
||||
@Deprecated(forRemoval = true, since = "1.20.6")
|
||||
public LevelTickEvent(LogicalSide side, Phase phase, Level level, BooleanSupplier haveTime) {
|
||||
this(side, level, haveTime, phase);
|
||||
}
|
||||
|
||||
protected LevelTickEvent(LogicalSide side, Level level, BooleanSupplier haveTime, Phase phase) {
|
||||
super(Type.LEVEL, side, phase);
|
||||
this.level = level;
|
||||
this.haveTime = haveTime;
|
||||
@@ -84,32 +119,76 @@ public class TickEvent extends Event
|
||||
|
||||
/**
|
||||
* @return {@code true} whether the server has enough time to perform any
|
||||
* additional tasks (usually IO related) during the current tick,
|
||||
* otherwise {@code false}
|
||||
* additional tasks (usually IO related) during the current tick,
|
||||
* otherwise {@code false}
|
||||
*
|
||||
* @see ServerTickEvent#haveTime()
|
||||
*/
|
||||
public boolean haveTime()
|
||||
{
|
||||
public boolean haveTime() {
|
||||
return this.haveTime.getAsBoolean();
|
||||
}
|
||||
|
||||
public static class Pre extends LevelTickEvent {
|
||||
public Pre(LogicalSide side, Level level, BooleanSupplier haveTime) {
|
||||
super(side, level, haveTime, Phase.START);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Post extends LevelTickEvent {
|
||||
public Post(LogicalSide side, Level level, BooleanSupplier haveTime) {
|
||||
super(side, level, haveTime, Phase.END);
|
||||
}
|
||||
}
|
||||
}
|
||||
public static class PlayerTickEvent extends TickEvent {
|
||||
public final Player player;
|
||||
|
||||
public PlayerTickEvent(Phase phase, Player player)
|
||||
{
|
||||
@Deprecated(forRemoval = true, since = "1.20.6")
|
||||
public PlayerTickEvent(Phase phase, Player player) {
|
||||
this(player, phase);
|
||||
}
|
||||
|
||||
protected PlayerTickEvent(Player player, Phase phase) {
|
||||
super(Type.PLAYER, player instanceof ServerPlayer ? LogicalSide.SERVER : LogicalSide.CLIENT, phase);
|
||||
this.player = player;
|
||||
}
|
||||
|
||||
public static class Pre extends PlayerTickEvent {
|
||||
public Pre(Player player) {
|
||||
super(player, Phase.START);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Post extends PlayerTickEvent {
|
||||
public Post(Player player) {
|
||||
super(player, Phase.END);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class RenderTickEvent extends TickEvent {
|
||||
public final float renderTickTime;
|
||||
public RenderTickEvent(Phase phase, float renderTickTime)
|
||||
{
|
||||
|
||||
@Deprecated(forRemoval = true, since = "1.20.6")
|
||||
public RenderTickEvent(Phase phase, float renderTickTime) {
|
||||
this(renderTickTime, phase);
|
||||
}
|
||||
|
||||
protected RenderTickEvent(float renderTickTime, Phase phase) {
|
||||
super(Type.RENDER, LogicalSide.CLIENT, phase);
|
||||
this.renderTickTime = renderTickTime;
|
||||
}
|
||||
|
||||
public static class Pre extends RenderTickEvent {
|
||||
public Pre(float renderTickTime) {
|
||||
super(renderTickTime, Phase.START);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Post extends RenderTickEvent {
|
||||
public Post(float renderTickTime) {
|
||||
super(renderTickTime, Phase.END);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user