WallBehavior GetWallBehavior(BuildingObstacleDirection wallDirection, int index /*,TilePosition tilePosition*/) { //return SceneManager.Instance.GetBuildingObjectFromBuildingObstacleMap(tilePosition.Row, tilePosition.Column).GetComponent<WallBehavior>(); TilePosition tilePosition = null; switch (wallDirection) { case BuildingObstacleDirection.Top: tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column, this.BuildingLogicData.BuildingPosition.Row + index); break; case BuildingObstacleDirection.Bottom: tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column, this.BuildingLogicData.BuildingPosition.Row - index); break; case BuildingObstacleDirection.Left: tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column - index, this.BuildingLogicData.BuildingPosition.Row); break; case BuildingObstacleDirection.Right: tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column + index, this.BuildingLogicData.BuildingPosition.Row); break; } return(SceneManager.Instance.GetBuildingObjectFromBuildingObstacleMap(tilePosition.Row, tilePosition.Column).GetComponent <WallBehavior>()); }
public Nullable <bool> FindNeighourWallNotNull(BuildingObstacleDirection wallDirection, int index) { TilePosition tilePosition = null; BuildingLogicData buildingLogicData = null; switch (wallDirection) { case BuildingObstacleDirection.Top: tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column, this.BuildingLogicData.BuildingPosition.Row + index); break; case BuildingObstacleDirection.Bottom: tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column, this.BuildingLogicData.BuildingPosition.Row - index); break; case BuildingObstacleDirection.Left: tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column - index, this.BuildingLogicData.BuildingPosition.Row); break; case BuildingObstacleDirection.Right: tilePosition = new TilePosition(this.BuildingLogicData.BuildingPosition.Column + index, this.BuildingLogicData.BuildingPosition.Row); break; } IObstacleInfo obstacleInfo = SceneManager.Instance.GetBuildingInfoFormBuildingObstacleMap(tilePosition.Row, tilePosition.Column); if (obstacleInfo == null) { return(null); } else { buildingLogicData = obstacleInfo as BuildingLogicData; if (buildingLogicData != null) { if (buildingLogicData.BuildingIdentity.buildingType == BuildingType.Wall) { return(true); } else { return(null); } } return(null); } }
public void SetWallSprite(BuildingObstacleDirection direction, bool isActive) { //print("SetWallSprite"); switch (direction) { case BuildingObstacleDirection.Top: //m_Tk2dSpriteWall[0].color = isActive ? Color.white : Color.clear; m_Tk2dSpriteWall[0].gameObject.SetActive(isActive); break; case BuildingObstacleDirection.Right: //m_Tk2dSpriteWall[1].color = isActive ? Color.white : Color.clear; m_Tk2dSpriteWall[1].gameObject.SetActive(isActive); break; } }
WallBehavior FindNeighourWallBehavior(BuildingObstacleDirection wallDirection, TilePosition refTilePosition, int index) { TilePosition tilePositionNext = null; GameObject go = null; switch (wallDirection) { case BuildingObstacleDirection.Top: tilePositionNext = new TilePosition(refTilePosition.Column, refTilePosition.Row + index); break; case BuildingObstacleDirection.Bottom: tilePositionNext = new TilePosition(refTilePosition.Column, refTilePosition.Row - index); break; case BuildingObstacleDirection.Left: tilePositionNext = new TilePosition(refTilePosition.Column - index, refTilePosition.Row); break; case BuildingObstacleDirection.Right: tilePositionNext = new TilePosition(refTilePosition.Column + index, refTilePosition.Row); break; } if (tilePositionNext.Row < 0 || tilePositionNext.Column < 0 || tilePositionNext.Row >= ClientSystemConstants.BUILDING_TILE_MAP_SIZE.height || tilePositionNext.Column >= ClientSystemConstants.BUILDING_TILE_MAP_SIZE.width) { return(null); } go = SceneManager.Instance.GetBuildingObjectFromBuildingObstacleMap(tilePositionNext.Row, tilePositionNext.Column); if (go == null) { return(null); } else { WallBehavior bhv = go.GetComponent <WallBehavior>(); if (bhv.BuildingType == BuildingType.Wall) { return(bhv);//(WallBehavior)bhv.BuildingCommon; } } return(null); }
void SetWallActorObstacle(BuildingObstacleDirection wallDirection, int index, bool isActive) { switch (wallDirection) { case BuildingObstacleDirection.Top: SceneManager.Instance.ActorGameObjectData[this.BuildingLogicData.ActorPosition.Row + this.BuildingLogicData.ActorObstacleList[0].Row + index, this.BuildingLogicData.ActorPosition.Column + this.BuildingLogicData.ActorObstacleList[0].Column] = isActive ? this.gameObject : null; break; case BuildingObstacleDirection.Bottom: SceneManager.Instance.ActorGameObjectData[this.BuildingLogicData.ActorPosition.Row + this.BuildingLogicData.ActorObstacleList[0].Row - index, this.BuildingLogicData.ActorPosition.Column + this.BuildingLogicData.ActorObstacleList[0].Column] = isActive ? this.gameObject : null; break; case BuildingObstacleDirection.Left: SceneManager.Instance.ActorGameObjectData[this.BuildingLogicData.ActorPosition.Row + this.BuildingLogicData.ActorObstacleList[0].Row, this.BuildingLogicData.ActorPosition.Column + this.BuildingLogicData.ActorObstacleList[0].Column - index] = isActive ? this.gameObject : null; break; case BuildingObstacleDirection.Right: SceneManager.Instance.ActorGameObjectData[this.BuildingLogicData.ActorPosition.Row + this.BuildingLogicData.ActorObstacleList[0].Row, this.BuildingLogicData.ActorPosition.Column + this.BuildingLogicData.ActorObstacleList[0].Column + index] = isActive ? this.gameObject : null; break; } }