Cuando se carga un estado, se ejecutan los onInit() de todos los objetos. Esto
hace que, si una propiedad se inicializaba en el onInit(), su valor se
sobreescriba.
Si bien éste es un asunto en cuyas consecuencias nunca se pensó mucho, creo
que siempre hubo, entre los usuarios y el propio desarrollador, la suposición
implícita de que era práctica normal inicializar las propiedades de las
entidades en el onInit(), aun no siendo constantes. La propia documentación de
AGE recomienda hacer esto.
Por lo tanto, creo que cabe considerar el actual comportamiento de onInit()
(que se ejecuta tanto al crear un mundo para una nueva partida, como para una
carga de estado) como un bug.
Una posible solución es hacer que onInit() sólo se ejecute al inicializar el
mundo por primera vez (no al cargar estados), y si es necesario otro método
que se ejecute también en el segundo caso (cosa que hasta parece dudosa),
siempre se puede crear un onLoad().
Original issue reported on code.google.com by komoku on 22 Oct 2014 at 8:51
Original issue reported on code.google.com by
komoku
on 22 Oct 2014 at 8:51