private void CreateView(Vector3 position, ITileModel model, EnvironmentType type) { switch (type) { case EnvironmentType.Sea: _seaFactory.Create(position, model); break; case EnvironmentType.Grassland: _grassFactory.Create(position, model); break; case EnvironmentType.Swamp: _swampFactory.Create(position, model); break; case EnvironmentType.Desert: _desertFactory.Create(position, model); break; case EnvironmentType.Mountain: _mountainFactory.Create(position, model); break; default: throw new ArgumentOutOfRangeException(); } }
public void Initialize(ITileModel model, Action <int, int> OnClick = null) { Model = model; UncoverAction = OnClick; View = GetComponent <TileView>(); View.Initialize(this); View.SetSymbol(Model.Symbol); }
private void SetTile(GameObject prefab, ITileModel model, Action <int, int> callback) { GameObject tile = Instantiate(prefab, boardContainer.transform); int offset = ((_model.Size * TILE_WIDTH) / 2) - TILE_WIDTH / 2; tile.transform.localPosition = new Vector3(model.Position.X * TILE_WIDTH - offset, model.Position.Y * TILE_WIDTH - offset, 0); var tilePresenter = tile.GetComponent <ITilePresenter>(); tilePresenter.Initialize(model, callback); _model.SetPosition(model.Position.X, model.Position.Y, tile); }