private void updateActions() { if (m_riceTerrain.isDisabled()) { kill(); return; } List <MenuAction> newActions = (List <MenuAction>)ActionManager.GetInstance().getRiceTerrainActions(m_riceTerrain); // si no hay acciones se cierra el panel if (newActions.Count == 0) { kill(); return; } if (m_actions != null) { // intentamos mantener la accion anterior (si existe) int lastID = m_actions [m_currentAction].id; m_currentAction = 0; for (int i = 0; i < newActions.Count; ++i) { if (newActions [i].id == lastID) { m_currentAction = i; break; } } } m_actions = newActions; updateAction(); updateButtons(); }
// +++ ACTIONS +++ private void createActionPanel() { if (_actionPanel != null) { Destroy(_actionPanel); } WorldTerrain terrain = WorldTerrain.GetInstance(); TileTerrainType typeOfTileSelected = terrain.getTypeTerrainOfTile(_tileSelectedPosition[0], _tileSelectedPosition[1]); if (typeOfTileSelected == TileTerrainType.BUILDING && BuildingsManager.GetInstance().getTypeOfBuildingInPosition(_tileSelectedPosition[0], _tileSelectedPosition[1]) == BUILDINGS.PLANTER) { _tutMan.eventDone(TutorialManager.EVENTS.PLANTELL_ACTIONS_OPENED); } if (typeOfTileSelected == TileTerrainType.RICE_TERRAIN) { RiceTerrainTile riceTerrain = terrain.getRiceTerrain(_tileSelectedPosition [0], _tileSelectedPosition [1]); //int chunk = terrain.getRiceTerrain(_tileSelectedPosition[0], _tileSelectedPosition[1]).getChunkNumber(); //if (!PenalizationManager.GetInstance().isChunkDisabled(chunk)) { if (!riceTerrain.isDisabled()) { GameObject actionPanelTemplate = Resources.Load("Prefabs/ActionPanelLostFocusLayer") as GameObject; _actionPanel = Instantiate(actionPanelTemplate); _actionPanel.SendMessage("setRiceTerrain", riceTerrain); _tutMan.eventDone(TutorialManager.EVENTS.RICE_CHUNK_ACTIONS_OPENED); } else { GameObject disabledPanel = Resources.Load("Prefabs/DisabledChunkPanelLostFocusLayer") as GameObject; Instantiate(disabledPanel); return; } } else if (typeOfTileSelected == TileTerrainType.BUILDING) { GameObject actionPanelTemplate = Resources.Load("Prefabs/ActionBuildingPanelLostFocusLayer") as GameObject; // OR Planta _actionPanel = Instantiate(actionPanelTemplate); BUILDINGS b = BuildingsManager.GetInstance().getTypeOfBuildingInPosition(_tileSelectedPosition[0], _tileSelectedPosition[1]); _actionPanel.BroadcastMessage("setActionsForBuilding", b); } }