58 lines
1.4 KiB
C#

using System;
using UnityEngine;
/// <summary>
/// The Nanobrain namespace
/// </summary>
namespace NanoBrain {
/// <summary>
/// A Nucleus is a basic element in a brain cluster
/// </summary>
[Serializable]
public abstract class Nucleus {
/// <summary>
/// The name of the Nucleus
/// </summary>
[HideInInspector]
public string name;
/// <summary>
/// The cluster instance in which the nucleus is located
/// </summary>
[SerializeReference]
[HideInInspector]
public Cluster parent;
/// <summary>
/// Function to make a partial clone of this nucleus
/// </summary>
/// <param name="parent">The cluster in which the cloned nucleus should be placed</param>
/// <returns></returns>
public abstract Nucleus ShallowCloneTo(Cluster parent);
/// <summary>
/// The types of Nucleus
/// </summary>
public enum Type {
None,
Neuron,
MemoryCell,
Cluster,
//Receptor,
//ClusterReceptor,
//ClusterArray,
}
#region Update
/// <summary>
/// Update the state without updating other Nuclei
/// </summary>
public abstract void UpdateStateIsolated();
#endregion Update
}
}