Ejemplo n.º 1
0
        private Timer.Timer CreateTimerService(IOptions <TimerOptions> config,
                                               IBackgroundTaskQueue <MotorCloudEvent <IJobExecutionContext> > queue)
        {
            var timer = new Timer.Timer(config, queue, GetApplicationNameService());

            return(timer);
        }
Ejemplo n.º 2
0
 public void ResetResetsTimerToZero()
 {
     t = Timer.Timer.Builder(10).Build();
     t.Update(4f);
     t.Reset();
     Assert.AreEqual(0f, t.ValueInMillis);
 }
Ejemplo n.º 3
0
 public void ResetToResetsTimerMaxToAValueAndTimerToZero()
 {
     t = Timer.Timer.Builder(10).Build();
     t.Update(4f);
     t.ResetTo(6f);
     Assert.AreEqual(0f, t.ValueInMillis);
     Assert.AreEqual(6f, t.MaxValue);
 }
Ejemplo n.º 4
0
 public void ResetDoesntEnablePreviouslyDisabledTimer()
 {
     t = Timer.Timer.Builder(10).Active(false).Build();
     t.SetTo(2f);
     t.Reset();
     Assert.AreEqual(0f, t.ValueInMillis);
     Assert.IsFalse(t.IsActive);
 }
 public void ChainedTimersAreInARingList()
 {
     t2 = Timer.Timer.Builder(20).Build();
     t1 = Timer.Timer.Builder(10).Build();
     t1.Connect(t2);
     Assert.AreEqual(t2, t1.Next);
     Assert.AreEqual(t1, t2.Next);
 }
Ejemplo n.º 6
0
        public ObjectName PreRegister(IMBeanServer server, ObjectName name)
        {
            _server = server;
            var timer = new Timer.Timer();
            IDictionary <string, string> props = name.KeyPropertyList;

            props.Add("EmbeddedTimer", "true");
            var timerName = new ObjectName(name.Domain, props);

            server.RegisterMBean(timer, timerName);
            _timer = _server.CreateDynamicProxy(timerName);
            _server.AddNotificationListener(timerName, OnTimerEvent, null, null);
            return(name);
        }
Ejemplo n.º 7
0
        public void ResettingTriggersOnNextUpdateCycleEvenIfTimeIsZero()
        {
            t = Timer.Timer.Builder(10).Build();

            var triggered = t.Update(4f);

            Assert.IsFalse(triggered);
            Assert.AreEqual(4f, t.ValueInMillis, EPSILON);

            t.Set();

            triggered = t.Update();
            Assert.IsTrue(triggered);
            Assert.AreEqual(0f, t.ValueInMillis, EPSILON);
        }
        public void ChainedTimersAreActivatedWhenParentWasTriggered()
        {
            var t1Fired = false;
            var t2Fired = false;

            t1 = Timer.Timer.Builder(10).Fired((sender, args) => t1Fired = true).Build();            // active
            t2 = Timer.Timer.Builder(20).Fired((sender, args) => t2Fired = true).InActive().Build(); // inactive
            t1.Connect(t2);

            // You would simply call 'Update' on all timers.
            // T1 will deactivate and activate t2 automatically if triggered.
            t1.Update(15f);
            t2.Update(15f);
            Assert.IsTrue(t1Fired);
            Assert.IsFalse(t2Fired);
            Assert.AreEqual(0f, t1.ValueInMillis, EPSILON);
            Assert.AreEqual(15f, t2.ValueInMillis, EPSILON);
            Assert.IsFalse(t1.IsActive);
            Assert.IsTrue(t2.IsActive);
        }
Ejemplo n.º 9
0
        public Game1()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";

            backgound           = new ScrollingBackgound.ScrollingBackground(this);
            backgound.DrawOrder = 0;
            this.Components.Add(backgound);

            spawner = new Spawner.GhostSpawner(this);
            this.Components.Add(spawner);

            pac           = new PacMan(this);
            pac.DrawOrder = 1;
            this.Components.Add(pac);

            timer           = new Timer.Timer(this);
            timer.DrawOrder = 2;
            this.Components.Add(timer);
        }
