internal void init(Net_OnInitPlayerDataRequest playerData)
    {
        //ensure the worker list is empty
        workers.RemoveRange(0, workers.Count);

        //init player's workers from msg
        GameObject  workerGameObj;
        Game_Worker worker;

        foreach (Message_This_Worker gwData in playerData.Workers)
        {
            //create the game object which will contain the worker object
            workerGameObj = Instantiate(workerGameObjPrefab, transform);

            //get a reference to the worker object of the game object
            worker = workerGameObj.GetComponent <Game_Worker>();

            //init the worker object with the msg data
            worker.init(gwData);

            //add the worker object reference to the player's list
            workers.Add(workerGameObj.GetComponent <Game_Worker>());
        }

        //set active worker dynamically
        activeWorker = workers[playerData.ActiveWorkerIndex];

        //set init flag
        isInit = true;

        //TODO REMOVE THIS
        SETSAILTESTTTTTT();
    }
 internal void setActive(Net_OnActiveWorkerChange msg)
 {
     activeWorker = workers[msg.workerIndex];
 }