mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-12-14 04:00:30 +00:00
Merge branch 'mc-1.15.x' into mc-1.16.x
This commit is contained in:
commit
df7a40354e
@ -0,0 +1,98 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of ComputerCraft - http://www.computercraft.info
|
||||||
|
* Copyright Daniel Ratcliffe, 2011-2021. Do not distribute without permission.
|
||||||
|
* Send enquiries to dratcliffe@gmail.com
|
||||||
|
*/
|
||||||
|
package dan200.computercraft.client.gui;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||||
|
import dan200.computercraft.client.gui.widgets.ComputerSidebar;
|
||||||
|
import dan200.computercraft.client.gui.widgets.WidgetTerminal;
|
||||||
|
import dan200.computercraft.shared.computer.core.ClientComputer;
|
||||||
|
import dan200.computercraft.shared.computer.core.ComputerFamily;
|
||||||
|
import dan200.computercraft.shared.computer.inventory.ContainerComputerBase;
|
||||||
|
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
|
||||||
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
|
import org.lwjgl.glfw.GLFW;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
public abstract class ComputerScreenBase<T extends ContainerComputerBase> extends ContainerScreen<T>
|
||||||
|
{
|
||||||
|
protected WidgetTerminal terminal;
|
||||||
|
protected final ClientComputer computer;
|
||||||
|
protected final ComputerFamily family;
|
||||||
|
|
||||||
|
protected final int sidebarYOffset;
|
||||||
|
|
||||||
|
public ComputerScreenBase( T container, PlayerInventory player, ITextComponent title, int sidebarYOffset )
|
||||||
|
{
|
||||||
|
super( container, player, title );
|
||||||
|
computer = (ClientComputer) container.getComputer();
|
||||||
|
family = container.getFamily();
|
||||||
|
this.sidebarYOffset = sidebarYOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected abstract WidgetTerminal createTerminal();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected final void init()
|
||||||
|
{
|
||||||
|
super.init();
|
||||||
|
minecraft.keyboardHandler.setSendRepeatsToGui( true );
|
||||||
|
|
||||||
|
terminal = addButton( createTerminal() );
|
||||||
|
ComputerSidebar.addButtons( this, computer, this::addButton, leftPos, topPos + sidebarYOffset );
|
||||||
|
setFocused( terminal );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void removed()
|
||||||
|
{
|
||||||
|
super.removed();
|
||||||
|
minecraft.keyboardHandler.setSendRepeatsToGui( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void tick()
|
||||||
|
{
|
||||||
|
super.tick();
|
||||||
|
terminal.update();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final 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 && getFocused() != null && getFocused() == terminal )
|
||||||
|
{
|
||||||
|
return getFocused().keyPressed( key, scancode, modifiers );
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.keyPressed( key, scancode, modifiers );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void render( @Nonnull MatrixStack stack, int mouseX, int mouseY, float partialTicks )
|
||||||
|
{
|
||||||
|
renderBackground( stack );
|
||||||
|
super.render( stack, mouseX, mouseY, partialTicks );
|
||||||
|
renderTooltip( stack, mouseX, mouseY );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean mouseDragged( double x, double y, int button, double deltaX, double deltaY )
|
||||||
|
{
|
||||||
|
return (getFocused() != null && getFocused().mouseDragged( x, y, button, deltaX, deltaY ))
|
||||||
|
|| super.mouseDragged( x, y, button, deltaX, deltaY );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void renderLabels( @Nonnull MatrixStack transform, int mouseX, int mouseY )
|
||||||
|
{
|
||||||
|
// Skip rendering labels.
|
||||||
|
}
|
||||||
|
}
|
@ -11,37 +11,27 @@ import dan200.computercraft.ComputerCraft;
|
|||||||
import dan200.computercraft.client.gui.widgets.ComputerSidebar;
|
import dan200.computercraft.client.gui.widgets.ComputerSidebar;
|
||||||
import dan200.computercraft.client.gui.widgets.WidgetTerminal;
|
import dan200.computercraft.client.gui.widgets.WidgetTerminal;
|
||||||
import dan200.computercraft.client.render.ComputerBorderRenderer;
|
import dan200.computercraft.client.render.ComputerBorderRenderer;
|
||||||
import dan200.computercraft.shared.computer.core.ClientComputer;
|
|
||||||
import dan200.computercraft.shared.computer.core.ComputerFamily;
|
|
||||||
import dan200.computercraft.shared.computer.inventory.ContainerComputer;
|
import dan200.computercraft.shared.computer.inventory.ContainerComputer;
|
||||||
import dan200.computercraft.shared.computer.inventory.ContainerComputerBase;
|
import dan200.computercraft.shared.computer.inventory.ContainerComputerBase;
|
||||||
import dan200.computercraft.shared.computer.inventory.ContainerViewComputer;
|
import dan200.computercraft.shared.computer.inventory.ContainerViewComputer;
|
||||||
import dan200.computercraft.shared.pocket.inventory.ContainerPocketComputer;
|
import dan200.computercraft.shared.pocket.inventory.ContainerPocketComputer;
|
||||||
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
|
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import org.lwjgl.glfw.GLFW;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import static dan200.computercraft.client.render.ComputerBorderRenderer.BORDER;
|
import static dan200.computercraft.client.render.ComputerBorderRenderer.BORDER;
|
||||||
|
|
||||||
public final class GuiComputer<T extends ContainerComputerBase> extends ContainerScreen<T>
|
public final class GuiComputer<T extends ContainerComputerBase> extends ComputerScreenBase<T>
|
||||||
{
|
{
|
||||||
private final ComputerFamily family;
|
|
||||||
private final ClientComputer computer;
|
|
||||||
private final int termWidth;
|
private final int termWidth;
|
||||||
private final int termHeight;
|
private final int termHeight;
|
||||||
|
|
||||||
private WidgetTerminal terminal = null;
|
|
||||||
|
|
||||||
private GuiComputer(
|
private GuiComputer(
|
||||||
T container, PlayerInventory player, ITextComponent title, int termWidth, int termHeight
|
T container, PlayerInventory player, ITextComponent title, int termWidth, int termHeight
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
super( container, player, title );
|
super( container, player, title, BORDER );
|
||||||
family = container.getFamily();
|
|
||||||
computer = (ClientComputer) container.getComputer();
|
|
||||||
this.termWidth = termWidth;
|
this.termWidth = termWidth;
|
||||||
this.termHeight = termHeight;
|
this.termHeight = termHeight;
|
||||||
|
|
||||||
@ -73,45 +63,12 @@ public final class GuiComputer<T extends ContainerComputerBase> extends Containe
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void init()
|
protected WidgetTerminal createTerminal()
|
||||||
{
|
{
|
||||||
super.init();
|
return new WidgetTerminal( computer,
|
||||||
|
|
||||||
minecraft.keyboardHandler.setSendRepeatsToGui( true );
|
|
||||||
|
|
||||||
terminal = addButton( new WidgetTerminal( computer,
|
|
||||||
leftPos + ComputerSidebar.WIDTH + BORDER, topPos + BORDER, termWidth, termHeight
|
leftPos + ComputerSidebar.WIDTH + BORDER, topPos + BORDER, termWidth, termHeight
|
||||||
) );
|
);
|
||||||
ComputerSidebar.addButtons( this, computer, this::addButton, leftPos, topPos + BORDER );
|
|
||||||
setFocused( terminal );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removed()
|
|
||||||
{
|
|
||||||
super.removed();
|
|
||||||
minecraft.keyboardHandler.setSendRepeatsToGui( false );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void tick()
|
|
||||||
{
|
|
||||||
super.tick();
|
|
||||||
terminal.update();
|
|
||||||
}
|
|
||||||
|
|
||||||
@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 && getFocused() != null && getFocused() == terminal )
|
|
||||||
{
|
|
||||||
return getFocused().keyPressed( key, scancode, modifiers );
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.keyPressed( key, scancode, modifiers );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -121,27 +78,6 @@ public final class GuiComputer<T extends ContainerComputerBase> extends Containe
|
|||||||
RenderSystem.color4f( 1, 1, 1, 1 );
|
RenderSystem.color4f( 1, 1, 1, 1 );
|
||||||
minecraft.getTextureManager().bind( ComputerBorderRenderer.getTexture( family ) );
|
minecraft.getTextureManager().bind( ComputerBorderRenderer.getTexture( family ) );
|
||||||
ComputerBorderRenderer.render( terminal.x, terminal.y, getBlitOffset(), terminal.getWidth(), terminal.getHeight() );
|
ComputerBorderRenderer.render( terminal.x, terminal.y, getBlitOffset(), terminal.getWidth(), terminal.getHeight() );
|
||||||
ComputerSidebar.renderBackground( stack, leftPos, topPos + BORDER );
|
ComputerSidebar.renderBackground( stack, leftPos, topPos + sidebarYOffset );
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void render( @Nonnull MatrixStack stack, int mouseX, int mouseY, float partialTicks )
|
|
||||||
{
|
|
||||||
renderBackground( stack );
|
|
||||||
super.render( stack, mouseX, mouseY, partialTicks );
|
|
||||||
renderTooltip( stack, mouseX, mouseY );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean mouseDragged( double x, double y, int button, double deltaX, double deltaY )
|
|
||||||
{
|
|
||||||
return (getFocused() != null && getFocused().mouseDragged( x, y, button, deltaX, deltaY ))
|
|
||||||
|| super.mouseDragged( x, y, button, deltaX, deltaY );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void renderLabels( @Nonnull MatrixStack transform, int mouseX, int mouseY )
|
|
||||||
{
|
|
||||||
// Skip rendering labels.
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,81 +11,42 @@ import dan200.computercraft.ComputerCraft;
|
|||||||
import dan200.computercraft.client.gui.widgets.ComputerSidebar;
|
import dan200.computercraft.client.gui.widgets.ComputerSidebar;
|
||||||
import dan200.computercraft.client.gui.widgets.WidgetTerminal;
|
import dan200.computercraft.client.gui.widgets.WidgetTerminal;
|
||||||
import dan200.computercraft.client.render.ComputerBorderRenderer;
|
import dan200.computercraft.client.render.ComputerBorderRenderer;
|
||||||
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.inventory.ContainerScreen;
|
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import org.lwjgl.glfw.GLFW;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
import static dan200.computercraft.shared.turtle.inventory.ContainerTurtle.*;
|
import static dan200.computercraft.shared.turtle.inventory.ContainerTurtle.*;
|
||||||
|
|
||||||
public class GuiTurtle extends ContainerScreen<ContainerTurtle>
|
public class GuiTurtle extends ComputerScreenBase<ContainerTurtle>
|
||||||
{
|
{
|
||||||
private static final ResourceLocation BACKGROUND_NORMAL = new ResourceLocation( ComputerCraft.MOD_ID, "textures/gui/turtle_normal.png" );
|
private static final ResourceLocation BACKGROUND_NORMAL = new ResourceLocation( ComputerCraft.MOD_ID, "textures/gui/turtle_normal.png" );
|
||||||
private static final ResourceLocation BACKGROUND_ADVANCED = new ResourceLocation( ComputerCraft.MOD_ID, "textures/gui/turtle_advanced.png" );
|
private static final ResourceLocation BACKGROUND_ADVANCED = new ResourceLocation( ComputerCraft.MOD_ID, "textures/gui/turtle_advanced.png" );
|
||||||
|
|
||||||
private final ContainerTurtle container;
|
private static final int TEX_WIDTH = 254;
|
||||||
|
private static final int TEX_HEIGHT = 217;
|
||||||
|
|
||||||
private final ComputerFamily family;
|
private final ComputerFamily family;
|
||||||
private final ClientComputer computer;
|
|
||||||
|
|
||||||
private WidgetTerminal terminal;
|
|
||||||
|
|
||||||
public GuiTurtle( ContainerTurtle container, PlayerInventory player, ITextComponent title )
|
public GuiTurtle( ContainerTurtle container, PlayerInventory player, ITextComponent title )
|
||||||
{
|
{
|
||||||
super( container, player, title );
|
super( container, player, title, BORDER );
|
||||||
|
|
||||||
this.container = container;
|
|
||||||
family = container.getFamily();
|
family = container.getFamily();
|
||||||
computer = (ClientComputer) container.getComputer();
|
|
||||||
|
|
||||||
imageWidth = 254;
|
imageWidth = TEX_WIDTH + ComputerSidebar.WIDTH;
|
||||||
imageHeight = 217;
|
imageHeight = TEX_HEIGHT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void init()
|
protected WidgetTerminal createTerminal()
|
||||||
{
|
{
|
||||||
super.init();
|
return new WidgetTerminal(
|
||||||
minecraft.keyboardHandler.setSendRepeatsToGui( true );
|
|
||||||
|
|
||||||
terminal = addButton( new WidgetTerminal(
|
|
||||||
computer, leftPos + BORDER + ComputerSidebar.WIDTH, topPos + BORDER,
|
computer, leftPos + BORDER + ComputerSidebar.WIDTH, topPos + BORDER,
|
||||||
ComputerCraft.turtleTermWidth, ComputerCraft.turtleTermHeight
|
ComputerCraft.turtleTermWidth, ComputerCraft.turtleTermHeight
|
||||||
) );
|
);
|
||||||
ComputerSidebar.addButtons( this, computer, this::addButton, leftPos, topPos + BORDER );
|
|
||||||
setFocused( terminal );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removed()
|
|
||||||
{
|
|
||||||
super.removed();
|
|
||||||
minecraft.keyboardHandler.setSendRepeatsToGui( false );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void tick()
|
|
||||||
{
|
|
||||||
super.tick();
|
|
||||||
terminal.update();
|
|
||||||
}
|
|
||||||
|
|
||||||
@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 && getFocused() != null && getFocused() == terminal )
|
|
||||||
{
|
|
||||||
return getFocused().keyPressed( key, scancode, modifiers );
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.keyPressed( key, scancode, modifiers );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -93,12 +54,12 @@ public class GuiTurtle extends ContainerScreen<ContainerTurtle>
|
|||||||
{
|
{
|
||||||
boolean advanced = family == ComputerFamily.ADVANCED;
|
boolean advanced = family == ComputerFamily.ADVANCED;
|
||||||
minecraft.getTextureManager().bind( advanced ? BACKGROUND_ADVANCED : BACKGROUND_NORMAL );
|
minecraft.getTextureManager().bind( advanced ? BACKGROUND_ADVANCED : BACKGROUND_NORMAL );
|
||||||
blit( transform, leftPos + ComputerSidebar.WIDTH, topPos, 0, 0, imageWidth, imageHeight );
|
blit( transform, leftPos + ComputerSidebar.WIDTH, topPos, 0, 0, TEX_WIDTH, TEX_HEIGHT );
|
||||||
|
|
||||||
minecraft.getTextureManager().bind( advanced ? ComputerBorderRenderer.BACKGROUND_ADVANCED : ComputerBorderRenderer.BACKGROUND_NORMAL );
|
minecraft.getTextureManager().bind( advanced ? ComputerBorderRenderer.BACKGROUND_ADVANCED : ComputerBorderRenderer.BACKGROUND_NORMAL );
|
||||||
ComputerSidebar.renderBackground( transform, leftPos, topPos + BORDER );
|
ComputerSidebar.renderBackground( transform, leftPos, topPos + sidebarYOffset );
|
||||||
|
|
||||||
int slot = container.getSelectedSlot();
|
int slot = getMenu().getSelectedSlot();
|
||||||
if( slot >= 0 )
|
if( slot >= 0 )
|
||||||
{
|
{
|
||||||
RenderSystem.color4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
RenderSystem.color4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||||
@ -110,25 +71,4 @@ public class GuiTurtle extends ContainerScreen<ContainerTurtle>
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void render( @Nonnull MatrixStack stack, int mouseX, int mouseY, float partialTicks )
|
|
||||||
{
|
|
||||||
renderBackground( stack );
|
|
||||||
super.render( stack, mouseX, mouseY, partialTicks );
|
|
||||||
renderTooltip( stack, mouseX, mouseY );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean mouseDragged( double x, double y, int button, double deltaX, double deltaY )
|
|
||||||
{
|
|
||||||
return (getFocused() != null && getFocused().mouseDragged( x, y, button, deltaX, deltaY ))
|
|
||||||
|| super.mouseDragged( x, y, button, deltaX, deltaY );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void renderLabels( @Nonnull MatrixStack transform, int mouseX, int mouseY )
|
|
||||||
{
|
|
||||||
// Skip rendering labels.
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -172,8 +172,8 @@ public class WidgetTerminal extends Widget
|
|||||||
Terminal term = computer.getTerminal();
|
Terminal term = computer.getTerminal();
|
||||||
if( term != null )
|
if( term != null )
|
||||||
{
|
{
|
||||||
int charX = (int) ((mouseX - x) / FONT_WIDTH);
|
int charX = (int) ((mouseX - innerX) / FONT_WIDTH);
|
||||||
int charY = (int) ((mouseY - x) / FONT_HEIGHT);
|
int charY = (int) ((mouseY - innerY) / FONT_HEIGHT);
|
||||||
charX = Math.min( Math.max( charX, 0 ), term.getWidth() - 1 );
|
charX = Math.min( Math.max( charX, 0 ), term.getWidth() - 1 );
|
||||||
charY = Math.min( Math.max( charY, 0 ), term.getHeight() - 1 );
|
charY = Math.min( Math.max( charY, 0 ), term.getHeight() - 1 );
|
||||||
|
|
||||||
@ -196,8 +196,8 @@ public class WidgetTerminal extends Widget
|
|||||||
Terminal term = computer.getTerminal();
|
Terminal term = computer.getTerminal();
|
||||||
if( term != null )
|
if( term != null )
|
||||||
{
|
{
|
||||||
int charX = (int) ((mouseX - x) / FONT_WIDTH);
|
int charX = (int) ((mouseX - innerX) / FONT_WIDTH);
|
||||||
int charY = (int) ((mouseY - x) / FONT_HEIGHT);
|
int charY = (int) ((mouseY - innerY) / FONT_HEIGHT);
|
||||||
charX = Math.min( Math.max( charX, 0 ), term.getWidth() - 1 );
|
charX = Math.min( Math.max( charX, 0 ), term.getWidth() - 1 );
|
||||||
charY = Math.min( Math.max( charY, 0 ), term.getHeight() - 1 );
|
charY = Math.min( Math.max( charY, 0 ), term.getHeight() - 1 );
|
||||||
|
|
||||||
@ -223,8 +223,8 @@ public class WidgetTerminal extends Widget
|
|||||||
Terminal term = computer.getTerminal();
|
Terminal term = computer.getTerminal();
|
||||||
if( term != null )
|
if( term != null )
|
||||||
{
|
{
|
||||||
int charX = (int) ((mouseX - x) / FONT_WIDTH);
|
int charX = (int) ((mouseX - innerX) / FONT_WIDTH);
|
||||||
int charY = (int) ((mouseY - x) / FONT_HEIGHT);
|
int charY = (int) ((mouseY - innerY) / FONT_HEIGHT);
|
||||||
charX = Math.min( Math.max( charX, 0 ), term.getWidth() - 1 );
|
charX = Math.min( Math.max( charX, 0 ), term.getWidth() - 1 );
|
||||||
charY = Math.min( Math.max( charY, 0 ), term.getHeight() - 1 );
|
charY = Math.min( Math.max( charY, 0 ), term.getHeight() - 1 );
|
||||||
|
|
||||||
|
@ -43,17 +43,17 @@ public final class NetworkHandler
|
|||||||
.simpleChannel();
|
.simpleChannel();
|
||||||
|
|
||||||
// Server messages
|
// Server messages
|
||||||
registerMainThread( 0, NetworkDirection.PLAY_TO_SERVER, ComputerActionServerMessage::new );
|
registerMainThread( 0, NetworkDirection.PLAY_TO_SERVER, ComputerActionServerMessage.class, ComputerActionServerMessage::new );
|
||||||
registerMainThread( 1, NetworkDirection.PLAY_TO_SERVER, QueueEventServerMessage::new );
|
registerMainThread( 1, NetworkDirection.PLAY_TO_SERVER, QueueEventServerMessage.class, QueueEventServerMessage::new );
|
||||||
registerMainThread( 2, NetworkDirection.PLAY_TO_SERVER, RequestComputerMessage::new );
|
registerMainThread( 2, NetworkDirection.PLAY_TO_SERVER, RequestComputerMessage.class, RequestComputerMessage::new );
|
||||||
registerMainThread( 3, NetworkDirection.PLAY_TO_SERVER, KeyEventServerMessage::new );
|
registerMainThread( 3, NetworkDirection.PLAY_TO_SERVER, KeyEventServerMessage.class, KeyEventServerMessage::new );
|
||||||
registerMainThread( 4, NetworkDirection.PLAY_TO_SERVER, MouseEventServerMessage::new );
|
registerMainThread( 4, NetworkDirection.PLAY_TO_SERVER, MouseEventServerMessage.class, MouseEventServerMessage::new );
|
||||||
|
|
||||||
// Client messages
|
// Client messages
|
||||||
registerMainThread( 10, NetworkDirection.PLAY_TO_CLIENT, ChatTableClientMessage::new );
|
registerMainThread( 10, NetworkDirection.PLAY_TO_CLIENT, ChatTableClientMessage.class, ChatTableClientMessage::new );
|
||||||
registerMainThread( 11, NetworkDirection.PLAY_TO_CLIENT, ComputerDataClientMessage::new );
|
registerMainThread( 11, NetworkDirection.PLAY_TO_CLIENT, ComputerDataClientMessage.class, ComputerDataClientMessage::new );
|
||||||
registerMainThread( 12, NetworkDirection.PLAY_TO_CLIENT, ComputerDeletedClientMessage::new );
|
registerMainThread( 12, NetworkDirection.PLAY_TO_CLIENT, ComputerDeletedClientMessage.class, ComputerDeletedClientMessage::new );
|
||||||
registerMainThread( 13, NetworkDirection.PLAY_TO_CLIENT, ComputerTerminalClientMessage::new );
|
registerMainThread( 13, NetworkDirection.PLAY_TO_CLIENT, ComputerTerminalClientMessage.class, ComputerTerminalClientMessage::new );
|
||||||
registerMainThread( 14, NetworkDirection.PLAY_TO_CLIENT, PlayRecordClientMessage.class, PlayRecordClientMessage::new );
|
registerMainThread( 14, NetworkDirection.PLAY_TO_CLIENT, PlayRecordClientMessage.class, PlayRecordClientMessage::new );
|
||||||
registerMainThread( 15, NetworkDirection.PLAY_TO_CLIENT, MonitorClientMessage.class, MonitorClientMessage::new );
|
registerMainThread( 15, NetworkDirection.PLAY_TO_CLIENT, MonitorClientMessage.class, MonitorClientMessage::new );
|
||||||
registerMainThread( 16, NetworkDirection.PLAY_TO_CLIENT, SpeakerPlayClientMessage.class, SpeakerPlayClientMessage::new );
|
registerMainThread( 16, NetworkDirection.PLAY_TO_CLIENT, SpeakerPlayClientMessage.class, SpeakerPlayClientMessage::new );
|
||||||
@ -90,24 +90,6 @@ public final class NetworkHandler
|
|||||||
network.send( PacketDistributor.TRACKING_CHUNK.with( () -> chunk ), packet );
|
network.send( PacketDistributor.TRACKING_CHUNK.with( () -> chunk ), packet );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* /**
|
|
||||||
* Register packet, and a thread-unsafe handler for it.
|
|
||||||
*
|
|
||||||
* @param <T> The type of the packet to send.
|
|
||||||
* @param id The identifier for this packet type.
|
|
||||||
* @param direction A network direction which will be asserted before any processing of this message occurs.
|
|
||||||
* @param factory The factory for this type of packet.
|
|
||||||
*/
|
|
||||||
private static <T extends NetworkMessage> void registerMainThread( int id, NetworkDirection direction, Supplier<T> factory )
|
|
||||||
{
|
|
||||||
registerMainThread( id, direction, getType( factory ), buf -> {
|
|
||||||
T instance = factory.get();
|
|
||||||
instance.fromBytes( buf );
|
|
||||||
return instance;
|
|
||||||
} );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* /**
|
* /**
|
||||||
* Register packet, and a thread-unsafe handler for it.
|
* Register packet, and a thread-unsafe handler for it.
|
||||||
|
@ -27,18 +27,6 @@ public interface NetworkMessage
|
|||||||
*/
|
*/
|
||||||
void toBytes( @Nonnull PacketBuffer buf );
|
void toBytes( @Nonnull PacketBuffer buf );
|
||||||
|
|
||||||
/**
|
|
||||||
* Read this packet from a buffer.
|
|
||||||
*
|
|
||||||
* This may be called on any thread, so this should be a pure operation.
|
|
||||||
*
|
|
||||||
* @param buf The buffer to read data from.
|
|
||||||
*/
|
|
||||||
default void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
throw new IllegalStateException( "Should have been registered using a \"from bytes\" method" );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle this {@link NetworkMessage}.
|
* Handle this {@link NetworkMessage}.
|
||||||
*
|
*
|
||||||
|
@ -16,7 +16,7 @@ import javax.annotation.Nonnull;
|
|||||||
|
|
||||||
public class ChatTableClientMessage implements NetworkMessage
|
public class ChatTableClientMessage implements NetworkMessage
|
||||||
{
|
{
|
||||||
private TableBuilder table;
|
private final TableBuilder table;
|
||||||
|
|
||||||
public ChatTableClientMessage( TableBuilder table )
|
public ChatTableClientMessage( TableBuilder table )
|
||||||
{
|
{
|
||||||
@ -24,32 +24,7 @@ public class ChatTableClientMessage implements NetworkMessage
|
|||||||
this.table = table;
|
this.table = table;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ChatTableClientMessage()
|
public ChatTableClientMessage( @Nonnull PacketBuffer buf )
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void toBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
buf.writeVarInt( table.getId() );
|
|
||||||
buf.writeVarInt( table.getColumns() );
|
|
||||||
buf.writeBoolean( table.getHeaders() != null );
|
|
||||||
if( table.getHeaders() != null )
|
|
||||||
{
|
|
||||||
for( ITextComponent header : table.getHeaders() ) buf.writeComponent( header );
|
|
||||||
}
|
|
||||||
|
|
||||||
buf.writeVarInt( table.getRows().size() );
|
|
||||||
for( ITextComponent[] row : table.getRows() )
|
|
||||||
{
|
|
||||||
for( ITextComponent column : row ) buf.writeComponent( column );
|
|
||||||
}
|
|
||||||
|
|
||||||
buf.writeVarInt( table.getAdditional() );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
{
|
||||||
int id = buf.readVarInt();
|
int id = buf.readVarInt();
|
||||||
int columns = buf.readVarInt();
|
int columns = buf.readVarInt();
|
||||||
@ -77,6 +52,26 @@ public class ChatTableClientMessage implements NetworkMessage
|
|||||||
this.table = table;
|
this.table = table;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toBytes( @Nonnull PacketBuffer buf )
|
||||||
|
{
|
||||||
|
buf.writeVarInt( table.getId() );
|
||||||
|
buf.writeVarInt( table.getColumns() );
|
||||||
|
buf.writeBoolean( table.getHeaders() != null );
|
||||||
|
if( table.getHeaders() != null )
|
||||||
|
{
|
||||||
|
for( ITextComponent header : table.getHeaders() ) buf.writeComponent( header );
|
||||||
|
}
|
||||||
|
|
||||||
|
buf.writeVarInt( table.getRows().size() );
|
||||||
|
for( ITextComponent[] row : table.getRows() )
|
||||||
|
{
|
||||||
|
for( ITextComponent column : row ) buf.writeComponent( column );
|
||||||
|
}
|
||||||
|
|
||||||
|
buf.writeVarInt( table.getAdditional() );
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle( NetworkEvent.Context context )
|
public void handle( NetworkEvent.Context context )
|
||||||
{
|
{
|
||||||
|
@ -17,15 +17,16 @@ import javax.annotation.Nonnull;
|
|||||||
*/
|
*/
|
||||||
public abstract class ComputerClientMessage implements NetworkMessage
|
public abstract class ComputerClientMessage implements NetworkMessage
|
||||||
{
|
{
|
||||||
private int instanceId;
|
private final int instanceId;
|
||||||
|
|
||||||
public ComputerClientMessage( int instanceId )
|
public ComputerClientMessage( int instanceId )
|
||||||
{
|
{
|
||||||
this.instanceId = instanceId;
|
this.instanceId = instanceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ComputerClientMessage()
|
public ComputerClientMessage( @Nonnull PacketBuffer buf )
|
||||||
{
|
{
|
||||||
|
instanceId = buf.readVarInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getInstanceId()
|
public int getInstanceId()
|
||||||
@ -39,12 +40,6 @@ public abstract class ComputerClientMessage implements NetworkMessage
|
|||||||
buf.writeVarInt( instanceId );
|
buf.writeVarInt( instanceId );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
instanceId = buf.readVarInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ClientComputer getComputer()
|
public ClientComputer getComputer()
|
||||||
{
|
{
|
||||||
ClientComputer computer = ComputerCraft.clientComputerRegistry.get( instanceId );
|
ClientComputer computer = ComputerCraft.clientComputerRegistry.get( instanceId );
|
||||||
|
@ -18,8 +18,8 @@ import javax.annotation.Nonnull;
|
|||||||
*/
|
*/
|
||||||
public class ComputerDataClientMessage extends ComputerClientMessage
|
public class ComputerDataClientMessage extends ComputerClientMessage
|
||||||
{
|
{
|
||||||
private ComputerState state;
|
private final ComputerState state;
|
||||||
private CompoundNBT userData;
|
private final CompoundNBT userData;
|
||||||
|
|
||||||
public ComputerDataClientMessage( ServerComputer computer )
|
public ComputerDataClientMessage( ServerComputer computer )
|
||||||
{
|
{
|
||||||
@ -28,8 +28,11 @@ public class ComputerDataClientMessage extends ComputerClientMessage
|
|||||||
userData = computer.getUserData();
|
userData = computer.getUserData();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ComputerDataClientMessage()
|
public ComputerDataClientMessage( @Nonnull PacketBuffer buf )
|
||||||
{
|
{
|
||||||
|
super( buf );
|
||||||
|
state = buf.readEnum( ComputerState.class );
|
||||||
|
userData = buf.readNbt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -40,14 +43,6 @@ public class ComputerDataClientMessage extends ComputerClientMessage
|
|||||||
buf.writeNbt( userData );
|
buf.writeNbt( userData );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
super.fromBytes( buf );
|
|
||||||
state = buf.readEnum( ComputerState.class );
|
|
||||||
userData = buf.readNbt();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle( NetworkEvent.Context context )
|
public void handle( NetworkEvent.Context context )
|
||||||
{
|
{
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
package dan200.computercraft.shared.network.client;
|
package dan200.computercraft.shared.network.client;
|
||||||
|
|
||||||
import dan200.computercraft.ComputerCraft;
|
import dan200.computercraft.ComputerCraft;
|
||||||
|
import net.minecraft.network.PacketBuffer;
|
||||||
import net.minecraftforge.fml.network.NetworkEvent;
|
import net.minecraftforge.fml.network.NetworkEvent;
|
||||||
|
|
||||||
public class ComputerDeletedClientMessage extends ComputerClientMessage
|
public class ComputerDeletedClientMessage extends ComputerClientMessage
|
||||||
@ -15,8 +16,9 @@ public class ComputerDeletedClientMessage extends ComputerClientMessage
|
|||||||
super( instanceId );
|
super( instanceId );
|
||||||
}
|
}
|
||||||
|
|
||||||
public ComputerDeletedClientMessage()
|
public ComputerDeletedClientMessage( PacketBuffer buffer )
|
||||||
{
|
{
|
||||||
|
super( buffer );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -12,7 +12,7 @@ import javax.annotation.Nonnull;
|
|||||||
|
|
||||||
public class ComputerTerminalClientMessage extends ComputerClientMessage
|
public class ComputerTerminalClientMessage extends ComputerClientMessage
|
||||||
{
|
{
|
||||||
private TerminalState state;
|
private final TerminalState state;
|
||||||
|
|
||||||
public ComputerTerminalClientMessage( int instanceId, TerminalState state )
|
public ComputerTerminalClientMessage( int instanceId, TerminalState state )
|
||||||
{
|
{
|
||||||
@ -20,8 +20,10 @@ public class ComputerTerminalClientMessage extends ComputerClientMessage
|
|||||||
this.state = state;
|
this.state = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ComputerTerminalClientMessage()
|
public ComputerTerminalClientMessage( @Nonnull PacketBuffer buf )
|
||||||
{
|
{
|
||||||
|
super( buf );
|
||||||
|
state = new TerminalState( buf );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -31,13 +33,6 @@ public class ComputerTerminalClientMessage extends ComputerClientMessage
|
|||||||
state.write( buf );
|
state.write( buf );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
super.fromBytes( buf );
|
|
||||||
state = new TerminalState( buf );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle( NetworkEvent.Context context )
|
public void handle( NetworkEvent.Context context )
|
||||||
{
|
{
|
||||||
|
@ -13,7 +13,7 @@ import javax.annotation.Nonnull;
|
|||||||
|
|
||||||
public class ComputerActionServerMessage extends ComputerServerMessage
|
public class ComputerActionServerMessage extends ComputerServerMessage
|
||||||
{
|
{
|
||||||
private Action action;
|
private final Action action;
|
||||||
|
|
||||||
public ComputerActionServerMessage( int instanceId, Action action )
|
public ComputerActionServerMessage( int instanceId, Action action )
|
||||||
{
|
{
|
||||||
@ -21,8 +21,10 @@ public class ComputerActionServerMessage extends ComputerServerMessage
|
|||||||
this.action = action;
|
this.action = action;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ComputerActionServerMessage()
|
public ComputerActionServerMessage( @Nonnull PacketBuffer buf )
|
||||||
{
|
{
|
||||||
|
super( buf );
|
||||||
|
action = buf.readEnum( Action.class );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -32,13 +34,6 @@ public class ComputerActionServerMessage extends ComputerServerMessage
|
|||||||
buf.writeEnum( action );
|
buf.writeEnum( action );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
super.fromBytes( buf );
|
|
||||||
action = buf.readEnum( Action.class );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handle( @Nonnull ServerComputer computer, @Nonnull IContainerComputer container )
|
protected void handle( @Nonnull ServerComputer computer, @Nonnull IContainerComputer container )
|
||||||
{
|
{
|
||||||
|
@ -22,15 +22,16 @@ import javax.annotation.Nonnull;
|
|||||||
*/
|
*/
|
||||||
public abstract class ComputerServerMessage implements NetworkMessage
|
public abstract class ComputerServerMessage implements NetworkMessage
|
||||||
{
|
{
|
||||||
private int instanceId;
|
private final int instanceId;
|
||||||
|
|
||||||
public ComputerServerMessage( int instanceId )
|
public ComputerServerMessage( int instanceId )
|
||||||
{
|
{
|
||||||
this.instanceId = instanceId;
|
this.instanceId = instanceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ComputerServerMessage()
|
public ComputerServerMessage( @Nonnull PacketBuffer buf )
|
||||||
{
|
{
|
||||||
|
instanceId = buf.readVarInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -39,12 +40,6 @@ public abstract class ComputerServerMessage implements NetworkMessage
|
|||||||
buf.writeVarInt( instanceId );
|
buf.writeVarInt( instanceId );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
instanceId = buf.readVarInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle( NetworkEvent.Context context )
|
public void handle( NetworkEvent.Context context )
|
||||||
{
|
{
|
||||||
|
@ -18,8 +18,8 @@ public class KeyEventServerMessage extends ComputerServerMessage
|
|||||||
public static final int TYPE_REPEAT = 1;
|
public static final int TYPE_REPEAT = 1;
|
||||||
public static final int TYPE_UP = 2;
|
public static final int TYPE_UP = 2;
|
||||||
|
|
||||||
private int type;
|
private final int type;
|
||||||
private int key;
|
private final int key;
|
||||||
|
|
||||||
public KeyEventServerMessage( int instanceId, int type, int key )
|
public KeyEventServerMessage( int instanceId, int type, int key )
|
||||||
{
|
{
|
||||||
@ -28,8 +28,11 @@ public class KeyEventServerMessage extends ComputerServerMessage
|
|||||||
this.key = key;
|
this.key = key;
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyEventServerMessage()
|
public KeyEventServerMessage( @Nonnull PacketBuffer buf )
|
||||||
{
|
{
|
||||||
|
super( buf );
|
||||||
|
type = buf.readByte();
|
||||||
|
key = buf.readVarInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -40,14 +43,6 @@ public class KeyEventServerMessage extends ComputerServerMessage
|
|||||||
buf.writeVarInt( key );
|
buf.writeVarInt( key );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
super.fromBytes( buf );
|
|
||||||
type = buf.readByte();
|
|
||||||
key = buf.readVarInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handle( @Nonnull ServerComputer computer, @Nonnull IContainerComputer container )
|
protected void handle( @Nonnull ServerComputer computer, @Nonnull IContainerComputer container )
|
||||||
{
|
{
|
||||||
|
@ -19,10 +19,10 @@ public class MouseEventServerMessage extends ComputerServerMessage
|
|||||||
public static final int TYPE_UP = 2;
|
public static final int TYPE_UP = 2;
|
||||||
public static final int TYPE_SCROLL = 3;
|
public static final int TYPE_SCROLL = 3;
|
||||||
|
|
||||||
private int type;
|
private final int type;
|
||||||
private int x;
|
private final int x;
|
||||||
private int y;
|
private final int y;
|
||||||
private int arg;
|
private final int arg;
|
||||||
|
|
||||||
public MouseEventServerMessage( int instanceId, int type, int arg, int x, int y )
|
public MouseEventServerMessage( int instanceId, int type, int arg, int x, int y )
|
||||||
{
|
{
|
||||||
@ -33,8 +33,13 @@ public class MouseEventServerMessage extends ComputerServerMessage
|
|||||||
this.y = y;
|
this.y = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MouseEventServerMessage()
|
public MouseEventServerMessage( @Nonnull PacketBuffer buf )
|
||||||
{
|
{
|
||||||
|
super( buf );
|
||||||
|
type = buf.readByte();
|
||||||
|
arg = buf.readVarInt();
|
||||||
|
x = buf.readVarInt();
|
||||||
|
y = buf.readVarInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -47,16 +52,6 @@ public class MouseEventServerMessage extends ComputerServerMessage
|
|||||||
buf.writeVarInt( y );
|
buf.writeVarInt( y );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
super.fromBytes( buf );
|
|
||||||
type = buf.readByte();
|
|
||||||
arg = buf.readVarInt();
|
|
||||||
x = buf.readVarInt();
|
|
||||||
y = buf.readVarInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handle( @Nonnull ServerComputer computer, @Nonnull IContainerComputer container )
|
protected void handle( @Nonnull ServerComputer computer, @Nonnull IContainerComputer container )
|
||||||
{
|
{
|
||||||
|
@ -22,8 +22,8 @@ import javax.annotation.Nullable;
|
|||||||
*/
|
*/
|
||||||
public class QueueEventServerMessage extends ComputerServerMessage
|
public class QueueEventServerMessage extends ComputerServerMessage
|
||||||
{
|
{
|
||||||
private String event;
|
private final String event;
|
||||||
private Object[] args;
|
private final Object[] args;
|
||||||
|
|
||||||
public QueueEventServerMessage( int instanceId, @Nonnull String event, @Nullable Object[] args )
|
public QueueEventServerMessage( int instanceId, @Nonnull String event, @Nullable Object[] args )
|
||||||
{
|
{
|
||||||
@ -32,8 +32,13 @@ public class QueueEventServerMessage extends ComputerServerMessage
|
|||||||
this.args = args;
|
this.args = args;
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueueEventServerMessage()
|
public QueueEventServerMessage( @Nonnull PacketBuffer buf )
|
||||||
{
|
{
|
||||||
|
super( buf );
|
||||||
|
event = buf.readUtf( Short.MAX_VALUE );
|
||||||
|
|
||||||
|
CompoundNBT args = buf.readNbt();
|
||||||
|
this.args = args == null ? null : NBTUtil.decodeObjects( args );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -44,16 +49,6 @@ public class QueueEventServerMessage extends ComputerServerMessage
|
|||||||
buf.writeNbt( args == null ? null : NBTUtil.encodeObjects( args ) );
|
buf.writeNbt( args == null ? null : NBTUtil.encodeObjects( args ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
super.fromBytes( buf );
|
|
||||||
event = buf.readUtf( Short.MAX_VALUE );
|
|
||||||
|
|
||||||
CompoundNBT args = buf.readNbt();
|
|
||||||
this.args = args == null ? null : NBTUtil.decodeObjects( args );
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void handle( @Nonnull ServerComputer computer, @Nonnull IContainerComputer container )
|
protected void handle( @Nonnull ServerComputer computer, @Nonnull IContainerComputer container )
|
||||||
{
|
{
|
||||||
|
@ -15,15 +15,16 @@ import javax.annotation.Nonnull;
|
|||||||
|
|
||||||
public class RequestComputerMessage implements NetworkMessage
|
public class RequestComputerMessage implements NetworkMessage
|
||||||
{
|
{
|
||||||
private int instance;
|
private final int instance;
|
||||||
|
|
||||||
public RequestComputerMessage( int instance )
|
public RequestComputerMessage( int instance )
|
||||||
{
|
{
|
||||||
this.instance = instance;
|
this.instance = instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RequestComputerMessage()
|
public RequestComputerMessage( @Nonnull PacketBuffer buf )
|
||||||
{
|
{
|
||||||
|
instance = buf.readVarInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -32,12 +33,6 @@ public class RequestComputerMessage implements NetworkMessage
|
|||||||
buf.writeVarInt( instance );
|
buf.writeVarInt( instance );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void fromBytes( @Nonnull PacketBuffer buf )
|
|
||||||
{
|
|
||||||
instance = buf.readVarInt();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle( NetworkEvent.Context context )
|
public void handle( NetworkEvent.Context context )
|
||||||
{
|
{
|
||||||
|
@ -290,6 +290,7 @@ local menu_choices = {
|
|||||||
return false
|
return false
|
||||||
end,
|
end,
|
||||||
Exit = function()
|
Exit = function()
|
||||||
|
sleep(0) -- Super janky, but consumes stray "char" events from pressing Ctrl then E separately.
|
||||||
return true
|
return true
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user