Ejemplo n.º 10
0
        public void IfTimeElapsedIsTooSmallOnlyUpdatingAndUpdatedAreTriggered()
        {
            t = Timer.Timer.Builder(10).Build();
            var index             = 1;
            var updatingTriggered = 0;
            var updatedTriggered  = 0;
            var firingTriggered   = 0;
            var firedTriggered    = 0;

            t.Updating((sender, args) =>
            {
                updatingTriggered = index;
                index++;
            });
            t.Updated((sender, args) =>
            {
                updatedTriggered = index;
                index++;
            });
            t.Firing((sender, args) =>
            {
                firingTriggered = index;
                index++;
            });
            t.Fired((sender, args) =>
            {
                firedTriggered = index;
                index++;
            });

            // Update 4ms by creating a GameTime object from scratch.
            var isTriggered = t.Update(new GameTime(TimeSpan.FromMilliseconds(1004f), TimeSpan.FromMilliseconds(4f)));

            Assert.AreEqual(6f, t.TimeLeftToGoUntilReset, EPSILON);
            Assert.IsFalse(isTriggered);
            Assert.AreEqual(1, updatingTriggered);
            Assert.AreEqual(0, firingTriggered);
            Assert.AreEqual(0, firedTriggered);
            Assert.AreEqual(2, updatedTriggered);
        }
            private void OnStartRace()
            {
                GameObjectEntity gameObjectEntity = gameObject.GetComponent <GameObjectEntity>();
                EntityManager    manager          = gameObjectEntity.EntityManager;

                for (int i = 0, length = pool.Length; i < length; ++i)
                {
                    var entity = pool[i];
                    manager.RemoveComponent <FrozenComponentData>(entity);
                    var timerData = manager.GetComponentData <TimerData>(entity);
                    timerData.Time = 0.0f;
                    manager.SetComponentData(entity, timerData);
                }
                Timer.Timer timer = GetComponent <Timer.Timer>();
                timer.onElapsed += OnElapsed;
                var data = timer.Value;

                data.Time     = 0;
                data.Stopped  = 0;
                timer.Value   = data;
                timer.enabled = true;
            }
Ejemplo n.º 12
0
        public void TriggeredTimerInvokesEventsCorrectlyAndInOrder()
        {
            t = Timer.Timer.Builder(10).Build();
            var index             = 1;
            var updatingTriggered = 0;
            var updatedTriggered  = 0;
            var firingTriggered   = 0;
            var firedTriggered    = 0;

            t.TimerUpdating += (sender, args) =>
            {
                updatingTriggered = index;
                index++;
            };
            t.TimerUpdated += (sender, args) =>
            {
                updatedTriggered = index;
                index++;
            };
            t.TimerFiring += (sender, args) =>
            {
                firingTriggered = index;
                index++;
            };
            t.TimerFired += (sender, args) =>
            {
                firedTriggered = index;
                index++;
            };

            var isTriggered = t.Update(1000f);

            Assert.IsTrue(isTriggered);
            Assert.AreEqual(1, updatingTriggered);
            Assert.AreEqual(2, firingTriggered);
            Assert.AreEqual(3, firedTriggered);
            Assert.AreEqual(4, updatedTriggered);
        }
