From ed08a89f7d7c2690a718d87a57c1c85b851f00ab Mon Sep 17 00:00:00 2001 From: Jonathan <30329245+CookStar@users.noreply.github.com> Date: Fri, 12 Nov 2021 01:27:11 +0900 Subject: [PATCH 1/2] Fixed an animation error when setting a model to Entity. --- .../data/source-python/entities/bms/CBaseEntity.ini | 6 ++++++ .../data/source-python/entities/csgo/CBaseEntity.ini | 6 ++++++ .../data/source-python/entities/gmod/CBaseEntity.ini | 6 ++++++ .../data/source-python/entities/l4d2/CBaseEntity.ini | 6 ++++++ .../data/source-python/entities/orangebox/CBaseEntity.ini | 6 ++++++ .../source-python/packages/source-python/entities/_base.py | 3 +-- 6 files changed, 31 insertions(+), 2 deletions(-) mode change 100644 => 100755 addons/source-python/data/source-python/entities/bms/CBaseEntity.ini mode change 100644 => 100755 addons/source-python/data/source-python/entities/csgo/CBaseEntity.ini mode change 100644 => 100755 addons/source-python/data/source-python/entities/gmod/CBaseEntity.ini mode change 100644 => 100755 addons/source-python/data/source-python/entities/l4d2/CBaseEntity.ini mode change 100644 => 100755 addons/source-python/data/source-python/entities/orangebox/CBaseEntity.ini mode change 100644 => 100755 addons/source-python/packages/source-python/entities/_base.py diff --git a/addons/source-python/data/source-python/entities/bms/CBaseEntity.ini b/addons/source-python/data/source-python/entities/bms/CBaseEntity.ini old mode 100644 new mode 100755 index 6fcaae92d..4de62e712 --- a/addons/source-python/data/source-python/entities/bms/CBaseEntity.ini +++ b/addons/source-python/data/source-python/entities/bms/CBaseEntity.ini @@ -1,5 +1,11 @@ [virtual_function] + # _ZN11CBaseEntity8SetModelEPKc + [[_set_model]] + offset_linux = 27 + offset_windows = 26 + arguments = STRING + # _ZN11CBaseEntity9SetParentEPS_i [[set_parent]] offset_linux = 38 diff --git a/addons/source-python/data/source-python/entities/csgo/CBaseEntity.ini b/addons/source-python/data/source-python/entities/csgo/CBaseEntity.ini old mode 100644 new mode 100755 index 3c70b08d6..b237e2203 --- a/addons/source-python/data/source-python/entities/csgo/CBaseEntity.ini +++ b/addons/source-python/data/source-python/entities/csgo/CBaseEntity.ini @@ -3,6 +3,12 @@ srv_check = False [virtual_function] + # _ZN11CBaseEntity8SetModelEPKc + [[_set_model]] + offset_linux = 28 + offset_windows = 27 + arguments = STRING + # _ZN11CBaseEntity9SetParentEPS_i [[set_parent]] offset_linux = 40 diff --git a/addons/source-python/data/source-python/entities/gmod/CBaseEntity.ini b/addons/source-python/data/source-python/entities/gmod/CBaseEntity.ini old mode 100644 new mode 100755 index d21dad3f7..6647d9b41 --- a/addons/source-python/data/source-python/entities/gmod/CBaseEntity.ini +++ b/addons/source-python/data/source-python/entities/gmod/CBaseEntity.ini @@ -1,5 +1,11 @@ [virtual_function] + # _ZN11CBaseEntity8SetModelEPKc + [[_set_model]] + offset_linux = 25 + offset_windows = 24 + arguments = STRING + # _ZN11CBaseEntity9SetParentEPS_i [[set_parent]] offset_linux = 35 diff --git a/addons/source-python/data/source-python/entities/l4d2/CBaseEntity.ini b/addons/source-python/data/source-python/entities/l4d2/CBaseEntity.ini old mode 100644 new mode 100755 index a7f8e38b4..f0d79b527 --- a/addons/source-python/data/source-python/entities/l4d2/CBaseEntity.ini +++ b/addons/source-python/data/source-python/entities/l4d2/CBaseEntity.ini @@ -1,5 +1,11 @@ [virtual_function] + # _ZN11CBaseEntity8SetModelEPKc + [[_set_model]] + offset_linux = 28 + offset_windows = 27 + arguments = STRING + # _ZN11CBaseEntity9SetParentEPS_i [[set_parent]] offset_linux = 38 diff --git a/addons/source-python/data/source-python/entities/orangebox/CBaseEntity.ini b/addons/source-python/data/source-python/entities/orangebox/CBaseEntity.ini old mode 100644 new mode 100755 index df4ddc2ea..c327e2d8d --- a/addons/source-python/data/source-python/entities/orangebox/CBaseEntity.ini +++ b/addons/source-python/data/source-python/entities/orangebox/CBaseEntity.ini @@ -1,5 +1,11 @@ [virtual_function] + # _ZN11CBaseEntity8SetModelEPKc + [[_set_model]] + offset_linux = 25 + offset_windows = 24 + arguments = STRING + # _ZN11CBaseEntity9SetParentEPS_i [[set_parent]] offset_linux = 35 diff --git a/addons/source-python/packages/source-python/entities/_base.py b/addons/source-python/packages/source-python/entities/_base.py old mode 100644 new mode 100755 index 094c0c2e8..5f9b7dfa4 --- a/addons/source-python/packages/source-python/entities/_base.py +++ b/addons/source-python/packages/source-python/entities/_base.py @@ -431,8 +431,7 @@ def set_model(self, model): :param Model model: The model to set. """ - self.model_index = model.index - self.model_name = model.path + self._set_model(model.path) model = property( get_model, set_model, From 8d200159f8832818aa7b815e6c0e326c53051d09 Mon Sep 17 00:00:00 2001 From: Jonathan <30329245+CookStar@users.noreply.github.com> Date: Wed, 17 Nov 2021 20:53:12 +0900 Subject: [PATCH 2/2] Wrapped Entity.set_model with wrap_entity_mem_func. --- .../data/source-python/entities/bms/CBaseEntity.ini | 2 +- .../source-python/entities/csgo/CBaseEntity.ini | 2 +- .../source-python/entities/gmod/CBaseEntity.ini | 2 +- .../source-python/entities/l4d2/CBaseEntity.ini | 2 +- .../entities/orangebox/CBaseEntity.ini | 2 +- .../packages/source-python/entities/_base.py | 13 +++++++++---- 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/addons/source-python/data/source-python/entities/bms/CBaseEntity.ini b/addons/source-python/data/source-python/entities/bms/CBaseEntity.ini index 4de62e712..faa2a2b2b 100755 --- a/addons/source-python/data/source-python/entities/bms/CBaseEntity.ini +++ b/addons/source-python/data/source-python/entities/bms/CBaseEntity.ini @@ -1,7 +1,7 @@ [virtual_function] # _ZN11CBaseEntity8SetModelEPKc - [[_set_model]] + [[set_model]] offset_linux = 27 offset_windows = 26 arguments = STRING diff --git a/addons/source-python/data/source-python/entities/csgo/CBaseEntity.ini b/addons/source-python/data/source-python/entities/csgo/CBaseEntity.ini index b237e2203..aeab5154e 100755 --- a/addons/source-python/data/source-python/entities/csgo/CBaseEntity.ini +++ b/addons/source-python/data/source-python/entities/csgo/CBaseEntity.ini @@ -4,7 +4,7 @@ srv_check = False [virtual_function] # _ZN11CBaseEntity8SetModelEPKc - [[_set_model]] + [[set_model]] offset_linux = 28 offset_windows = 27 arguments = STRING diff --git a/addons/source-python/data/source-python/entities/gmod/CBaseEntity.ini b/addons/source-python/data/source-python/entities/gmod/CBaseEntity.ini index 6647d9b41..d401cf60b 100755 --- a/addons/source-python/data/source-python/entities/gmod/CBaseEntity.ini +++ b/addons/source-python/data/source-python/entities/gmod/CBaseEntity.ini @@ -1,7 +1,7 @@ [virtual_function] # _ZN11CBaseEntity8SetModelEPKc - [[_set_model]] + [[set_model]] offset_linux = 25 offset_windows = 24 arguments = STRING diff --git a/addons/source-python/data/source-python/entities/l4d2/CBaseEntity.ini b/addons/source-python/data/source-python/entities/l4d2/CBaseEntity.ini index f0d79b527..c05ee3d7a 100755 --- a/addons/source-python/data/source-python/entities/l4d2/CBaseEntity.ini +++ b/addons/source-python/data/source-python/entities/l4d2/CBaseEntity.ini @@ -1,7 +1,7 @@ [virtual_function] # _ZN11CBaseEntity8SetModelEPKc - [[_set_model]] + [[set_model]] offset_linux = 28 offset_windows = 27 arguments = STRING diff --git a/addons/source-python/data/source-python/entities/orangebox/CBaseEntity.ini b/addons/source-python/data/source-python/entities/orangebox/CBaseEntity.ini index c327e2d8d..3e6705de7 100755 --- a/addons/source-python/data/source-python/entities/orangebox/CBaseEntity.ini +++ b/addons/source-python/data/source-python/entities/orangebox/CBaseEntity.ini @@ -1,7 +1,7 @@ [virtual_function] # _ZN11CBaseEntity8SetModelEPKc - [[_set_model]] + [[set_model]] offset_linux = 25 offset_windows = 24 arguments = STRING diff --git a/addons/source-python/packages/source-python/entities/_base.py b/addons/source-python/packages/source-python/entities/_base.py index 5f9b7dfa4..67dab393b 100755 --- a/addons/source-python/packages/source-python/entities/_base.py +++ b/addons/source-python/packages/source-python/entities/_base.py @@ -425,16 +425,21 @@ def get_model(self): return Model(model_name) + @wrap_entity_mem_func def set_model(self, model): """Set the entity's model to the given model. - :param Model model: - The model to set. + :param str/Model model: + The model path or model to set. """ - self._set_model(model.path) + if isinstance(model, Model): + model = model.path + + return [model] model = property( - get_model, set_model, + get_model, + lambda self, model: self.set_model(model), doc="""Property to get/set the entity's model. .. seealso:: :meth:`get_model` and :meth:`set_model`""")