//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

package cfg;


import "errors"

type AiNode struct {
    Id int32
    NodeName string
}

const TypeId_AiNode = -1055479768

func (*AiNode) GetTypeId() int32 {
    return -1055479768
}

func NewAiNode(_buf map[string]interface{}) (interface{}, error) {
    var id string
    var _ok_ bool
    if id, _ok_ = _buf["$type"].(string) ; !_ok_ {
        return nil, errors.New("type id missing")
    }
    switch id {
        case "UeSetDefaultFocus": _v, err := NewAiUeSetDefaultFocus(_buf); if err != nil { return nil, errors.New("aiuesetdefaultfocus") } else { return _v, nil }
        case "ExecuteTimeStatistic": _v, err := NewAiExecuteTimeStatistic(_buf); if err != nil { return nil, errors.New("aiexecutetimestatistic") } else { return _v, nil }
        case "ChooseTarget": _v, err := NewAiChooseTarget(_buf); if err != nil { return nil, errors.New("aichoosetarget") } else { return _v, nil }
        case "KeepFaceTarget": _v, err := NewAiKeepFaceTarget(_buf); if err != nil { return nil, errors.New("aikeepfacetarget") } else { return _v, nil }
        case "GetOwnerPlayer": _v, err := NewAiGetOwnerPlayer(_buf); if err != nil { return nil, errors.New("aigetownerplayer") } else { return _v, nil }
        case "UpdateDailyBehaviorProps": _v, err := NewAiUpdateDailyBehaviorProps(_buf); if err != nil { return nil, errors.New("aiupdatedailybehaviorprops") } else { return _v, nil }
        case "UeLoop": _v, err := NewAiUeLoop(_buf); if err != nil { return nil, errors.New("aiueloop") } else { return _v, nil }
        case "UeCooldown": _v, err := NewAiUeCooldown(_buf); if err != nil { return nil, errors.New("aiuecooldown") } else { return _v, nil }
        case "UeTimeLimit": _v, err := NewAiUeTimeLimit(_buf); if err != nil { return nil, errors.New("aiuetimelimit") } else { return _v, nil }
        case "UeBlackboard": _v, err := NewAiUeBlackboard(_buf); if err != nil { return nil, errors.New("aiueblackboard") } else { return _v, nil }
        case "UeForceSuccess": _v, err := NewAiUeForceSuccess(_buf); if err != nil { return nil, errors.New("aiueforcesuccess") } else { return _v, nil }
        case "IsAtLocation": _v, err := NewAiIsAtLocation(_buf); if err != nil { return nil, errors.New("aiisatlocation") } else { return _v, nil }
        case "DistanceLessThan": _v, err := NewAiDistanceLessThan(_buf); if err != nil { return nil, errors.New("aidistancelessthan") } else { return _v, nil }
        case "Sequence": _v, err := NewAiSequence(_buf); if err != nil { return nil, errors.New("aisequence") } else { return _v, nil }
        case "Selector": _v, err := NewAiSelector(_buf); if err != nil { return nil, errors.New("aiselector") } else { return _v, nil }
        case "SimpleParallel": _v, err := NewAiSimpleParallel(_buf); if err != nil { return nil, errors.New("aisimpleparallel") } else { return _v, nil }
        case "UeWait": _v, err := NewAiUeWait(_buf); if err != nil { return nil, errors.New("aiuewait") } else { return _v, nil }
        case "UeWaitBlackboardTime": _v, err := NewAiUeWaitBlackboardTime(_buf); if err != nil { return nil, errors.New("aiuewaitblackboardtime") } else { return _v, nil }
        case "MoveToTarget": _v, err := NewAiMoveToTarget(_buf); if err != nil { return nil, errors.New("aimovetotarget") } else { return _v, nil }
        case "ChooseSkill": _v, err := NewAiChooseSkill(_buf); if err != nil { return nil, errors.New("aichooseskill") } else { return _v, nil }
        case "MoveToRandomLocation": _v, err := NewAiMoveToRandomLocation(_buf); if err != nil { return nil, errors.New("aimovetorandomlocation") } else { return _v, nil }
        case "MoveToLocation": _v, err := NewAiMoveToLocation(_buf); if err != nil { return nil, errors.New("aimovetolocation") } else { return _v, nil }
        case "DebugPrint": _v, err := NewAiDebugPrint(_buf); if err != nil { return nil, errors.New("aidebugprint") } else { return _v, nil }
        default: return nil, errors.New("unknown type id")
    }
}