//------------------------------------------------------------------------------
// <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 AiIsAtLocation struct {
    Id int32
    NodeName string
    FlowAbortMode int32
    AcceptableRadius float32
    KeyboardKey string
    InverseCondition bool
}

const TypeId_AiIsAtLocation = 1255972344

func (*AiIsAtLocation) GetTypeId() int32 {
    return 1255972344
}

func NewAiIsAtLocation(_buf map[string]interface{}) (_v *AiIsAtLocation, err error) {
    _v = &AiIsAtLocation{}
    { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
    { var _ok_ bool; if _v.NodeName, _ok_ = _buf["node_name"].(string); !_ok_ { err = errors.New("node_name error"); return } }
    { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["flow_abort_mode"].(float64); !_ok_ { err = errors.New("flow_abort_mode error"); return }; _v.FlowAbortMode = int32(_tempNum_) }
    { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["acceptable_radius"].(float64); !_ok_ { err = errors.New("acceptable_radius error"); return }; _v.AcceptableRadius = float32(_tempNum_) }
    { var _ok_ bool; if _v.KeyboardKey, _ok_ = _buf["keyboard_key"].(string); !_ok_ { err = errors.New("keyboard_key error"); return } }
    { var _ok_ bool; if _v.InverseCondition, _ok_ = _buf["inverse_condition"].(bool); !_ok_ { err = errors.New("inverse_condition error"); return } }
    return
}