From 0c4f6a367720729646983e3e5a3f78cac352a339 Mon Sep 17 00:00:00 2001
From: shinedday <shinedday@gmail.com>
Date: Mon, 17 May 2021 15:13:21 +0200
Subject: [PATCH] Add amasIHM

---
 pyAmakCore/classes/tools/amasIHM.py | 36 +++++++++++++++++++++++++++++
 setup.py                            |  2 +-
 2 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 pyAmakCore/classes/tools/amasIHM.py

diff --git a/pyAmakCore/classes/tools/amasIHM.py b/pyAmakCore/classes/tools/amasIHM.py
new file mode 100644
index 0000000..5c1a688
--- /dev/null
+++ b/pyAmakCore/classes/tools/amasIHM.py
@@ -0,0 +1,36 @@
+"""
+Amas class that need to be used for pyAmakIhm
+"""
+from pyAmakCore.classes.amas import Amas
+from pyAmakCore.classes.environment import Environment
+
+
+class AmasIHM(Amas):
+    """
+    Convenient class to override while using pyAmakIHM
+    """
+
+    def __init__(self, environment: Environment):
+        self.__observer = None
+        super().__init__(environment)
+
+    def get_Agents_Sorted(self):
+        """
+        sort agent by id
+        """
+        agents = self.get_agents()
+        agents.sort(key=lambda x: x.get_id())
+        return agents
+
+    def cycle(self) -> None:
+        """
+        override amas cycle, to update obsever after each cycle
+        """
+        super().cycle()
+        self.__observer.updateCycle(self.get_environment(), self)
+
+    def attach(self, observer: 'Controleur') -> None:
+        """
+        set observer pointer to observer
+        """
+        self.__observer = observer
diff --git a/setup.py b/setup.py
index 58c025a..fec18fe 100644
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
 setup(
     name='pyAmakCore',
     packages=find_packages(),
-    version='0.0.3',
+    version='0.0.4',
     description='AmakFramework in python',
     author='BE',
     install_requires=[],
-- 
GitLab