Ejemplo n.º 13
0
 public void MultipleOverlapsIsWorkingAfterUpdating()
 {
     t = Timer.Timer.Builder(10).Build();
     t.Update(34f, true);
     Assert.AreEqual(4f, t.ValueInMillis, EPSILON);
 }
 public void NewTimerIsChainedToItself()
 {
     t1 = Timer.Timer.Builder(10).Build();
     Assert.AreEqual(t1, t1.Next);
 }
            protected override void OnUpdate()
            {
                var geneticTrainerID = new List <GeneticTrainerIDComponentData>(10);

                EntityManager.GetAllUniqueSharedComponentData(geneticTrainerID);

                var transforms = geneticTrainerGroup.GetComponentArray <Transform>();

                for (int i = 0, length = transforms.Length; i < length; ++i)
                {
                    var geneticTrainer               = transforms[i].GetComponent <GeneticTrainerComponent>();
                    var entities                     = neuralNetworkToResetGroup.GetEntityArray().ToArray();
                    var pointComponentArray          = neuralNetworkToResetGroup.GetComponentDataArray <PointComponentData>();
                    var bonusMalusComponentArray     = neuralNetworkToResetGroup.GetComponentDataArray <BonusMalusComponentData>();
                    var positionComponentArray       = neuralNetworkToResetGroup.GetComponentDataArray <Position>();
                    var rotationComponentArray       = neuralNetworkToResetGroup.GetComponentDataArray <Rotation>();
                    var nextCheckpointComponentArray = neuralNetworkToResetGroup.GetComponentDataArray <IDComponentData>();
                    var movementArray                = neuralNetworkToResetGroup.GetComponentDataArray <MovementData>();
                    var steeringArray                = neuralNetworkToResetGroup.GetComponentDataArray <SteeringData>();
                    var timerArray                   = neuralNetworkToResetGroup.GetComponentDataArray <TimerData>();

                    var presetRotation      = geneticTrainer.preset.GetComponent <RotationComponent>();
                    var presetPosition      = geneticTrainer.preset.GetComponent <PositionComponent>();
                    var presetMovement      = geneticTrainer.preset.GetComponent <Movement.Movement>();
                    var presetSteering      = geneticTrainer.preset.GetComponent <Steering>();
                    var collisionStateArray = neuralNetworkToResetGroup.GetComponentArray <CollisionStateComponent>();
                    for (int j = 0, entityCount = entities.Length; j < entityCount; ++j)
                    {
                        var pointComponent = pointComponentArray[j];
                        pointComponent.PointValue = 0;
                        pointComponentArray[j]    = pointComponent;

                        var bonusMalus = bonusMalusComponentArray[j];
                        bonusMalus.Bonus            = 0;
                        bonusMalus.Malus            = 0;
                        bonusMalusComponentArray[j] = bonusMalus;

                        positionComponentArray[j] = presetPosition.Value;
                        rotationComponentArray[j] = presetRotation.Value;

                        var nextCheckpoint = nextCheckpointComponentArray[j];
                        nextCheckpoint.ID = 0;
                        nextCheckpointComponentArray[j] = nextCheckpoint;

                        var collisionState = collisionStateArray[j];
                        collisionState.colliders.Clear();
                        collisionState.presentColliders.Clear();

                        var movement = movementArray[j];
                        movement.HasArrived = 0;
                        movement.Rotation   = presetMovement.Value.Rotation;
                        movement.TargetPos  = presetMovement.Value.TargetPos;
                        movement.Velocity   = presetMovement.Value.Velocity;
                        movementArray[j]    = movement;

                        var steering = steeringArray[j];
                        steering.Velocity = presetSteering.Value.Velocity;
                        steeringArray[j]  = steering;

                        var time = timerArray[j];
                        time.Time     = 0.0f;
                        timerArray[j] = time;
                    }
                    for (int j = 0, entityCount = entities.Length; j < entityCount; ++j)
                    {
                        EntityManager.RemoveComponent(entities[j], ComponentType.Create <ResetComponentData>());
                    }

                    Timer.Timer timer = geneticTrainer.GetComponent <Timer.Timer>();
                    var         data  = timer.Value;
                    data.Time     = 0;
                    data.Stopped  = 0;
                    timer.Value   = data;
                    timer.enabled = true;

                    EntityManager.RemoveComponent <ResetPoolFromPresetComponentData>(geneticTrainer.GetComponent <GameObjectEntity>().Entity);

                    World.GetExistingManager <PreCollisionSystem>().HasChanged = true;
                }
            }
Ejemplo n.º 16
0
 public void NoOverlapIsWorkingAfterUpdating()
 {
     t = Timer.Timer.Builder(10).Build();
     t.Update(30f);
     Assert.AreEqual(0f, t.ValueInMillis, EPSILON);
 }
