Esempio n. 1
0
        public Task <MediaResult> TakePhotoAsync(CameraOption option)
        {
            if (!IsThereAnAppToTakePictures())
            {
                return(Task.FromResult(new MediaResult(false)
                {
                    Message = "Camera not supported."
                }));
            }
            if (string.IsNullOrWhiteSpace(option.FilePath))
            {
                option.FilePath = string.Format("{0}/{1}", GetPublicDirectoryPath(), GenerateUniqueFileName("jpg"));
            }

            _tcs  = new TaskCompletionSource <MediaResult>();
            _file = new File(option.FilePath);
            Intent intent = new Intent(_context, typeof(MediaActivity));

            intent.PutExtra("ActivityType", ActivityType.TakePhoto);
            intent.PutExtra("FilePath", _file.Path);
            intent.PutExtra("MaxWidth", option.MaxWidth);
            intent.PutExtra("MaxHeight", option.MaxHeight);
            _context.StartActivity(intent);
            return(_tcs.Task);
        }
Esempio n. 2
0
    public void ChangeCamera(CameraOption option)
    {
        Debug.Log("Changing to " + option);
        currentCamera = option;
        switch (option)
        {
        case CameraOption.GodView:
            if (ActualCamera.GetComponent <SteamVR_Camera>().enabled)
            {
                ActualCamera.GetComponent <SteamVR_Camera>().enabled = false;
                ActualCamera.GetComponent <SteamVR_Camera>().Collapse();
            }
            ChangeParent(GodViewCamera);
            break;

        case CameraOption.FirstPerson:
            if (ActualCamera.GetComponent <SteamVR_Camera>().enabled)
            {
                ActualCamera.GetComponent <SteamVR_Camera>().enabled = false;
                ActualCamera.GetComponent <SteamVR_Camera>().Collapse();
            }
            ChangeParent(FirstPersonCamera);
            break;

        case CameraOption.VR:
            ChangeParent(GodViewVRCamera);
            ActualCamera.GetComponent <SteamVR_Camera>().enabled = true;
            break;

        default:
            break;
        }
    }
Esempio n. 3
0
    /// <summary>
    /// Initializes cameras in the scene.
    /// </summary>
    /// <param name="player">The player in the scene.</param>
    public void InitializeCameras(Player player)
    {
        cameras = new Camera[cameraPrefabs.Length];

        for (int i = 0; i < cameras.Length; i++)
        {
            GameObject   cameraObject = GameObject.Instantiate(cameraPrefabs[i]);
            CameraOption option       = cameraObject.GetComponent <CameraOption>();
            if (option != null)
            {
                option.SetPlayer(player);
            }
            cameras[i] = cameraObject.GetComponentInChildren <Camera>();
            cameras[i].gameObject.SetActive(i == cameraIndex);
        }
    }
        public bool HandleKeyPress(KeyInput e)
        {
            if (e.Event == KeyInputEvent.Down)
            {
                var h = Hotkey.FromKeyInput(e);
                if (h == Game.Settings.Keys.ObserverCombinedView && !limitViews)
                {
                    selected = combined;
                    selected.OnClick();

                    return(true);
                }

                if (h == Game.Settings.Keys.ObserverWorldView && !limitViews)
                {
                    selected = disableShroud;
                    selected.OnClick();

                    return(true);
                }

                if (e.Key >= Keycode.NUMBER_0 && e.Key <= Keycode.NUMBER_9)
                {
                    var key  = (int)e.Key - (int)Keycode.NUMBER_0;
                    var team = teams.Where(t => t.Key == key).SelectMany(s => s);
                    if (!team.Any())
                    {
                        return(false);
                    }

                    if (e.Modifiers == Modifiers.Shift)
                    {
                        team = team.Reverse();
                    }

                    selected = team.SkipWhile(t => t.Player != selected.Player).Skip(1).FirstOrDefault() ?? team.FirstOrDefault();
                    selected.OnClick();

                    return(true);
                }
            }

            return(false);
        }
        public bool HandleKeyPress(KeyInput e)
        {
            if (e.Event == KeyInputEvent.Down && !e.IsRepeat)
            {
                if (combinedViewKey.IsActivatedBy(e) && !limitViews)
                {
                    selected = combined;
                    selected.OnClick();

                    return(true);
                }

                if (worldViewKey.IsActivatedBy(e) && !limitViews)
                {
                    selected = disableShroud;
                    selected.OnClick();

                    return(true);
                }

                if (e.Key >= Keycode.NUMBER_0 && e.Key <= Keycode.NUMBER_9)
                {
                    var key  = (int)e.Key - (int)Keycode.NUMBER_0;
                    var team = teams.Where(t => t.Key == key).SelectMany(s => s);
                    if (!team.Any())
                    {
                        return(false);
                    }

                    if (e.Modifiers == Modifiers.Shift)
                    {
                        team = team.Reverse();
                    }

                    selected = team.SkipWhile(t => t.Player != selected.Player).Skip(1).FirstOrDefault() ?? team.FirstOrDefault();
                    selected.OnClick();

                    return(true);
                }
            }

            return(false);
        }
