Esempio n. 1
0
    private void RefreshTiles()
    {
        foreach (Transform child in _contentArea.transform)
        {
            Destroy(child.gameObject);
        }

        BuildingModel[] models = SharedModels.GetModels <BuildingModel>();
        foreach (var model in models)
        {
            var asset = Instantiate(ElementTemplate);
            var tile  = asset.GetComponent <TileView>();
            Assert.IsNotNull(tile, "ElementTemplate does not contain a ColorTileView script");
            tile.transform.SetParent(_contentArea, false);
            tile.ContentModel       = model;
            tile.TileSelectedEvent += OnItemSelected;
            //tile.TileEnableEvent += (itile, go) => Debug.Log(go.name + " enabled: " + itile.IsEnabled);
            tile.AvailabilityDelegate = (tileModel) =>
            {
                BuildingModel buildingModel   = tileModel as BuildingModel;
                int           buildingsNumber = _gridModel.FindAll(buildingModel).Length;
                return(buildingsNumber < buildingModel.MaxNumber);
            };
        }
    }
Esempio n. 2
0
 private void Awake()
 {
     Assert.IsNotNull(ElementTemplate);
     _toggleMenu              = GetComponent <IToggleMenuView>();
     _gridModel               = SharedModels.Get <IGridModel <BuildingModel> >();
     _gridModel.ElementAdded += OnElementAdded;
 }
Esempio n. 3
0
    public void OnItemSelected(ITileView tile, GameObject tileGameObject)
    {
        _currentTile = tile;
        BuildingModel data = tile.ContentModel as BuildingModel;

        _toggleMenu.ToggleMenu();
        SharedModels.GetWriteableModel <SharedDataModel>().SelectedBuilding.Value = data;
    }
Esempio n. 4
0
        private void Awake()
        {
            Assert.IsNotNull(_landTemplate);
            Assert.IsNotNull(_gridView);
            _gridView.CreateBuilding = CreateBuilding;

            //A model could also be specified directly as ScriptableObject variable of a Monobehaviour.
            //Just remember to cast it to the right interface.
            _gridModel = SharedModels.Get <GridModel>();
        }
Esempio n. 5
0
    private void Awake()
    {
        Assert.IsNotNull(_raycaster, "You must specify a raycaster");
        Assert.IsNotNull(_selectedCellObject, "You must provide an object to highlight the landing place of the building");

        _selectedCell = _selectedCellObject.GetComponent <SelectedCellView>();

        _sharedData = SharedModels.GetWriteableModel <SharedDataModel>();
        _sharedData.SelectedBuilding.OnChange += OnSelectedBuildingChange;

        _gridModel = SharedModels.Get <IGridModel <BuildingModel> >();

        _scaledCell = new Vector3(
            (_cellSize.x * transform.localScale.x) / _gridModel.Rows,
            0f,
            (_cellSize.y * transform.localScale.z) / _gridModel.Columns);

        _scaledOffset = new Vector3(
            (_cellSize.x / 2f) * transform.localScale.x,
            0f,
            (_cellSize.y / 2f) * transform.localScale.z);
    }