Wow, another great clean up. Where do I start? There is now a new base class, Nothing. From this comes Thing and Ground. The logging and the name stuff is now done in the new base class, along with a new variable and associated methods, Type. Everything now has a type a name and a logging abilities, good. Unit, Home, Resource all extend Thing, and Unit implements the Move interface. Ground extends from the nothing class and is ready to be used as the main grid (it's not used yet) also it should replace the Enum, GridSquareStaus. Be warned we are going to have a Ground, that contains Things, each of them will be moving and using Ground to check its surroundings... that will have Things in it..... we need to make sure we dont get some insane loop here and leak all the memory in the world. The logger needs sorting out, I highly dislike passing it through the whole system for every object, when all the logging gets done from the Nothing class. Progress, yes. Proceed with caution.
Removed old testing class TestUnit in previous commit. So much has changed and it became usless. Refactored locate() and move() so that the array of GridSqaureStatus is passed between methods rather than storing it in the object. This will prevent fuck ups when GridSquareStaus is replaced with the Ground Object. Ground object will only persist within method calls on Thing objects, as firstly that's the only time it's used. This will avoid big memory issues that are inevetable. Continue to be vigilant.