2024-07-25 05:40:31 +00:00
|
|
|
using Godot;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
namespace Rokojori
|
|
|
|
{
|
|
|
|
public class SceneFileEntry
|
|
|
|
{
|
|
|
|
public string type;
|
|
|
|
public string line;
|
|
|
|
public SceneFileHeader header;
|
|
|
|
public SceneFileNamedValue member;
|
|
|
|
public SceneFileNamedValue subMember;
|
|
|
|
public bool hasError = false;
|
|
|
|
|
|
|
|
|
|
|
|
public bool hasHeader => header != null;
|
|
|
|
|
|
|
|
public bool IsHeaderType( string type )
|
|
|
|
{
|
|
|
|
return header != null && header.type == type;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void Parse()
|
|
|
|
{
|
2025-02-12 16:48:15 +00:00
|
|
|
if ( type == SceneFileLinesLexer.HeaderMatcher.type )
|
2024-07-25 05:40:31 +00:00
|
|
|
{
|
|
|
|
var headerParser = new SceneFileHeaderParser();
|
|
|
|
headerParser.Parse( this );
|
|
|
|
|
|
|
|
if ( headerParser.hasError )
|
|
|
|
{
|
|
|
|
hasError = true;
|
|
|
|
}
|
|
|
|
}
|
2025-02-12 16:48:15 +00:00
|
|
|
else if ( type == SceneFileLinesLexer.MemberMatcher.type )
|
|
|
|
{
|
|
|
|
var memberParser = new SceneFileMemberParser();
|
|
|
|
memberParser.Parse( this );
|
|
|
|
|
|
|
|
if ( memberParser.hasError )
|
|
|
|
{
|
|
|
|
hasError = true;
|
|
|
|
}
|
|
|
|
}
|
2024-07-25 05:40:31 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|