using NAK.PropLoadingHexagon.Components; using UnityEngine; namespace NAK.PropLoadingHexagon.Integrations; public static class TheClapperIntegration { public static void Init() { PropLoadingHexagonMod.OnPropPlaceholderCreated += (placeholder) => { if (placeholder.TryGetComponent(out LoadingHexagonController loadingHexagon)) ClappableLoadingHex.Create(loadingHexagon); }; } } public class ClappableLoadingHex : Kafe.TheClapper.Clappable { private LoadingHexagonController _loadingHexagon; public override void OnClapped(Vector3 clappablePosition) { if (_loadingHexagon == null) return; _loadingHexagon.IsLoadingCanceled = true; Kafe.TheClapper.TheClapper.EmitParticles(clappablePosition, new Color(1f, 1f, 0f), 2f); // why this internal } public static void Create(LoadingHexagonController loadingHexagon) { GameObject target = loadingHexagon.transform.GetChild(0).gameObject; if (!target.gameObject.TryGetComponent(out ClappableLoadingHex clappableHexagon)) clappableHexagon = target.AddComponent(); clappableHexagon._loadingHexagon = loadingHexagon; } }