コード例 #1
0
    public void Hire()
    {
        HookahMaker hookahMaker = hiringManager.CreateHookahMaker();

        currentHookahMaker = hiringManager.CurrentHookahMaker;
        UpdateCurrentWorkerDisplay();
    }
コード例 #2
0
    void Start()
    {
        hiringManager = FindObjectOfType <WorkerHiringManager>();

        currentHookahMaker = hiringManager.CurrentHookahMaker;
        UpdateCurrentWorkerDisplay();
        panel.SetActive(false);
    }
コード例 #3
0
    public HookahMaker CreateHookahMaker()
    {
        HookahMaker newWorker = Instantiate(availableHookahMakers[currentWorkerIndex], entry.position, Quaternion.identity, player.transform);

        player.AddWorker(newWorker);

        newWorker.AddMoveAction(workerMovePos.position);

        availableHookahMakers.RemoveAt(currentWorkerIndex);
        currentWorkerIndex = 0;

        return(newWorker);
    }
コード例 #4
0
    void HandleWorkerSelection()
    {
        DeselectWorkers();

        Ray inputRay = mainCamera.ScreenPointToRay(Input.mousePosition);

        if (Physics.Raycast(inputRay, out RaycastHit hit))
        {
            if (hit.collider != null)
            {
                LayerMask colliderMask = 1 << hit.collider.gameObject.layer;
                if (colliderMask == workerMask)
                {
                    HookahMaker hookahMaker = hit.collider.gameObject.GetComponent <HookahMaker>();
                    hookahMaker.Selected = true;
                }
            }
        }
    }
コード例 #5
0
    void RecreateHookahMakerLinks(BinaryFormatter formatter, FileStream stream)
    {
        for (int i = 0; i < player.workers.Count; i++)
        {
            HookahMaker current = player.workers[i];

            if (current.hookahMakerData.hookahIndex != -1)
            {
                current.servedHookah = player.hookahs[current.hookahMakerData.hookahIndex];
            }
            if (current.hookahMakerData.tableIndex != -1)
            {
                current.servedTable = player.tables[current.hookahMakerData.tableIndex];
            }

            if (current.servedHookah != null && current.CarryingHookah)
            {
                current.servedHookah.GetComponent <Collider>().enabled = false;
                current.servedHookah.transform.SetParent(current.transform);
                current.servedHookah.transform.position = current.hookahCarryPos.position;
            }
        }
    }
コード例 #6
0
    void HandleWorkerActions()
    {
        HookahMaker hookahMaker = GetSelectedWorker();

        if (hookahMaker == null)
        {
            return;
        }

        Ray inputRay = mainCamera.ScreenPointToRay(Input.mousePosition);

        if (Physics.Raycast(inputRay, out RaycastHit hit))
        {
            LayerMask colliderMask = 1 << hit.collider.gameObject.layer;

            if (!shiftPressed)
            {
                hookahMaker.ClearActions();
            }

            if (colliderMask == hookahMask)
            {
                Hookah hookah = hit.collider.gameObject.GetComponent <Hookah>();
                hookahMaker.AddChooseTobaccoAction(hookah);
            }
            else if (colliderMask == tableMask)
            {
                Table table = hit.collider.gameObject.GetComponent <Table>();
                hookahMaker.AddBringHookahAction(table);
            }
            else
            {
                hookahMaker.AddMoveAction(hit.point);
            }
        }
    }
コード例 #7
0
    public void Load(BinaryFormatter formatter, FileStream stream)
    {
        // NOTE: Loading clients
        foreach (Client client in player.clients)
        {
            Destroy(client.gameObject);
        }
        player.clients.Clear();
        int             clientsCount = (int)formatter.Deserialize(stream);
        ClientGenerator generator    = FindObjectOfType <ClientGenerator>();

        for (int i = 0; i < clientsCount; i++)
        {
            string prefabName   = (string)formatter.Deserialize(stream);
            Client clientPrefab = PrefabStorage.Instance.GetClientByName(prefabName);

            Client client = Instantiate(clientPrefab);
            client.Load(formatter, stream);
            client.prefabName = prefabName;
            player.AddClient(client);

            ClientData clientData = (ClientData)formatter.Deserialize(stream);

            client.clientData = clientData;
        }

        // NOTE: Loading tables
        foreach (Table table in player.tables)
        {
            Destroy(table.gameObject);
        }
        int tablesCount = (int)formatter.Deserialize(stream);

        player.tables.Clear();
        for (int i = 0; i < tablesCount; i++)
        {
            string prefabName  = (string)formatter.Deserialize(stream);
            Table  tablePrefab = PrefabStorage.Instance.GetTableByName(prefabName);

            Table table = Instantiate(tablePrefab);
            table.Load(formatter, stream);
            table.prefabName = prefabName;
            player.tables.Add(table);

            TableData tableData = (TableData)formatter.Deserialize(stream);

            table.tableData = tableData;
        }

        // NOTE: Loading hookahs
        foreach (Hookah hookah in player.hookahs)
        {
            Destroy(hookah.gameObject);
        }
        int hookahsCount = (int)formatter.Deserialize(stream);

        player.hookahs.Clear();
        for (int i = 0; i < hookahsCount; i++)
        {
            string prefabName   = (string)formatter.Deserialize(stream);
            Hookah hookahPrefab = PrefabStorage.Instance.GetHookahByName(prefabName);

            Hookah hookah = Instantiate(hookahPrefab);
            hookah.Load(formatter, stream);
            hookah.prefabName = prefabName;
            player.hookahs.Add(hookah);
        }

        // NOTE: Loading hookah makers
        foreach (HookahMaker worker in player.workers)
        {
            Destroy(worker.gameObject);
        }
        int workersCount = (int)formatter.Deserialize(stream);

        player.workers.Clear();
        for (int i = 0; i < workersCount; i++)
        {
            string      prefabName        = (string)formatter.Deserialize(stream);
            HookahMaker hookahMakerPrefab = PrefabStorage.Instance.GetHookahMakerByName(prefabName);

            HookahMaker worker = Instantiate(hookahMakerPrefab);
            worker.Load(formatter, stream);
            worker.prefabName = prefabName;
            player.workers.Add(worker);

            HookahMakerData hookahMakerData = (HookahMakerData)formatter.Deserialize(stream);

            worker.hookahMakerData = hookahMakerData;
        }


        RecreateClientLinks(formatter, stream);
        RecreateTableLinks(formatter, stream);
        RecreateHookahMakerLinks(formatter, stream);
    }
コード例 #8
0
 public void RemoveWorker(HookahMaker newWorker)
 {
     workers.Remove(newWorker);
 }
コード例 #9
0
 public void AddWorker(HookahMaker newWorker)
 {
     workers.Add(newWorker);
 }
コード例 #10
0
 public void Prev()
 {
     currentHookahMaker = hiringManager.AdvanseWorkersList(-1);
     UpdateCurrentWorkerDisplay();
 }