Ejemplo n.º 1
0
        private static List <Gk3Main.Game.NounVerbCase> getNounVerbCasesUnderCursor(Gk3Main.Graphics.Camera camera, int mx, int my)
        {
            if (camera == null)
            {
                throw new ArgumentNullException("camera");
            }

            Gk3Main.Math.Vector3 unprojected = camera.Unproject(new Gk3Main.Math.Vector3(mx, my, 0));


            string model = Gk3Main.SceneManager.GetCollisionModel(camera.Position, (unprojected - camera.Position).Normalize(), 1000.0f);

            if (model != null)
            {
                Gk3Main.Game.Nouns noun = Gk3Main.SceneManager.GetModelNoun(model);

                if (noun != Gk3Main.Game.Nouns.N_NONE)
                {
                    List <Gk3Main.Game.NounVerbCase> nvcs = Gk3Main.Game.NvcManager.GetNounVerbCases(noun, true);

                    if (nvcs.Count > 0)
                    {
                        return(nvcs);
                    }
                }
            }

            return(null);
        }
Ejemplo n.º 2
0
        private static int getNounVerbCaseCountUnderCursor(Gk3Main.Graphics.Camera camera, int mx, int my)
        {
            if (camera == null)
            {
                throw new ArgumentNullException("camera");
            }

            Gk3Main.Math.Vector3 unprojected = camera.Unproject(new Gk3Main.Math.Vector3(mx, my, 0));


            string model = Gk3Main.SceneManager.GetCollisionModel(camera.Position, (unprojected - camera.Position).Normalize(), 1000.0f);

            Gk3Main.Game.Nouns noun;

            if (model != null)
            {
                noun = Gk3Main.SceneManager.GetModelNoun(model);

                if (_lastNoun != noun)
                {
                    _lastNoun = noun;

                    if (noun != Gk3Main.Game.Nouns.N_NONE)
                    {
                        int count = Gk3Main.Game.NvcManager.GetNounVerbCases(noun, true).Count;
                        _lastNounVerbCount = count;
                    }
                    else
                    {
                        _lastNounVerbCount = 0;
                    }
                }
            }
            else
            {
                _lastNoun          = Gk3Main.Game.Nouns.N_NONE;
                _lastNounVerbCount = 0;
            }

            return(_lastNounVerbCount);
        }