Implement Crafting CPU selector widget

This commit is contained in:
alongstringofnumbers
2022-08-17 15:54:03 -07:00
parent 327b26559f
commit b84c25e64c
14 changed files with 788 additions and 48 deletions
@@ -84,7 +84,9 @@ public class AppEngPacketHandlerBase
PACKET_FLUID_TANK( PacketFluidSlot.class ),
PACKET_INFORM_PLAYER( PacketInformPlayer.class );
PACKET_INFORM_PLAYER( PacketInformPlayer.class ),
PACKET_CRAFTING_CPUS_UPDATE( PacketCraftingCPUsUpdate.class);
private final Class<? extends AppEngPacket> packetClass;
@@ -34,7 +34,7 @@ import appeng.core.sync.AppEngPacket;
public class NetworkHandler
{
private static NetworkHandler instance;
public static NetworkHandler instance;
private final FMLEventChannel ec;
private final String myChannelName;
@@ -0,0 +1,63 @@
package appeng.core.sync.packets;
import appeng.client.gui.implementations.GuiCraftingStatus;
import appeng.container.implementations.CraftingCPUStatus;
import appeng.core.sync.AppEngPacket;
import appeng.core.sync.network.INetworkInfo;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import java.io.IOException;
import java.util.Collection;
public class PacketCraftingCPUsUpdate extends AppEngPacket {
private final CraftingCPUStatus[] cpus;
public PacketCraftingCPUsUpdate( final ByteBuf stream )
{
int count = stream.readInt();
cpus = new CraftingCPUStatus[count];
for( int i = 0; i < count; i++ )
{
try
{
cpus[i] = new CraftingCPUStatus( stream );
}
catch( IOException e )
{
cpus[i] = new CraftingCPUStatus( );
}
}
}
public PacketCraftingCPUsUpdate( final Collection<CraftingCPUStatus> cpus ) throws IOException
{
this.cpus = cpus.toArray( new CraftingCPUStatus[0] );
final ByteBuf data = Unpooled.buffer();
data.writeInt( this.getPacketID() );
data.writeInt( this.cpus.length );
for( CraftingCPUStatus cpu : this.cpus )
{
cpu.writeToPacket( data );
}
this.configureWrite( data );
}
@Override
public void clientPacketData(final INetworkInfo network, final AppEngPacket packet, final EntityPlayer player )
{
final GuiScreen gs = Minecraft.getMinecraft().currentScreen;
if( gs instanceof GuiCraftingStatus)
{
GuiCraftingStatus gui = (GuiCraftingStatus) gs;
gui.postCPUUpdate( this.cpus );
}
}
}
@@ -112,10 +112,10 @@ public class PacketValueConfig extends AppEngPacket
final IMouseWheelItem si = (IMouseWheelItem) is.getItem();
si.onWheel( is, this.Value.equals( "WheelUp" ) );
}
else if( this.Name.equals( "Terminal.Cpu" ) && c instanceof ContainerCraftingStatus )
else if( this.Name.equals( "Terminal.Cpu.Set" ) && c instanceof ContainerCraftingStatus )
{
final ContainerCraftingStatus qk = (ContainerCraftingStatus) c;
qk.cycleCpu( this.Value.equals( "Next" ) );
qk.selectCPU( Integer.parseInt( this.Value ) );
}
else if( this.Name.equals( "Terminal.Cpu" ) && c instanceof ContainerCraftConfirm )
{