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); }
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); }