58 lines
1.4 KiB
C#
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
|
|
|
|
}
|
|
|
|
} |