ActorManager.lua 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. --========================================================================
  2. -- ActorManager.lua : Defines the ActorManager class
  3. --
  4. -- Part of the GameCode4 Application
  5. --
  6. -- GameCode4 is the sample application that encapsulates much of the source code
  7. -- discussed in "Game Coding Complete - 4th Edition" by Mike McShaffry and David
  8. -- "Rez" Graham, published by Charles River Media.
  9. -- ISBN-10: 1133776574 | ISBN-13: 978-1133776574
  10. --
  11. -- If this source code has found it's way to you, and you think it has helped you
  12. -- in any way, do the authors a favor and buy a new copy of the book - there are
  13. -- detailed explanations in it that compliment this code well. Buy a copy at Amazon.com
  14. -- by clicking here:
  15. -- http://www.amazon.com/gp/product/1133776574/ref=olp_product_details?ie=UTF8&me=&seller=
  16. --
  17. -- There's a companion web site at http://www.mcshaffry.com/GameCode/
  18. --
  19. -- The source code is managed and maintained through Google Code:
  20. -- http://code.google.com/p/gamecode4/
  21. --
  22. -- (c) Copyright 2012 Michael L. McShaffry and David Graham
  23. --
  24. -- This program is free software; you can redistribute it and/or
  25. -- modify it under the terms of the GNU Lesser GPL v3
  26. -- as published by the Free Software Foundation.
  27. --
  28. -- This program is distributed in the hope that it will be useful,
  29. -- but WITHOUT ANY WARRANTY; without even the implied warranty of
  30. -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
  31. -- http://www.gnu.org/licenses/lgpl-3.0.txt for more details.
  32. --
  33. -- You should have received a copy of the GNU Lesser GPL v3
  34. -- along with this program; if not, write to the Free Software
  35. -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  36. --
  37. --========================================================================
  38. -----------------------------------------------------------------------------------------------------------------------
  39. -- ActorManager - Chapter 21, page 739
  40. -- This class manages the script representation of all actors in the game.
  41. -----------------------------------------------------------------------------------------------------------------------
  42. ActorManager = class(nil,
  43. {
  44. _player = nil, -- this will be filled automatically when player_teapot.xml is loaded
  45. });
  46. function ActorManager:AddPlayer(scriptObject)
  47. if (self._player ~= nil) then
  48. print("Attempting to add player to ActorManager when one already exists; id = " .. self._player:GetActorId());
  49. end
  50. -- add the new player regardless
  51. self._player = scriptObject;
  52. -- tell the human view that this is the controlled actor
  53. QueueEvent(EventType.EvtData_Set_Controlled_Actor, self._player:GetActorId());
  54. end