Skip to content
Merged

Outfits #5676

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
d36ef71
feat: backpack rearrangement (wip)
biotech77 Oct 3, 2025
3ccb920
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 3, 2025
681dd95
Move backpack folder and update assets
RominaMarchetti Oct 3, 2025
5e64b59
chore: outline for the backpack management
biotech77 Oct 3, 2025
d0f1a8f
Merge remote-tracking branch 'origin/feat/oufits-shape' into feat/ouf…
biotech77 Oct 3, 2025
7373810
feat: add outfits slots and ui logic (wip)
biotech77 Oct 6, 2025
b1a09e2
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 6, 2025
9a64c8f
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 7, 2025
7fdf0d0
fix: cleanup
biotech77 Oct 7, 2025
a04b91d
Update ProfileWidget.prefab
RominaMarchetti Oct 7, 2025
789b831
Update CommunitiesBrowser_Header.prefab
RominaMarchetti Oct 7, 2025
a2e567c
Update Backpack.prefab
RominaMarchetti Oct 7, 2025
460a50b
Update ExplorePanelUI.prefab
RominaMarchetti Oct 7, 2025
dd75441
Update backpack buttons scale animation
RominaMarchetti Oct 7, 2025
68f97be
Update explore panel animation
RominaMarchetti Oct 7, 2025
7edd813
Polish header UI
RominaMarchetti Oct 7, 2025
c5c46bd
Polish Mask and item info panel sizes
RominaMarchetti Oct 7, 2025
0b85b1b
Adjust slots, grid, and pagination positions
RominaMarchetti Oct 7, 2025
8008379
chore: cleanup avatar controller
biotech77 Oct 8, 2025
57135f2
Polish outfit slot
RominaMarchetti Oct 8, 2025
bf4a0cb
Polish banner UI
RominaMarchetti Oct 8, 2025
84307e6
Toggle on emotes and categories
RominaMarchetti Oct 8, 2025
4310720
Update textures
RominaMarchetti Oct 8, 2025
2718990
Fix outfits buttons and toggle on emotes from backpack
RominaMarchetti Oct 8, 2025
a6063e5
Fix wearables tabs
RominaMarchetti Oct 8, 2025
5f0b826
Update OutfitSlot.prefab
RominaMarchetti Oct 8, 2025
51f2752
Update hotkeys button animation. Move in Y the grid panel.
RominaMarchetti Oct 8, 2025
0084cc6
Update empty slots silhouettes
RominaMarchetti Oct 8, 2025
9b0348a
feat: first draft of getting, saving and deleting an outfit
biotech77 Oct 9, 2025
1229e1d
Merge remote-tracking branch 'origin/feat/oufits-shape' into feat/ouf…
biotech77 Oct 9, 2025
085ad54
Cleanup backpack prefab
RominaMarchetti Oct 9, 2025
3f001c5
Rename tab selector
RominaMarchetti Oct 9, 2025
86c24e8
Decrease size of the delete texture. Update Gallery prefab
RominaMarchetti Oct 9, 2025
41a9cd5
Update hints button selected color
RominaMarchetti Oct 9, 2025
b3117a1
fix: fixes for outfits management
biotech77 Oct 9, 2025
d01081b
Merge remote-tracking branch 'origin/feat/oufits-shape' into feat/ouf…
biotech77 Oct 9, 2025
609a4cd
feat: avatar screenshot service
biotech77 Oct 10, 2025
9673147
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 10, 2025
380cfa0
Fix close button position
RominaMarchetti Oct 10, 2025
4cf510e
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 13, 2025
8833b5b
fix: clean up and refactor
biotech77 Oct 14, 2025
e6f8271
feat: add outfits analytics
biotech77 Oct 14, 2025
52b5b1a
feat: handle ui for equipped outfit
biotech77 Oct 14, 2025
bedeb2f
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 14, 2025
3654c6e
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 14, 2025
7fd786c
feat: update to how outfits are saved/deleted/equipped
biotech77 Oct 15, 2025
d520e6c
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 15, 2025
945159e
chore: extract method for generating missing thumbnails
biotech77 Oct 15, 2025
76e41dc
chore: remove Debug.Log for failing tests
biotech77 Oct 15, 2025
474d78e
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 15, 2025
ee96cb4
fix: reset the previewed outfit before closing the explorer
biotech77 Oct 15, 2025
5714b05
feat: introduce feature flag for outfits
biotech77 Oct 15, 2025
e87bd03
chore: added .gitkeep in empty folder RarityBackgrounds to make test …
biotech77 Oct 15, 2025
91e81c2
chore: change the name of the outfit feature flag to "alpha-outfits"
biotech77 Oct 15, 2025
dcae13f
feat: use new logic for extra slots
biotech77 Oct 15, 2025
9263cae
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 15, 2025
122d461
chore: remove checking duplicate outfits and current equipped outfit
biotech77 Oct 16, 2025
a8783b7
chore: set transparency of the screenshot to 100% opaque
biotech77 Oct 16, 2025
5a90cdf
fix: apply a gamma curve to screenshots so they don't appear dark
biotech77 Oct 16, 2025
21daa81
fix: improve tab hover, selected, not selected states
biotech77 Oct 17, 2025
8e83728
fix: avatar tab navigation
biotech77 Oct 17, 2025
6ddd3bb
feat: sounds for outfit preview, outfit delete, outfit hover (same as…
biotech77 Oct 17, 2025
3b9492e
fix: emotes are reset when we equip a new outfit
biotech77 Oct 17, 2025
4b2c7fb
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 17, 2025
25c0034
feat: if all outfit slots are empty, set the first one into ready to …
biotech77 Oct 18, 2025
a4a664c
fix: play random emote
biotech77 Oct 20, 2025
7a65486
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 20, 2025
e29e18d
fix: PR review fixes
biotech77 Oct 20, 2025
09cd6ee
fix: ignore empty outfits from the old system
biotech77 Oct 20, 2025
533711e
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 20, 2025
603bb33
Fix ProfileMenuView horizontal position in order to make it responsiv…
RominaMarchetti Oct 21, 2025
4d6dbfc
fix: ui fixes and various cleanups
biotech77 Oct 22, 2025
e04d5e9
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 22, 2025
47e0969
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 23, 2025
cc526f9
chore: debug logs for debugging outfits
biotech77 Oct 23, 2025
3fe5c49
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 23, 2025
fad0bbe
fix: add short urns to save outfit event
biotech77 Oct 24, 2025
5de5a2e
fix: PR review fixes AvatarScreenshotService optimizations
biotech77 Oct 24, 2025
8b7c4f3
chore: cleanup
biotech77 Oct 24, 2025
ed960dd
chore: enable debug log for outfits
biotech77 Oct 24, 2025
0178f8e
fix: stores on chain wearables to the registry (resolves missing toke…
biotech77 Oct 24, 2025
d50da99
fix: properly manage forced wearables (one source of through moved to…
biotech77 Oct 24, 2025
ab9b4c3
fix: correctly save a force render list for equipped outfit when prev…
biotech77 Oct 24, 2025
0133d68
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 27, 2025
63d0226
fix: save outfit sends array of wearables saved in the outfit
biotech77 Oct 27, 2025
4babfe4
fix: delete OutfitsExtensions and extend ProfileExtensions
biotech77 Oct 27, 2025
e103b7c
chore: cleanup
biotech77 Oct 27, 2025
326b712
fix: cleanup
biotech77 Oct 27, 2025
3f7ccbd
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 27, 2025
408f717
feat: add sounds for save and delete outfit
biotech77 Oct 27, 2025
aa18fe0
Merge branch 'dev' into feat/oufits-shape
biotech77 Oct 28, 2025
0e0213d
fix: ignore 404 for getting outfits
biotech77 Oct 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 47f803e1e9c5079449bd106df98a0b7d
m_currentHash:
serializedVersion: 2
Hash: 48ca44445a9b8f3500edf575c136972a
Hash: 61fd69a6987cc3e7c8154fed97a91062
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_CatalogRequestsTimeout: 0
Expand All @@ -33,6 +33,7 @@ MonoBehaviour:
m_UniqueBundleIds: 0
m_EnableJsonCatalog: 0
m_NonRecursiveBuilding: 1
m_AllowNestedBundleFolders: 0
m_CCDEnabled: 0
m_maxConcurrentWebRequests: 3
m_UseUWRForLocalBundles: 0
Expand Down
10 changes: 10 additions & 0 deletions Explorer/Assets/AddressableAssetsData/AssetGroups/UI.asset
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0e0dc1c6390d85440bdf622928e144f5
m_Address: Assets/Textures/Common/ModalDeleteImg_Addressable.png
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0fce4c1a785b1495bbf861787a9a3224
m_Address: Assets/DCL/UI/ErrorPopup/Assets/ErrorPopup.prefab
m_ReadOnly: 0
Expand Down Expand Up @@ -675,6 +680,11 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: dd40e574a59d9b348a7c02ca96be6ae9
m_Address: Assets/DCL/Backpack/AvatarSection/Outfits/Slots/OutfitSlot.prefab
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: de88bd0dde8feda4393664330ac8afb4
m_Address: Assets/DCL/UI/GenericContextMenu/Prefabs/ToggleWithTitleIconAndCheck.prefab
m_ReadOnly: 0
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea799a483c3f4db8afbf38b0e6c08665, type: 3}
m_Name: Backpack_OutfitDelete
m_EditorClassIdentifier:
audioClips:
- {fileID: 8300000, guid: cd65f4b6efec96643b007cccb5848d22, type: 3}
relativeVolume: 1
audioCategory: 0
pitchVariation: 0
clipSelectionMode: 0

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea799a483c3f4db8afbf38b0e6c08665, type: 3}
m_Name: Backpack_OutfitSave
m_EditorClassIdentifier:
audioClips:
- {fileID: 8300000, guid: dd25454bbe016694fb00b7931ce59934, type: 3}
relativeVolume: 1
audioCategory: 0
pitchVariation: 0
clipSelectionMode: 0

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -140,13 +140,14 @@ private WearablePromise CreateWearablePromise(PBAvatarShape pbAvatarShape, Parti
WearableComponentsUtils.CreateGetWearablesByPointersIntention(pbAvatarShape, pbAvatarShape.Wearables, Array.Empty<string>()),
partition);

private WearablePromise CreateWearablePromise(Profile profile, PartitionComponent partition) =>

private WearablePromise CreateWearablePromise(Profile profile, PartitionComponent partition)
{
// profile.Avatar.Wearables should be shortened, but since GetWearablesByPointers already retrieves shortened-urns,
// there is not need to convert
WearablePromise.Create(World,
return WearablePromise.Create(World,
WearableComponentsUtils.CreateGetWearablesByPointersIntention(profile.Avatar.BodyShape, profile.Avatar.Wearables, profile.Avatar.ForceRender),
partition);
}

private void LoadAllEmotes(Profile profile, PartitionComponent partition)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
using System.Buffers;
using System.Collections.Generic;
using System.Threading;
using DCL.Diagnostics;
using Utility.Multithreading;

namespace DCL.AvatarRendering.Loading.Systems.Abstract
Expand Down Expand Up @@ -129,6 +130,8 @@ private async UniTask<TAvatarElement> ProcessElementAsync(ILambdaResponseElement
price
)
);

ReportHub.Log(ReportCategory.OUTFITS, $"<color=green>[WEARABLE_STORAGE_POPULATED]</color> Key: '{elementDTO.Metadata.id}' now maps to Value: '{individualData.id}' (Token: {individualData.tokenId})");
}

