//------------------------------------------------------------------------------
// 
//     This code was generated by Entitas.CodeGeneration.Plugins.ComponentEntityApiGenerator.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// 
//------------------------------------------------------------------------------
public partial class GameEntity {
    public InteractComponent interact { get { return (InteractComponent)GetComponent(GameComponentsLookup.Interact); } }
    public bool hasInteract { get { return HasComponent(GameComponentsLookup.Interact); } }
    public void AddInteract(Game.MetaData newIsActive, Game.MetaData newIsTarget, EInteractType newInteractType, string newTargetId) {
        var index = GameComponentsLookup.Interact;
        var component = (InteractComponent)CreateComponent(index, typeof(InteractComponent));
        component.IsActive = newIsActive;
        component.IsTarget = newIsTarget;
        component.InteractType = newInteractType;
        component.TargetId = newTargetId;
        AddComponent(index, component);
    }
    public void ReplaceInteract(Game.MetaData newIsActive, Game.MetaData newIsTarget, EInteractType newInteractType, string newTargetId) {
        var index = GameComponentsLookup.Interact;
        var component = (InteractComponent)CreateComponent(index, typeof(InteractComponent));
        component.IsActive = newIsActive;
        component.IsTarget = newIsTarget;
        component.InteractType = newInteractType;
        component.TargetId = newTargetId;
        ReplaceComponent(index, component);
    }
    public void RemoveInteract() {
        RemoveComponent(GameComponentsLookup.Interact);
    }
}
//------------------------------------------------------------------------------
// 
//     This code was generated by Entitas.CodeGeneration.Plugins.ComponentMatcherApiGenerator.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// 
//------------------------------------------------------------------------------
public sealed partial class GameMatcher {
    static Entitas.IMatcher _matcherInteract;
    public static Entitas.IMatcher Interact {
        get {
            if (_matcherInteract == null) {
                var matcher = (Entitas.Matcher)Entitas.Matcher.AllOf(GameComponentsLookup.Interact);
                matcher.componentNames = GameComponentsLookup.componentNames;
                _matcherInteract = matcher;
            }
            return _matcherInteract;
        }
    }
}