Exemplo n.º 1
0
        protected override void InternalExecute()
        {
            PlayerEntity playerEntity = _contexts.player.flagSelfEntity;

            if (_myTerrain != null && playerEntity != null)
            {
                Vector3 playerPos = playerEntity.position.Value;

                pos.Set(playerPos.x - _myTerrain.InitPosition.x, playerPos.y - _myTerrain.InitPosition.y, playerPos.z - _myTerrain.InitPosition.z);

                velocity = playerEntity.playerMove.Velocity;
                if (playerEntity.IsOnVehicle())
                {
                    var vehicle = PlayerVehicleUtility.GetVehicle(playerEntity, _contexts.vehicle);
                    if (vehicle != null)
                    {
                        var friction = _myTerrain.GetVehicleFriction(playerPos, vehicle.vehicleAssetInfo.Id);
                        gripFriction = friction.Grip;
                        dragFriction = friction.Drag;
                    }
                    else
                    {
                        gripFriction = _myTerrain.GetGripFriction(playerPos);
                        dragFriction = _myTerrain.GetDragFriction(playerPos);
                    }
                }
                else
                {
                    gripFriction = _myTerrain.GetGripFriction(playerPos);
                    dragFriction = _myTerrain.GetDragFriction(playerPos);
                }

                textureId = _myTerrain.GetId(playerPos);
            }
        }