public override void OnAddedToScene()
 {
     base.OnAddedToScene();
     _stateComponent = Container.Get <MyEntityStateComponent>();
     _stateComponent.StateChanged += StateChanged;
     StateChanged(MyStringHash.NullOrEmpty, _stateComponent.CurrentState);
 }
예제 #2
0
 public override void OnBeforeRemovedFromContainer()
 {
     base.OnBeforeRemovedFromContainer();
     _state.StateChanged -= OnStateChanged;
     _eventBus            = null;
     _state = null;
 }
예제 #3
0
 public override void OnAddedToContainer()
 {
     base.OnAddedToContainer();
     _eventBus            = Container.Get <MyComponentEventBus>();
     _state               = Container.Get <MyEntityStateComponent>();
     _state.StateChanged += OnStateChanged;
 }
예제 #4
0
 private void OnComponentRemoved(MyEntityComponent obj)
 {
     if (StateComponent != obj)
     {
         return;
     }
     StateComponent = null;
 }
예제 #5
0
 public override void OnAddedToScene()
 {
     base.OnAddedToScene();
     _animator.AddToContainer(Container, true, true);
     _state = Container.Get <MyEntityStateComponent>();
     _state.StateChanged      += StateChanged;
     _animator.ComponentAdded += OnAnimatorAdded;
     StateChanged(MyStringHash.NullOrEmpty, _state.CurrentState);
 }
예제 #6
0
        private void OnComponentAdded(MyEntityComponent obj)
        {
            // ReSharper disable once SuspiciousTypeConversion.Global
            var cc = obj as MyEntityStateComponent;

            if (cc == null)
            {
                return;
            }
            StateComponent = cc;
        }
예제 #7
0
 public override void OnRemovedFromScene()
 {
     base.OnRemovedFromScene();
     if (!MyMultiplayerModApi.Static.IsServer)
     {
         return;
     }
     foreach (var evt in Definition.Events)
     {
         _eventBus.RemoveListener(evt, EventOccured);
     }
     _eventBus = null;
     _state    = null;
     RemoveScheduledUpdate(Update);
 }
예제 #8
0
 public override void OnBeforeRemovedFromContainer()
 {
     if (!MyMultiplayerModApi.Static.IsServer)
     {
         return;
     }
     _state.StateChanged        -= StateChanged;
     Container.ComponentAdded   -= ComponentAdded;
     Container.ComponentRemoved -= ComponentRemoved;
     foreach (var k in Container)
     {
         ComponentRemoved(k);
     }
     _state = null;
     base.OnBeforeRemovedFromContainer();
 }
예제 #9
0
 public override void OnAddedToContainer()
 {
     if (!MyMultiplayerModApi.Static.IsServer)
     {
         return;
     }
     base.OnAddedToContainer();
     _state = Container.Get <MyEntityStateComponent>();
     _state.StateChanged        += StateChanged;
     Container.ComponentAdded   += ComponentAdded;
     Container.ComponentRemoved += ComponentRemoved;
     foreach (var k in Container)
     {
         ComponentAdded(k);
     }
 }
예제 #10
0
 public override void OnAddedToScene()
 {
     base.OnAddedToScene();
     if (!MyMultiplayerModApi.Static.IsServer)
     {
         return;
     }
     _eventBus = Container.Get <MyComponentEventBus>();
     _state    = Container.Get <MyEntityStateComponent>();
     foreach (var evt in Definition.Events)
     {
         _eventBus.AddListener(evt, EventOccured);
     }
     if (_requestedState.HasValue)
     {
         Update(0);
     }
 }
예제 #11
0
 public override void OnRemovedFromScene()
 {
     _stateComponent = null;
     base.OnRemovedFromScene();
 }
예제 #12
0
 public override void OnAddedToScene()
 {
     base.OnAddedToScene();
     _stateComponent = Container.Get <MyEntityStateComponent>();
 }
 public override void OnRemovedFromScene()
 {
     _stateComponent.StateChanged -= StateChanged;
     _stateComponent = null;
     base.OnRemovedFromScene();
 }