mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-06-11 13:43:34 +08:00
47 lines
1.8 KiB
Java
47 lines
1.8 KiB
Java
package emu.grasscutter.server.packet.send;
|
|
|
|
import emu.grasscutter.game.avatar.Avatar;
|
|
import emu.grasscutter.net.packet.BasePacket;
|
|
import emu.grasscutter.net.packet.PacketOpcodes;
|
|
import emu.grasscutter.net.proto.AvatarSatiationDataNotifyOuterClass.AvatarSatiationDataNotify;
|
|
import emu.grasscutter.net.proto.AvatarSatiationDataOuterClass.AvatarSatiationData;
|
|
|
|
public class PacketAvatarSatiationDataNotify extends BasePacket {
|
|
|
|
public PacketAvatarSatiationDataNotify(Avatar avatar, float finishTime, long penaltyTime) {
|
|
super(PacketOpcodes.AvatarSatiationDataNotify);
|
|
|
|
AvatarSatiationData.Builder avatarSatiation =
|
|
AvatarSatiationData.newBuilder().setAvatarGuid(avatar.getGuid()).setFinishTime(finishTime);
|
|
|
|
// Penalty for overeating
|
|
if (penaltyTime > 0) {
|
|
avatarSatiation.setPenaltyFinishTime(penaltyTime);
|
|
}
|
|
|
|
avatarSatiation.build();
|
|
|
|
AvatarSatiationDataNotify notify =
|
|
AvatarSatiationDataNotify.newBuilder().addSatiationDataList(0, avatarSatiation).build();
|
|
|
|
this.setData(notify);
|
|
}
|
|
|
|
public PacketAvatarSatiationDataNotify(float time, Avatar avatar) {
|
|
super(PacketOpcodes.AvatarSatiationDataNotify);
|
|
|
|
var avatarSatiation =
|
|
AvatarSatiationData.newBuilder()
|
|
.setAvatarGuid(avatar.getGuid())
|
|
.setFinishTime(time + (avatar.getSatiation() / 30f))
|
|
// Penalty time always ends before finish time
|
|
.setPenaltyFinishTime(time + (avatar.getSatiationPenalty() / 100f))
|
|
.build();
|
|
|
|
AvatarSatiationDataNotify notify =
|
|
AvatarSatiationDataNotify.newBuilder().addSatiationDataList(0, avatarSatiation).build();
|
|
|
|
this.setData(notify);
|
|
}
|
|
}
|