Initial work on DemonWillGauge
Includes the PacketHandler as well as the base system for HUDElements. Still need a replacement for the GuiConfig.
This commit is contained in:
parent
648b96601d
commit
b6931a3116
17 changed files with 858 additions and 33 deletions
|
@ -15,6 +15,7 @@ public class BloodMagicPacketHandler extends BasePacketHandler
|
|||
{
|
||||
registerServerToClient(ChatUtil.PacketNoSpamChat.class, ChatUtil.PacketNoSpamChat::encode, ChatUtil.PacketNoSpamChat::decode, ChatUtil.PacketNoSpamChat::handle);
|
||||
registerServerToClient(ARCTanksPacket.class, ARCTanksPacket::encode, ARCTanksPacket::decode, ARCTanksPacket::handle);
|
||||
registerServerToClient(DemonAuraClientPacket.class, DemonAuraClientPacket::encode, DemonAuraClientPacket::decode, DemonAuraClientPacket::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,64 @@
|
|||
package wayoftime.bloodmagic.network;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import net.minecraft.network.PacketBuffer;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.fml.network.NetworkEvent.Context;
|
||||
import wayoftime.bloodmagic.util.handler.event.ClientHandler;
|
||||
import wayoftime.bloodmagic.will.DemonWillHolder;
|
||||
import wayoftime.bloodmagic.will.EnumDemonWillType;
|
||||
|
||||
public class DemonAuraClientPacket
|
||||
{
|
||||
public DemonWillHolder currentWill = new DemonWillHolder();
|
||||
|
||||
public DemonAuraClientPacket()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public DemonAuraClientPacket(DemonWillHolder holder)
|
||||
{
|
||||
this.currentWill = holder;
|
||||
}
|
||||
|
||||
public static void encode(DemonAuraClientPacket pkt, PacketBuffer buf)
|
||||
{
|
||||
for (EnumDemonWillType type : EnumDemonWillType.values())
|
||||
{
|
||||
if (pkt.currentWill.willMap.containsKey(type))
|
||||
{
|
||||
buf.writeDouble(pkt.currentWill.willMap.get(type));
|
||||
} else
|
||||
{
|
||||
buf.writeDouble(0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static DemonAuraClientPacket decode(PacketBuffer buf)
|
||||
{
|
||||
DemonAuraClientPacket pkt = new DemonAuraClientPacket();
|
||||
for (EnumDemonWillType type : EnumDemonWillType.values())
|
||||
{
|
||||
pkt.currentWill.willMap.put(type, buf.readDouble());
|
||||
}
|
||||
|
||||
return pkt;
|
||||
}
|
||||
|
||||
public static void handle(DemonAuraClientPacket message, Supplier<Context> context)
|
||||
{
|
||||
context.get().enqueueWork(() -> updateClientHolder(message.currentWill));
|
||||
context.get().setPacketHandled(true);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public static void updateClientHolder(DemonWillHolder holder)
|
||||
{
|
||||
ClientHandler.currentAura = holder;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue