rj-action-library/Runtime/Godot/Scenes/Objects/SceneFileObject.cs

38 lines
873 B
C#

using Godot;
using System.Collections.Generic;
namespace Rokojori
{
public class SceneFileObject
{
protected SceneFileEntry _headerEntry;
protected List<SceneFileHeaderAttributeValue> _attributes = new List<SceneFileHeaderAttributeValue>();
public SceneFileObject()
{
SetAttributes();
}
public void CreateFromHeaderEntry( SceneFileEntry headerEntry )
{
ReadAttributes( headerEntry.header );
_CreateFromHeaderEntry( headerEntry);
}
protected virtual void _CreateFromHeaderEntry( SceneFileEntry headerEntry )
{
}
protected virtual void SetAttributes()
{
_attributes = ReflectionHelper.GetFieldValuesOfType<SceneFileHeaderAttributeValue>( this );
}
protected void ReadAttributes( SceneFileHeader entry )
{
_attributes.ForEach( a => a.GetValue( entry ) );
}
}
}