Esempio n. 6
0
    private void SetCameraView(CameraViewOptions view)
    {
        State.currentView = view;
        bool isFP = view == CameraViewOptions.FirstPerson;

        FPCam.Cam.gameObject.SetActive(isFP);
        TPCam.Cam.gameObject.SetActive(!isFP);

        if (isFP)
        {
            _currentCam       = FPCam;
            _currentCamOption = FPCamOption;
        }
        else
        {
            _currentCam       = TPCam;
            _currentCamOption = TPCamOption;
        }
    }
Esempio n. 7
0
    private void SetCameraOptions()
    {
        CameraOptions = new CameraOption[CAMERA_OPTIONS_NUMBER];
        int i = 0;

        CameraOptions[i++] = new CameraOption
                                 ("Back View", false, false, 62,
                                 new Vector3(0f, 7.3f, -11.3f), Quaternion.Euler(18.5f, 0, 0));

        CameraOptions[i++] = new CameraOption
                                 ("Back Top View", false, false, 62,
                                 new Vector3(0.0f, 10f, -19f), Quaternion.Euler(16, 0, 0));

        CameraOptions[i++] = new CameraOption
                                 ("Side View", false, false, 62,
                                 new Vector3(-6.55f, 8.68f, -15.8f), Quaternion.Euler(13.4f, 18.5f, 0));

        CameraOptions[i++] = new CameraOption
                                 ("Front View", false, false, 62,
                                 new Vector3(0.0f, 6.5f, 29.8f), Quaternion.Euler(17.5f, 180, 0), true);
    }
Esempio n. 8
0
 public void ChangeCamera(CameraOption option)
 {
     Debug.Log("Changing to " + option);
     currentCamera = option;
     switch (option)
     {
         case CameraOption.GodView:
     #if SteamVR
             if(ActualCamera.GetComponent<SteamVR_Camera>().enabled)
             {
                 ActualCamera.GetComponent<SteamVR_Camera>().enabled = false;
                 ActualCamera.GetComponent<SteamVR_Camera>().Collapse();
             }
     #endif
             ChangeParent(GodViewCamera);
             break;
         case CameraOption.FirstPerson:
     #if SteamVR
             if (ActualCamera.GetComponent<SteamVR_Camera>().enabled)
             {
                 ActualCamera.GetComponent<SteamVR_Camera>().enabled = false;
                 ActualCamera.GetComponent<SteamVR_Camera>().Collapse();
             }
     #endif
             ChangeParent(FirstPersonCamera);
             break;
     #if SteamVR
         case CameraOption.VR:
             ChangeParent(GodViewVRCamera);
             ActualCamera.GetComponent<SteamVR_Camera>().enabled = true;
             break;
     #endif
         default:
             break;
     }
 }
