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:
WayofTime 2020-11-11 21:15:58 -05:00
parent 648b96601d
commit b6931a3116
17 changed files with 858 additions and 33 deletions

View file

@ -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);

View file

@ -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;
}
}