Ejemplo n.º 1
0
    public static Building Load(BinaryReader reader)
    {
        BuildingType type           = (BuildingType)reader.ReadInt32();
        TriDirection entDir         = (TriDirection)reader.ReadInt32();
        bool         underconstruct = reader.ReadBoolean();
        bool         working        = reader.ReadBoolean();
        float        constructTime  = reader.ReadSingle();
        Building     ret            = null;

        switch (type)
        {
        case BuildingType.INN:
            ret = Inn.Load(reader);
            break;

        case BuildingType.COMPANY:
            ret = Company.Load(reader);
            break;

        case BuildingType.WORKSITE:
            ret = Worksite.Load(reader);
            break;
        }
        ret.entranceDirection = entDir;
        ret.type           = type;
        ret.UnderConstruct = underconstruct;
        ret.Working        = working;
        ret.ConstructTime  = constructTime;
        return(ret);
    }
Ejemplo n.º 2
0
    void CheckGatherButton()
    {
        Worksite w = colony.GetWorksite(observingSurface) as GatherSite;

        if (w is GatherSite)
        {
            if (status_gather != true)
            {
                gatherButton.transform.GetChild(0).GetComponent <Text>().text = Localization.GetPhrase(LocalizedPhrase.StopGather);
                gatherButton.interactable = true;
                status_gather             = true;
            }
        }
        else
        {
            if (observingSurface.fulfillStatus != FullfillStatus.Empty)
            {
                if (status_gather != false)
                {
                    gatherButton.transform.GetChild(0).GetComponent <Text>().text = Localization.GetWord(LocalizedWord.Gather);
                    gatherButton.interactable = true;
                    status_gather             = false;
                }
            }
            else
            {
                if (status_gather != null)
                {
                    gatherButton.transform.GetChild(0).GetComponent <Text>().text = Localization.GetWord(LocalizedWord.Gather);
                    gatherButton.interactable = false;
                    status_gather             = null;
                }
            }
        }
    }
