Use own event distribution system instead abusing fabric's one
This commit is contained in:
2
jGui
2
jGui
Submodule jGui updated: e0af866315...caea250b67
@@ -1,13 +1,11 @@
|
||||
//#if MC>=11300
|
||||
package com.replaymod.core.events;
|
||||
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface KeyBindingEventCallback {
|
||||
Event<KeyBindingEventCallback> EVENT = EventFactory.createArrayBacked(
|
||||
KeyBindingEventCallback.class,
|
||||
(listeners) -> () -> {
|
||||
Event<KeyBindingEventCallback> EVENT = Event.create((listeners) ->
|
||||
() -> {
|
||||
for (KeyBindingEventCallback listener : listeners) {
|
||||
listener.onKeybindingEvent();
|
||||
}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
//#if MC>=11300
|
||||
package com.replaymod.core.events;
|
||||
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface KeyEventCallback {
|
||||
Event<KeyEventCallback> EVENT = EventFactory.createArrayBacked(
|
||||
KeyEventCallback.class,
|
||||
(listeners) -> (key, scanCode, action, modifiers) -> {
|
||||
Event<KeyEventCallback> EVENT = Event.create((listeners) ->
|
||||
(key, scanCode, action, modifiers) -> {
|
||||
for (KeyEventCallback listener : listeners) {
|
||||
listener.onKeyEvent(key, scanCode, action, modifiers);
|
||||
}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
//#if MC>=11300
|
||||
package com.replaymod.core.events;
|
||||
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface PostRenderCallback {
|
||||
Event<PostRenderCallback> EVENT = EventFactory.createArrayBacked(
|
||||
PostRenderCallback.class,
|
||||
(listeners) -> () -> {
|
||||
Event<PostRenderCallback> EVENT = Event.create((listeners) ->
|
||||
() -> {
|
||||
for (PostRenderCallback listener : listeners) {
|
||||
listener.postRender();
|
||||
}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
//#if MC>=11400
|
||||
package com.replaymod.core.events;
|
||||
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface PostRenderWorldCallback {
|
||||
Event<PostRenderWorldCallback> EVENT = EventFactory.createArrayBacked(
|
||||
PostRenderWorldCallback.class,
|
||||
(listeners) -> () -> {
|
||||
Event<PostRenderWorldCallback> EVENT = Event.create((listeners) ->
|
||||
() -> {
|
||||
for (PostRenderWorldCallback listener : listeners) {
|
||||
listener.postRenderWorld();
|
||||
}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
//#if MC>=11300
|
||||
package com.replaymod.core.events;
|
||||
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface PreRenderCallback {
|
||||
Event<PreRenderCallback> EVENT = EventFactory.createArrayBacked(
|
||||
PreRenderCallback.class,
|
||||
(listeners) -> () -> {
|
||||
Event<PreRenderCallback> EVENT = Event.create((listeners) ->
|
||||
() -> {
|
||||
for (PreRenderCallback listener : listeners) {
|
||||
listener.preRender();
|
||||
}
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
//#if MC>=11300
|
||||
package com.replaymod.core.events;
|
||||
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface PreRenderHandCallback {
|
||||
Event<PreRenderHandCallback> EVENT = EventFactory.createArrayBacked(
|
||||
PreRenderHandCallback.class,
|
||||
(listeners) -> () -> {
|
||||
Event<PreRenderHandCallback> EVENT = Event.create((listeners) ->
|
||||
() -> {
|
||||
for (PreRenderHandCallback listener : listeners) {
|
||||
if (listener.preRenderHand()) {
|
||||
return true;
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
package com.replaymod.core.events;
|
||||
|
||||
import com.replaymod.core.SettingsRegistry;
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface SettingsChangedCallback {
|
||||
Event<SettingsChangedCallback> EVENT = EventFactory.createArrayBacked(
|
||||
SettingsChangedCallback.class,
|
||||
(listeners) -> (registry, key) -> {
|
||||
Event<SettingsChangedCallback> EVENT = Event.create((listeners) ->
|
||||
(registry, key) -> {
|
||||
for (SettingsChangedCallback listener : listeners) {
|
||||
listener.onSettingsChanged(registry, key);
|
||||
}
|
||||
|
||||
@@ -95,12 +95,7 @@ public class PlayerOverview extends EventRegistrations implements Extra {
|
||||
}
|
||||
});
|
||||
|
||||
ReplayOpenedCallback.EVENT.register(this::onReplayOpen);
|
||||
ReplayClosedCallback.EVENT.register(this::onReplayClose);
|
||||
//#if MC>=11400
|
||||
//#else
|
||||
//$$ FORGE_BUS.register(this);
|
||||
//#endif
|
||||
register();
|
||||
}
|
||||
|
||||
public boolean isHidden(UUID uuid) {
|
||||
@@ -115,6 +110,7 @@ public class PlayerOverview extends EventRegistrations implements Extra {
|
||||
}
|
||||
}
|
||||
|
||||
{ on(ReplayOpenedCallback.EVENT, this::onReplayOpen); }
|
||||
private void onReplayOpen(ReplayHandler replayHandler) throws IOException {
|
||||
Optional<Set<UUID>> savedData = replayHandler.getReplayFile().getInvisiblePlayers();
|
||||
if (savedData.isPresent()) {
|
||||
@@ -125,6 +121,7 @@ public class PlayerOverview extends EventRegistrations implements Extra {
|
||||
}
|
||||
}
|
||||
|
||||
{ on(ReplayClosedCallback.EVENT, this::onReplayClose); }
|
||||
private void onReplayClose(ReplayHandler replayHandler) {
|
||||
hiddenPlayers.clear();
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.replaymod.replaystudio.replay.ReplayFile;
|
||||
import com.replaymod.replaystudio.replay.ZipReplayFile;
|
||||
import com.replaymod.replaystudio.studio.ReplayStudio;
|
||||
import de.johni0702.minecraft.gui.container.GuiScreen;
|
||||
import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
@@ -29,7 +30,7 @@ import java.nio.file.Path;
|
||||
|
||||
import static com.replaymod.core.versions.MCVer.*;
|
||||
|
||||
public class ReplayModOnline implements Module {
|
||||
public class ReplayModOnline extends EventRegistrations implements Module {
|
||||
{ instance = this; }
|
||||
public static ReplayModOnline instance;
|
||||
|
||||
@@ -80,7 +81,7 @@ public class ReplayModOnline implements Module {
|
||||
}
|
||||
|
||||
new GuiHandler(this).register();
|
||||
ReplayClosedCallback.EVENT.register(replayHandler -> onReplayClosed());
|
||||
register();
|
||||
|
||||
// Initial login prompt
|
||||
if (!core.getSettingsRegistry().get(Setting.SKIP_LOGIN_PROMPT)) {
|
||||
@@ -164,6 +165,7 @@ public class ReplayModOnline implements Module {
|
||||
}
|
||||
}
|
||||
|
||||
{ on(ReplayClosedCallback.EVENT, replayHandler -> onReplayClosed()); }
|
||||
private void onReplayClosed() {
|
||||
if (currentReplayOutputFile != null) {
|
||||
if (currentReplayOutputFile.exists()) { // Replay was modified, ask user for new name
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package com.replaymod.pathing.player;
|
||||
|
||||
import com.replaymod.core.utils.WrappedTimer;
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
import net.minecraft.client.render.RenderTickCounter;
|
||||
|
||||
/**
|
||||
@@ -45,12 +44,13 @@ public class ReplayTimer extends WrappedTimer {
|
||||
}
|
||||
|
||||
public interface UpdatedCallback {
|
||||
Event<UpdatedCallback> EVENT = EventFactory.createArrayBacked(UpdatedCallback.class,
|
||||
(listeners) -> () -> {
|
||||
Event<UpdatedCallback> EVENT = Event.create((listeners) ->
|
||||
() -> {
|
||||
for (UpdatedCallback listener : listeners) {
|
||||
listener.onUpdate();
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
void onUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.replaymod.core.Module;
|
||||
import com.replaymod.core.ReplayMod;
|
||||
import com.replaymod.render.utils.RenderJob;
|
||||
import com.replaymod.replay.events.ReplayClosedCallback;
|
||||
import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
||||
import net.minecraft.util.crash.CrashReport;
|
||||
import net.minecraft.util.crash.CrashException;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
@@ -18,7 +19,7 @@ import java.util.List;
|
||||
|
||||
import static com.replaymod.core.versions.MCVer.*;
|
||||
|
||||
public class ReplayModRender implements Module {
|
||||
public class ReplayModRender extends EventRegistrations implements Module {
|
||||
{ instance = this; }
|
||||
public static ReplayModRender instance;
|
||||
|
||||
@@ -40,7 +41,9 @@ public class ReplayModRender implements Module {
|
||||
|
||||
@Override
|
||||
public void initClient() {
|
||||
ReplayClosedCallback.EVENT.register(replayHandler -> renderQueue.clear());
|
||||
on(ReplayClosedCallback.EVENT, replayHandler -> renderQueue.clear());
|
||||
|
||||
register();
|
||||
}
|
||||
|
||||
public File getVideoFolder() {
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
package com.replaymod.render.events;
|
||||
|
||||
import com.replaymod.render.rendering.VideoRenderer;
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface ReplayRenderCallback {
|
||||
interface Pre {
|
||||
Event<Pre> EVENT = EventFactory.createArrayBacked(Pre.class,
|
||||
(listeners) -> (renderer) -> {
|
||||
Event<Pre> EVENT = Event.create((listeners) ->
|
||||
(renderer) -> {
|
||||
for (Pre listener : listeners) {
|
||||
listener.beforeRendering(renderer);
|
||||
}
|
||||
@@ -17,8 +16,8 @@ public interface ReplayRenderCallback {
|
||||
}
|
||||
|
||||
interface Post {
|
||||
Event<Post> EVENT = EventFactory.createArrayBacked(Post.class,
|
||||
(listeners) -> (renderer) -> {
|
||||
Event<Post> EVENT = Event.create((listeners) ->
|
||||
(renderer) -> {
|
||||
for (Post listener : listeners) {
|
||||
listener.afterRendering(renderer);
|
||||
}
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
package com.replaymod.render.hooks;
|
||||
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface FogStateCallback {
|
||||
Event<FogStateCallback> EVENT = EventFactory.createArrayBacked(FogStateCallback.class,
|
||||
(enabled) -> {},
|
||||
(listeners) -> (enabled) -> {
|
||||
Event<FogStateCallback> EVENT = Event.create((listeners) ->
|
||||
(enabled) -> {
|
||||
for (FogStateCallback listener : listeners) {
|
||||
listener.fogStateChanged(enabled);
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
void fogStateChanged(boolean enabled);
|
||||
}
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
package com.replaymod.render.hooks;
|
||||
|
||||
import net.fabricmc.fabric.api.event.Event;
|
||||
import net.fabricmc.fabric.api.event.EventFactory;
|
||||
import de.johni0702.minecraft.gui.utils.Event;
|
||||
|
||||
public interface Texture2DStateCallback {
|
||||
Event<Texture2DStateCallback> EVENT = EventFactory.createArrayBacked(Texture2DStateCallback.class,
|
||||
(slot, enabled) -> {},
|
||||
(listeners) -> (slot, enabled) -> {
|
||||
Event<Texture2DStateCallback> EVENT = Event.create((listeners) ->
|
||||
(slot, enabled) -> {
|
||||
for (Texture2DStateCallback listener : listeners) {
|
||||
listener.texture2DStateChanged(slot, enabled);
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
void texture2DStateChanged(int slot, boolean enabled);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -220,10 +220,6 @@ dependencies {
|
||||
modCompile 'net.fabricmc:fabric:' + [
|
||||
11400: '0.2.7+build.127'
|
||||
][mcVersion]
|
||||
} else {
|
||||
shadow('net.fabricmc.fabric-api:fabric-lib:0.1.0') { // for Event, EventFactory, etc.
|
||||
transitive = false
|
||||
}
|
||||
}
|
||||
|
||||
if (FG3) {
|
||||
|
||||
Reference in New Issue
Block a user