init: version 1

This commit is contained in:
Job
2025-07-17 17:16:02 +02:00
commit a76c0f6445
519 changed files with 202925 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
using Unity.Mathematics;
using UnityEngine;
/// <summary>
/// MergerController is a sensor that activates or deactivates
/// when multiple connections are active.
/// </summary>
public class MergerController : Activateable
{
[Header("Configuration")]
public Color activatedColor = new(148 / 255f, 209 / 255f, 124 / 255f);
public Color deactivatedColor = new(219 / 255f, 219 / 255f, 219 / 255f);
public int connectionCount = 2;
public Activateable[] activateables;
private int _activeConnectionCount = 0;
private SpriteRenderer _spriteRenderer;
private void Awake()
{
_spriteRenderer = GetComponent<SpriteRenderer>();
}
protected override void OnActivation()
{
_activeConnectionCount++;
if (_activeConnectionCount < connectionCount) return;
_spriteRenderer.color = activatedColor;
foreach (Activateable activatable in activateables)
{
activatable.SetActivation(true);
}
}
protected override void OnDeactivation()
{
_activeConnectionCount = math.max(0, _activeConnectionCount - 1);
if (_activeConnectionCount >= connectionCount) return;
_spriteRenderer.color = deactivatedColor;
foreach (Activateable activatable in activateables)
{
activatable.SetActivation(false);
}
}
}