Very WIP implementation of Sigil of Holding
This commit is contained in:
parent
072b83f440
commit
b7e06f23bf
13 changed files with 1248 additions and 0 deletions
|
@ -17,6 +17,8 @@ public class BloodMagicPacketHandler extends BasePacketHandler
|
|||
registerServerToClient(ARCTanksPacket.class, ARCTanksPacket::encode, ARCTanksPacket::decode, ARCTanksPacket::handle);
|
||||
registerServerToClient(DemonAuraClientPacket.class, DemonAuraClientPacket::encode, DemonAuraClientPacket::decode, DemonAuraClientPacket::handle);
|
||||
registerServerToClient(SetClientHealthPacket.class, SetClientHealthPacket::encode, SetClientHealthPacket::decode, SetClientHealthPacket::handle);
|
||||
|
||||
registerClientToServer(KeyProcessorPacket.class, KeyProcessorPacket::encode, KeyProcessorPacket::decode, KeyProcessorPacket::handle);
|
||||
// INSTANCE.registerMessage(id, messageType, encoder, decoder, messageConsumer);
|
||||
// INSTANCE.registerMessage(ChatUtil.PacketNoSpamChat.Handler.class, ChatUtil.PacketNoSpamChat.class, 0, Side.CLIENT);
|
||||
// INSTANCE.registerMessage(ItemRouterButtonPacketProcessor.class, ItemRouterButtonPacketProcessor.class, 1, Side.SERVER);
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
package wayoftime.bloodmagic.network;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
import net.minecraftforge.fml.network.NetworkEvent.Context;
|
||||
import wayoftime.bloodmagic.client.key.IKeybindable;
|
||||
import wayoftime.bloodmagic.client.key.KeyBindings;
|
||||
|
||||
public class KeyProcessorPacket
|
||||
{
|
||||
public int keyId;
|
||||
public boolean showInChat;
|
||||
|
||||
public KeyProcessorPacket(int keyId, boolean showInChat)
|
||||
{
|
||||
this.keyId = keyId;
|
||||
this.showInChat = showInChat;
|
||||
}
|
||||
|
||||
public KeyProcessorPacket(KeyBindings key, boolean showInChat)
|
||||
{
|
||||
this(key.ordinal(), showInChat);
|
||||
}
|
||||
|
||||
public static void encode(KeyProcessorPacket pkt, PacketBuffer buf)
|
||||
{
|
||||
buf.writeInt(pkt.keyId);
|
||||
buf.writeBoolean(pkt.showInChat);
|
||||
}
|
||||
|
||||
public static KeyProcessorPacket decode(PacketBuffer buf)
|
||||
{
|
||||
KeyProcessorPacket pkt = new KeyProcessorPacket(buf.readInt(), buf.readBoolean());
|
||||
|
||||
return pkt;
|
||||
}
|
||||
|
||||
public static void handle(KeyProcessorPacket message, Supplier<Context> context)
|
||||
{
|
||||
context.get().enqueueWork(() -> sendKeyToServer(message, context.get().getSender()));
|
||||
context.get().setPacketHandled(true);
|
||||
}
|
||||
|
||||
public static void sendKeyToServer(KeyProcessorPacket msg, PlayerEntity playerEntity)
|
||||
{
|
||||
System.out.println("Hoiiiii");
|
||||
if (playerEntity != null)
|
||||
{
|
||||
ItemStack heldStack = playerEntity.getHeldItemMainhand();
|
||||
if (heldStack.getItem() instanceof IKeybindable)
|
||||
{
|
||||
if (msg.keyId < 0 || msg.keyId >= KeyBindings.values().length)
|
||||
{
|
||||
return;
|
||||
}
|
||||
KeyBindings key = KeyBindings.values()[msg.keyId];
|
||||
|
||||
((IKeybindable) heldStack.getItem()).onKeyPressed(heldStack, playerEntity, key, msg.showInChat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// @OnlyIn(Dist.CLIENT)
|
||||
// public static void updateClientHolder(DemonWillHolder holder)
|
||||
// {
|
||||
// ClientHandler.currentAura = holder;
|
||||
// }
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue