Ejemplo n.º 1
0
        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 _);
        }
Ejemplo n.º 2
0
        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 _);
        }