GeomEntity.lua 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. ----------------------------------------------------------------------------------------------------
  2. --
  3. -- Copyright (c) Contributors to the Open 3D Engine Project.
  4. -- For complete copyright and license terms please see the LICENSE at the root of this distribution.
  5. --
  6. -- SPDX-License-Identifier: Apache-2.0 OR MIT
  7. --
  8. --
  9. --
  10. ----------------------------------------------------------------------------------------------------
  11. Script.ReloadScript("scripts/Utils/EntityUtils.lua")
  12. GeomEntity =
  13. {
  14. Client = {},
  15. Server = {},
  16. Editor={
  17. Icon="physicsobject.bmp",
  18. IconOnTop=1,
  19. }
  20. }
  21. --------------------------------------------------------------------------
  22. function GeomEntity.Server:OnInit()
  23. self:SetFlags(ENTITY_FLAG_CLIENT_ONLY,0);
  24. end
  25. --------------------------------------------------------------------------
  26. function GeomEntity.Client:OnInit()
  27. self:SetFlags(ENTITY_FLAG_CLIENT_ONLY,0);
  28. end
  29. ------------------------------------------------------------------------------------------------------
  30. function GeomEntity:OnPhysicsBreak( vPos,nPartId,nOtherPartId )
  31. self:ActivateOutput("Break",nPartId+1 );
  32. end
  33. ------------------------------------------------------------------------------------------------------
  34. function GeomEntity:Event_Remove()
  35. self:DrawSlot(0,0);
  36. self:DestroyPhysics();
  37. self:ActivateOutput( "Remove", true );
  38. end
  39. ------------------------------------------------------------------------------------------------------
  40. function GeomEntity:Event_Hide()
  41. self:Hide(1);
  42. self:ActivateOutput( "Hide", true );
  43. end
  44. ------------------------------------------------------------------------------------------------------
  45. function GeomEntity:Event_UnHide()
  46. self:Hide(0);
  47. self:ActivateOutput( "UnHide", true );
  48. end
  49. function GeomEntity:OnLoad(table)
  50. self.health = table.health;
  51. self.dead = table.dead;
  52. if(table.bAnimateOffScreenShadow) then
  53. self.bAnimateOffScreenShadow = table.bAnimateOffScreenShadow;
  54. else
  55. self.bAnimateOffScreenShadow = false;
  56. end
  57. end
  58. function GeomEntity:OnSave(table)
  59. table.health = self.health;
  60. table.dead = self.dead;
  61. if(self.bAnimateOffScreenShadow) then
  62. table.bAnimateOffScreenShadow = self.bAnimateOffScreenShadow;
  63. else
  64. table.bAnimateOffScreenShadow = false;
  65. end
  66. end
  67. -------------------------------------------------------
  68. function GeomEntity:OnPropertyChange()
  69. self:OnReset();
  70. end
  71. GeomEntity.FlowEvents =
  72. {
  73. Inputs =
  74. {
  75. Hide = { GeomEntity.Event_Hide, "bool" },
  76. UnHide = { GeomEntity.Event_UnHide, "bool" },
  77. Remove = { GeomEntity.Event_Remove, "bool" },
  78. },
  79. Outputs =
  80. {
  81. Hide = "bool",
  82. UnHide = "bool",
  83. Remove = "bool",
  84. Break = "int",
  85. },
  86. }
  87. MakeTargetableByAI(GeomEntity);
  88. MakeKillable(GeomEntity);
  89. MakeRenderProxyOptions(GeomEntity);