Exemple #1
0
        private Building ConstructBuilding(Transform root, BuildingConfig buildingConfig, bool isBuildingIn)
        {
            var floorScheme = BuildingsDatabase.GetRandomFloorScheme();
            var segmentSize = new SegmentSize()
            {
                Width  = floorScheme.segmentWidth,
                Height = floorScheme.segmentHeight,
                Depth  = floorScheme.segmentDepth
            };
            var building = new Building(ItemsSpawner, segmentSize, buildingConfig)
            {
                root         = root,
                isBuildingIn = isBuildingIn
            };

            Vector3    position = root.position;
            Quaternion rotation = root.rotation;

            GenerateFloor(ref building, floorScheme, root, position, root.rotation, 0, FloorType.GroundFloor);

            int index = 1;

            for (; index <= buildingConfig.buildingFloorsCount; index++)
            {
                position += new Vector3(0f, floorScheme.segmentHeight, 0f);
                GenerateFloor(ref building, floorScheme, root, position, root.rotation, index, FloorType.MiddleFloor);
            }

            position += new Vector3(0f, floorScheme.segmentHeight, 0f);
            var roofScheme = BuildingsDatabase.GetRandomRoofScheme();

            GenerateFloor(ref building, roofScheme, root, position, root.rotation, index, FloorType.Roof);

            return(building);
        }
Exemple #2
0
    /// <summary>
    /// Metoda inicjalizuje panel Standardowych budowli - wypełnia go przyciskami
    /// </summary>
    public void EditMode_InitializePrestigeBuildingsButtons()
    {
        GameObject[] prestigeBuildings         = BuildingsDatabase.GetBuildingsByType(BuildingType.Prestige);
        Dictionary <GameObject, Building> temp = new Dictionary <GameObject, Building>();

        // Pobieranie listy budynków
        foreach (GameObject building in prestigeBuildings)
        {
            Building buildingScript = building.GetComponent <Building>();

            if (buildingScript != null)
            {
                temp.Add(building, buildingScript);
            }
        }

        // Inicjalizowanie budynków
        foreach (KeyValuePair <GameObject, Building> building in temp.OrderBy(x => x.Value.iBaseCost))
        {
            // Tworznie obiektu przycisku i wrzucanie go do kontenera
            GameObject buildingInfoPanel = GameObject.Instantiate(EditMode_BuildingPanelPrefab);
            buildingInfoPanel.transform.SetParent(EditMode_PrestigeBuildingsContent.transform, false);

            EditMode_BuildingInfoPanelScript infoPanelScript = buildingInfoPanel.GetComponent <EditMode_BuildingInfoPanelScript>();
            if (infoPanelScript != null)
            {
                infoPanelScript.Initialize(building.Value, building.Key);
            }
        }
    }
Exemple #3
0
    private void Awake()
    {
        if (Instance == null)
        {
            Instance = this;
        }
        else
        {
            Destroy(gameObject);
            return;
        }
        if (buildables == null || buildables.Length <= 0)
        {
            return;
        }

        /////GENERATE POOLS
        buildPools = new Queue <Buildable> [buildables.Length];
        for (int i = 0; i < buildPools.Length; i++)
        {
            Queue <Buildable> buildQueue = new Queue <Buildable>();
            for (int j = 0; j < buildables[i].amount; j++)
            {
                Buildable b = (Buildable)Instantiate(buildables[i].buildPrefab, transform.position, Quaternion.identity);
                buildQueue.Enqueue(b);
                b.gameObject.SetActive(false);
            }
            buildPools[i] = buildQueue;
        }
    }
Exemple #4
0
    void LoadBuildings()
    {
        // Jeżeli jakiekolwiek budowle są zapisane we właściwości
        if (Buildings != null)
        {
            foreach (SerializableBuilding serializableBuilding in Buildings)
            {
                // Pobieranie budynków z bazy danych
                GameObject[] dbBuildings = BuildingsDatabase.GetBuildingsByType(serializableBuilding.BuildingType);
                foreach (GameObject dbBuilding in dbBuildings)
                {
                    // Wczytywanie skryptu danego budynku w celu znalezienia odpowiedniego budynku po nazwie
                    Building dbBuildingScript = dbBuilding.GetComponent <Building>();
                    if (dbBuildingScript != null)
                    {
                        if (dbBuildingScript.Name == serializableBuilding.BuildingName)
                        {
                            // Znaleziono budynek - tworzenie obiektu budynku i przypisanie go do grupy Buildings
                            GameObject objInst = GameObject.Instantiate(dbBuilding);
                            objInst.transform.SetParent(Helper.GetBuildingsGroup().transform, true);

                            Building instanceScript = objInst.GetComponent <Building>();
                            if (instanceScript != null)
                            {
                                Building.CopyValues(dbBuilding, objInst);
                                instanceScript.LoadBuilding(serializableBuilding);
                            }
                        }
                    }
                }
            }
        }
    }
Exemple #5
0
    void Start()
    {
        // Wczytywanie bazy danych budynków
        BuildingsDatabase.LoadDatabase();

        TimeToCollectShit = 0f;

        if (SaveManager.LoadData())
        {
            Helper.GetGUIManager().GameStats_SetCurrentMoneyInfo(GameStats.Instance.CurrentMoney);
        }

        // Skrypt 'zbierający' shit z budynków co 30 sekund
        InvokeRepeating("CollectMoney", 0f, 30f);
    }
Exemple #6
0
 private void Awake()
 {
     Instance = this;
 }