Esempio n. 9
0
        public Task <MediaResult> TakePhotoAsync(CameraOption option)
        {
            if (string.IsNullOrWhiteSpace(option.FilePath))
            {
                option.FilePath = System.IO.Path.Combine(GetPublicDirectoryPath(), GenerateUniqueFileName("jpeg"));
            }

            var task = new TaskCompletionSource <MediaResult>();

            try
            {
                var picker = new ImagePickerController();
                picker.TakePhotoAsync(GetController(), (nsDict) =>
                {
                    if (nsDict == null)
                    {
                        task.SetResult(new MediaResult(false)
                        {
                            Message = "Cancelled."
                        });
                        return;
                    }
                    var photo = nsDict.ValueForKey(new NSString("UIImagePickerControllerOriginalImage")) as UIImage;
                    if (option.MaxHeight > 0 && option.MaxWidth > 0)
                    {
                        photo.Scale(new CoreGraphics.CGSize(option.MaxWidth, option.MaxHeight));
                    }

                    try
                    {
                        NSData imgData = photo.AsJPEG();
                        NSError err    = null;
                        if (imgData.Save(option.FilePath, false, out err))
                        {
                            task.SetResult(new MediaResult(true)
                            {
                                FilePath = option.FilePath
                            });
                        }
                        else
                        {
                            task.SetResult(null);
                        }
                    }
                    catch (Exception ex)
                    {
                        task.SetResult(new MediaResult(false)
                        {
                            Message = ex.Message
                        });
                    }
                });
            }
            catch (Exception ex)
            {
                task.SetResult(new MediaResult(false)
                {
                    Message = ex.Message
                });
            }
            return(task.Task);
        }
        public ObserverShroudSelectorLogic(Widget widget, World world)
        {
            var groups = new Dictionary<string, IEnumerable<CameraOption>>();

            teams = world.Players.Where(p => !p.NonCombatant)
                .Select(p => new CameraOption(this, p))
                .GroupBy(p => (world.LobbyInfo.ClientWithIndex(p.Player.ClientIndex) ?? new Session.Client()).Team)
                .OrderBy(g => g.Key);

            var noTeams = teams.Count() == 1;
            foreach (var t in teams)
            {
                var label = noTeams ? "Players" : t.Key == 0 ? "No Team" : "Team {0}".F(t.Key);
                groups.Add(label, t);
            }

            combined = new CameraOption(this, world, "All Players", world.Players.First(p => p.InternalName == "Everyone"));
            disableShroud = new CameraOption(this, world, "Disable Shroud", null);
            groups.Add("Other", new List<CameraOption>() { combined, disableShroud });

            var shroudSelector = widget.Get<DropDownButtonWidget>("SHROUD_SELECTOR");
            shroudSelector.OnMouseDown = _ =>
            {
                Func<CameraOption, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
                {
                    var item = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
                    var showFlag = option.Race != null;

                    var label = item.Get<LabelWidget>("LABEL");
                    label.IsVisible = () => showFlag;
                    label.GetText = () => option.Label;
                    label.GetColor = () => option.Color;

                    var flag = item.Get<ImageWidget>("FLAG");
                    flag.IsVisible = () => showFlag;
                    flag.GetImageCollection = () => "flags";
                    flag.GetImageName = () => option.Race;

                    var labelAlt = item.Get<LabelWidget>("NOFLAG_LABEL");
                    labelAlt.IsVisible = () => !showFlag;
                    labelAlt.GetText = () => option.Label;
                    labelAlt.GetColor = () => option.Color;

                    return item;
                };

                shroudSelector.ShowDropDown("SPECTATOR_DROPDOWN_TEMPLATE", 400, groups, setupItem);
            };

            var shroudLabel = shroudSelector.Get<LabelWidget>("LABEL");
            shroudLabel.IsVisible = () => selected.Race != null;
            shroudLabel.GetText = () => selected.Label;
            shroudLabel.GetColor = () => selected.Color;

            var shroudFlag = shroudSelector.Get<ImageWidget>("FLAG");
            shroudFlag.IsVisible = () => selected.Race != null;
            shroudFlag.GetImageCollection = () => "flags";
            shroudFlag.GetImageName = () => selected.Race;

            var shroudLabelAlt = shroudSelector.Get<LabelWidget>("NOFLAG_LABEL");
            shroudLabelAlt.IsVisible = () => selected.Race == null;
            shroudLabelAlt.GetText = () => selected.Label;
            shroudLabelAlt.GetColor = () => selected.Color;

            var keyhandler = shroudSelector.Get<LogicKeyListenerWidget>("SHROUD_KEYHANDLER");
            keyhandler.OnKeyPress = HandleKeyPress;

            selected = disableShroud;
        }
        public bool HandleKeyPress(KeyInput e)
        {
            if (e.Event == KeyInputEvent.Down)
            {
                var h = Hotkey.FromKeyInput(e);
                if (h == Game.Settings.Keys.ObserverCombinedView)
                {
                    selected = combined;
                    selected.OnClick();

                    return true;
                }

                if (h == Game.Settings.Keys.ObserverWorldView)
                {
                    selected = disableShroud;
                    selected.OnClick();

                    return true;
                }

                if (e.Key >= Keycode.NUMBER_0 && e.Key <= Keycode.NUMBER_9)
                {
                    var key = (int)e.Key - (int)Keycode.NUMBER_0;
                    var team = teams.Where(t => t.Key == key).SelectMany(s => s);
                    if (!team.Any())
                        return false;

                    if (e.Modifiers == Modifiers.Shift)
                        team = team.Reverse();

                    selected = team.SkipWhile(t => t.Player != selected.Player).Skip(1).FirstOrDefault() ?? team.FirstOrDefault();
                    selected.OnClick();

                    return true;
                }
            }

            return false;
        }
        public ObserverShroudSelectorLogic(Widget widget, World world)
        {
            limitViews = world.Map.Visibility.HasFlag(MapVisibility.MissionSelector);

            var groups = new Dictionary <string, IEnumerable <CameraOption> >();

            combined      = new CameraOption(this, world, "All Players", world.Players.First(p => p.InternalName == "Everyone"));
            disableShroud = new CameraOption(this, world, "Disable Shroud", null);
            if (!limitViews)
            {
                groups.Add("Other", new List <CameraOption>()
                {
                    combined, disableShroud
                });
            }

            teams = world.Players.Where(p => !p.NonCombatant && p.Playable)
                    .Select(p => new CameraOption(this, p))
                    .GroupBy(p => (world.LobbyInfo.ClientWithIndex(p.Player.ClientIndex) ?? new Session.Client()).Team)
                    .OrderBy(g => g.Key);

            var noTeams = teams.Count() == 1;

            foreach (var t in teams)
            {
                var label = noTeams ? "Players" : t.Key == 0 ? "No Team" : "Team {0}".F(t.Key);
                groups.Add(label, t);
            }

            var shroudSelector = widget.Get <DropDownButtonWidget>("SHROUD_SELECTOR");

            shroudSelector.OnMouseDown = _ =>
            {
                Func <CameraOption, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
                {
                    var item     = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
                    var showFlag = option.Faction != null;

                    var label = item.Get <LabelWidget>("LABEL");
                    label.IsVisible = () => showFlag;
                    label.GetText   = () => option.Label;
                    label.GetColor  = () => option.Color;

                    var flag = item.Get <ImageWidget>("FLAG");
                    flag.IsVisible          = () => showFlag;
                    flag.GetImageCollection = () => "flags";
                    flag.GetImageName       = () => option.Faction;

                    var labelAlt = item.Get <LabelWidget>("NOFLAG_LABEL");
                    labelAlt.IsVisible = () => !showFlag;
                    labelAlt.GetText   = () => option.Label;
                    labelAlt.GetColor  = () => option.Color;

                    return(item);
                };

                shroudSelector.ShowDropDown("SPECTATOR_DROPDOWN_TEMPLATE", 400, groups, setupItem);
            };

            var shroudLabel = shroudSelector.Get <LabelWidget>("LABEL");

            shroudLabel.IsVisible = () => selected.Faction != null;
            shroudLabel.GetText   = () => selected.Label;
            shroudLabel.GetColor  = () => selected.Color;

            var shroudFlag = shroudSelector.Get <ImageWidget>("FLAG");

            shroudFlag.IsVisible          = () => selected.Faction != null;
            shroudFlag.GetImageCollection = () => "flags";
            shroudFlag.GetImageName       = () => selected.Faction;

            var shroudLabelAlt = shroudSelector.Get <LabelWidget>("NOFLAG_LABEL");

            shroudLabelAlt.IsVisible = () => selected.Faction == null;
            shroudLabelAlt.GetText   = () => selected.Label;
            shroudLabelAlt.GetColor  = () => selected.Color;

            var keyhandler = shroudSelector.Get <LogicKeyListenerWidget>("SHROUD_KEYHANDLER");

            keyhandler.OnKeyPress = HandleKeyPress;

            selected = limitViews ? groups.First().Value.First() : disableShroud;
            selected.OnClick();
        }
