72 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package com.mojang.realmsclient.gui.screens;
 | |
| 
 | |
| import com.mojang.realmsclient.dto.RealmsJoinInformation;
 | |
| import com.mojang.realmsclient.dto.ServiceQuality;
 | |
| import com.mojang.realmsclient.util.task.LongRunningTask;
 | |
| import net.fabricmc.api.EnvType;
 | |
| import net.fabricmc.api.Environment;
 | |
| import net.minecraft.client.gui.components.AbstractWidget;
 | |
| import net.minecraft.client.gui.components.ImageWidget;
 | |
| import net.minecraft.client.gui.components.StringWidget;
 | |
| import net.minecraft.client.gui.layouts.FrameLayout;
 | |
| import net.minecraft.client.gui.layouts.LayoutSettings;
 | |
| import net.minecraft.client.gui.layouts.LinearLayout;
 | |
| import net.minecraft.client.gui.navigation.ScreenRectangle;
 | |
| import net.minecraft.client.gui.screens.Screen;
 | |
| import net.minecraft.network.chat.Component;
 | |
| import net.minecraft.resources.ResourceLocation;
 | |
| 
 | |
| @Environment(EnvType.CLIENT)
 | |
| public class RealmsLongRunningMcoConnectTaskScreen extends RealmsLongRunningMcoTaskScreen {
 | |
| 	private final LongRunningTask task;
 | |
| 	private final RealmsJoinInformation serverAddress;
 | |
| 	private final LinearLayout footer = LinearLayout.vertical();
 | |
| 
 | |
| 	public RealmsLongRunningMcoConnectTaskScreen(Screen lastScreen, RealmsJoinInformation serverAddress, LongRunningTask task) {
 | |
| 		super(lastScreen, task);
 | |
| 		this.task = task;
 | |
| 		this.serverAddress = serverAddress;
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public void init() {
 | |
| 		super.init();
 | |
| 		if (this.serverAddress.regionData() != null && this.serverAddress.regionData().region() != null) {
 | |
| 			LinearLayout linearLayout = LinearLayout.horizontal().spacing(10);
 | |
| 			StringWidget stringWidget = new StringWidget(
 | |
| 				Component.translatable("mco.connect.region", Component.translatable(this.serverAddress.regionData().region().translationKey)), this.font
 | |
| 			);
 | |
| 			linearLayout.addChild(stringWidget);
 | |
| 			ResourceLocation resourceLocation = this.serverAddress.regionData().serviceQuality() != null
 | |
| 				? this.serverAddress.regionData().serviceQuality().getIcon()
 | |
| 				: ServiceQuality.UNKNOWN.getIcon();
 | |
| 			linearLayout.addChild(ImageWidget.sprite(10, 8, resourceLocation), LayoutSettings::alignVerticallyTop);
 | |
| 			this.footer.addChild(linearLayout, layoutSettings -> layoutSettings.paddingTop(40));
 | |
| 			this.footer.visitWidgets(guiEventListener -> {
 | |
| 				AbstractWidget var10000 = this.addRenderableWidget(guiEventListener);
 | |
| 			});
 | |
| 			this.repositionElements();
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	protected void repositionElements() {
 | |
| 		super.repositionElements();
 | |
| 		int i = this.layout.getY() + this.layout.getHeight();
 | |
| 		ScreenRectangle screenRectangle = new ScreenRectangle(0, i, this.width, this.height - i);
 | |
| 		this.footer.arrangeElements();
 | |
| 		FrameLayout.alignInRectangle(this.footer, screenRectangle, 0.5F, 0.0F);
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public void tick() {
 | |
| 		super.tick();
 | |
| 		this.task.tick();
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	protected void cancel() {
 | |
| 		this.task.abortTask();
 | |
| 		super.cancel();
 | |
| 	}
 | |
| }
 |