Closed Ludovicio closed 5 months ago
Revisar documentación y naming de SysTime. Con la documentación actual es complicado entender que representa cada tiempo.
Hay que sacar la carpeta "graphics" de "ZBE/core/tools/graphics" a "ZBE/core/graphics" o "ZBE/graphics"
El pintado no pertenece a la funcionalidad básica: Podrías tener una compilación solo para server que no llevase nada de pintado. Por ello se deben sacar los sprites de "ZBE/core/entites/avatars" y dejarlos por debajo de "ZBE/entites/avatars"
Sobrecargar implementar "operator()" en "Value" para no tener que llamar siempre a "getValue".
CollisionEventGenerator debe desaparecer. Toda su funcionalidad la cumple InteractionEventGenerator
Eliminar librerías y versiones de librerías que no se están usando.
Tener en cuenta la posibilidad de añadir subespacios de nombres en los ficheros de funciones de utilidad.
Por ejemplo:
OALUtils declara sus funciones dentro de "zbe". Quizás debiesen declararse dentro de un subespacio "zbe::oal".
Crear carpeta de implementaciones dentro de demonios.
Mover MainLoop a daemons.
Crear ficheros include por categorías. (daemons.h, behaviors.h ... )
Crear ficheros de literales por contexto.
Revisar uso de WeakAvatarEntityContainer en Actuator. Si siempre usamos Actuator de la forma:
Actuator<WeakAvatarEntityContainer<T> >
Quizás WeakAvatarEntityContainer deba incluirse en Actuator para que vuelva a ser:
Actuator<T>
Diccionarios:
Se crearán diccionarios para valores: uint64_t, int64_t, float, double...
El acceso a estos valores no deberá asumir, desde las factorías, que exista ningún espacio de nombres. Si se desea usar espacios de nombres (buena idea) se deberán incluir completos en los ficheros de configuración.
Se debe modificar las factorias existentes para que sigan esta norma.
Ya disponemos de un diccionario para ids (uint64_t). El que creemos será un template que relacionará un nombre con el tipo que deseemos. El actual diccionario de ids desaparece y se creará una especialización del template para uint64_t con el nombre del diccionario actual. El diccionario para uint64_t tiene dos usos:
Revisar uso del método insert de RsrcStore. En lugar de:
uint64_t id = SysIdGenerator::generate();
nameRsrcDictionary.insert("nombre",id);
rsrcStore.insert(id, myInstance);
Se debe usar:
rsrcStore.insert("nombre", myInstance);
Hay clases de prueba que se crean en más de un test (como DummyDaemon) tal vez nos interese tener solo una implementación que los test que quieran las usen.
Sacar del core las dependencias de SDL. De SDLSocket se puede extraer una interfaz.
Revisar sprites de texto. Se debe porder configurar cosas como, margen, padding, alineación...
Revisar uso de Boost. Si no se está usando, se debe quitar.Revisar uso de smart pointers/punteros.