public void walkExternalPlayer(int currentX, int currentY, BasePlayer player, int dir, bool animated) { if (animated) { player.GetObject().transform.localEulerAngles = new Vector3(0, directionToRotation(dir), 0); //player.GetObject().transform.position = new Vector3(player.GetObject().transform.position.x, GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).height_ * 0.1339f, player.GetObject().transform.position.z); player.GetObject().transform.position = new Vector3(player.GetObject().transform.position.x, GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(player.GetCurrentVec().x, player.GetCurrentVec().y).height_ *LevelManager.TILE_SCALE * 0.447f, player.GetObject().transform.position.z); } //print("walk external :" + player.GetName() + " local x :" + currentX + " local y :" + currentY); //List<VRAR_Tile> list = GameStateManager.getInstance().getCurrentLevel().selectRadius(localPlayer.GetCurrentVec().x, localPlayer.GetCurrentVec().y, localPlayer.GetSight()); List <VRAR_Tile> list = GameStateManager.getInstance().getCurrentLevel().selectRadius(currentX, currentY, localPlayer.GetSight()); VRAR_Tile tileFromIndexPos = GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(player.GetCurrentVec().x, player.GetCurrentVec().y); if (list.Contains(tileFromIndexPos)) { //Debug.Log("EXTERNAL we can see the other player"); player.GetObject().GetComponentInChildren <SkinnedMeshRenderer>().enabled = true; //float y = tileFromIndexPos.hexObject.lossyScale.y * 0.447f - player.GetObject().transform.position.y; //float y = player.GetObject().transform.position.y - GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).height_ * 0.1339f; //this.SlowTranslatePlayer(player, VRAR_Level.getNeighborDistance(dir) + new Vector3(0f, y, 0f), speed * LevelManager.TILE_SCALE); this.SlowTranslatePlayer(player, VRAR_Level.getNeighborDistance(dir), speed * LevelManager.TILE_SCALE, animated); } else { //Debug.Log("EXTERNAL we CANNOT see the other player"); player.GetObject().GetComponentInChildren <SkinnedMeshRenderer>().enabled = false; this.SlowTranslatePlayer(player, VRAR_Level.getNeighborDistance(dir), speed * LevelManager.TILE_SCALE, false); } }
bool CheckEveryoneReady() { foreach (KeyValuePair <int, Player> entry in players) { if (entry.Value.ready == false) { return(false); } } GameStateManager.instance.setGlobalStateIndex(GameStateManager.STATE_PLAYING); VRAR_Level levelTile = GameStateManager.instance.getCurrentLevel(); var fileMessage = new FileMessage(); TextReader tr; if (Application.isEditor) {//use the project location tr = new StreamReader(Application.dataPath + "/levels/" + "/level_" + levelTile.levelTile.tileIndex_X + "#" + levelTile.levelTile.tileIndex_Y + ".sav"); } else {//use the user save location tr = new StreamReader(Application.persistentDataPath + "/levels/" + "/level_" + levelTile.levelTile.tileIndex_X + "#" + levelTile.levelTile.tileIndex_Y + ".sav"); } fileMessage.file = tr.ReadToEnd(); NetworkServer.SendToAll(NetworkMessages.File, fileMessage); SceneManager.LoadScene(1); return(true); }
public void spawnLevel() { Vector2Int tPos = new Vector2Int(selectedTiles[0].tileIndex_X, selectedTiles[0].tileIndex_Y); VRAR_Level lvl = GameStateManager.instance.getCurrentLevel(); //VRAR_Level lvl = lvlManager.getLevelObjectFromTilePos(tPos); foreach (VRAR_Tile tile in lvl.vrarTiles) { Transform nodeMarker = Instantiate(hexPREFAB, lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, tile.height_), new Quaternion()); tile.hexObject = nodeMarker; nodeMarker.gameObject.GetComponent <Renderer>().material = TileObjectManger.getMaterial(tile.terrain); nodeMarker.localScale = new Vector3(1, tile.height_, 1); //spawn interactable object if (TileObjectManger.TILE_OBJECTS[tile.getInteractableObject().getObjectID()].getPrefab() != null) { Instantiate(TileObjectManger.TILE_OBJECTS[tile.getInteractableObject().getObjectID()].getPrefab(), lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, tile.height_), new Quaternion()); } //spawn dumb objects foreach (BaseTileObject dumbObject in tile.getDumbObjectsList()) { if (dumbObject.getPrefab() != null) { Instantiate(dumbObject.getPrefab(), lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, tile.height_), new Quaternion()); } } } }
// Update is called once per frame void Update() { cursorMove(); switch (stateIndex) { case 0: lvl = lvlManager.getLevelObjectFromTilePos(lvlManager.getTilePosFromWorldPos(ingameCursor.position)); if (lvl != null) { //Reset the previous tile back to normal if (previousSelectedTile != null) { previousSelectedTile.GetComponent <Renderer>().material = previousSelectedTileMaterial; previousSelectedTileMaterial = lvl.levelTile.hexObject.gameObject.GetComponent <Renderer>().material; } //Set material of selected tile lvl.levelTile.hexObject.gameObject.GetComponent <Renderer>().material = selectedTileMaterial; //Add update list of selected tiles selectedTiles.Clear(); selectedTiles.Add(lvl.levelTile); //update debug text of current selected tile selectedLevelText.text = "lvl :" + lvl.levelTile.tileIndex_X + " " + lvl.levelTile.tileIndex_Y; previousSelectedTile = lvl.levelTile.hexObject.gameObject; } break; default: VRAR_Tile selTile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y); if (selTile != null) { //Reset the previous tile back to normal if (previousSelectedTile != null) { previousSelectedTile.GetComponent <Renderer>().material = previousSelectedTileMaterial; previousSelectedTileMaterial = selTile.hexObject.gameObject.GetComponent <Renderer>().material; } //Set material of selected tile selTile.hexObject.gameObject.GetComponent <Renderer>().material = selectedTileMaterial; //Add update list of selected tiles selectedTiles.Clear(); selectedTiles.Add(selTile); //update debug text of current selected tile selectedLevelText.text = "lvl :" + selTile.tileIndex_X + " " + selTile.tileIndex_Y; previousSelectedTile = selTile.hexObject.gameObject; lvl.tileUpdate(0, 0); } break; } }
public void walkLocalPlayer(int currentX, int currentY, int dir) { /* * targetTransform.Translate(VRAR_Level.getNeighborDistance(VRAR_Level.getCounterTile(dir))); * float y = GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).hexObject.lossyScale.y * 0.447f - this.localPlayer.GetObject().transform.position.y; * localPlayer.GetObject().transform.Translate(new Vector3(0f, y * LevelManager.TILE_SCALE, 0f)); * this.spawnLevel(currentX, currentY); * this.updateSight(currentX, currentY); * * foreach (BasePlayer basePlayer in GamePlayManagerAR.instance.GetPlayers().Values) * { * if (basePlayer.GetPlayerId() != this.localPlayer.GetPlayerId()) * { * this.walkExternalPlayer(currentX, currentY, basePlayer, VRAR_Level.getCounterTile(dir)); * } * }*/ if (this.localPlayerTranslateWrapper == null) { this.localPlayerTranslateWrapper = new TileRenderer.SlowTranslateWrapper(this.targetTransform); } this.SlowTranslate(this.localPlayerTranslateWrapper, VRAR_Level.getNeighborDistance(VRAR_Level.getCounterTile(dir)), speed * LevelManager.TILE_SCALE, () => { if (GamePlayManagerAR.instance.localPlayer != null) {//update animation GamePlayManagerAR.instance.localPlayer.GetObject().transform.localEulerAngles = new Vector3(0, directionToRotation(dir), 0); m_Animator = GamePlayManagerAR.instance.localPlayer.GetObject().GetComponent <Animator>(); m_Animator.SetBool("isWalkingLocally", true); } this.spawnLevel(currentX, currentY); this.updateSight(currentX, currentY); }, () => { if (GamePlayManagerAR.instance.localPlayer != null) {//update animation m_Animator = GamePlayManagerAR.instance.localPlayer.GetObject().GetComponent <Animator>(); m_Animator.SetBool("isWalkingLocally", false); } this.spawnLevel(currentX, currentY); this.updateSight(currentX, currentY); }); //float y = GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(this.localPlayer.GetCurrentVec().x, this.localPlayer.GetCurrentVec().y).hexObject.lossyScale.y * 0.447f - this.localPlayer.GetObject().transform.position.y; //float y = GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).hexObject.lossyScale.y * 0.447f - this.localPlayer.GetObject().transform.position.y; float y = localPlayer.GetObject().transform.position.y - GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).height_ * 0.1339f; this.SlowTranslatePlayer(this.localPlayer, new Vector3(0f, -y, 0f), speed * LevelManager.TILE_SCALE, false); //localPlayer.GetObject().transform.position = new Vector3(localPlayer.GetObject().transform.position.x, GameStateManager.getInstance().getCurrentLevel().getTileFromIndexPos(currentX, currentY).height_ * LevelManager.TILE_SCALE * 0.447f, localPlayer.GetObject().transform.position.z); foreach (BasePlayer basePlayer in GamePlayManagerAR.instance.GetPlayers().Values) { if (basePlayer.GetPlayerId() != this.localPlayer.GetPlayerId()) { this.walkExternalPlayer(currentX, currentY, basePlayer, VRAR_Level.getCounterTile(dir), false); } } }
public IEnumerator slowSpawnLVL() { isSpawningLevel = true; VRAR_Level lvl = GameStateManager.instance.getCurrentLevel(); //do not use a foreach here incase the list gets edited while spawning for (int i = 0; i < lvl.vrarTiles.Count; i++) { updateTile(lvl.vrarTiles[i]); yield return(new WaitForSeconds(0.005f)); } isSpawningLevel = false; }
void FixedUpdate() { //Debug.Log(brushTicking); if (brushTicking && (GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_LEVEL_EDITOR || GameStateManager.instance.getGlobalStateIndex() != GameStateManager.STATE_PLAYING) && !Valve.VR.InteractionSystem.VRInputHandler.isInTileObjectEditMenu) { //EditTile(brushActionDropdown.value); EditTile(currentBrush); } else if (brushTicking && GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_PLAYING) { EditTile(currentBrush); } else if (TileToolEditTick && GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_LEVEL_EDITOR) { TileToolEditTick = false; /* * VRAR_Level lvl = GameStateManager.instance.getCurrentLevel();//TileRenderer.getCurrLVL(); * * * VRAR_Tile tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y); * if (tile != null) * { * //currentlySelected = tile; * * if (!menuOpen) * { * menuOpen = true; * OpenTileProperties(tile); * } * }*/ } else if (GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_PLAYING || GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_LEVEL_EDITOR) { VRAR_Level lvl = GameStateManager.instance.getCurrentLevel(); VRAR_Tile tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y); if (tile != null) { if (tile != lastSelectedTile) { OpenTileProperties(tile); } lastSelectedTile = tile; } } }
internal void genTerrain() { VRAR_Level lvl = GameStateManager.instance.getCurrentLevel(); foreach (VRAR_Tile tile in lvl.vrarTiles) { List <BaseTileObject> tileObjectList = tile.getDumbObjectsList(); for (int i = 0; i < tileObjectList.Count; i++) { if (tileObjectList[i].getObjectID() == 5 || tileObjectList[i].getObjectID() == 2) { tile.removeDumbObject(tileObjectList[i]); } } /* * for(int i=0;i< tile.hexObject.transform.childCount;i++) * { * if (tile.hexObject.GetChild(i).CompareTag("vrar_generated_terrain")) * { * print("removing :" + tile.hexObject.GetChild(i)); * //tile.removeDumbObject() * Destroy(tile.hexObject.GetChild(i).gameObject); * } * }*/ switch (tile.GetTerrain()) { case "Water": break; case "Mountain": if (UnityEngine.Random.Range(0, 10) > 8) { addTileObject(tile, TileObjectManger.TILE_OBJECTS[5]); } break; case "Grass": if (UnityEngine.Random.Range(0, 10) > 7) { addTileObject(tile, TileObjectManger.TILE_OBJECTS[2]); } break; } } TileRenderer.instance.clearScene(); StartCoroutine(TileRenderer.instance.slowSpawnLVL()); }
public void spawnLevel() { //Vector2Int tPos = new Vector2Int(selectedTiles[0].tileIndex_X, selectedTiles[0].tileIndex_Y); VRAR_Level lvl = GameStateManager.instance.getCurrentLevel(); //VRAR_Level lvl = lvlManager.getLevelObjectFromTilePos(tPos); foreach (VRAR_Tile tile in lvl.vrarTiles) { //Create new empty gameobject to hold the tile and tileobjects /*GameObject tileObject = new GameObject(tile.ToString()); * tileObject.tag = "vrar_lvl"; * tileObject.transform.position = lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, 1); * tileObject.transform.parent = tilesParent; * tile.tileGameObject = tileObject.transform;*/ updateTile(tile); /* * //create the tile itself * Transform nodeMarker = Instantiate(hexPREFAB); * nodeMarker.parent = tileObject.transform; * nodeMarker.localPosition = new Vector3(0,0,0); * * tile.hexObject = nodeMarker; * nodeMarker.gameObject.GetComponent<Renderer>().material = TileObjectManger.getMaterial(tile.terrain); * nodeMarker.localScale = new Vector3(1, tile.height_, 1); * * //spawn interactable object * if (TileObjectManger.TILE_OBJECTS[tile.getInteractableObject().getObjectID()].getPrefab() != null) * { * Transform dumbObject = Instantiate(TileObjectManger.TILE_OBJECTS[tile.getInteractableObject().getObjectID()].getPrefab(), lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, tile.height_+2), new Quaternion()); * dumbObject.parent = tileObject.transform; * } * * //spawn dumb objects * foreach (BaseTileObject dumbObject in tile.getDumbObjectsList()) * { * if (dumbObject.getPrefab() != null) * { * Transform interOjbect =Instantiate(dumbObject.getPrefab(), lvlManager.getWorldPosFromTilePos(tile.tileIndex_X, tile.tileIndex_Y, tile.height_ + 2), new Quaternion()); * interOjbect.parent = tileObject.transform; * } * }*/ } }
public void UpdateUI(List <MoveRequest> moveRequests) { if (moveRequests.Count == 0) { playerActionPanel.SetActive(false); } else { playerActionPanel.SetActive(true); MoveRequest mr = moveRequests[0]; playerNameField.text = mr.id + ". " + server.GetPlayerName(mr.id); actionNameField.text = "Move " + VRAR_Level.GetDirectionName(mr.direction); redButton.GetComponentInChildren <Text>().text = "Deny"; neutralButton.GetComponentInChildren <Text>().text = "Ignore"; greenButton.GetComponentInChildren <Text>().text = "Accept"; OnGreenButtonClicked(); } }
public void spawnLevel(int x, int y) { VRAR_Level currentLevel = GameStateManager.getInstance().getCurrentLevel(); List <VRAR_Tile> list; if (this.localPlayer == null) { MonoBehaviour.print("localPlayer null! ,spawning around 0,0 s5"); //list = currentLevel.selectRadius(0, 0, 3); list = currentLevel.selectRadius(x, y, 3); } else { list = currentLevel.selectRadius(x, y, this.localPlayer.GetSight()); //list = currentLevel.selectRadius(this.localPlayer.GetCurrentVec().x, this.localPlayer.GetCurrentVec().y, this.localPlayer.GetSight()); } foreach (VRAR_Tile tile in list) { this.updateTile(tile); //StartCoroutine(DropIn(tile, 2f, null)); } }
void Update() { //Debug.Log(brushTicking); if (brushTicking && GameStateManager.instance.getGlobalStateIndex() == GameStateManager.STATE_LEVEL_EDITOR) { if (brushTickDivider-- == 0) { brushTickDivider = 4; //VRAR_Level lvl = lvlManager.getLevelObjectFromTilePos(lvlManager.getTilePosFromWorldPos(leftHandCursor.position)); VRAR_Level lvl = TileRenderer.getCurrLVL(); VRAR_Tile tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y); if (tile != null) { currentlySelected = tile; List <VRAR_Tile> effectedTiles = lvl.selectRadius(tile.tileIndex_X, tile.tileIndex_Y, brushSize); if (!menuOpen) { OpenTileProperties(tile); menuOpen = true; } //resetPrevous.Clear(); // resetPrevous.Add(lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(leftHandCursor.position).x, lvlManager.getTilePosFromWorldPos(leftHandCursor.position).y)); foreach (VRAR_Tile surroundTile in effectedTiles) { if (surroundTile != null) { switch (brushActionDropdown.value) { case 0: if (surroundTile.height_ < maxTileHeight) { surroundTile.setHeight(surroundTile.height_ + 0.05f); //Debug.Log(surroundTile); } //else { surroundTile.setHeight(minTileHeight); } break; case 1: if (surroundTile.height_ > minTileHeight) { surroundTile.setHeight(surroundTile.height_ - 0.05f); } //else { surroundTile.setHeight(maxTileHeight); } break; case 2: if (surroundTile.hexObject != null) { //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.defaultTileMaterial; surroundTile.SetTerrain("Mountain"); TileRenderer.instance.updateTile(surroundTile); } break; case 3: if (surroundTile.hexObject != null) { //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.waterTileMaterial; surroundTile.SetTerrain("Water"); TileRenderer.instance.updateTile(surroundTile); } break; case 4: if (surroundTile.hexObject != null) { //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.selectedTileMaterial; surroundTile.SetTerrain("Grass"); TileRenderer.instance.updateTile(surroundTile); } break; } } else { Debug.Log("sur was null"); } } } } } }
//Moves the character and return true if succesful, return false if there is no tile or its not walkable public bool Move(int direction) { VRAR_Tile targetTile = GameStateManager.getInstance().getCurrentLevel().getAdjacentTile(_currentTilePos.x, _currentTilePos.y, VRAR_Level.getCounterTile(direction)); //if (targetTile == null || !targetTile.walkable) // return false; _currentTilePos = new Vector2Int(targetTile.tileIndex_X, targetTile.tileIndex_Y); return(true); }
// Update is called once per frame void Update() { //cursorMove(); switch (GameStateManager.instance.getGlobalStateIndex()) { case GameStateManager.STATE_CAMPAIGN_EDITOR: cursorMarker.position = Vector3.Scale(leftHandCursor.position, (truncY)) + offY; lvl = lvlManager.getLevelObjectFromTilePos(lvlManager.getTilePosFromWorldPos(leftHandCursor.position)); if (lvl != null) { GameStateManager.instance.setCurrentLevel(lvl); //Reset the previous tile back to normal if (previousSelectedTile != null) { // previousSelectedTile.GetComponent<Renderer>().material = previousSelectedTileMaterial; // previousSelectedTileMaterial = lvl.levelTile.hexObject.gameObject.GetComponent<Renderer>().material; previousSelectedTile.hexObject.gameObject.GetComponent <Renderer>().material = TileObjectManger.getMaterial(previousSelectedTile.GetTerrain()); } //Set material of selected tile lvl.levelTile.hexObject.gameObject.GetComponent <Renderer>().material = selectedTileMaterial; //Add update list of selected tiles selectedTiles.Clear(); selectedTiles.Add(lvl.levelTile); //update debug text of current selected tile selectedLevelText.text = "lvl :" + lvl.levelTile.tileIndex_X + " " + lvl.levelTile.tileIndex_Y; //previousSelectedTile = lvl.levelTile.hexObject.gameObject; previousSelectedTile = lvl.levelTile; } break; case GameStateManager.STATE_LEVEL_EDITOR: lvl = GameStateManager.instance.getCurrentLevel(); //Debug.Log("level state :"+lvl.levelTile.ToString()); cursorMarker.position = Vector3.Scale(rightHandCursor.position, (truncY)) + offY; //cursorMarker.position *= 5f; //VRAR_Tile selTile= lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(rightHandCursor.position).x, lvlManager.getTilePosFromWorldPos(rightHandCursor.position).y); VRAR_Tile selTile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(cursorMarker.position).x, lvlManager.getTilePosFromWorldPos(cursorMarker.position).y); if (selTile != null) { //Reset the previous tile back to normal if (previousSelectedTile != null) { //previousSelectedTile.GetComponent<Renderer>().material = previousSelectedTileMaterial; //previousSelectedTileMaterial = selTile.hexObject.gameObject.GetComponent<Renderer>().material; previousSelectedTile.hexObject.gameObject.GetComponent <Renderer>().material = TileObjectManger.getMaterial(previousSelectedTile.GetTerrain()); } //Set material of selected tile selTile.hexObject.gameObject.GetComponent <Renderer>().material = selectedTileMaterial; //Add update list of selected tiles selectedTiles.Clear(); selectedTiles.Add(selTile); //update debug text of current selected tile selectedLevelText.text = "lvl :" + selTile.tileIndex_X + " " + selTile.tileIndex_Y; //previousSelectedTile = selTile.hexObject.gameObject; previousSelectedTile = selTile; lvl.tileUpdate(0, 0); } break; case GameStateManager.STATE_PLAYING: break; } }
public void QueueMove(int direction) { BasePlayer player = GamePlayManagerAR.instance.localPlayer; VRAR_Tile tile = GameStateManager.getInstance().getCurrentLevel().getAdjacentTile(player.GetCurrentVec().x, player.GetCurrentVec().y, VRAR_Level.getCounterTile(direction)); if (tile == null || !tile.walkable) { return; } var moveMessage = new MoveRequestMessage(); moveMessage.direction = direction; client.Send(CustomNetMsg.MoveRequest, moveMessage); }
//Moves the character and return true if succesful, return false if there is no tile or its not walkable public bool Move(int direction) { VRAR_Tile targetTile = GameStateManager.instance.getCurrentLevel().getAdjacentTile(_currentTilePos.x, _currentTilePos.y, VRAR_Level.getCounterTile(direction)); //if (targetTile == null || !targetTile.walkable) // return false; _currentTilePos = new Vector2Int(targetTile.tileIndex_X, targetTile.tileIndex_Y); _object.transform.position = targetTile.tileGameObject.position + new Vector3(0, targetTile.height_, 0); return(true); }
void Update() { if (brushTicking) { if (brushTickDivider-- == 0) { brushTickDivider = 4; //VRAR_Level lvl = lvlManager.getLevelObjectFromTilePos(lvlManager.getTilePosFromWorldPos(ingameCursor.position)); VRAR_Level lvl = TileRenderer.getCurrLVL(); VRAR_Tile tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y); if (tile != null) { List <VRAR_Tile> effectedTiles = lvl.selectRadius(tile.tileIndex_X, tile.tileIndex_Y, brushSize); //resetPrevous.Clear(); // resetPrevous.Add(lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y)); foreach (VRAR_Tile surroundTile in effectedTiles) { if (surroundTile != null) { switch (brushActionDropdown.value) { case 0: if (surroundTile.height_ < maxTileHeight) { surroundTile.setHeight(surroundTile.height_ + 0.05f); //Debug.Log(surroundTile); } //else { surroundTile.setHeight(minTileHeight); } break; case 1: if (surroundTile.height_ > minTileHeight) { surroundTile.setHeight(surroundTile.height_ - 0.05f); } //else { surroundTile.setHeight(maxTileHeight); } break; case 2: if (surroundTile.hexObject != null) { surroundTile.hexObject.gameObject.GetComponent <Renderer>().material = tileRenderer.defaultTileMaterial; } break; case 3: if (surroundTile.hexObject != null) { surroundTile.hexObject.gameObject.GetComponent <Renderer>().material = tileRenderer.waterTileMaterial; } break; case 4: if (surroundTile.hexObject != null) { surroundTile.hexObject.gameObject.GetComponent <Renderer>().material = tileRenderer.selectedTileMaterial; } break; } } else { Debug.Log("sur was null"); } } } } } }
public void setCurrentLevel(VRAR_Level lvl) { currentLvl = lvl; }
public void setCurrentLevel(VRAR_Level lvl) { //Debug.Log("SETCURRENTLVL!! :" + lvl.levelTile); currentLvl = lvl; }
// Update is called once per frame void Update() { //cursorMove(); switch (GameStateManager.instance.getGlobalStateIndex()) { case GameStateManager.STATE_CAMPAIGN_EDITOR: cursorMarker.position = Vector3.Scale(leftHandCursor.position, (truncY)) + offY; lvl = lvlManager.getLevelObjectFromTilePos(lvlManager.getTilePosFromWorldPos(leftHandCursor.position)); if (lvl != null) { GameStateManager.instance.setCurrentLevel(lvl); //Reset the previous tile back to normal if (previousSelectedTile != null) { previousSelectedTile.hexObject.gameObject.GetComponent <Renderer>().material = TileObjectManger.getMaterial(previousSelectedTile.GetTerrain()); } //Set material of selected tile lvl.levelTile.hexObject.gameObject.GetComponent <Renderer>().material = TileObjectManger.getMaterial("Selection"); //Add update list of selected tiles selectedTiles.Clear(); selectedTiles.Add(lvl.levelTile); //update debug text of current selected tile selectedLevelText.text = "lvl :" + lvl.levelTile.tileIndex_X + " " + lvl.levelTile.tileIndex_Y; previousSelectedTile = lvl.levelTile; } break; case GameStateManager.STATE_LEVEL_EDITOR: lvl = GameStateManager.instance.getCurrentLevel(); cursorMarker.position = Vector3.Scale(rightHandCursor.position, (truncY)) + offY; selTile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(cursorMarker.position).x, lvlManager.getTilePosFromWorldPos(cursorMarker.position).y); if (selTile != null && selTile.hexObject != null && !Valve.VR.InteractionSystem.VRInputHandler.isInTileObjectEditMenu) { //if selectedHexPrefab is a prefab (so not in any scene) if (selectedHexPrefab.gameObject.scene.name == null) { selectedHexPrefabItem = selectedHexPrefab; //spawn prefab is scene selectedHexPrefab = Instantiate(selectedHexPrefab); } //Reset the previous tile back to normal if (previousSelectedTile != null) { //previousSelectedTile.hexObject.gameObject.GetComponent<Renderer>().material = TileObjectManger.getMaterial(previousSelectedTile.GetTerrain()); } //Set material of selected tile //selTile.hexObject.gameObject.GetComponent<Renderer>().material = TileObjectManger.getMaterial("Selection"); selectedHexPrefab.gameObject.transform.position = selTile.hexObject.position + (new Vector3(0, (float)(selTile.height_ + 0.1), 0)); //Add update list of selected tiles selectedTiles.Clear(); selectedTiles.Add(selTile); //update debug text of current selected tile selectedLevelText.text = "lvl :" + selTile.tileIndex_X + " " + selTile.tileIndex_Y; previousSelectedTile = selTile; lvl.tileUpdate(0, 0); } break; case GameStateManager.STATE_PLAYING: lvl = GameStateManager.instance.getCurrentLevel(); cursorMarker.position = Vector3.Scale(rightHandCursor.position, (truncY)) + offY; selTile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(cursorMarker.position).x, lvlManager.getTilePosFromWorldPos(cursorMarker.position).y); if (selTile != null && selTile.hexObject != null && !Valve.VR.InteractionSystem.VRInputHandler.isInTileObjectEditMenu) { if (prevSelTile != selTile) { //var tileMessage = new TileMessage(selTile); if (prevSelTile != null && prevSelTile.hexObject != null) { foreach (VRAR_Tile tile in GameStateManager.instance.getCurrentLevel().dirtyTiles) { var tileMessage = new TileMessage(tile, false); NetworkServer.SendToAll(CustomNetMsg.Tile, tileMessage); } GameStateManager.instance.getCurrentLevel().dirtyTiles.Clear(); } } //if selectedHexPrefab is a prefab (so not in any scene) if (selectedHexPrefab.gameObject.scene.name == null) { selectedHexPrefabItem = selectedHexPrefab; //spawn prefab is scene selectedHexPrefab = Instantiate(selectedHexPrefab); } //Set material of selected tile selectedHexPrefab.gameObject.transform.position = selTile.hexObject.position + (new Vector3(0, selTile.height_ - 1, 0)); prevSelTile = selTile; } break; } }
void GotMove(NetworkMessage netMsg) { var msg = netMsg.ReadMessage <MoveMessage>(); /* * BasePlayer player = players[msg.id]; * VRAR_Tile tile = GameStateManager.getInstance().getCurrentLevel().getAdjacentTile(player.tileLocation.x, player.tileLocation.y, VRAR_Level.getCounterTile(msg.direction)); * player.tileLocation = new Vector2Int(tile.tileIndex_X, tile.tileIndex_Y); */ BasePlayer player = players[msg.id]; VRAR_Tile tile = GameStateManager.getInstance().getCurrentLevel().getAdjacentTile(player.GetCurrentVec().x, player.GetCurrentVec().y, VRAR_Level.getCounterTile(msg.direction)); player.Move(msg.direction); // local player if (IsMyId(msg.id)) { // move the world. TileRenderer.instance.walkLocalPlayer(player.GetCurrentVec().x, player.GetCurrentVec().y, msg.direction); } else { //TileRenderer.instance.walkExternalPlayer(player.GetCurrentVec().x, player.GetCurrentVec().y, player, msg.direction); TileRenderer.instance.walkExternalPlayer(GamePlayManagerAR.instance.localPlayer.GetCurrentVec().x, GamePlayManagerAR.instance.localPlayer.GetCurrentVec().y, player, msg.direction, true); // move the other player. //otherplayer.tilePosition = } }
public void EditTile(int num) { VRAR_Level lvl = GameStateManager.instance.getCurrentLevel(); VRAR_Tile tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y); currentBrush = num; if (brushTickDivider-- == 0) // || true) { brushTickDivider = 4; //VRAR_Level lvl = GameStateManager.instance.getCurrentLevel();//TileRenderer.getCurrLVL(); //VRAR_Tile tile = lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y); if (tile != null) { //currentlySelected = tile; List <VRAR_Tile> effectedTiles = lvl.selectRadius(tile.tileIndex_X, tile.tileIndex_Y, brushSize); //resetPrevous.Clear(); // resetPrevous.Add(lvl.getTileFromIndexPos(lvlManager.getTilePosFromWorldPos(leftHandCursor.position).x, lvlManager.getTilePosFromWorldPos(leftHandCursor.position).y)); foreach (VRAR_Tile surroundTile in effectedTiles) { if (surroundTile.hexObject != null)//phantom tiles shouldn't be changed { switch (num) { case 0: if (surroundTile.height_ < maxTileHeight) { surroundTile.setHeight(surroundTile.height_ + 0.1f); TileRenderer.instance.updateTile(surroundTile); //todo only do this after the user stopped changing the height (for optimization) } //else { surroundTile.setHeight(minTileHeight); } break; case 1: if (surroundTile.height_ > minTileHeight) { surroundTile.setHeight(surroundTile.height_ - 0.1f); TileRenderer.instance.updateTile(surroundTile); //todo only do this after the user stopped changing the height (for optimization) } //else { surroundTile.setHeight(maxTileHeight); } break; case 3: { //remove tile VRAR_Tile remTile = lvl.removeTile(surroundTile.tileIndex_X, surroundTile.tileIndex_Y); var tileMessage = new TileMessage(remTile, true); NetworkServer.SendToAll(CustomNetMsg.Tile, tileMessage); TileRenderer.instance.updateTile(surroundTile); } break; case 4: if (surroundTile.hexObject != null) { //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.defaultTileMaterial; surroundTile.SetTerrain("Mountain"); TileRenderer.instance.updateTile(surroundTile); } break; case 5: if (surroundTile.hexObject != null) { //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.waterTileMaterial; surroundTile.SetTerrain("Water"); TileRenderer.instance.updateTile(surroundTile); } break; case 6: if (surroundTile.hexObject != null) { //surroundTile.hexObject.gameObject.GetComponent<Renderer>().material = tileRenderer.selectedTileMaterial; surroundTile.SetTerrain("Grass"); TileRenderer.instance.updateTile(surroundTile); } break; } } else {//functions that run on both existing and phantom tiles but when the cursor is still on a existing tile! switch (num) { case 2: //if tile is phantom tile, create actual if (surroundTile.isPhantom) { TileRenderer.instance.updateTile(lvl.addNewTile(surroundTile.tileIndex_X, surroundTile.tileIndex_Y)); } break; } } } //lastSelectedTile = tile; } else {//cursor is not actually on a tile switch (num) { case 2: //spawn middle tile first (and the rest gets spawned in the next tick), and select amount around it TileRenderer.instance.updateTile(lvl.addNewTile(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y)); break; case 3: { VRAR_Tile middleTempTile = (lvl.addNewTile(lvlManager.getTilePosFromWorldPos(ingameCursor.position).x, lvlManager.getTilePosFromWorldPos(ingameCursor.position).y)); List <VRAR_Tile> deletingTiles = lvl.selectRadius(middleTempTile.tileIndex_X, middleTempTile.tileIndex_Y, brushSize); foreach (VRAR_Tile surroundTile in deletingTiles) { TileRenderer.instance.updateTile(lvl.removeTile(surroundTile.tileIndex_X, surroundTile.tileIndex_Y)); } } break; } } } }