Unit has a Build() method + new order 'BuildOrder'
BuildOrder: Unit move to the destination before starting building
BuildOrder: Unit pop out at the right place once building is finished
UserInput: Move() order is only sent to unit which can actually move
Constructing building takes time + render intermediate state (building in construction)
Two new temporary state when building is being constructed
When unit start building, they can't be selected. The building is being selected instead
Select building in construction only if the builder is still selected when starting construction
Factorization of orders which need a destination
[BIG COMMIT] Building in construction can be canceled:
- New getter on unit being build in BuildOrder class
- Once the build order is destroyed, the host unit is selected if the built unit was selected
- Two new method is Unit: IsBeingConstructued() and IsBuilding(Unit)
- Unit description of townhall has CANCEL order while being constructed
- World can remove unit + cancel the order of the builder if the unit is being constructed
Small factorization in unit description