-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbehaviorfile.pas
57 lines (46 loc) · 1.59 KB
/
behaviorfile.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
unit BehaviorFile;
interface
uses
Classes, SysUtils,
CastleDownload,
BehaviorTree, BehaviorRegister;
function writeBehaviorTreeToFile( BehaviorTree : TBehaviorNode;
TreeName : string;
fName : string ) : boolean;
function readBehaviorTreeFromFile( fName : string;
out BehaviorTre : TBehaviorNode ) : boolean;
implementation
procedure writecallback( node : TBehaviorNode;
parent : TBehaviorNode;
data : pointer;
indent : integer );
var line : string;
i : integer;
begin
for i := 1 to indent do
line := line + ' ';
line := line + node.behaviorclass;
if node.name <> '' then
line := line + format(' "%s"', [node.name] );
if node.comment <> '' then
line := line + ' //'+node.comment;
TTextWriter( data ).Writeln( line );
end;
function writeBehaviorTreeToFile( BehaviorTree : TBehaviorNode;
TreeName : string;
fName : string ) : boolean;
var Writer : TTextWriter;
begin
Writer := TTextWriter.create( fName );
Writer.Writeln( 'tree "%s"', [TreeName] );
iteratetree( BehaviorTree, @writecallback, Writer );
Writer.free;
end;
function readBehaviorTreeFromFile( fName : string;
out BehaviorTre : TBehaviorNode ) : boolean;
var Reader : TTextReader;
begin
Reader := TTextReader.create( fName );
Reader.Free;
end;
end.