mirror of
				https://github.com/eaglerforge/EaglerForge-old.git
				synced 2025-06-05 17:20:57 -05:00 
			
		
		
		
	add mod gui
This commit is contained in:
		
							parent
							
								
									3d9c1847ac
								
							
						
					
					
						commit
						d8738996de
					
				| @ -155,14 +155,16 @@ | |||||||
| + 		} | + 		} | ||||||
| +  | +  | ||||||
| 
 | 
 | ||||||
| > CHANGE  8 : 11  @  8 : 10 | > CHANGE  6 : 7  @  6 : 7 | ||||||
| 
 | 
 | ||||||
| ~ 		this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 12, 98, 20, | ~ 		this.buttonList.add(new GuiButton(0, this.width / 2 - 100, i + 72 + 24, 98, 20, | ||||||
|  | 
 | ||||||
|  | > CHANGE  1 : 10  @  1 : 5 | ||||||
|  | 
 | ||||||
|  | ~ 		this.buttonList.add(new GuiButton(4, this.width / 2 + 2, i + 72 + 24, 98, 20, | ||||||
| ~ 				I18n.format("menu.editProfile", new Object[0]))); | ~ 				I18n.format("menu.editProfile", new Object[0]))); | ||||||
| ~  | ~  | ||||||
| 
 | ~ 		this.buttonList.add(new GuiButtonLanguage(5, this.width / 2 - 124, i + 72 + 24)); | ||||||
| > CHANGE  1 : 6  @  1 : 2 |  | ||||||
| 
 |  | ||||||