Ejemplo n.º 3
0
        public IHttpActionResult PutWorksite(int id, Worksite worksite)
        {
            if (id != worksite.EmployeeId)
            {
                return(BadRequest());
            }

            db.Entry(worksite).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!WorksiteExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Ejemplo n.º 4
0
    public void SetObservingWorksite(Worksite ws)
    {
        workbuildingMode = false;
        if (ws == null)
        {
            SelfShutOff();
            return;
        }
        observingWorksite = ws; isObserving = true;

        showingWorkersCount    = ws.workersCount;
        showingWorkersMaxCount = ws.GetMaxWorkers();
        showingWorkspeed       = ws.workSpeed;

        slider.minValue        = 0;
        slider.maxValue        = showingWorkersMaxCount;
        slider.value           = showingWorkersCount;
        workersCountField.text = showingWorkersCount.ToString() + '/' + showingWorkersMaxCount.ToString();
        workSpeedField.text    = string.Format("{0:0.00}", showingWorkspeed) + ' ' + Localization.GetPhrase(LocalizedPhrase.PointsSec);
        workSpeedField.enabled = (showingWorkspeed > 0);
        actionLabel.enabled    = true;
        actionLabel.text       = ws.actionLabel;
        stopButton.SetActive(true);

        STATUS_UPDATE_TIME = 0.5f; timer = STATUS_UPDATE_TIME;
        StatusUpdate();
    }
Ejemplo n.º 5
0
 public void SetWorksite(Worksite w)
 {
     if (worksite != null)
     {
         worksite.StopWork();
     }
     worksite = w;
 }
Ejemplo n.º 6
0
 public void StopButton()
 {
     if (observingWorksite != null)
     {
         observingWorksite.StopWork();
         observingWorksite = null;
         SelfShutOff();
     }
 }
Ejemplo n.º 7
0
    public void Load(ColonyControllerSerializer ccs)
    {
        if (storage == null)
        {
            storage = gameObject.AddComponent <Storage>();
        }
        storage.Load(ccs.storageSerializer);
        gears_coefficient             = ccs.gears_coefficient;
        labourEfficientcy_coefficient = ccs.labourEfficientcy_coefficient;
        happiness_coefficient         = ccs.happiness_coefficient;
        health_coefficient            = ccs.health_coefficient;
        birthrateCoefficient          = ccs.birthrateCoefficient;

        energyStored        = ccs.energyStored;
        energyCrystalsCount = ccs.energyCrystalsCount;
        if (ccs.worksites.Count > 0)
        {
            foreach (WorksiteSerializer ws in ccs.worksites)
            {
                Worksite w = null;
                switch (ws.type)
                {
                case WorksiteType.BlockBuildingSite:
                    w = new BlockBuildingSite();
                    break;

                case WorksiteType.CleanSite:
                    w = new CleanSite();
                    break;

                case WorksiteType.DigSite:
                    w = new DigSite();
                    break;

                case WorksiteType.GatherSite:
                    w = new GatherSite();
                    break;

                case WorksiteType.TunnelBuildingSite:
                    w = new TunnelBuildingSite();
                    break;
                }
                w.Load(ws);
            }
        }
        freeWorkers          = ccs.freeWorkers;
        citizenCount         = ccs.citizenCount;
        deathCredit          = ccs.deathCredit;
        peopleSurplus        = ccs.peopleSurplus;
        housingTimer         = ccs.housingTimer;
        starvationTimer      = ccs.starvationTimer;
        starvationTime       = ccs.starvationTime;
        realBirthrate        = ccs.realBirthrate;
        birthrateCoefficient = ccs.birthrateCoefficient;
    }
Ejemplo n.º 8
0
        public IHttpActionResult GetWorksite(int id)
        {
            Worksite worksite = db.Worksites.Find(id);

            if (worksite == null)
            {
                return(NotFound());
            }

            return(Ok(worksite));
        }
Ejemplo n.º 9
0
    public override bool Equals(object obj)
    {
        // Check for null values and compare run-time types.
        if (obj == null || GetType() != obj.GetType())
        {
            return(false);
        }

        Worksite w = (Worksite)obj;

        return(workplace == w.workplace & workersCount == w.workersCount & workflow == w.workflow);
    }
Ejemplo n.º 10
0
        public IHttpActionResult DeleteWorksite(int id)
        {
            Worksite worksite = db.Worksites.Find(id);

            if (worksite == null)
            {
                return(NotFound());
            }

            db.Worksites.Remove(worksite);
            db.SaveChanges();

            return(Ok(worksite));
        }
Ejemplo n.º 11
0
    public static void TransferWorkers(Worksite source, Worksite destination)
    {
        int x = source.workersCount;

        source.workersCount = 0;
        int sum        = destination.workersCount + x;
        int maxWorkers = destination.maxWorkersCount;

        if (sum > maxWorkers)
        {
            GameMaster.realMaster.colonyController.AddWorkers(sum - maxWorkers);
            sum = maxWorkers;
        }
        destination.workersCount = sum;
    }
Ejemplo n.º 12
0
 public void SendWorkers(int x, Worksite w)
 {
     if (freeWorkers == 0 | w == null)
     {
         return;
     }
     if (x > freeWorkers)
     {
         x = freeWorkers;
     }
     else
     {
         freeWorkers = freeWorkers - x + w.AddWorkers(x);
     }
 }
Ejemplo n.º 13
0
    public new static Worksite Load(BinaryReader reader)
    {
        WorkType subType = (WorkType)reader.ReadInt32();
        int      capacity = reader.ReadInt32(), currentProd = reader.ReadInt32();
        Worksite ret = null;

        switch (subType)
        {
        case WorkType.FARMLAND:
            ret = Farmland.Load(reader);
            break;
        }
        ret.subType     = subType;
        ret.CurrentProd = currentProd;
        return(ret);
    }
Ejemplo n.º 14
0
    public void AddWorksite(Worksite w)
    {
        int i = 0;

        while (i < worksites.Count)
        {
            if (worksites[i] == w)
            {
                return;
            }
            else
            {
                i++;
            }
        }
        worksite_addlist.Add(w);
    }
Ejemplo n.º 15
0
    public void RemoveWorksite(Worksite w)
    {
        if (worksites.Count == 0)
        {
            return;
        }
        int i = 0;

        while (i < worksites.Count)
        {
            if (worksites[i] == w | worksites[i] == null)
            {
                deletedWorksites.Add(i);
            }
            i++;
        }
    }
Ejemplo n.º 16
0
    public static void TransferWorkers(Worksite source, Worksite destination)
    {
        int x = source.workersCount;

        source.workersCount = 0;
        source.workSpeed    = 0;
        int sum        = destination.workersCount + x;
        int maxWorkers = destination.GetMaxWorkers();

        if (sum > maxWorkers)
        {
            GameMaster.colonyController.AddWorkers(sum - maxWorkers);
            sum = maxWorkers;
        }
        destination.workersCount = sum;
        destination.RecalculateWorkspeed();
    }
Ejemplo n.º 17
0
    public static void StaticLoad(System.IO.Stream fs, int count)
    {
        if (count < 0 | count > 1000)
        {
            Debug.Log("worksites loading error - incorrect count");
            GameMaster.LoadingFail();
            return;
        }
        if (count > 0)
        {
            Worksite w     = null;
            Chunk    chunk = GameMaster.realMaster.mainChunk;
            for (int i = 0; i < count; i++)
            {
                switch ((WorksiteType)fs.ReadByte())
                {
                case WorksiteType.CleanSite:
                {
                    w = CleanSite.Load(fs, chunk);
                    break;
                }

                case WorksiteType.DigSite:
                {
                    w = DigSite.Load(fs, chunk);
                    break;
                }

                case WorksiteType.BlockBuildingSite:
                {
                    w = BlockBuildingSite.Load(fs, chunk);
                    break;
                }

                case WorksiteType.GatherSite:
                {
                    w = GatherSite.Load(fs, chunk);
                    break;
                }

                default: w = null; break;
                }
            }
        }
    }
Ejemplo n.º 18
0
 public IActionResult Put(Worksite worksite)
 {
     try
     {
         int result = _worksiteService.Update(worksite);
         if (result == 1)
         {
             return(StatusCode(201, worksite));
         }
         else
         {
             return(StatusCode(404, "veri güncellenemedi."));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(404, ex));
     }
 }
Ejemplo n.º 19
0
 public IActionResult Post(Worksite worksite)
 {
     try
     {
         int result = _worksiteService.Add(worksite);
         if (result == 1)
         {
             return(StatusCode(201, worksite));
         }
         else
         {
             return(StatusCode(404, "veri kaydedilemedi."));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(404, ex));
     }
 }
Ejemplo n.º 20
0
 override public void ShutOff()
 {
     isObserving = false;
     if (observingWorksite != null)
     {
         observingWorksite.showOnGUI = false;
         observingWorkbuilding       = null;
     }
     if (workbuildingMode)
     {
         Building.buildingObserver.ShutOff();
         observingWorkbuilding = null;
     }
     else
     {
         observingWorksite = null;
     }
     gameObject.SetActive(false);
 }
Ejemplo n.º 21
0
        public IHttpActionResult PostWorksite(Worksite worksite)
        {
            db.Worksites.Add(worksite);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (WorksiteExists(worksite.EmployeeId))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = worksite.EmployeeId }, worksite));
        }
