Пример #1
0
    protected override void Execute(List <TimeEntity> entities)
    {
        return;

        if (_movers.count == 0)
        {
            return;
        }

        while (futureMovements.Count > _movers.count)
        {
            GameObject go = futureMovements[0].gameObject;
            futureMovements.RemoveAt(0);
            GameObject.Destroy(go);
        }

        while (futureMovements.Count < _movers.count)
        {
            LineRenderer lr = new GameObject("future move").AddComponent <LineRenderer> ();
            lr.positionCount = FUTURE_FRAMES;
            lr.startWidth    = 0.1f;
            lr.endWidth      = 0.1f;
            futureMovements.Add(lr);
        }

//		_timeContext.logicSystem.system.Initialize ();

        LogicContext gc = new LogicContext();

        foreach (LogicEntity e in _LogicContext.GetEntities())
        {
            gc.CloneEntity(e, true, e.GetComponentIndices());
        }

        for (int i = 0; i < FUTURE_FRAMES; i++)
        {
            _timeContext.ReplaceTick(_timeContext.tick.value++);

            foreach (InputEntity e in _inputSources)
            {
                e.ReplaceControllerInput(e.controllerInput.snapshot);
            }


            _timeContext.logicSystem.system.Execute();
            _timeContext.logicSystem.system.Cleanup();

            int j = 0;
            foreach (LogicEntity mover in _movers)
            {
                futureMovements[j].SetPosition(i, new Vector3(

                                                   mover.position.value.x.ToFloat(),
                                                   mover.position.value.y.ToFloat(),
                                                   0

                                                   ));
                j++;
            }
        }

        foreach (LogicEntity e in _LogicContext.GetEntities())
        {
            e.isDestroyed = true;
        }

        _timeContext.logicSystem.system.Execute();
        _timeContext.logicSystem.system.Cleanup();

        foreach (LogicEntity ge in gc.GetEntities())
        {
            _LogicContext.CloneEntity(ge, true, ge.GetComponentIndices());
        }

        foreach (InputEntity e in _inputSources)
        {
            e.ReplaceControllerInput(e.controllerInput.snapshot);
        }
    }