아바타(AvatarState)
아바타는 캐릭터에 해당하는 상태로, 이름과 레벨 등을 포함하고 있습니다.
상태
- 어카운트 주소: Nekoyume.Addresses.Avatar
- 상태 주소: 아바타의 주소는 에이전트의 주소로부터 유도합니다.
cs
public Address GetAvatarAddress(Address agentAddress, int index)
{
return agentAddress.Derive($"avatar-state-{index}");
// or
return Addresses.GetAvatarAddress(agentAddress, index);
}
상태 조회:
cs
public AvatarState? GetAvatarState(IWorld world, Address address)
{
IAccount account = world.GetAccount(Addresses.Avatar);
if (account is null)
{
return null;
}
IValue state = account.GetState(address);
return state switch
{
Bencodex.Types.List l => new AvatarState(l),
Bencodex.Types.Dictionary d => new AvatarState(d),
_ => null,
};
}