Use own event distribution system instead abusing fabric's one
This commit is contained in:
@@ -639,8 +639,8 @@ public class CameraEntity
|
||||
|
||||
//#if MC>=11400
|
||||
{ on(RenderSpectatorCrosshairCallback.EVENT, this::shouldRenderSpectatorCrosshair); }
|
||||
private TriState shouldRenderSpectatorCrosshair() {
|
||||
return TriState.of(canSpectate(mc.targetedEntity));
|
||||
private Boolean shouldRenderSpectatorCrosshair() {
|
||||
return canSpectate(mc.targetedEntity);
|
||||
}
|
||||
//#else
|
||||
//$$ @SubscribeEvent
|
||||
|
||||
@@ -1,24 +1,21 @@
|
||||
//#if MC>=11300
|
||||
package com.replaymod.replay.events;
|
||||
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import net.fabricmc.fabric.api.util.TriState;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface RenderSpectatorCrosshairCallback {
|
||||
Event<RenderSpectatorCrosshairCallback> EVENT = EventFactory.createArrayBacked(
|
||||
RenderSpectatorCrosshairCallback.class,
|
||||
(listeners) -> () -> {
|
||||
Event<RenderSpectatorCrosshairCallback> EVENT = Event.create((listeners) ->
|
||||
() -> {
|
||||
for (RenderSpectatorCrosshairCallback listener : listeners) {
|
||||
TriState state = listener.shouldRenderSpectatorCrosshair();
|
||||
if (state != TriState.DEFAULT) {
|
||||
Boolean state = listener.shouldRenderSpectatorCrosshair();
|
||||
if (state != null) {
|
||||
return state;
|
||||
}
|
||||
}
|
||||
return TriState.DEFAULT;
|
||||
return null;
|
||||
}
|
||||
);
|
||||
|
||||
TriState shouldRenderSpectatorCrosshair();
|
||||
Boolean shouldRenderSpectatorCrosshair();
|
||||
}
|
||||
//#endif
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
package com.replaymod.replay.events;
|
||||
|
||||
import com.replaymod.replay.ReplayHandler;
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface ReplayClosedCallback {
|
||||
Event<ReplayClosedCallback> EVENT = EventFactory.createArrayBacked(ReplayClosedCallback.class,
|
||||
(listeners) -> (replayHandler) -> {
|
||||
Event<ReplayClosedCallback> EVENT = Event.create((listeners) ->
|
||||
(replayHandler) -> {
|
||||
for (ReplayClosedCallback listener : listeners) {
|
||||
listener.replayClosed(replayHandler);
|
||||
}
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
package com.replaymod.replay.events;
|
||||
|
||||
import com.replaymod.replay.ReplayHandler;
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public interface ReplayClosingCallback {
|
||||
Event<ReplayClosingCallback> EVENT = EventFactory.createArrayBacked(ReplayClosingCallback.class,
|
||||
(listeners) -> (replayHandler) -> {
|
||||
Event<ReplayClosingCallback> EVENT = Event.create((listeners) ->
|
||||
(replayHandler) -> {
|
||||
for (ReplayClosingCallback listener : listeners) {
|
||||
listener.replayClosing(replayHandler);
|
||||
}
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
package com.replaymod.replay.events;
|
||||
|
||||
import com.replaymod.replay.ReplayHandler;
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public interface ReplayOpenedCallback {
|
||||
Event<ReplayOpenedCallback> EVENT = EventFactory.createArrayBacked(ReplayOpenedCallback.class,
|
||||
(listeners) -> (replayHandler) -> {
|
||||
Event<ReplayOpenedCallback> EVENT = Event.create((listeners) ->
|
||||
(replayHandler) -> {
|
||||
for (ReplayOpenedCallback listener : listeners) {
|
||||
listener.replayOpened(replayHandler);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
package com.replaymod.replay.mixin;
|
||||
|
||||
import com.replaymod.replay.events.RenderSpectatorCrosshairCallback;
|
||||
import net.fabricmc.fabric.api.util.TriState;
|
||||
import net.minecraft.client.gui.hud.InGameHud;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
@@ -13,9 +12,9 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
public class MixinInGameHud {
|
||||
@Inject(method = "shouldRenderSpectatorCrosshair", at = @At("HEAD"), cancellable = true)
|
||||
private void shouldRenderSpectatorCrosshair(CallbackInfoReturnable<Boolean> ci) {
|
||||
TriState state = RenderSpectatorCrosshairCallback.EVENT.invoker().shouldRenderSpectatorCrosshair();
|
||||
if (state != TriState.DEFAULT) {
|
||||
ci.setReturnValue(state.get());
|
||||
Boolean state = RenderSpectatorCrosshairCallback.EVENT.invoker().shouldRenderSpectatorCrosshair();
|
||||
if (state != null) {
|
||||
ci.setReturnValue(state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user