Ejemplo n.º 22
0
    public static void StaticLoad(WorksiteSerializer[] wdata)
    {
        worksitesList = new List <Worksite>(wdata.Length);
        Worksite w = null;

        for (int i = 0; i < worksitesList.Count; i++)
        {
            switch (wdata[i].type)
            {
            default: w = null;; break;

            case WorksiteType.BlockBuildingSite:
                w = new BlockBuildingSite();
                break;

            case WorksiteType.CleanSite:
                w = new CleanSite();
                break;

            case WorksiteType.DigSite:
                w = new DigSite();
                break;

            case WorksiteType.GatherSite:
                w = new GatherSite();
                break;

            case WorksiteType.TunnelBuildingSite:
                w = new TunnelBuildingSite();
                break;
            }
            if (w != null)
            {
                w.Load(wdata[i]);
                worksitesList[i] = w;
            }
        }
    }
Ejemplo n.º 23
0
 override public void ShutOff()
 {
     isObserving = false;
     if (observingWorksite != null)
     {
         observingWorksite.showOnGUI = false;
         observingWorkbuilding       = null;
     }
     if (workbuildingMode)
     {
         Building.buildingObserver.ShutOff();
         observingWorkbuilding = null;
         if (UIController.current.progressPanelMode != ProgressPanelMode.Offline)
         {
             UIController.current.DeactivateProgressPanel(ProgressPanelMode.Powerplant);
         }
     }
     else
     {
         observingWorksite = null;
     }
     gameObject.SetActive(false);
 }
Ejemplo n.º 24
0
    public void ChangeChosenObject(ChosenObjectType newChosenType)
    {
        if (hospitalPanel.activeSelf)
        {
            DeactivateHospitalPanel();
        }
        else
        {
            if (expeditionCorpusPanel.activeSelf)
            {
                DeactivateExpeditionCorpusPanel();
            }
            else
            {
                if (rollingShopPanel.activeSelf)
                {
                    DeactivateRollingShopPanel();
                }
            }
        }

        //отключение предыдущего observer
        if (workingObserver != null)
        {
            workingObserver.ShutOff();
            workingObserver = null;
        }
        bool disableCubeMenuButtons = true, changeFrameColor = true;

        if (newChosenType == ChosenObjectType.None)
        {
            rightPanel.SetActive(false);
            selectionFrame.gameObject.SetActive(false);
            chosenObjectType = ChosenObjectType.None;
            chosenWorksite   = null;
            chosenStructure  = null;
            chosenCube       = null;
            chosenSurface    = null;
            faceIndex        = 10;
            changeFrameColor = false;
        }
        else
        {
            chosenObjectType = newChosenType;
            rightPanel.transform.SetAsLastSibling();
            rightPanel.SetActive(true);
            disableCubeMenuButtons = true;
            selectionFrame.gameObject.SetActive(true);
            if (showMenuWindow)
            {
                MenuButton();
            }
        }

        Vector3 sframeColor = Vector3.one;

        switch (chosenObjectType)
        {
        case ChosenObjectType.Surface:
        {
            faceIndex = 10;         // вспомогательная дата для chosenCube
            selectionFrame.position   = chosenSurface.transform.position + Vector3.down * Block.QUAD_SIZE / 2f;
            selectionFrame.rotation   = Quaternion.identity;
            selectionFrame.localScale = new Vector3(SurfaceBlock.INNER_RESOLUTION, 1, SurfaceBlock.INNER_RESOLUTION);
            sframeColor = new Vector3(140f / 255f, 1, 1);

            workingObserver = chosenSurface.ShowOnGUI();
            FollowingCamera.main.SetLookPoint(chosenSurface.transform.position);
        }
        break;

        case ChosenObjectType.Cube:
        {
            selectionFrame.position = chosenCube.faces[faceIndex].transform.position;
            switch (faceIndex)
            {
            case 0: selectionFrame.transform.rotation = Quaternion.Euler(90, 0, 0); break;

            case 1: selectionFrame.transform.rotation = Quaternion.Euler(0, 0, -90); break;

            case 2: selectionFrame.transform.rotation = Quaternion.Euler(-90, 0, 0); break;

            case 3: selectionFrame.transform.rotation = Quaternion.Euler(0, 0, 90); break;

            case 4: selectionFrame.transform.rotation = Quaternion.identity; break;

            case 5: selectionFrame.transform.rotation = Quaternion.Euler(-180, 0, 0); break;
            }
            selectionFrame.localScale = new Vector3(SurfaceBlock.INNER_RESOLUTION, 1, SurfaceBlock.INNER_RESOLUTION);
            sframeColor = new Vector3(140f / 255f, 1, 0.9f);
            FollowingCamera.main.SetLookPoint(chosenCube.transform.position);

            Transform t = rightPanel.transform;
            t.GetChild(RPANEL_CUBE_DIG_BUTTON_INDEX).gameObject.SetActive(true);
            if (chosenCube.excavatingStatus != 0)
            {
                t.GetChild(RPANEL_CUBE_DIG_BUTTON_INDEX + 1).gameObject.SetActive(true);
            }
            else
            {
                t.GetChild(RPANEL_CUBE_DIG_BUTTON_INDEX + 1).gameObject.SetActive(false);
            }
            disableCubeMenuButtons = false;
        }
        break;

        case ChosenObjectType.Structure:
            faceIndex = 10;     // вспомогательная дата для chosenCube
            selectionFrame.position   = chosenStructure.transform.position;
            selectionFrame.rotation   = chosenStructure.transform.rotation;
            selectionFrame.localScale = new Vector3(chosenStructure.innerPosition.size, 1, chosenStructure.innerPosition.size);
            sframeColor     = new Vector3(1, 0, 1);
            workingObserver = chosenStructure.ShowOnGUI();
            FollowingCamera.main.SetLookPoint(chosenStructure.transform.position);
            break;

        case ChosenObjectType.Worksite:
            faceIndex = 10;     // вспомогательная дата для chosenCube
            selectionFrame.gameObject.SetActive(false);
            changeFrameColor = false;
            workingObserver  = chosenWorksite.ShowOnGUI();
            FollowingCamera.main.SetLookPoint(chosenWorksite.sign.transform.position);
            break;
        }
        if (disableCubeMenuButtons)
        {
            Transform t = rightPanel.transform;
            t.GetChild(RPANEL_CUBE_DIG_BUTTON_INDEX).gameObject.SetActive(false);
            t.GetChild(RPANEL_CUBE_DIG_BUTTON_INDEX + 1).gameObject.SetActive(false);
        }
        if (changeFrameColor)
        {
            selectionFrameMaterial.SetColor("_TintColor", Color.HSVToRGB(sframeColor.x, sframeColor.y, sframeColor.z));
            selectionFrame.gameObject.SetActive(true);
        }
    }
Ejemplo n.º 25
0
 public int Update(Worksite worksite)
 {
     return(_worksiteDal.Update(worksite));
 }
Ejemplo n.º 26
0
 public int Add(Worksite worksite)
 {
     return(_worksiteDal.Add(worksite));
 }
Ejemplo n.º 27
0
    public void Raycasting()
    {
        if (GameMaster.colonyController == null || GameMaster.colonyController.hq == null)
        {
            return;
        }
        // кастует луч, проверяет, выделен ли уже этот объект, если нет - меняет режим через ChabgeChosenObject
        Vector2    mpos = Input.mousePosition;
        RaycastHit rh;

        if (Physics.Raycast(FollowingCamera.cam.ScreenPointToRay(Input.mousePosition), out rh))
        {
            GameObject collided = rh.collider.gameObject;

            switch (collided.tag)
            {
            case "Structure":
            {
                Structure s = collided.transform.parent.GetComponent <Structure>();
                if (s == null)
                {
                    ChangeChosenObject(ChosenObjectType.None);
                }
                else
                {
                    if (chosenStructure == s)
                    {
                        return;
                    }
                    else
                    {
                        chosenStructure = s;
                        chosenSurface   = s.basement;
                        chosenCube      = null;
                        chosenWorksite  = null;
                        ChangeChosenObject(ChosenObjectType.Structure);
                    }
                }
                break;
            }

            case "BlockCollider":
            {
                Block b = collided.transform.parent.GetComponent <Block>();
                if (b == null)
                {
                    b = collided.transform.parent.parent.GetComponent <Block>();                   // cave block
                }
                if (b == null)
                {
                    ChangeChosenObject(ChosenObjectType.None);
                }
                switch (b.type)
                {
                case BlockType.Cave:
                case BlockType.Surface:
                    SurfaceBlock sb = b as SurfaceBlock;
                    if (sb == chosenSurface)
                    {
                        return;
                    }
                    else
                    {
                        chosenSurface   = sb;
                        chosenStructure = null;
                        chosenCube      = null;
                        chosenWorksite  = sb.worksite;
                        ChangeChosenObject(ChosenObjectType.Surface);
                    }
                    break;

                case BlockType.Cube:
                    CubeBlock cb = b as CubeBlock;
                    if (cb == chosenCube)
                    {
                        return;
                    }
                    else
                    {
                        chosenCube      = cb;
                        chosenSurface   = null;
                        chosenStructure = null;
                        chosenWorksite  = cb.worksite;
                        faceIndex       = 10;
                        for (byte i = 0; i < 6; i++)
                        {
                            if (chosenCube.faces[i] == null)
                            {
                                continue;
                            }
                            if (chosenCube.faces[i].GetComponent <Collider>() == rh.collider)
                            {
                                faceIndex = i; break;
                            }
                        }
                        if (faceIndex < 6)
                        {
                            ChangeChosenObject(ChosenObjectType.Cube);
                        }
                        else
                        {
                            ChangeChosenObject(ChosenObjectType.None);
                        }
                    }
                    break;
                }
            }
            break;

            case "WorksiteSign":
            {
                WorksiteSign ws = collided.GetComponent <WorksiteSign>();
                if (ws != null)
                {
                    if (ws.worksite == chosenWorksite)
                    {
                        return;
                    }
                    else
                    {
                        chosenCube      = null;
                        chosenSurface   = null;
                        chosenStructure = null;
                        chosenWorksite  = ws.worksite;
                        ChangeChosenObject(ChosenObjectType.Worksite);
                    }
                }
                else
                {
                    ChangeChosenObject(ChosenObjectType.None);
                }
            }
            break;

            default:
                if (collided.transform.parent != null)
                {
                    if (collided.transform.parent.gameObject.GetInstanceID() == interceptingConstructPlaneID)
                    {
                        UISurfacePanelController.current.ConstructingPlaneTouch(rh.point);
                    }
                }
                break;
            }
        }
        else
        {
            SelectedObjectLost();
        }
    }
Ejemplo n.º 28
0
 public void ShowWorksite(Worksite ws)
 {
     chosenWorksite = ws;
     ChangeChosenObject(ChosenObjectType.Worksite);
 }