| ~  | ~  | ||||||
| ~ 		if (isFork) { | ~ 		if (isFork) { | ||||||
| ~ 			this.openGLWarning1 = EaglercraftVersion.mainMenuStringE; | ~ 			this.openGLWarning1 = EaglercraftVersion.mainMenuStringE; | ||||||
|  | |||||||
| @ -7,11 +7,12 @@ | |||||||
| 
 | 
 | ||||||
| > DELETE  2  @  2 : 3 | > DELETE  2  @  2 : 3 | ||||||
| 
 | 
 | ||||||
| > INSERT  1 : 7  @  1 | > INSERT  1 : 8  @  1 | ||||||
| 
 | 
 | ||||||
| +  | +  | ||||||
| + import com.google.common.collect.Lists; | + import com.google.common.collect.Lists; | ||||||
| +  | +  | ||||||
|  | + import net.eaglerforge.GuiMods; | ||||||
| + import net.lax1dude.eaglercraft.v1_8.sp.lan.LANServerController; | + import net.lax1dude.eaglercraft.v1_8.sp.lan.LANServerController; | ||||||
| + import net.lax1dude.eaglercraft.v1_8.sp.lan.LANServerList; | + import net.lax1dude.eaglercraft.v1_8.sp.lan.LANServerList; | ||||||
| + import net.lax1dude.eaglercraft.v1_8.sp.relay.RelayManager; | + import net.lax1dude.eaglercraft.v1_8.sp.relay.RelayManager; | ||||||
|  | |||||||
| @ -12,7 +12,7 @@ | |||||||
| ~ eaglercraft.recording.start=Record Screen... | ~ eaglercraft.recording.start=Record Screen... | ||||||
| ~ eaglercraft.soundCategory.voice=Voice | ~ eaglercraft.soundCategory.voice=Voice | ||||||
| 
 | 
 | ||||||
| > INSERT  1 : 197  @  1 | > INSERT  1 : 200  @  1 | ||||||
| 
 | 
 | ||||||
| + eaglercraft.resourcePack.prompt.title=What do you want to do with '%s'? | + eaglercraft.resourcePack.prompt.title=What do you want to do with '%s'? | ||||||
| + eaglercraft.resourcePack.prompt.text=Tip: Hold Shift to skip this screen when selecting a resource pack! | + eaglercraft.resourcePack.prompt.text=Tip: Hold Shift to skip this screen when selecting a resource pack! | ||||||
| @ -209,6 +209,9 @@ | |||||||
| + eaglercraft.command.clientStub=This command is client side! | + eaglercraft.command.clientStub=This command is client side! | ||||||
| +  | +  | ||||||
| + eaglerforge.menu.mods=Mods | + eaglerforge.menu.mods=Mods | ||||||
|  | + eaglerforge.menu.mods.title=Loaded Mods | ||||||
|  | + eaglerforge.menu.mods.addmod=Add Mod | ||||||
|  | + eaglerforge.menu.mods.removemod=Remove Mod | ||||||
| +  | +  | ||||||
| 
 | 
 | ||||||
| > INSERT  163 : 350  @  163 | > INSERT  163 : 350  @  163 | ||||||
|  | |||||||
| @ -1,48 +1,216 @@ | |||||||
| package net.eaglerforge; | package net.eaglerforge; | ||||||
| 
 | 
 | ||||||
|  | import java.io.IOException; | ||||||
|  | 
 | ||||||
|  | import com.google.common.base.Splitter; | ||||||
|  | import com.google.common.collect.Lists; | ||||||
|  | 
 | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.Keyboard; | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.Mouse; | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.internal.EnumCursorType; | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.log4j.LogManager; | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.log4j.Logger; | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.opengl.GlStateManager; | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.sp.gui.GuiNetworkSettingsButton; | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.sp.gui.GuiScreenConnectOption; | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.sp.gui.GuiScreenLANConnecting; | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.sp.lan.LANServerList; | ||||||
|  | import net.lax1dude.eaglercraft.v1_8.sp.relay.RelayServer; | ||||||
|  | import net.minecraft.client.audio.PositionedSoundRecord; | ||||||
| import net.minecraft.client.gui.GuiButton; | import net.minecraft.client.gui.GuiButton; | ||||||
|  | import net.minecraft.client.gui.GuiListExtended; | ||||||
| import net.minecraft.client.gui.GuiScreen; | import net.minecraft.client.gui.GuiScreen; | ||||||
|  | import net.minecraft.client.gui.GuiScreenAddServer; | ||||||
|  | import net.minecraft.client.gui.GuiYesNo; | ||||||
|  | import net.minecraft.client.gui.GuiYesNoCallback; | ||||||
|  | import net.minecraft.client.multiplayer.GuiConnecting; | ||||||
|  | import net.minecraft.client.multiplayer.ServerData; | ||||||
|  | import net.minecraft.client.multiplayer.ServerList; | ||||||
| import net.minecraft.client.resources.I18n; | import net.minecraft.client.resources.I18n; | ||||||
| import net.minecraft.util.IChatComponent; | import net.minecraft.util.EnumChatFormatting; | ||||||
|  | import net.minecraft.util.ResourceLocation; | ||||||
| 
 | 
 | ||||||
| import java.util.List; | /**+ | ||||||
|  |  * This portion of EaglercraftX contains deobfuscated Minecraft 1.8 source code. | ||||||
|  |  *  | ||||||
|  |  * Minecraft 1.8.8 bytecode is (c) 2015 Mojang AB. "Do not distribute!" | ||||||
|  |  * Mod Coder Pack v9.18 deobfuscation configs are (c) Copyright by the MCP Team | ||||||
|  |  *  | ||||||
|  |  * EaglercraftX 1.8 patch files (c) 2022-2024 lax1dude, ayunami2000. All Rights Reserved. | ||||||
|  |  *  | ||||||
|  |  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | ||||||
|  |  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||||
|  |  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||||||
|  |  * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, | ||||||
|  |  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||||||
|  |  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||||||
|  |  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | ||||||
|  |  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||||||
|  |  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||||||
|  |  * POSSIBILITY OF SUCH DAMAGE. | ||||||
|  |  *  | ||||||
|  |  */ | ||||||
|  | public class GuiMods extends GuiScreen implements GuiYesNoCallback { | ||||||
|  | 	private static final Logger logger = LogManager.getLogger(); | ||||||
|  | 	private GuiScreen parentScreen; | ||||||
|  | 	private ServerList savedServerList; | ||||||
|  | 	private GuiButton btnEditServer; | ||||||
|  | 	private GuiButton btnSelectServer; | ||||||
|  | 	private GuiButton btnDeleteServer; | ||||||
|  | 	private boolean deletingServer; | ||||||
|  | 	private boolean addingServer; | ||||||
|  | 	private boolean editingServer; | ||||||
|  | 	private boolean directConnect; | ||||||
|  | 	private String hoveringText; | ||||||
| 
 | 
 | ||||||
| public class GuiMods extends GuiScreen { | 
 | ||||||
|     private final GuiScreen parentScreen; | 	private boolean initialized; | ||||||
|     private IChatComponent message; | 	private static long lastRefreshCommit = 0l; | ||||||
|     private List<String> multilineMessage; | 
 | ||||||
|     private int field_175353_i; | 	private static LANServerList lanServerList = null; | ||||||
|  | 
 | ||||||
|  | 	public int ticksOpened; | ||||||
|  | 
 | ||||||
|  | 	private final GuiNetworkSettingsButton relaysButton; | ||||||
| 
 | 
 | ||||||
| 	public GuiMods(GuiScreen parentScreen) { | 	public GuiMods(GuiScreen parentScreen) { | ||||||
| 		this.parentScreen = parentScreen; | 		this.parentScreen = parentScreen; | ||||||
|  | 		this.relaysButton = new GuiNetworkSettingsButton(this); | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	/**+ | ||||||
|  | 	 * Adds the buttons (and other controls) to the screen in | ||||||
|  | 	 * question. Called when the GUI is displayed and when the | ||||||
|  | 	 * window resizes, the buttonList is cleared beforehand. | ||||||
|  | 	 */ | ||||||
| 	public void initGui() { | 	public void initGui() { | ||||||
|  | 		Keyboard.enableRepeatEvents(true); | ||||||
| 		this.buttonList.clear(); | 		this.buttonList.clear(); | ||||||
|         this.multilineMessage = this.fontRendererObj.listFormattedStringToWidth(this.message.getFormattedText(), | 		if (!this.initialized) { | ||||||
|                 this.width - 50); | 			this.initialized = true; | ||||||
|         this.field_175353_i = this.multilineMessage.size() * this.fontRendererObj.FONT_HEIGHT; | 		} else { | ||||||
|         this.buttonList.add(new GuiButton(69, this.width / 2 - 100, |  | ||||||
|                 this.height / 2 + this.field_175353_i / 2 + this.fontRendererObj.FONT_HEIGHT, |  | ||||||
|                 I18n.format("gui.toMenu", new Object[0]))); |  | ||||||
| 		} | 		} | ||||||
|  | 
 | ||||||
|  | 		this.createButtons(); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	/**+ | ||||||
|  | 	 * Handles mouse input. | ||||||
|  | 	 */ | ||||||
|  | 	public void handleMouseInput() throws IOException { | ||||||
|  | 		super.handleMouseInput(); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	public void createButtons() { | ||||||
|  | 		this.buttonList.add(this.btnDeleteServer = new GuiButton(2, this.width / 2 - 230, this.height - 28, 150, 20, | ||||||
|  | 				I18n.format("eaglerforge.menu.mods.removemod", new Object[0]))); | ||||||
|  |     	this.buttonList.add(new GuiButton(8, this.width / 2 + 4 - 77, this.height - 28, 150, 20, | ||||||
|  | 				I18n.format("eaglerforge.menu.mods.addmod", new Object[0]))); | ||||||
|  | 		this.buttonList.add(new GuiButton(0, this.width / 2 + 4 + 80, this.height - 28, 150, 20, | ||||||
|  | 				I18n.format("gui.done", new Object[0]))); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	/**+ | ||||||
|  | 	 * Called from the main game loop to update the screen. | ||||||
|  | 	 */ | ||||||
|  | 	public void updateScreen() { | ||||||
|  | 		super.updateScreen(); | ||||||
|  | 		++ticksOpened; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	/**+ | ||||||
|  | 	 * Called when the screen is unloaded. Used to disable keyboard | ||||||
|  | 	 * repeat events | ||||||
|  | 	 */ | ||||||
|  | 	public void onGuiClosed() { | ||||||
|  | 		Keyboard.enableRepeatEvents(false); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	/**+ | ||||||
|  | 	 * Called by the controls from the buttonList when activated. | ||||||
|  | 	 * (Mouse pressed for buttons) | ||||||
|  | 	 */ | ||||||
| 	protected void actionPerformed(GuiButton parGuiButton) { | 	protected void actionPerformed(GuiButton parGuiButton) { | ||||||
|         if (parGuiButton.id == 0) { | 		if (parGuiButton.enabled) { | ||||||
|  | 			if (parGuiButton.id == 2) { | ||||||
|  | 			} else if (parGuiButton.id == 1) { | ||||||
|  | 			} else if (parGuiButton.id == 4) { | ||||||
|  | 			} else if (parGuiButton.id == 3) { | ||||||
|  | 			} else if (parGuiButton.id == 7) { | ||||||
|  | 			} else if (parGuiButton.id == 0) { | ||||||
| 				this.mc.displayGuiScreen(this.parentScreen); | 				this.mc.displayGuiScreen(this.parentScreen); | ||||||
|  | 			} else if (parGuiButton.id == 8) { | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	public void refreshServerList() { | ||||||
|  | 		this.mc.displayGuiScreen(new GuiMods(this.parentScreen)); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	public void confirmClicked(boolean flag, int var2) { | ||||||
|  | 		if (this.deletingServer) { | ||||||
|  | 			this.deletingServer = false; | ||||||
|  | 			long millis = System.currentTimeMillis(); | ||||||
|  | 			if (millis - lastRefreshCommit > 700l) { | ||||||
|  | 				lastRefreshCommit = millis; | ||||||
|  | 				this.refreshServerList(); | ||||||
|  | 			} | ||||||
|  | 		} else if (this.directConnect) { | ||||||
|  | 			this.directConnect = false; | ||||||
|  | 		} else if (this.addingServer) { | ||||||
|  | 			this.addingServer = false; | ||||||
|  | 			long millis = System.currentTimeMillis(); | ||||||
|  | 			if (millis - lastRefreshCommit > 700l) { | ||||||
|  | 				lastRefreshCommit = millis; | ||||||
|  | 				this.refreshServerList(); | ||||||
|  | 			} | ||||||
|  | 		} else if (this.editingServer) { | ||||||
|  | 			this.editingServer = false; | ||||||
|  | 			long millis = System.currentTimeMillis(); | ||||||
|  | 			if (millis - lastRefreshCommit > 700l) { | ||||||
|  | 				lastRefreshCommit = millis; | ||||||
|  | 				this.refreshServerList(); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	/**+ | ||||||
|  | 	 * Draws the screen and all the components in it. Args : mouseX, | ||||||
|  | 	 * mouseY, renderPartialTicks | ||||||
|  | 	 */ | ||||||
| 	public void drawScreen(int i, int j, float f) { | 	public void drawScreen(int i, int j, float f) { | ||||||
|  | 		this.hoveringText = null; | ||||||
| 		this.drawDefaultBackground(); | 		this.drawDefaultBackground(); | ||||||
|         this.drawCenteredString(this.fontRendererObj, "testing", this.width / 2, | 		this.drawCenteredString(this.fontRendererObj, I18n.format("eaglerforge.menu.mods.title", new Object[0]), this.width / 2, | ||||||
|                 this.height / 2 - this.field_175353_i / 2 - this.fontRendererObj.FONT_HEIGHT * 2, 11184810); | 				20, 16777215); | ||||||
|         int k = this.height / 2 - this.field_175353_i / 2; | 		super.drawScreen(i, j, f); | ||||||
|         if (this.multilineMessage != null) { | 		if (this.hoveringText != null) { | ||||||
|             for (String s : this.multilineMessage) { | 			this.drawHoveringText(Lists.newArrayList(Splitter.on("\n").split(this.hoveringText)), i, j); | ||||||
|                 this.drawCenteredString(this.fontRendererObj, s, this.width / 2, k, 16777215); |  | ||||||
|                 k += this.fontRendererObj.FONT_HEIGHT; |  | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|         super.drawScreen(i, j, f); | 
 | ||||||
|  | 
 | ||||||
|  | 	private void connectToServer(ServerData server) { | ||||||
|  | 		this.mc.displayGuiScreen(new GuiConnecting(this, this.mc, server)); | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 	public void setHoveringText(String parString1) { | ||||||
|  | 		this.hoveringText = parString1; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	/**+ | ||||||
|  | 	 * Called when the mouse is clicked. Args : mouseX, mouseY, | ||||||
|  | 	 * clickedButton | ||||||
|  | 	 */ | ||||||
|  | 	protected void mouseClicked(int parInt1, int parInt2, int parInt3) { | ||||||
|  | 		relaysButton.mouseClicked(parInt1, parInt2, parInt3); | ||||||
|  | 		super.mouseClicked(parInt1, parInt2, parInt3); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| } | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user