migration from new repo
This commit is contained in:
commit
423134a840
26930 changed files with 3458568 additions and 0 deletions
BIN
Assets/_/Features/Decor/.DS_Store
vendored
Normal file
BIN
Assets/_/Features/Decor/.DS_Store
vendored
Normal file
Binary file not shown.
8
Assets/_/Features/Decor/Runtime.meta
Normal file
8
Assets/_/Features/Decor/Runtime.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 79112082853e24a739e574adbd07c748
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/_/Features/Decor/Runtime/.DS_Store
vendored
Normal file
BIN
Assets/_/Features/Decor/Runtime/.DS_Store
vendored
Normal file
Binary file not shown.
3
Assets/_/Features/Decor/Runtime/Adventurer.meta
Normal file
3
Assets/_/Features/Decor/Runtime/Adventurer.meta
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: e82eea4c6be94d0bb12fda846a7eaf10
|
||||
timeCreated: 1754301470
|
||||
43
Assets/_/Features/Decor/Runtime/Adventurer/InfoAdventurer.cs
Normal file
43
Assets/_/Features/Decor/Runtime/Adventurer/InfoAdventurer.cs
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
using UnityEngine;
|
||||
|
||||
namespace Decor.Runtime
|
||||
{
|
||||
public class InfoAdventurer : MonoBehaviour
|
||||
{
|
||||
|
||||
#region Publics
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Unity API
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Main Methods
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Utils
|
||||
|
||||
/* Fonctions privées utiles */
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Privates and Protected
|
||||
|
||||
// Variables privées
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: c255cd054d9a4063be4d44bce3a41fdb
|
||||
timeCreated: 1754301480
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
using System.Collections.Generic;
|
||||
using Adventurer.Runtime;
|
||||
using Core.Runtime;
|
||||
using EventSystem.Runtime;
|
||||
using Player.Runtime;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Decor.Runtime
|
||||
{
|
||||
public class AdventurerApearanceSpawner : BaseMonobehaviour
|
||||
{
|
||||
|
||||
#region Publics
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Unity API
|
||||
|
||||
void Start()
|
||||
{
|
||||
AdventurerSignals.OnAdventurerSpawnRequested += OnSpawnAdventurerModel;
|
||||
|
||||
List<AdventurerClass> allAdventurers = GetFact<List<AdventurerClass>>("my_adventurers");
|
||||
|
||||
foreach (AdventurerClass adventurer in allAdventurers)
|
||||
{
|
||||
OnSpawnAdventurerModel(adventurer);
|
||||
_countAdventurers++;
|
||||
}
|
||||
|
||||
StartCoroutine(WaitAndDeactivatePortraitGenerator());
|
||||
}
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
AdventurerSignals.OnAdventurerSpawnRequested -= OnSpawnAdventurerModel;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Main Methods
|
||||
|
||||
void OnSpawnAdventurerModel(AdventurerClass adventurerClass)
|
||||
{
|
||||
GameObject model = Instantiate(_adventurerPrefab, transform);
|
||||
model.GetComponent<AdventurerModelBinder>().SetupFromAdventurer(adventurerClass);
|
||||
_portraitGenerator.GeneratePortrait(adventurerClass, _adventurerPrefab);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Utils
|
||||
|
||||
System.Collections.IEnumerator WaitAndDeactivatePortraitGenerator()
|
||||
{
|
||||
yield return new WaitUntil(() => _countAdventurers == GetFact<PlayerClass>(GameManager.Instance.Profile).AdventurersCount);
|
||||
yield return new WaitForSeconds(1f);
|
||||
_portraitGenerator.GameObject.SetActive(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Privates and Protected
|
||||
|
||||
[SerializeField] GameObject _adventurerPrefab;
|
||||
[SerializeField] PortraitGenerator _portraitGenerator;
|
||||
|
||||
int _countAdventurers = 0;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d4245e562f224986b9ea19f4b0917793
|
||||
timeCreated: 1754087745
|
||||
60
Assets/_/Features/Decor/Runtime/AdventurerModelBinder.cs
Normal file
60
Assets/_/Features/Decor/Runtime/AdventurerModelBinder.cs
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
using Adventurer.Runtime;
|
||||
using Core.Runtime;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Decor.Runtime
|
||||
{
|
||||
public class AdventurerModelBinder : BaseMonobehaviour
|
||||
{
|
||||
|
||||
#region Publics
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Unity API
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Main Methods
|
||||
|
||||
public void SetupFromAdventurer(AdventurerClass adventurerClass)
|
||||
{
|
||||
foreach (Transform part in partsRoot)
|
||||
{
|
||||
part.gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
foreach (string partName in adventurerClass.ModelParts.Values)
|
||||
{
|
||||
Transform target = partsRoot.Find(partName);
|
||||
if (target != null)
|
||||
{
|
||||
target.gameObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Utils
|
||||
|
||||
/* Fonctions privées utiles */
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Privates and Protected
|
||||
|
||||
[SerializeField] private Transform partsRoot;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 13ac9df85abf4e1686d9d9a345cc5758
|
||||
timeCreated: 1754088153
|
||||
19
Assets/_/Features/Decor/Runtime/Decor.Runtime.asmdef
Normal file
19
Assets/_/Features/Decor/Runtime/Decor.Runtime.asmdef
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"name": "Decor.Runtime",
|
||||
"rootNamespace": "",
|
||||
"references": [
|
||||
"GUID:2ca720bbf8aa349608caa5ce4acaa603",
|
||||
"GUID:d01b71ecbce444a299cc1623f29e9d35",
|
||||
"GUID:4a640bb60ad60478bba0cc41f9b80929",
|
||||
"GUID:f5d0434d9e8c34eb1a16f4c57b172b85"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 796a630e69a1c47f2af3fab5e2bbe0de
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
3
Assets/_/Features/Decor/Runtime/Portrait.meta
Normal file
3
Assets/_/Features/Decor/Runtime/Portrait.meta
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 17b019320dd2465ebce9f1a32399841e
|
||||
timeCreated: 1754129237
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using _.Features.Decor.Runtime;
|
||||
using Adventurer.Runtime;
|
||||
using Core.Runtime;
|
||||
using Player.Runtime;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
|
||||
namespace Decor.Runtime
|
||||
{
|
||||
public class PortraitGenerator : BaseMonobehaviour
|
||||
{
|
||||
|
||||
#region Publics
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Unity API
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Main Methods
|
||||
|
||||
Queue<(AdventurerClass, GameObject)> _queue = new();
|
||||
bool _isProcessing = false;
|
||||
|
||||
public void GeneratePortrait(AdventurerClass adventurerClass, GameObject prefab)
|
||||
{
|
||||
if (!gameObject.activeInHierarchy)
|
||||
{
|
||||
return;
|
||||
}
|
||||
_queue.Enqueue((adventurerClass, prefab));
|
||||
if (!_isProcessing)
|
||||
{
|
||||
StartCoroutine(ProcessQueue());
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator ProcessQueue()
|
||||
{
|
||||
_isProcessing = true;
|
||||
|
||||
while (_queue.Count > 0)
|
||||
{
|
||||
var (adventurerClass, prefab) = _queue.Dequeue();
|
||||
|
||||
_currentAdventurerModel = Instantiate(prefab, transform);
|
||||
_currentAdventurerModel.GetComponent<AdventurerModelBinder>().SetupFromAdventurer(adventurerClass);
|
||||
_currentAdventurerModel.GetComponent<NavMeshAgent>().enabled = false;
|
||||
_currentAdventurerModel.GetComponent<Deplacements>().enabled = false;
|
||||
|
||||
var photo = GetComponentInChildren<TakePhoto>();
|
||||
if (photo != null)
|
||||
{
|
||||
yield return StartCoroutine(photo.CaptureRoutine(adventurerClass));
|
||||
}
|
||||
|
||||
Destroy(_currentAdventurerModel);
|
||||
yield return new WaitForEndOfFrame();
|
||||
_currentAdventurerModel = null;
|
||||
|
||||
yield return new WaitForSeconds(0.1f); // courte pause pour laisser respirer Unity
|
||||
}
|
||||
|
||||
_isProcessing = false;
|
||||
gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Utils
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Privates and Protected
|
||||
|
||||
GameObject _currentAdventurerModel;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 541e352eed3541beb25f9ba5966b080c
|
||||
timeCreated: 1754125969
|
||||
72
Assets/_/Features/Decor/Runtime/Portrait/TakePhoto.cs
Normal file
72
Assets/_/Features/Decor/Runtime/Portrait/TakePhoto.cs
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
using System.Collections;
|
||||
using Adventurer.Runtime;
|
||||
using Core.Runtime;
|
||||
using EventSystem.Runtime;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace _.Features.Decor.Runtime
|
||||
{
|
||||
public class TakePhoto : BaseMonobehaviour
|
||||
{
|
||||
|
||||
#region Publics
|
||||
|
||||
public Image m_targetImage;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Unity API
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Main Methods
|
||||
|
||||
// Coroutine to capture the portrait asynchronously
|
||||
public IEnumerator CaptureRoutine(AdventurerClass adventurer)
|
||||
{
|
||||
yield return new WaitForEndOfFrame(); // attendre le rendu de la frame
|
||||
|
||||
_camera.Render();
|
||||
RenderTexture renderTexture = _camera.targetTexture;
|
||||
|
||||
RenderTexture currentRT = RenderTexture.active;
|
||||
RenderTexture.active = renderTexture;
|
||||
Texture2D image = new Texture2D(renderTexture.width, renderTexture.height, TextureFormat.RGB24, false);
|
||||
image.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
|
||||
image.Apply();
|
||||
RenderTexture.active = currentRT;
|
||||
|
||||
Sprite portraitSprite = Sprite.Create(image, new Rect(0, 0, image.width, image.height), new Vector2(0.5f, 0.5f));
|
||||
AdventurerSignals.RaisePortraitCaptured(adventurer, portraitSprite);
|
||||
|
||||
if (m_targetImage != null)
|
||||
{
|
||||
m_targetImage.sprite = portraitSprite;
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(0.1f); // attendre un court instant avant de lever l'événement final
|
||||
AdventurerSignals.RaisePhotoCaptured(adventurer);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Utils
|
||||
|
||||
//
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region Privates and Protected
|
||||
|
||||
[SerializeField] Camera _camera;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8eea51d84fd74e8eb6707e41ae1e383e
|
||||
timeCreated: 1754124846
|
||||
Loading…
Add table
Add a link
Reference in a new issue