return wearable;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
using DCL.AvatarRendering.Loading.Components;
using DCL.AvatarRendering.Wearables.Components;
using DCL.AvatarRendering.Wearables.Helpers;
using Runtime.Wearables;
using System;
using System.Collections.Generic;
Expand All @@ -11,6 +10,9 @@ namespace DCL.AvatarRendering.Wearables.Equipped
public class EquippedWearables : IEquippedWearables
{
private readonly Dictionary<string, IWearable?> wearables = new ();
private readonly HashSet<string> forceRenderCategories = new ();
public IReadOnlyCollection<string> ForceRenderCategories => forceRenderCategories;

private Color hairColor;
private Color eyesColor;
private Color bodyshapeColor;
Expand Down Expand Up @@ -56,6 +58,12 @@ public void SetEyesColor(Color newColor) =>
public void SetBodyshapeColor(Color newColor) =>
bodyshapeColor = newColor;

public void SetForceRender(IReadOnlyCollection<string> categories)
{
forceRenderCategories.Clear();
foreach (string category in categories) { forceRenderCategories.Add(category); }
}

public IReadOnlyDictionary<string, IWearable?> Items() =>
wearables;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.Collections.Generic;
using DCL.AvatarRendering.Wearables.Components;
using UnityEngine;

Expand All @@ -16,5 +17,8 @@ public interface IEquippedWearables : IReadOnlyEquippedWearables
void SetEyesColor(Color newColor);

void SetBodyshapeColor(Color newColor);

IReadOnlyCollection<string> ForceRenderCategories { get; }
void SetForceRender(IReadOnlyCollection<string> categories);
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading