mirror of
				https://github.com/SquidDev-CC/CC-Tweaked
				synced 2025-10-31 13:42:59 +00:00 
			
		
		
		
	Gui fixes
- Makes GuiTurtle extend from GuiComputer - Fixes #51 - Fixes grayed background surrounding interface not rendering for computers
This commit is contained in:
		| @@ -28,17 +28,17 @@ import javax.annotation.Nonnull; | |||||||
| import static dan200.computercraft.client.render.ComputerBorderRenderer.BORDER; | import static dan200.computercraft.client.render.ComputerBorderRenderer.BORDER; | ||||||
| import static dan200.computercraft.client.render.ComputerBorderRenderer.MARGIN; | import static dan200.computercraft.client.render.ComputerBorderRenderer.MARGIN; | ||||||
|  |  | ||||||
| public final class GuiComputer<T extends ContainerComputerBase> extends HandledScreen<T> | public class GuiComputer<T extends ContainerComputerBase> extends HandledScreen<T> | ||||||
| { | { | ||||||
|     private final ComputerFamily family; |     protected final ComputerFamily family; | ||||||
|     private final ClientComputer computer; |     protected final ClientComputer computer; | ||||||
|     private final int termWidth; |     private final int termWidth; | ||||||
|     private final int termHeight; |     private final int termHeight; | ||||||
|  |  | ||||||
|     private WidgetTerminal terminal; |     protected WidgetTerminal terminal; | ||||||
|     private WidgetWrapper terminalWrapper; |     protected WidgetWrapper terminalWrapper; | ||||||
|  |  | ||||||
|     private GuiComputer( T container, PlayerInventory player, Text title, int termWidth, int termHeight ) |     protected GuiComputer( T container, PlayerInventory player, Text title, int termWidth, int termHeight ) | ||||||
|     { |     { | ||||||
|         super( container, player, title ); |         super( container, player, title ); | ||||||
|         this.family = container.getFamily(); |         this.family = container.getFamily(); | ||||||
| @@ -63,30 +63,34 @@ public final class GuiComputer<T extends ContainerComputerBase> extends HandledS | |||||||
|         return new GuiComputer<>( container, inventory, component, container.getWidth(), container.getHeight() ); |         return new GuiComputer<>( container, inventory, component, container.getWidth(), container.getHeight() ); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     protected void initTerminal(int border, int widthExtra, int heightExtra) { | ||||||
|     @Override |  | ||||||
|     protected void init() |  | ||||||
|     { |  | ||||||
|         this.client.keyboard.setRepeatEvents( true ); |         this.client.keyboard.setRepeatEvents( true ); | ||||||
|  |  | ||||||
|         int termPxWidth = this.termWidth * FixedWidthFontRenderer.FONT_WIDTH; |         int termPxWidth = this.termWidth * FixedWidthFontRenderer.FONT_WIDTH; | ||||||
|         int termPxHeight = this.termHeight * FixedWidthFontRenderer.FONT_HEIGHT; |         int termPxHeight = this.termHeight * FixedWidthFontRenderer.FONT_HEIGHT; | ||||||
|  |  | ||||||
|         this.backgroundWidth = termPxWidth + MARGIN * 2 + BORDER * 2; |         this.backgroundWidth = termPxWidth + MARGIN * 2 + border * 2 + widthExtra; | ||||||
|         this.backgroundHeight = termPxHeight + MARGIN * 2 + BORDER * 2; |         this.backgroundHeight = termPxHeight + MARGIN * 2 + border * 2 + heightExtra; | ||||||
|  |  | ||||||
|         super.init(); |         super.init(); | ||||||
|  |  | ||||||
|         this.terminal = new WidgetTerminal( this.client, () -> this.computer, this.termWidth, this.termHeight, MARGIN, MARGIN, MARGIN, MARGIN ); |         this.terminal = new WidgetTerminal( this.client, () -> this.computer, this.termWidth, this.termHeight, MARGIN, MARGIN, MARGIN, MARGIN ); | ||||||
|         this.terminalWrapper = new WidgetWrapper( this.terminal, MARGIN + BORDER + this.x, MARGIN + BORDER + this.y, termPxWidth, termPxHeight ); |         this.terminalWrapper = new WidgetWrapper( this.terminal, MARGIN + border + this.x, MARGIN + border + this.y, termPxWidth, termPxHeight ); | ||||||
|  |  | ||||||
|         this.children.add( this.terminalWrapper ); |         this.children.add( this.terminalWrapper ); | ||||||
|         this.setFocused( this.terminalWrapper ); |         this.setFocused( this.terminalWrapper ); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     protected void init() | ||||||
|  |     { | ||||||
|  |         this.initTerminal(BORDER, 0, 0); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void render( @Nonnull MatrixStack stack, int mouseX, int mouseY, float partialTicks ) |     public void render( @Nonnull MatrixStack stack, int mouseX, int mouseY, float partialTicks ) | ||||||
|     { |     { | ||||||
|  |         this.renderBackground( stack ); | ||||||
|         super.render( stack, mouseX, mouseY, partialTicks ); |         super.render( stack, mouseX, mouseY, partialTicks ); | ||||||
|         this.drawMouseoverTooltip( stack, mouseX, mouseY ); |         this.drawMouseoverTooltip( stack, mouseX, mouseY ); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -8,74 +8,36 @@ package dan200.computercraft.client.gui; | |||||||
|  |  | ||||||
| import com.mojang.blaze3d.systems.RenderSystem; | import com.mojang.blaze3d.systems.RenderSystem; | ||||||
| import dan200.computercraft.ComputerCraft; | import dan200.computercraft.ComputerCraft; | ||||||
| import dan200.computercraft.client.gui.widgets.WidgetTerminal; |  | ||||||
| import dan200.computercraft.client.gui.widgets.WidgetWrapper; |  | ||||||
| import dan200.computercraft.shared.computer.core.ClientComputer; |  | ||||||
| import dan200.computercraft.shared.computer.core.ComputerFamily; | import dan200.computercraft.shared.computer.core.ComputerFamily; | ||||||
| import dan200.computercraft.shared.turtle.inventory.ContainerTurtle; | import dan200.computercraft.shared.turtle.inventory.ContainerTurtle; | ||||||
| import net.minecraft.client.gui.screen.ingame.HandledScreen; |  | ||||||
| import net.minecraft.client.util.math.MatrixStack; | import net.minecraft.client.util.math.MatrixStack; | ||||||
| import net.minecraft.entity.player.PlayerInventory; | import net.minecraft.entity.player.PlayerInventory; | ||||||
| import net.minecraft.text.Text; | import net.minecraft.text.Text; | ||||||
| import net.minecraft.util.Identifier; | import net.minecraft.util.Identifier; | ||||||
| import org.lwjgl.glfw.GLFW; |  | ||||||
|  |  | ||||||
| import javax.annotation.Nonnull; | import javax.annotation.Nonnull; | ||||||
|  |  | ||||||
| public class GuiTurtle extends HandledScreen<ContainerTurtle> | public class GuiTurtle extends GuiComputer<ContainerTurtle> | ||||||
| { | { | ||||||
|     private static final Identifier BACKGROUND_NORMAL = new Identifier( "computercraft", "textures/gui/turtle_normal.png" ); |     private static final Identifier BACKGROUND_NORMAL = new Identifier( "computercraft", "textures/gui/turtle_normal.png" ); | ||||||
|     private static final Identifier BACKGROUND_ADVANCED = new Identifier( "computercraft", "textures/gui/turtle_advanced.png" ); |     private static final Identifier BACKGROUND_ADVANCED = new Identifier( "computercraft", "textures/gui/turtle_advanced.png" ); | ||||||
|     private final ComputerFamily family; |  | ||||||
|     private final ClientComputer computer; |  | ||||||
|     private final ContainerTurtle container; |     private final ContainerTurtle container; | ||||||
|     private WidgetTerminal terminal; |  | ||||||
|     private WidgetWrapper terminalWrapper; |  | ||||||
|  |  | ||||||
|     public GuiTurtle( ContainerTurtle container, PlayerInventory player, Text title ) |     public GuiTurtle( ContainerTurtle container, PlayerInventory player, Text title ) | ||||||
|     { |     { | ||||||
|         super( container, player, title ); |         super( container, player, title, ComputerCraft.turtleTermWidth, ComputerCraft.turtleTermHeight); | ||||||
|  |  | ||||||
|         this.container = container; |         this.container = container; | ||||||
|         this.family = container.getFamily(); |  | ||||||
|         this.computer = (ClientComputer) container.getComputer(); |  | ||||||
|  |  | ||||||
|         this.backgroundWidth = 254; |  | ||||||
|         this.backgroundHeight = 217; |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     protected void init() |     protected void init() | ||||||
|     { |     { | ||||||
|         super.init(); |         this.initTerminal(8, 0, 80); | ||||||
|         this.client.keyboard.setRepeatEvents( true ); |  | ||||||
|  |  | ||||||
|         int termPxWidth = ComputerCraft.turtleTermWidth * FixedWidthFontRenderer.FONT_WIDTH; |  | ||||||
|         int termPxHeight = ComputerCraft.turtleTermHeight * FixedWidthFontRenderer.FONT_HEIGHT; |  | ||||||
|  |  | ||||||
|         this.terminal = new WidgetTerminal( this.client, () -> this.computer, ComputerCraft.turtleTermWidth, ComputerCraft.turtleTermHeight, 2, 2, 2, 2 ); |  | ||||||
|         this.terminalWrapper = new WidgetWrapper( this.terminal, 2 + 8 + this.x, 2 + 8 + this.y, termPxWidth, termPxHeight ); |  | ||||||
|  |  | ||||||
|         this.children.add( this.terminalWrapper ); |  | ||||||
|         this.setFocused( this.terminalWrapper ); |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|     public void render( @Nonnull MatrixStack stack, int mouseX, int mouseY, float partialTicks ) |     public void drawBackground( @Nonnull MatrixStack transform, float partialTicks, int mouseX, int mouseY ) | ||||||
|     { |  | ||||||
|         this.renderBackground( stack ); |  | ||||||
|         super.render( stack, mouseX, mouseY, partialTicks ); |  | ||||||
|         this.drawMouseoverTooltip( stack, mouseX, mouseY ); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     protected void drawForeground( @Nonnull MatrixStack transform, int mouseX, int mouseY ) |  | ||||||
|     { |  | ||||||
|         // Skip rendering labels. |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     protected void drawBackground( @Nonnull MatrixStack transform, float partialTicks, int mouseX, int mouseY ) |  | ||||||
|     { |     { | ||||||
|         // Draw term |         // Draw term | ||||||
|         Identifier texture = this.family == ComputerFamily.ADVANCED ? BACKGROUND_ADVANCED : BACKGROUND_NORMAL; |         Identifier texture = this.family == ComputerFamily.ADVANCED ? BACKGROUND_ADVANCED : BACKGROUND_NORMAL; | ||||||
| @@ -100,38 +62,4 @@ public class GuiTurtle extends HandledScreen<ContainerTurtle> | |||||||
|                 24 ); |                 24 ); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public boolean mouseDragged( double x, double y, int button, double deltaX, double deltaY ) |  | ||||||
|     { |  | ||||||
|         return (this.getFocused() != null && this.getFocused().mouseDragged( x, y, button, deltaX, deltaY )) || super.mouseDragged( x, y, button, deltaX, deltaY ); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public boolean keyPressed( int key, int scancode, int modifiers ) |  | ||||||
|     { |  | ||||||
|         // Forward the tab key to the terminal, rather than moving between controls. |  | ||||||
|         if( key == GLFW.GLFW_KEY_TAB && this.getFocused() != null && this.getFocused() == this.terminalWrapper ) |  | ||||||
|         { |  | ||||||
|             return this.getFocused().keyPressed( key, scancode, modifiers ); |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         return super.keyPressed( key, scancode, modifiers ); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public void removed() |  | ||||||
|     { |  | ||||||
|         super.removed(); |  | ||||||
|         this.children.remove( this.terminal ); |  | ||||||
|         this.terminal = null; |  | ||||||
|         this.client.keyboard.setRepeatEvents( false ); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |  | ||||||
|     public void tick() |  | ||||||
|     { |  | ||||||
|         super.tick(); |  | ||||||
|         this.terminal.update(); |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 hugeblank
					hugeblank