Use own event distribution system instead abusing fabric's one

This commit is contained in:
Jonas Herzig
2019-05-20 10:06:10 +02:00
parent 7cbf7f7c94
commit 0e086d91a6
22 changed files with 75 additions and 101 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}
}
}