using TMPro;
using Unity.Collections;
using Unity.Collections.LowLevel.Unsafe;
using Unity.Entities;
using Unity.Mathematics;
using UnityEngine;
namespace GarmentButton.PathFinding
{
public struct Point
{
public short X;
public short Y;
public short Z;
}
public struct PointPathBlobAsset
{
public BlobArray<Point> Array;
}
public struct PathNode
{
public int2 Position;
public int Height;
public int CurrentIndex;
public int CameFromIndex;
public int GCost;
public int HCost;
public int FCost;
public void CalculateFCost()
{
FCost = GCost + HCost;
}
}
public struct PathElement : IBufferElementData
{
public ushort IndexGrid;
}
public struct LastPointPath : IComponentData
{
public ushort Value;
}
public struct CheckStuck : IComponentData
{
public int Index;
public float Time;
}
public struct EndPointPath : IComponentData, IEnableableComponent
{
public float3 Position;
}
public struct EndPointIndexPath : IComponentData
{
public ushort Value;
}
public struct GridData : IComponentData
{
public int2 GridSize;
public float CellSize;
public float2 Center;
}
public enum GroundType : byte
{
Air,
NearGround,
Ground,
MoveAble,
Blocked,
StaticBlocked,
Null,
}
public struct SurfaceType : IComponentData
{
public GroundType Value;
}
public struct Grid : IComponentData
{
public BlobAssetReference<PointPathBlobAsset> Value;
}
public struct GridAdditionalData : IComponentData
{
public NativeArray<GroundType> Types;
}
public struct UpdatePoints : IComponentData
{
public NativeArray<ushort> Indexes;
}
public struct UpdateCheck : IComponentData { }
public struct CastTag : IComponentData { }
public struct CreatedGrid : IComponentData { };
public struct RequireUpdatePosition : IComponentData
{
public float2 Value;
}
#region Debug
public struct DebugObject : IComponentData
{
public UnityObjectRef<GameObject> GameObject;
}
public class DebugTextMesh : IComponentData
{
public TextMeshPro[] Text;
}
public struct PointsData : IBufferElementData
{
public int Cost;
}
public struct DebugIndex : IComponentData
{
public int Index;
}
public struct DebugAll : IComponentData { }
public struct DebugPath : IComponentData { }
public struct DebugGrid : IComponentData { }
public struct MouseSelectEndPosition : IComponentData { }
#endregion
}