示例#1
0
    public override void PlaceAttribute(EditorMazeTile tile)
    {
        if (tile.TileMainMaterial.GetType() != typeof(WaterMainMaterial))
        {
            Logger.Log("TODO: Check if this works. Bridge can also be placed on any tile with a coastline");
            return;
        }

        EditorMazeTileAttributePlacer tileAttributePlacer  = new EditorMazeTileAttributePlacer(tile);
        MazeTileAttributeRemover      tileAttributeRemover = new MazeTileAttributeRemover(tile);

        BridgePiece bridgePiece = (BridgePiece)tile.GetAttributes().FirstOrDefault(attribute => (attribute is BridgePiece));

        if (bridgePiece == null)
        {
            tileAttributePlacer.PlaceBridgePiece(BridgePieceDirection.Horizontal);
        }
        else if (bridgePiece.BridgePieceDirection == BridgePieceDirection.Horizontal)
        {
            tileAttributeRemover.RemoveBridgePiece();
            tileAttributePlacer.PlaceBridgePiece(BridgePieceDirection.Vertical);
        }
        else
        {
            tileAttributeRemover.RemoveBridgePiece();
        }
    }