public static void AddMaterial(Address avatarAddress, HashDigest <SHA256> itemId, int count, bool resetState) { if (count is 0) { return; } var modifier = new AvatarInventoryMaterialModifier( new Dictionary <HashDigest <SHA256>, int> { [itemId] = count, } ); LocalLayer.Instance.Add(avatarAddress, modifier); if (!TryGetLoadedAvatarState( avatarAddress, out var outAvatarState, out _, out var isCurrentAvatarState) ) { return; } outAvatarState = modifier.Modify(outAvatarState); if (!isCurrentAvatarState) { return; } if (!resetState) { return; } TryResetLoadedAvatarState(avatarAddress, out _, out _); }
public static void RemoveMaterial(Address avatarAddress, HashDigest <SHA256> itemId, int count, bool resetState) { if (count is 0) { return; } var modifier = new AvatarInventoryMaterialModifier( new Dictionary <HashDigest <SHA256>, int> { [itemId] = count, } ); LocalLayer.Instance.Remove(avatarAddress, modifier); if (!resetState) { return; } TryResetLoadedAvatarState(avatarAddress, out _, out _); }