Add buttons in SP/MP menu for quick en-/disabling of recording
This commit is contained in:
2
jGui
2
jGui
Submodule jGui updated: 9e84e724aa...59ef539033
@@ -3,6 +3,7 @@ package com.replaymod.recording;
|
|||||||
import com.replaymod.core.ReplayMod;
|
import com.replaymod.core.ReplayMod;
|
||||||
import com.replaymod.core.utils.Restrictions;
|
import com.replaymod.core.utils.Restrictions;
|
||||||
import com.replaymod.recording.handler.ConnectionEventHandler;
|
import com.replaymod.recording.handler.ConnectionEventHandler;
|
||||||
|
import com.replaymod.recording.handler.GuiHandler;
|
||||||
import com.replaymod.recording.packet.PacketListener;
|
import com.replaymod.recording.packet.PacketListener;
|
||||||
import io.netty.channel.ChannelDuplexHandler;
|
import io.netty.channel.ChannelDuplexHandler;
|
||||||
import io.netty.channel.ChannelHandler;
|
import io.netty.channel.ChannelHandler;
|
||||||
@@ -57,6 +58,8 @@ public class ReplayModRecording {
|
|||||||
EventBus bus = FMLCommonHandler.instance().bus();
|
EventBus bus = FMLCommonHandler.instance().bus();
|
||||||
bus.register(connectionEventHandler = new ConnectionEventHandler(logger, core));
|
bus.register(connectionEventHandler = new ConnectionEventHandler(logger, core));
|
||||||
|
|
||||||
|
new GuiHandler(core).register();
|
||||||
|
|
||||||
NetworkRegistry.INSTANCE.newChannel(Restrictions.PLUGIN_CHANNEL, new RestrictionsChannelHandler());
|
NetworkRegistry.INSTANCE.newChannel(Restrictions.PLUGIN_CHANNEL, new RestrictionsChannelHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
package com.replaymod.recording.handler;
|
||||||
|
|
||||||
|
import com.replaymod.core.ReplayMod;
|
||||||
|
import com.replaymod.core.SettingsRegistry;
|
||||||
|
import com.replaymod.recording.Setting;
|
||||||
|
import de.johni0702.minecraft.gui.container.GuiScreen;
|
||||||
|
import de.johni0702.minecraft.gui.container.VanillaGuiScreen;
|
||||||
|
import de.johni0702.minecraft.gui.element.GuiCheckbox;
|
||||||
|
import de.johni0702.minecraft.gui.layout.CustomLayout;
|
||||||
|
import net.minecraft.client.gui.GuiMultiplayer;
|
||||||
|
import net.minecraft.client.gui.GuiSelectWorld;
|
||||||
|
import net.minecraftforge.client.event.GuiScreenEvent;
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
|
|
||||||
|
public class GuiHandler {
|
||||||
|
|
||||||
|
private final ReplayMod mod;
|
||||||
|
|
||||||
|
public GuiHandler(ReplayMod mod) {
|
||||||
|
this.mod = mod;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void register() {
|
||||||
|
MinecraftForge.EVENT_BUS.register(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) {
|
||||||
|
if (event.gui instanceof GuiSelectWorld || event.gui instanceof GuiMultiplayer) {
|
||||||
|
SettingsRegistry settingsRegistry = mod.getSettingsRegistry();
|
||||||
|
boolean sp = event.gui instanceof GuiSelectWorld;
|
||||||
|
Setting<Boolean> setting = sp ? Setting.RECORD_SINGLEPLAYER : Setting.RECORD_SERVER;
|
||||||
|
|
||||||
|
GuiCheckbox recordingCheckbox = new GuiCheckbox()
|
||||||
|
.setI18nLabel("replaymod.gui.settings.record" + (sp ? "singleplayer" : "server"))
|
||||||
|
.setChecked(settingsRegistry.get(setting));
|
||||||
|
recordingCheckbox.onClick(() -> {
|
||||||
|
settingsRegistry.set(setting, recordingCheckbox.isChecked());
|
||||||
|
settingsRegistry.save();
|
||||||
|
});
|
||||||
|
|
||||||
|
VanillaGuiScreen.setup(event.gui).setLayout(new CustomLayout<GuiScreen>() {
|
||||||
|
@Override
|
||||||
|
protected void layout(GuiScreen container, int width, int height) {
|
||||||
|
//size(recordingCheckbox, 200, 20);
|
||||||
|
pos(recordingCheckbox, width - width(recordingCheckbox) - 5, 5);
|
||||||
|
}
|
||||||
|
}).addElements(null, recordingCheckbox);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user