Ejemplo n.º 17
0
        public static void LoadGameItem(byte[] itemData, int storageIndex, out ItemType itemType, out object item)
        {
            item = null;
            var itemName = $"GameItem{storageIndex}";
            var reader   = new BinaryReader(new MemoryStream(itemData));

            // parse to enum
            var iItemType = reader.ReadInt32();

            if (!Enum.IsDefined(typeof(ItemType), iItemType))
            {
                Logger.Info("Invalid item type " + iItemType);
                itemType = ItemType.Invalid;
                return;
            }

            itemType = (ItemType)iItemType;
            switch (itemType)
            {
            case ItemType.Bumper: item = new Bumper.Bumper(reader, itemName); break;

            case ItemType.Decal: item = new Decal.Decal(reader, itemName); break;

            case ItemType.DispReel: item = new DispReel.DispReel(reader, itemName); break;

            case ItemType.Flasher: item = new Flasher.Flasher(reader, itemName); break;

            case ItemType.Flipper: item = new Flipper.Flipper(reader, itemName); break;

            case ItemType.Gate: item = new Gate.Gate(reader, itemName); break;

            case ItemType.HitTarget: item = new HitTarget.HitTarget(reader, itemName); break;

            case ItemType.Kicker: item = new Kicker.Kicker(reader, itemName); break;

            case ItemType.Light: item = new Light.Light(reader, itemName); break;

            case ItemType.LightSeq: item = new LightSeq.LightSeq(reader, itemName); break;

            case ItemType.Plunger: item = new Plunger.Plunger(reader, itemName); break;

            case ItemType.Primitive: item = new Primitive.Primitive(reader, itemName); break;

            case ItemType.Ramp: item = new Ramp.Ramp(reader, itemName); break;

            case ItemType.Rubber: item = new Rubber.Rubber(reader, itemName); break;

            case ItemType.Spinner: item = new Spinner.Spinner(reader, itemName); break;

            case ItemType.Surface: item = new Surface.Surface(reader, itemName); break;

            case ItemType.TextBox: item = new TextBox.TextBox(reader, itemName); break;

            case ItemType.Timer: item = new Timer.Timer(reader, itemName); break;

            case ItemType.Trigger: item = new Trigger.Trigger(reader, itemName); break;

            case ItemType.Trough: item = new Trough.Trough(reader, itemName); break;

            default:
                Logger.Info("Unhandled item type " + itemType);
                itemType = ItemType.Invalid; break;
            }
        }
