@Override public void doAction(BuildingStateContext context) { // are there enough resources to finish construction ? boolean test = building.hasResourcesAvailable(requiredResources); if (test) { context.switchState(BuildingState.IDLE); } else { // //update the required resources int[] requirement = new int[requiredResources.length]; for (int key = 0; key < requiredResources.length; key++) { int required = requiredResources[key] - building.getAvailableResources(key); if (required > 0) { requiredResources[key] = required; } } // building.setRequiredResources(requiredResources); } }