package emu.grasscutter.server.packet.send;

import emu.grasscutter.game.avatar.Avatar;
import emu.grasscutter.game.inventory.EquipType;
import emu.grasscutter.game.inventory.GameItem;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.AvatarEquipChangeNotifyOuterClass.AvatarEquipChangeNotify;

public class PacketAvatarEquipChangeNotify extends BasePacket {
	
	public PacketAvatarEquipChangeNotify(Avatar avatar, GameItem item) {
		super(PacketOpcodes.AvatarEquipChangeNotify);

		AvatarEquipChangeNotify.Builder proto = AvatarEquipChangeNotify.newBuilder()
				.setAvatarGuid(avatar.getGuid())
				.setEquipType(item.getEquipSlot())
				.setItemId(item.getItemId())
				.setEquipGuid(item.getGuid());
		
		if (item.getItemData().getEquipType() == EquipType.EQUIP_WEAPON) {
			proto.setWeapon(item.createSceneWeaponInfo());
		} else {
			proto.setReliquary(item.createSceneReliquaryInfo());
		}

		this.setData(proto);
	}
	
	public PacketAvatarEquipChangeNotify(Avatar avatar, EquipType slot) {
		super(PacketOpcodes.AvatarEquipChangeNotify);

		AvatarEquipChangeNotify.Builder proto = AvatarEquipChangeNotify.newBuilder()
				.setAvatarGuid(avatar.getGuid())
				.setEquipType(slot.getValue());

		this.setData(proto);
	}
}
