Example #1
0
        private void OnChangeActiveStateComponent(ComponentActor beh, bool state)
        {
            var hash = beh.GetHashCode();

            if (_components.ContainsKey(hash))
            {
                var data = _components[hash];
                if (state)
                {
                    if (data.tick != null && !_ticks.Contains(data.tick))
                    {
                        _ticks.Add(data.tick);
                        _countTicks++;
                    }
                    if (data.tickFixed != null && !_ticksFixed.Contains(data.tickFixed))
                    {
                        _ticksFixed.Add(data.tickFixed);
                        _countTicksFixed++;
                    }
                    if (data.tickLate != null && !_ticksLate.Contains(data.tickLate))
                    {
                        _ticksLate.Add(data.tickLate);
                        _countTicksLate++;
                    }
                }
                else
                {
                    if (data.tick != null)
                    {
                        _ticks.Remove(data.tick);
                        _countTicks--;
                    }
                    if (data.tickFixed != null)
                    {
                        _ticksFixed.Remove(data.tickFixed);
                        _countTicksFixed--;
                    }
                    if (data.tickLate != null)
                    {
                        _ticksLate.Remove(data.tickLate);
                        _countTicksLate--;
                    }
                }
            }
            else
            {
                LogSystem.Print(AlertLevel.Error, "System", $"Cell for {beh.GetType().Name}:{hash} not found");
            }
        }