File size: 2,885 Bytes
00437a9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
using Photon.Deterministic;
using System;

namespace Quantum
{
	public unsafe partial struct BTAgent
	{
		#region Int and FP Data
		// Getter / Setters of node FP and Int32 data
		public void AddFPData(Frame frame, FP fpValue)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			BTDataValue newDataValue = new BTDataValue();
			*newDataValue.FPValue = fpValue;
			nodesDataList.Add(newDataValue);
		}

		public void AddIntData(Frame frame, Int32 intValue)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			BTDataValue newDataValue = new BTDataValue();
			*newDataValue.IntValue = intValue;
			nodesDataList.Add(newDataValue);
		}

		public void SetFPData(Frame frame, FP value, Int32 index)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			*nodesDataList.GetPointer(index)->FPValue = value;
		}

		public void SetIntData(Frame frame, Int32 value, Int32 index)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			*nodesDataList.GetPointer(index)->IntValue = value;
		}

		public FP GetFPData(Frame frame, Int32 index)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			return *nodesDataList.GetPointer(index)->FPValue;
		}

		public Int32 GetIntData(Frame frame, Int32 index)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			return *nodesDataList.GetPointer(index)->IntValue;
		}
		#endregion

		// -- THREADSAFE

		#region THREADSAFE Int and FP Data
		// Getter / Setters of node FP and Int32 data
		public void AddFPData(FrameThreadSafe frame, FP fpValue)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			BTDataValue newDataValue = new BTDataValue();
			*newDataValue.FPValue = fpValue;
			nodesDataList.Add(newDataValue);
		}

		public void AddIntData(FrameThreadSafe frame, Int32 intValue)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			BTDataValue newDataValue = new BTDataValue();
			*newDataValue.IntValue = intValue;
			nodesDataList.Add(newDataValue);
		}

		public void SetFPData(FrameThreadSafe frame, FP value, Int32 index)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			*nodesDataList.GetPointer(index)->FPValue = value;
		}

		public void SetIntData(FrameThreadSafe frame, Int32 value, Int32 index)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			*nodesDataList.GetPointer(index)->IntValue = value;
		}

		public FP GetFPData(FrameThreadSafe frame, Int32 index)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			return *nodesDataList.GetPointer(index)->FPValue;
		}

		public Int32 GetIntData(FrameThreadSafe frame, Int32 index)
		{
			var nodesDataList = frame.ResolveList<BTDataValue>(BTDataValues);
			return *nodesDataList.GetPointer(index)->IntValue;
		}
		#endregion
	}
}