Use callback-style events for crosshair and hotbar render events

This commit is contained in:
Jonas Herzig
2021-02-27 15:49:40 +01:00
parent da16b0fb78
commit 06a46e6f38
5 changed files with 56 additions and 17 deletions

View File

@@ -5,8 +5,12 @@ import com.replaymod.core.events.PostRenderCallback;
import com.replaymod.core.events.PostRenderWorldCallback;
import com.replaymod.core.events.PreRenderCallback;
import com.replaymod.core.events.PreRenderHandCallback;
import com.replaymod.core.versions.MCVer;
import com.replaymod.replay.events.RenderHotbarCallback;
import com.replaymod.replay.events.RenderSpectatorCrosshairCallback;
import de.johni0702.minecraft.gui.utils.EventRegistrations;
import de.johni0702.minecraft.gui.versions.MatrixStack;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderHandEvent;
import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@@ -47,4 +51,20 @@ public class EventsAdapter extends EventRegistrations {
event.setCanceled(true);
}
}
@SubscribeEvent
public void preRenderGameOverlay(RenderGameOverlayEvent.Pre event) {
Boolean result = null;
switch (MCVer.getType(event)) {
case CROSSHAIRS:
result = RenderSpectatorCrosshairCallback.EVENT.invoker().shouldRenderSpectatorCrosshair();
break;
case HOTBAR:
result = RenderHotbarCallback.EVENT.invoker().shouldRenderHotbar();
break;
}
if (result == Boolean.FALSE) {
event.setCanceled(true);
}
}
}