#ifndef XPATHNODETRANSIENT_H
#define XPATHNODETRANSIENT_H

#include "xasset.h"
#include "xgameworld.h" // For pathnode_t reference

class XPathNodeTransient : public XAsset
{
public:
    explicit XPathNodeTransient();

    void ParseData(QDataStream *aStream) override;

    int GetSearchFrame() const;
    void SetSearchFrame(int frame);

    pathnode_t* GetNextOpen() const;
    void SetNextOpen(pathnode_t* node);

    pathnode_t* GetPrevOpen() const;
    void SetPrevOpen(pathnode_t* node);

    pathnode_t* GetParent() const;
    void SetParent(pathnode_t* parent);

    float GetCost() const;
    void SetCost(float cost);

    float GetHeuristic() const;
    void SetHeuristic(float heuristic);

    float GetCostFactor() const;
    void SetCostFactor(float factor);

private:
    int mSearchFrame = 0;
    pathnode_t* mNextOpen = nullptr;
    pathnode_t* mPrevOpen = nullptr;
    pathnode_t* mParent = nullptr;
    float mCost = 0.0f;
    float mHeuristic = 0.0f;
    float mCostFactor = 0.0f;
};

#endif // XPATHNODETRANSIENT_H