Ejemplo n.º 18
0
        private static void LoadGameItems(FileTableContainer tableContainer, CFStorage storage, int count, string storagePrefix)
        {
            for (var i = 0; i < count; i++)
            {
                var itemName = $"{storagePrefix}{i}";
                storage.TryGetStream(itemName, out var itemStream);
                if (itemStream == null)
                {
                    Logger.Warn("Could not find stream {0}, skipping.", itemName);
                    continue;
                }
                var itemData = itemStream.GetData();
                if (itemData.Length < 4)
                {
                    Logger.Warn("Skipping {itemName} because it has size of {itemDataLength}.", itemName, itemData.Length);
                    continue;
                }

                var reader = new BinaryReader(new MemoryStream(itemData));

                // parse to enum
                var iItemType = reader.ReadInt32();
                if (!Enum.IsDefined(typeof(ItemType), iItemType))
                {
                    Logger.Info("Invalid item type " + iItemType);
                    return;
                }

                var itemType = (ItemType)iItemType;
                switch (itemType)
                {
                case ItemType.Bumper: {
                    var item = new VisualPinball.Engine.VPT.Bumper.Bumper(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Decal: {
                    tableContainer.Add(new VisualPinball.Engine.VPT.Decal.Decal(reader, itemName));
                    break;
                }

                case ItemType.DispReel: {
                    var item = new VisualPinball.Engine.VPT.DispReel.DispReel(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Flasher: {
                    var item = new VisualPinball.Engine.VPT.Flasher.Flasher(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Flipper: {
                    var item = new VisualPinball.Engine.VPT.Flipper.Flipper(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Gate: {
                    var item = new VisualPinball.Engine.VPT.Gate.Gate(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.HitTarget: {
                    var item = new VisualPinball.Engine.VPT.HitTarget.HitTarget(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Kicker: {
                    var item = new VisualPinball.Engine.VPT.Kicker.Kicker(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Light: {
                    var item = new VisualPinball.Engine.VPT.Light.Light(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.LightSeq: {
                    var item = new VisualPinball.Engine.VPT.LightSeq.LightSeq(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Plunger: {
                    var item = new VisualPinball.Engine.VPT.Plunger.Plunger(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Primitive: {
                    var item = new Primitive.Primitive(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Ramp: {
                    var item = new Ramp.Ramp(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Rubber: {
                    var item = new Rubber.Rubber(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Spinner: {
                    var item = new Spinner.Spinner(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Surface: {
                    var item = new Surface.Surface(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.TextBox: {
                    var item = new TextBox.TextBox(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Timer: {
                    var item = new Timer.Timer(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Trigger: {
                    var item = new Trigger.Trigger(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.Trough: {
                    var item = new Trough.Trough(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }

                case ItemType.MetalWireGuide:
                {
                    var item = new MetalWireGuide.MetalWireGuide(reader, itemName);
                    tableContainer.Add(item);
                    break;
                }
                }
            }
        }
Ejemplo n.º 19
0
 public void InactiveTimerDoesntFire()
 {
     t = Timer.Timer.Builder(10).Active(false).Build();
     t.Update(4f, true);
     Assert.AreEqual(0f, t.ValueInMillis, EPSILON);
 }
Ejemplo n.º 20
0
        private static void LoadGameItems(Table table, CFStorage storage)
        {
            for (var i = 0; i < table.Data.NumGameItems; i++)
            {
                var itemName = $"GameItem{i}";
                storage.TryGetStream(itemName, out var itemStream);
                if (itemStream == null)
                {
                    Logger.Warn("Could not find stream {0}, skipping.", itemName);
                    continue;
                }
                var itemData = itemStream.GetData();
                if (itemData.Length < 4)
                {
                    Logger.Warn("Skipping {itemName} because it has size of {itemDataLength}.", itemName, itemData.Length);
                    continue;
                }

                var reader   = new BinaryReader(new MemoryStream(itemData));
                var itemType = reader.ReadInt32();
                switch (itemType)
                {
                case ItemType.Bumper: {
                    var item = new VisualPinball.Engine.VPT.Bumper.Bumper(reader, itemName);
                    table.Bumpers[item.Name] = item;
                    break;
                }

                case ItemType.Decal: {
                    table.Decals.Add(new VisualPinball.Engine.VPT.Decal.Decal(reader, itemName));
                    break;
                }

                case ItemType.DispReel: {
                    var item = new VisualPinball.Engine.VPT.DispReel.DispReel(reader, itemName);
                    table.DispReels[item.Name] = item;
                    break;
                }

                case ItemType.Flasher: {
                    var item = new VisualPinball.Engine.VPT.Flasher.Flasher(reader, itemName);
                    table.Flashers[item.Name] = item;
                    break;
                }

                case ItemType.Flipper: {
                    var item = new VisualPinball.Engine.VPT.Flipper.Flipper(reader, itemName);
                    table.Flippers[item.Name] = item;
                    break;
                }

                case ItemType.Gate: {
                    var item = new VisualPinball.Engine.VPT.Gate.Gate(reader, itemName);
                    table.Gates[item.Name] = item;
                    break;
                }

                case ItemType.HitTarget: {
                    var item = new VisualPinball.Engine.VPT.HitTarget.HitTarget(reader, itemName);
                    table.HitTargets[item.Name] = item;
                    break;
                }

                case ItemType.Kicker: {
                    var item = new VisualPinball.Engine.VPT.Kicker.Kicker(reader, itemName);
                    table.Kickers[item.Name] = item;
                    break;
                }

                case ItemType.Light: {
                    var item = new VisualPinball.Engine.VPT.Light.Light(reader, itemName);
                    table.Lights[item.Name] = item;
                    break;
                }

                case ItemType.LightSeq: {
                    var item = new VisualPinball.Engine.VPT.LightSeq.LightSeq(reader, itemName);
                    table.LightSeqs[item.Name] = item;
                    break;
                }

                case ItemType.Plunger: {
                    var item = new VisualPinball.Engine.VPT.Plunger.Plunger(reader, itemName);
                    table.Plungers[item.Name] = item;
                    break;
                }

                case ItemType.Primitive: {
                    var item = new Primitive.Primitive(reader, itemName);
                    table.Primitives[item.Name] = item;
                    break;
                }

                case ItemType.Ramp: {
                    var item = new Ramp.Ramp(reader, itemName);
                    table.Ramps[item.Name] = item;
                    break;
                }

                case ItemType.Rubber: {
                    var item = new Rubber.Rubber(reader, itemName);
                    table.Rubbers[item.Name] = item;
                    break;
                }

                case ItemType.Spinner: {
                    var item = new Spinner.Spinner(reader, itemName);
                    table.Spinners[item.Name] = item;
                    break;
                }

                case ItemType.Surface: {
                    var item = new Surface.Surface(reader, itemName);
                    table.Surfaces[item.Name] = item;
                    break;
                }

                case ItemType.Textbox: {
                    var item = new TextBox.TextBox(reader, itemName);
                    table.TextBoxes[item.Name] = item;
                    break;
                }

                case ItemType.Timer: {
                    var item = new Timer.Timer(reader, itemName);
                    table.Timers[item.Name] = item;
                    break;
                }

                case ItemType.Trigger: {
                    var item = new Trigger.Trigger(reader, itemName);
                    table.Triggers[item.Name] = item;
                    break;
                }
                }
            }
        }
Ejemplo n.º 21
0
            protected override void CollisionEnter(RaycastHit hit)
            {
                var nextCheckPoint = entityManager.GetComponentData <IDComponentData>(entity);
                var bonusMalus     = entityManager.GetComponentData <BonusMalusComponentData>(entity);

                if (hit.collider.tag == "Wall")
                {
                    if (!entityManager.HasComponent <DeadComponentData>(entity))
                    {
                        entityManager.AddComponentData(entity, new DeadComponentData());
                    }
                    var checkPointPosition = idToCheckPointPosition[nextCheckPoint.ID];
                    var position           = entityManager.GetComponentData <Position>(entity).Value;
                    if (math.dot(hit.normal, math.normalizesafe(checkPointPosition - position)) <= 0)
                    {
                        bonusMalus.Malus += idToCheckPointValue[nextCheckPoint.ID] * 2;
                    }
                    collisionState.colliders.Clear();
                    collisionState.presentColliders.Clear();
                }
                else if (hit.collider.tag == "Bonus")
                {
                    var movement = entityManager.GetComponentData <MovementData>(entity);
                    var bonus    = entityManager.GetSharedComponentData <BonusComponentData>(hit.collider.gameObject.GetComponent <GameObjectEntity>().Entity);
                    movement.BoostValue = bonus.BoostValue;
                    entityManager.SetComponentData(entity, movement);

                    Timer.Timer timer = new Timer.Timer();
                    var         data  = timer.Value;
                    data.Interval    = bonus.BoostDuration;
                    data.Loop        = 0;
                    timer.Value      = data;
                    timer.onElapsed += ResetBoost;

                    var entityTemp = entityManager.Instantiate(new Entity());
                    entityManager.AddComponent(entityTemp, ComponentType.Create <Timer.Timer>());
                    entityManager.SetComponentObject(entityTemp, ComponentType.Create <Timer.Timer>(), timer);
                }
                else if (hit.collider.tag == "Checkpoint")
                {
                    var checkPointEntity = hit.collider.GetComponent <GameObjectEntity>().Entity;
                    var timer            = entityManager.GetComponentData <TimerData>(entity);
                    if (entityManager.GetComponentData <IDComponentData>(checkPointEntity).ID == nextCheckPoint.ID)
                    {
                        bonusMalus.Bonus += entityManager.GetComponentData <PointComponentData>(checkPointEntity).PointValue / (timer.Time == 0 ? float.Epsilon : timer.Time);
                        nextCheckPoint.ID = (nextCheckPoint.ID + 1) % checkPointNumber;
                        entityManager.SetComponentData(entity, nextCheckPoint);
                    }
                    else
                    {
                        bonusMalus.Malus = entityManager.GetComponentData <PointComponentData>(checkPointEntity).PointValue;
                        if (!entityManager.HasComponent <DeadComponentData>(entity))
                        {
                            entityManager.AddComponentData(entity, new DeadComponentData());
                        }
                        collisionState.colliders.Clear();
                        collisionState.presentColliders.Clear();
                    }
                    timer.Time = 0;
                    entityManager.SetComponentData(entity, timer);
                }
                entityManager.SetComponentData(entity, bonusMalus);
            }