This commit is contained in:
2026-07-09 21:33:33 +02:00
commit 84a2a365f3
2364 changed files with 950134 additions and 0 deletions
@@ -0,0 +1,37 @@
using Sirenix.OdinInspector.Editor.Validation;
using UnityEngine;
using VOID.Editor.AttributeValidator;
using VOID.Generic;
using VOID.Generic.Triggers;
[assembly: RegisterValidator(typeof(DynamicTriggerValidator))]
namespace VOID.Editor.AttributeValidator
{
public class DynamicTriggerValidator : ValueValidator<IDynamicTrigger>
{
protected override void Validate(ValidationResult result)
{
if (Value is not Component component) return;
ValidateLayer(result, component);
ValidateCollider(result, component);
}
private void ValidateLayer(ValidationResult result, Component component)
{
if (LayerManager.CodeInMask(component.gameObject.layer, LayerManager.Trigger)) return;
result.AddError(
$"This component uses <u>{nameof(IDynamicTrigger)}</u> which requires layer <u>{nameof(LayerManager.Trigger)}</u>!");
}
private void ValidateCollider(ValidationResult result, Component component)
{
if (component.GetComponentInChildren<Collider>()) return;
result.AddError(
$"This component uses <u>{nameof(IDynamicTrigger)}</u> which requires at least one <u>collider</u>!");
}
}
}