Esempio n. 13
0
        public ObserverShroudSelectorLogic(Widget widget, ModData modData, World world, WorldRenderer worldRenderer, Dictionary <string, MiniYaml> logicArgs)
        {
            this.world = world;

            MiniYaml yaml;

            if (logicArgs.TryGetValue("CombinedViewKey", out yaml))
            {
                combinedViewKey = modData.Hotkeys[yaml.Value];
            }

            if (logicArgs.TryGetValue("WorldViewKey", out yaml))
            {
                worldViewKey = modData.Hotkeys[yaml.Value];
            }

            limitViews = world.Map.Visibility.HasFlag(MapVisibility.MissionSelector);

            var groups = new Dictionary <string, IEnumerable <CameraOption> >();

            combined      = new CameraOption(this, world, "All Players", world.Players.First(p => p.InternalName == "Everyone"));
            disableShroud = new CameraOption(this, world, "Disable Shroud", null);
            if (!limitViews)
            {
                groups.Add("Other", new List <CameraOption>()
                {
                    combined, disableShroud
                });
            }

            teams = world.Players.Where(p => !p.NonCombatant && p.Playable)
                    .Select(p => new CameraOption(this, p))
                    .GroupBy(p => (world.LobbyInfo.ClientWithIndex(p.Player.ClientIndex) ?? new Session.Client()).Team)
                    .OrderBy(g => g.Key);

            var noTeams = teams.Count() == 1;

            foreach (var t in teams)
            {
                var label = noTeams ? "Players" : t.Key == 0 ? "No Team" : "Team {0}".F(t.Key);
                groups.Add(label, t);
            }

            var shroudSelector = widget.Get <DropDownButtonWidget>("SHROUD_SELECTOR");

            shroudSelector.OnMouseDown = _ =>
            {
                Func <CameraOption, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
                {
                    var item     = ScrollItemWidget.Setup(template, option.IsSelected, option.OnClick);
                    var showFlag = option.Faction != null;

                    var label = item.Get <LabelWidget>("LABEL");
                    label.IsVisible = () => showFlag;
                    label.GetColor  = () => option.Color;

                    if (showFlag)
                    {
                        WidgetUtils.BindPlayerNameAndStatus(label, option.Player);
                    }
                    else
                    {
                        label.GetText = () => option.Label;
                    }

                    var flag = item.Get <ImageWidget>("FLAG");
                    flag.IsVisible          = () => showFlag;
                    flag.GetImageCollection = () => "flags";
                    flag.GetImageName       = () => option.Faction;

                    var labelAlt = item.Get <LabelWidget>("NOFLAG_LABEL");
                    labelAlt.IsVisible = () => !showFlag;
                    labelAlt.GetText   = () => option.Label;
                    labelAlt.GetColor  = () => option.Color;

                    return(item);
                };

                shroudSelector.ShowDropDown("SPECTATOR_DROPDOWN_TEMPLATE", 400, groups, setupItem);
            };

            shroudLabel           = shroudSelector.Get <LabelWidget>("LABEL");
            shroudLabel.IsVisible = () => selected.Faction != null;
            shroudLabel.GetText   = () => selected.Label;
            shroudLabel.GetColor  = () => selected.Color;

            var shroudFlag = shroudSelector.Get <ImageWidget>("FLAG");

            shroudFlag.IsVisible          = () => selected.Faction != null;
            shroudFlag.GetImageCollection = () => "flags";
            shroudFlag.GetImageName       = () => selected.Faction;

            var shroudLabelAlt = shroudSelector.Get <LabelWidget>("NOFLAG_LABEL");

            shroudLabelAlt.IsVisible = () => selected.Faction == null;
            shroudLabelAlt.GetText   = () => selected.Label;
            shroudLabelAlt.GetColor  = () => selected.Color;

            var keyhandler = shroudSelector.Get <LogicKeyListenerWidget>("SHROUD_KEYHANDLER");

            keyhandler.AddHandler(HandleKeyPress);

            selected = limitViews ? groups.First().Value.First() : world.WorldActor.Owner.Shroud.ExploreMapEnabled ? combined : disableShroud;
            selected.OnClick();

            // Enable zooming out to fractional zoom levels
            worldRenderer.Viewport.UnlockMinimumZoom(0.5f);
        }
Esempio n. 14
0
 public DragForm(CameraOption _cameraOption, Point point)
 {
     // TODO: Complete member initialization
     this._cameraOption = _cameraOption;
     this.point = point;
 }
Esempio n. 15
0
 private void Initialise()
 {
     cameraOption            = Settings.Instance.ChosenCameraOption;
     Camera.main.fieldOfView = cameraOption.FieldOfView;
 }
Esempio n. 16
0
 private CameraOption readCameraOption()
 {
     CameraOption returnTarget = new CameraOption();
     return returnTarget;
 }