Platformer example started

This commit is contained in:
ThomasCharester committed 2026-02-22 13:59:04 +03:00
1 parent efcfaae647
commit 9f026b76d6
325 files changed
+23540 -270

No files matched your search

@@ -0,0 +1,7 @@
namespace Code.Infrastructure.Configs
{
public enum LayerMaskType
{
PlatformerGround
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0aab84d976cf4045b47f347ad8d77c79
timeCreated: 1770907660
@@ -0,0 +1,53 @@
using System.Collections.Generic;
using System.Linq;
using Code.Infrastructure.EventBus;
using Code.Infrastructure.Generators;
using Cysharp.Threading.Tasks;
using Reflex.Attributes;
using UnityEngine;
using UnityEngine.AddressableAssets;
namespace Code.Infrastructure.Configs
{
[Config("Configs/LayerMasksConfig", true)]
public struct LayerMasksConfig
{
[ToConfig] public LayerMask mask;
[ToConfig] public LayerMaskType type;
}
public class LayerMasks
{
public static Dictionary<LayerMaskType, LayerMask> Masks { get; } = new();
private static void SetMasks(IList<LayerMasksConfigConfig> configs)
{
foreach (var config in configs.Where(config => !Masks.ContainsKey(config.type)))
Masks.Add(config.type, config.mask);
}
public LayerMasks(IConfigLocator configLocator, EventBus.EventBus eventBus)
{
SetupMasks(configLocator, eventBus).Forget();
}
private async UniTaskVoid SetupMasks(IConfigLocator configLocator, EventBus.EventBus eventBus)
{
var handle =
Addressables.LoadAssetsAsync<LayerMasksConfigConfig>(
configLocator.TryGetManyConfigAssetReferences<LayerMasksConfigConfig>(), null, Addressables.MergeMode.Union);
await handle.ToUniTask();
SetMasks(handle.Result);
Addressables.Release(handle);
eventBus.RaiseEvent<ILayerMasksInitializedHandle>(x => x.LayerMasksInitialized());
}
}
public interface ILayerMasksInitializedHandle : IGlobalSubscriber
{
void LayerMasksInitialized();
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2fe6e42771fc4a48a37acbe4fa992e4a
timeCreated: 1770906616