public override bool IsPassable() { AutoTileMap autoTileMap = AutoTileMap.Instance; if (autoTileMap.IsValidAutoTilePos(TileX, TileY)) { for (int iLayer = autoTileMap.GetLayerCount() - 1; iLayer >= 0; --iLayer) { if (autoTileMap.MapLayers[iLayer].LayerType == eLayerType.Ground) { AutoTile autoTile = autoTileMap.GetAutoTile(TileX, TileY, iLayer); eTileCollisionType collType = autoTile.Id >= 0 ? autoTileMap.Tileset.AutotileCollType[autoTile.Id] : eTileCollisionType.EMPTY; if (IsEmptyTilePassable && collType == eTileCollisionType.EMPTY || collType == eTileCollisionType.PASSABLE || collType == eTileCollisionType.WALL) { return(true); } else if (collType == eTileCollisionType.BLOCK || collType == eTileCollisionType.FENCE) { return(false); } } } } return(false); }
public override void Update() { base.Update(); if (!m_isInitialized) { Init(); return; } bool isMouseLeft = Input.GetMouseButton(0); bool isMouseRight = Input.GetMouseButton(1); Vector3 vGuiMouse = new Vector2(Input.mousePosition.x, Screen.height - Input.mousePosition.y); bool isFocusMiniMap = (m_miniMapAON != null && m_miniMapAON.IsInitialized && (m_miniMapAON.IsFocus || m_miniMapAON.MinimapRect.Contains(vGuiMouse))); //+++ Set window with focus if (!isMouseLeft) { if (m_rEditorRect.Contains(vGuiMouse)) { m_focusWindow = eEditorWindow.TOOLS; } else if (isFocusMiniMap) { m_focusWindow = eEditorWindow.NONE; } else { m_focusWindow = eEditorWindow.MAPVIEW; } } if (isFocusMiniMap) { //Do NotThing } else if (m_rEditorRect.Contains(vGuiMouse)) { } else if (m_focusWindow == eEditorWindow.MAPVIEW) { Vector3 vWorldMousePos = m_autoTileMap.ViewCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y)); // m_autoTileMap.BrushGizmo.UpdateBrushGizmo( vWorldMousePos ); if (isMouseRight || isMouseLeft) { var mousePosition = Input.mousePosition; mousePosition = m_autoTileMap.ViewCamera.ScreenToWorldPoint(mousePosition); int _x = (int)(mousePosition.x / m_autoTileMap.CellSize.x); int _y = (int)(-mousePosition.y / m_autoTileMap.CellSize.y); if (m_autoTileMap.IsValidAutoTilePos(_x, _y)) { int tile_x = _x; int tile_y = _y; m_startDragTileX = m_dragTileX = tile_x; m_startDragTileY = m_dragTileY = tile_y; AONGUI_ReDrawAll(); } } } }